static int vincell_devices_init(void) { writel(0, MX53_M4IF_BASE_ADDR + 0xc); console_flush(); imx53_init_lowlevel(1000); clk_set_rate(clk_lookup("nfc_podf"), 66666667); imx53_add_nand(&nand_info); imx51_iim_register_fec_ethaddr(); imx53_add_fec(&fec_info); imx53_add_mmc0(NULL); i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices)); imx53_add_i2c0(NULL); vincell_fec_reset(); armlinux_set_bootparams((void *)0x70000100); armlinux_set_architecture(3297); devfs_add_partition("nand0", SZ_1M, SZ_512K, DEVFS_PARTITION_FIXED, "self_raw"); dev_add_bb_dev("self_raw", "self0"); devfs_add_partition("nand0", SZ_1M + SZ_512K, SZ_512K, DEVFS_PARTITION_FIXED, "env_raw"); dev_add_bb_dev("env_raw", "env0"); imx53_bbu_internal_nand_register_handler("nand", BBU_HANDLER_FLAG_DEFAULT, dcd_entry, sizeof(dcd_entry), 3 * SZ_128K, 0xf8020000); return 0; }
static void __init mx53_loco_board_init(void) { mx53_loco_io_init(); imx53_add_imx_uart(0, NULL); mx53_loco_fec_reset(); imx53_add_fec(&mx53_loco_fec_data); mxc_register_device(&mxc_pm_device, &loco_pm_data); imx53_add_ipuv3(&ipu_data); imx53_add_vpu(); imx53_add_ldb(&ldb_data); imx53_add_tve(&tve_data); imx53_add_v4l2_output(0); imx53_add_mxc_pwm(1); imx53_add_mxc_pwm_backlight(0, &loco_pwm_backlight_data); imx53_add_imx2_wdt(0, NULL); imx53_add_srtc(); imx53_add_dvfs_core(&loco_dvfs_core_data); imx53_add_busfreq(&loco_bus_freq_data); imx53_add_imx_i2c(0, &mx53_loco_i2c_data); imx53_add_imx_i2c(1, &mx53_loco_i2c_data); mx53_loco_init_da9052(); i2c_register_board_info(0, mxc_i2c0_board_info, ARRAY_SIZE(mxc_i2c0_board_info)); i2c_register_board_info(1, mxc_i2c1_board_info, ARRAY_SIZE(mxc_i2c1_board_info)); imx53_add_sdhci_esdhc_imx(0, &mx53_loco_sd1_data); imx53_add_sdhci_esdhc_imx(2, &mx53_loco_sd3_data); imx53_add_ahci_imx(0, &sata_data); imx53_add_iim(&iim_data); /* USB */ mx5_usb_dr_init(); mx5_set_host1_vbus_func(mx53_loco_usbh1_vbus); mx5_usbh1_init(); mxc_register_device(&loco_audio_device, &loco_audio_data); imx53_add_imx_ssi(1, &loco_ssi_pdata); /*GPU*/ if (mx53_revision() >= IMX_CHIP_REVISION_2_0) gpu_data.z160_revision = 1; else gpu_data.z160_revision = 0; imx53_add_mxc_gpu(&gpu_data); imx_add_gpio_keys(&loco_button_data); /* this call required to release SCC RAM partition held by ROM * during boot, even if SCC2 driver is not part of the image */ imx53_add_mxc_scc2(); pm_power_off = da9053_power_off; }
static void __init mx53_loco_board_init(void) { int ret; imx53_soc_init(); imx53_qsb_common_init(); imx53_add_imx_uart(0, NULL); mx53_loco_fec_reset(); imx53_add_fec(&mx53_loco_fec_data); imx53_add_imx2_wdt(0, NULL); ret = gpio_request_one(LOCO_ACCEL_EN, GPIOF_OUT_INIT_HIGH, "accel_en"); if (ret) pr_err("Cannot request ACCEL_EN pin: %d\n", ret); i2c_register_board_info(0, mx53loco_i2c_devices, ARRAY_SIZE(mx53loco_i2c_devices)); imx53_add_imx_i2c(0, &mx53_loco_i2c_data); imx53_add_imx_i2c(1, &mx53_loco_i2c_data); imx53_add_sdhci_esdhc_imx(0, &mx53_loco_sd1_data); imx53_add_sdhci_esdhc_imx(2, &mx53_loco_sd3_data); imx_add_gpio_keys(&loco_button_data); gpio_led_register_device(-1, &mx53loco_leds_data); imx53_add_ahci_imx(); }
static void __init mx53_loco_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, ARRAY_SIZE(mx53_loco_pads)); mx53_loco_init_uart(); mx53_loco_fec_reset(); imx53_add_fec(&mx53_loco_fec_data); }
static void __init mx53_evk_board_init(void) { int i; mx53_evk_io_init(); gp_reg_id = evk_regulator_data.cpu_reg_id; lp_reg_id = evk_regulator_data.vcc_reg_id; mxc_spdif_data.spdif_core_clk = clk_get(NULL, "spdif_xtal_clk"); clk_put(mxc_spdif_data.spdif_core_clk); mx53_evk_init_uart(); imx53_add_srtc(); mx53_evk_fec_reset(); imx53_add_fec(&mx53_evk_fec_pdata); imx53_add_ipuv3(0, &ipu_data); for (i = 0; i < ARRAY_SIZE(evk_fb_data); i++) imx53_add_ipuv3fb(i, &evk_fb_data[i]); imx53_add_vpu(); imx53_add_tve(&tve_data); imx53_add_v4l2_output(0); if (!board_is_mx53_arm2()) { imx53_add_mxc_pwm(1); imx53_add_mxc_pwm_backlight(0, &evk_pwm_backlight_data); } imx53_add_dvfs_core(&evk_dvfs_core_data); imx53_add_busfreq(); imx53_add_imx_i2c(0, &mx53_evk_i2c_data); imx53_add_imx_i2c(1, &mx53_evk_i2c_data); i2c_register_board_info(0, mxc_i2c0_board_info, ARRAY_SIZE(mxc_i2c0_board_info)); i2c_register_board_info(1, mxc_i2c1_board_info, ARRAY_SIZE(mxc_i2c1_board_info)); imx53_add_sdhci_esdhc_imx(0, &mx53_evk_sd1_data); imx53_add_sdhci_esdhc_imx(2, &mx53_evk_sd3_data); mxc_register_device(&imx_ahci_device_hwmon, NULL); spi_register_board_info(mx53_evk_spi_board_info, ARRAY_SIZE(mx53_evk_spi_board_info)); imx53_add_ecspi(0, &mx53_evk_spi_data); imx53_add_imx2_wdt(0, NULL); imx53_add_spdif(&mxc_spdif_data); imx53_add_spdif_dai(); imx53_add_spdif_audio_device(); /* this call required to release SCC RAM partition held by ROM * during boot, even if SCC2 driver is not part of the image */ imx53_add_mxc_scc2(); }
static int smd_devices_init(void) { imx53_iim_register_fec_ethaddr(); imx53_add_fec(&fec_info); imx53_add_mmc0(&loco_sd1_data); imx53_add_mmc2(&loco_sd3_data); smd_fec_reset(); armlinux_set_architecture(MACH_TYPE_MX53_SMD); return 0; }
static void __init mx53_loco_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, ARRAY_SIZE(mx53_loco_pads)); imx53_add_imx_uart(0, NULL); mx53_loco_fec_reset(); imx53_add_fec(&mx53_loco_fec_data); imx53_add_imx2_wdt(0, NULL); imx53_add_imx_i2c(0, &mx53_loco_i2c_data); imx53_add_imx_i2c(1, &mx53_loco_i2c_data); imx53_add_sdhci_esdhc_imx(0, NULL); imx53_add_sdhci_esdhc_imx(2, NULL); imx_add_gpio_keys(&loco_button_data); }
static void __init mx53_smd_board_init(void) { imx53_soc_init(); mxc_iomux_v3_setup_multiple_pads(mx53_smd_pads, ARRAY_SIZE(mx53_smd_pads)); mx53_smd_init_uart(); mx53_smd_fec_reset(); imx53_add_fec(&mx53_smd_fec_data); imx53_add_imx2_wdt(0, NULL); imx53_add_imx_i2c(0, &mx53_smd_i2c_data); imx53_add_sdhci_esdhc_imx(0, NULL); imx53_add_sdhci_esdhc_imx(1, NULL); imx53_add_sdhci_esdhc_imx(2, NULL); }
static int tqma53_devices_init(void) { gpio_direction_output(GPIO_FEC_NRESET, 0); mdelay(1); gpio_set_value(GPIO_FEC_NRESET, 1); imx53_iim_register_fec_ethaddr(); imx53_add_fec(&fec_info); imx53_add_mmc1(&tqma53_sd2_data); imx53_add_mmc2(&tqma53_sd3_data); armlinux_set_bootparams((void *)0x70000100); armlinux_set_architecture(MACH_TYPE_TQMA53); return 0; }
static void __init mx53_smd_board_init(void) { imx53_soc_init(); imx53_smd_common_init(); mx53_smd_init_uart(); mx53_smd_fec_reset(); imx53_add_fec(&mx53_smd_fec_data); imx53_add_imx2_wdt(0, NULL); imx53_add_imx_i2c(0, &mx53_smd_i2c_data); imx53_add_sdhci_esdhc_imx(0, NULL); imx53_add_sdhci_esdhc_imx(1, NULL); imx53_add_sdhci_esdhc_imx(2, NULL); mx53_smd_ahci_pwr_on(); imx53_add_ahci_imx(); }
static void __init mx53_evk_board_init(void) { mx53_evk_io_init(); mx53_evk_init_uart(); imx53_add_srtc(); mx53_evk_fec_reset(); imx53_add_fec(&mx53_evk_fec_pdata); imx53_add_ipuv3(&ipu_data); imx53_add_vpu(); imx53_add_tve(&tve_data); imx53_add_v4l2_output(0); if (!board_is_mx53_arm2()) { imx53_add_mxc_pwm(1); imx53_add_mxc_pwm_backlight(0, &evk_pwm_backlight_data); } imx53_add_dvfs_core(&evk_dvfs_core_data); imx53_add_busfreq(&evk_bus_freq_data); imx53_add_imx_i2c(0, &mx53_evk_i2c_data); imx53_add_imx_i2c(1, &mx53_evk_i2c_data); i2c_register_board_info(0, mxc_i2c0_board_info, ARRAY_SIZE(mxc_i2c0_board_info)); i2c_register_board_info(1, mxc_i2c1_board_info, ARRAY_SIZE(mxc_i2c1_board_info)); imx53_add_sdhci_esdhc_imx(0, &mx53_evk_sd1_data); imx53_add_sdhci_esdhc_imx(2, &mx53_evk_sd3_data); spi_register_board_info(mx53_evk_spi_board_info, ARRAY_SIZE(mx53_evk_spi_board_info)); imx53_add_ecspi(0, &mx53_evk_spi_data); imx53_add_imx2_wdt(0, NULL); /* this call required to release SCC RAM partition held by ROM * during boot, even if SCC2 driver is not part of the image */ imx53_add_mxc_scc2(); }
static void __init mx53_evk_board_init(void) { imx53_soc_init(); imx53_evk_common_init(); mx53_evk_init_uart(); mx53_evk_fec_reset(); imx53_add_fec(&mx53_evk_fec_pdata); imx53_add_imx_i2c(0, &mx53_evk_i2c_data); imx53_add_imx_i2c(1, &mx53_evk_i2c_data); imx53_add_sdhci_esdhc_imx(0, NULL); imx53_add_sdhci_esdhc_imx(1, NULL); spi_register_board_info(mx53_evk_spi_board_info, ARRAY_SIZE(mx53_evk_spi_board_info)); imx53_add_ecspi(0, &mx53_evk_spi_data); imx53_add_imx2_wdt(0); gpio_led_register_device(-1, &mx53evk_leds_data); }
static int tx53_devices_init(void) { imx53_iim_register_fec_ethaddr(); tx53_fec_init(); imx53_add_fec(&fec_info); imx53_add_mmc0(&tx53_sd1_data); imx53_add_nand(&nand_info); armlinux_set_bootparams((void *)0x70000100); armlinux_set_architecture(MACH_TYPE_TX53); /* rev xx30 can boot from nand or USB */ imx53_bbu_internal_nand_register_handler("nand-xx30", BBU_HANDLER_FLAG_DEFAULT, (void *)dcd_entry_xx30, sizeof(dcd_entry_xx30), SZ_512K, 0); /* rev 1011 can boot from MMC/SD, other bootsource currently unknown */ imx53_bbu_internal_mmc_register_handler("mmc-1011", "/dev/disk0", 0, (void *)dcd_entry_1011, sizeof(dcd_entry_1011), 0); return 0; }
static int loco_devices_init(void) { imx53_iim_register_fec_ethaddr(); loco_fec_reset(); imx53_add_fec(&fec_info); imx53_add_mmc0(&loco_sd1_data); imx53_add_mmc2(&loco_sd3_data); i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices)); imx53_add_i2c0(NULL); if (IS_ENABLED(CONFIG_USB_EHCI)) loco_ehci_init(); set_silicon_rev(imx_silicon_revision()); armlinux_set_bootparams((void *)0x70000100); armlinux_set_architecture(MACH_TYPE_MX53_LOCO); imx53_bbu_internal_mmc_register_handler("mmc", "/dev/disk0", BBU_HANDLER_FLAG_DEFAULT, dcd_entry, sizeof(dcd_entry), 0); return 0; }