static void __init eukrea_cpuimx51sd_init(void) { imx51_soc_init(); mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx51sd_pads, ARRAY_SIZE(eukrea_cpuimx51sd_pads)); #if defined(CONFIG_CPU_FREQ_IMX) get_cpu_op = mx51_get_cpu_op; #endif imx51_add_imx_uart(0, &uart_pdata); imx51_add_mxc_nand(&eukrea_cpuimx51sd_nand_board_info); gpio_request(ETH_RST, "eth_rst"); gpio_set_value(ETH_RST, 1); imx51_add_fec(NULL); gpio_request(CAN_IRQGPIO, "can_irq"); gpio_direction_input(CAN_IRQGPIO); gpio_free(CAN_IRQGPIO); gpio_request(CAN_NCS, "can_ncs"); gpio_direction_output(CAN_NCS, 1); gpio_free(CAN_NCS); gpio_request(CAN_RST, "can_rst"); gpio_direction_output(CAN_RST, 0); msleep(20); gpio_set_value(CAN_RST, 1); imx51_add_ecspi(0, &cpuimx51sd_ecspi1_pdata); spi_register_board_info(cpuimx51sd_spi_device, ARRAY_SIZE(cpuimx51sd_spi_device)); gpio_request(TSC2007_IRQGPIO, "tsc2007_irq"); gpio_direction_input(TSC2007_IRQGPIO); gpio_free(TSC2007_IRQGPIO); i2c_register_board_info(0, eukrea_cpuimx51sd_i2c_devices, ARRAY_SIZE(eukrea_cpuimx51sd_i2c_devices)); platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); if (otg_mode_host) mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config); else { initialize_otg_port(NULL); mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata); } gpio_request(USBH1_RST, "usb_rst"); gpio_direction_output(USBH1_RST, 0); msleep(20); gpio_set_value(USBH1_RST, 1); mxc_register_device(&mxc_usbh1_device, &usbh1_config); #ifdef CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD eukrea_mbimxsd51_baseboard_init(); #endif }
/* * Board specific initialization. */ static void __init mx51_babbage_init(void) { iomux_v3_cfg_t usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP; iomux_v3_cfg_t power_key = _MX51_PAD_EIM_A27__GPIO2_21 | MUX_PAD_CTRL(PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP); imx51_soc_init(); #if defined(CONFIG_CPU_FREQ_IMX) get_cpu_op = mx51_get_cpu_op; #endif mxc_iomux_v3_setup_multiple_pads(mx51babbage_pads, ARRAY_SIZE(mx51babbage_pads)); imx51_add_imx_uart(0, &uart_pdata); imx51_add_imx_uart(1, NULL); imx51_add_imx_uart(2, &uart_pdata); babbage_fec_reset(); imx51_add_fec(NULL); /* Set the PAD settings for the pwr key. */ mxc_iomux_v3_setup_pad(power_key); imx_add_gpio_keys(&imx_button_data); imx51_add_imx_i2c(0, &babbage_i2c_data); imx51_add_imx_i2c(1, &babbage_i2c_data); mxc_register_device(&mxc_hsi2c_device, &babbage_hsi2c_data); if (otg_mode_host) mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config); else { initialize_otg_port(NULL); mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata); } gpio_usbh1_active(); mxc_register_device(&mxc_usbh1_device, &usbh1_config); /* setback USBH1_STP to be function */ mxc_iomux_v3_setup_pad(usbh1stp); babbage_usbhub_reset(); imx51_add_sdhci_esdhc_imx(0, &mx51_babbage_sd1_data); imx51_add_sdhci_esdhc_imx(1, &mx51_babbage_sd2_data); spi_register_board_info(mx51_babbage_spi_board_info, ARRAY_SIZE(mx51_babbage_spi_board_info)); imx51_add_ecspi(0, &mx51_babbage_spi_pdata); imx51_add_imx2_wdt(0, NULL); }
static void __init efikasb_board_init(void) { imx51_soc_init(); mxc_iomux_v3_setup_multiple_pads(mx51efikasb_pads, ARRAY_SIZE(mx51efikasb_pads)); efika_board_common_init(); mx51_efikasb_board_id(); mx51_efikasb_usb(); imx51_add_sdhci_esdhc_imx(1, NULL); gpio_led_register_device(-1, &mx51_efikasb_leds_data); imx_add_gpio_keys(&mx51_efikasb_keys_data); }
static void __init mx51_efikamx_init(void) { imx51_soc_init(); mxc_iomux_v3_setup_multiple_pads(mx51efikamx_pads, ARRAY_SIZE(mx51efikamx_pads)); efika_board_common_init(); mx51_efikamx_board_id(); /* on < 1.2 boards both SD controllers are used */ if (system_rev < 0x12) { imx51_add_sdhci_esdhc_imx(0, NULL); imx51_add_sdhci_esdhc_imx(1, &sd_pdata); mx51_efikamx_leds[2].default_trigger = "mmc1"; } else imx51_add_sdhci_esdhc_imx(0, &sd_pdata); gpio_led_register_device(-1, &mx51_efikamx_leds_data); imx_add_gpio_keys(&mx51_efikamx_powerkey_data); if (system_rev == 0x11) { gpio_request(EFIKAMX_RESET1_1, "reset"); gpio_direction_output(EFIKAMX_RESET1_1, 1); } else { gpio_request(EFIKAMX_RESET, "reset"); gpio_direction_output(EFIKAMX_RESET, 1); } /* * enable wifi by default only on mx * sb and mx have same wlan pin but the value to enable it are * different :/ */ gpio_request(EFIKA_WLAN_EN, "wlan_en"); gpio_direction_output(EFIKA_WLAN_EN, 0); msleep(10); gpio_request(EFIKA_WLAN_RESET, "wlan_rst"); gpio_direction_output(EFIKA_WLAN_RESET, 0); msleep(10); gpio_set_value(EFIKA_WLAN_RESET, 1); }
static void __init eukrea_cpuimx51_init(void) { imx51_soc_init(); mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx51_pads, ARRAY_SIZE(eukrea_cpuimx51_pads)); imx51_add_imx_uart(0, &uart_pdata); imx51_add_mxc_nand(&eukrea_cpuimx51_nand_board_info); gpio_request(CPUIMX51_QUARTA_GPIO, "quarta_irq"); gpio_direction_input(CPUIMX51_QUARTA_GPIO); gpio_free(CPUIMX51_QUARTA_GPIO); gpio_request(CPUIMX51_QUARTB_GPIO, "quartb_irq"); gpio_direction_input(CPUIMX51_QUARTB_GPIO); gpio_free(CPUIMX51_QUARTB_GPIO); gpio_request(CPUIMX51_QUARTC_GPIO, "quartc_irq"); gpio_direction_input(CPUIMX51_QUARTC_GPIO); gpio_free(CPUIMX51_QUARTC_GPIO); gpio_request(CPUIMX51_QUARTD_GPIO, "quartd_irq"); gpio_direction_input(CPUIMX51_QUARTD_GPIO); gpio_free(CPUIMX51_QUARTD_GPIO); imx51_add_fec(NULL); platform_add_devices(devices, ARRAY_SIZE(devices)); imx51_add_imx_i2c(1, &eukrea_cpuimx51_i2c_data); i2c_register_board_info(1, eukrea_cpuimx51_i2c_devices, ARRAY_SIZE(eukrea_cpuimx51_i2c_devices)); if (otg_mode_host) imx51_add_mxc_ehci_otg(&dr_utmi_config); else { initialize_otg_port(NULL); imx51_add_fsl_usb2_udc(&usb_pdata); } imx51_add_mxc_ehci_hs(1, &usbh1_config); #ifdef CONFIG_MACH_EUKREA_MBIMX51_BASEBOARD eukrea_mbimx51_baseboard_init(); #endif }
static void __init mx51_3ds_init(void) { imx51_soc_init(); mxc_iomux_v3_setup_multiple_pads(mx51_3ds_pads, ARRAY_SIZE(mx51_3ds_pads)); imx51_add_imx_uart(0, &uart_pdata); imx51_add_imx_uart(1, &uart_pdata); imx51_add_imx_uart(2, &uart_pdata); imx51_add_ecspi(1, &mx51_3ds_ecspi2_pdata); spi_register_board_info(mx51_3ds_spi_nor_device, ARRAY_SIZE(mx51_3ds_spi_nor_device)); if (mxc_expio_init(MX51_CS5_BASE_ADDR, EXPIO_PARENT_INT)) printk(KERN_WARNING "Init of the debugboard failed, all " "devices on the board are unusable.\n"); imx51_add_sdhci_esdhc_imx(0, NULL); imx51_add_imx_keypad(&mx51_3ds_map_data); imx51_add_imx2_wdt(0, NULL); }
static void __init eukrea_cpuimx51sd_init(void) { imx51_soc_init(); mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx51sd_pads, ARRAY_SIZE(eukrea_cpuimx51sd_pads)); #if defined(CONFIG_CPU_FREQ_IMX) get_cpu_op = mx51_get_cpu_op; #endif imx51_add_imx_uart(0, &uart_pdata); imx51_add_mxc_nand(&eukrea_cpuimx51sd_nand_board_info); imx51_add_imx2_wdt(0, NULL); gpio_request(ETH_RST, "eth_rst"); gpio_set_value(ETH_RST, 1); imx51_add_fec(NULL); gpio_request(CAN_IRQGPIO, "can_irq"); gpio_direction_input(CAN_IRQGPIO); gpio_free(CAN_IRQGPIO); gpio_request(CAN_NCS, "can_ncs"); gpio_direction_output(CAN_NCS, 1); gpio_free(CAN_NCS); gpio_request(CAN_RST, "can_rst"); gpio_direction_output(CAN_RST, 0); msleep(20); gpio_set_value(CAN_RST, 1); imx51_add_ecspi(0, &cpuimx51sd_ecspi1_pdata); spi_register_board_info(cpuimx51sd_spi_device, ARRAY_SIZE(cpuimx51sd_spi_device)); if (mx51_revision() < IMX_CHIP_REVISION_3_0) { eukrea_cpuimx51sd_i2c_devices[1].irq = gpio_to_irq(TSC2007_IRQGPIO_REV2), platform_add_devices(rev2_platform_devices, ARRAY_SIZE(rev2_platform_devices)); gpio_request(TSC2007_IRQGPIO_REV2, "tsc2007_irq"); gpio_direction_input(TSC2007_IRQGPIO_REV2); gpio_free(TSC2007_IRQGPIO_REV2); } else { eukrea_cpuimx51sd_i2c_devices[1].irq = gpio_to_irq(TSC2007_IRQGPIO_REV3), imx51_add_imx_i2c(0, &cpuimx51sd_i2c_data); gpio_request(TSC2007_IRQGPIO_REV3, "tsc2007_irq"); gpio_direction_input(TSC2007_IRQGPIO_REV3); gpio_free(TSC2007_IRQGPIO_REV3); } i2c_register_board_info(0, eukrea_cpuimx51sd_i2c_devices, ARRAY_SIZE(eukrea_cpuimx51sd_i2c_devices)); if (otg_mode_host) imx51_add_mxc_ehci_otg(&dr_utmi_config); else { initialize_otg_port(NULL); imx51_add_fsl_usb2_udc(&usb_pdata); } gpio_request(USBH1_RST, "usb_rst"); gpio_direction_output(USBH1_RST, 0); msleep(20); gpio_set_value(USBH1_RST, 1); imx51_add_mxc_ehci_hs(1, &usbh1_config); #ifdef CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD eukrea_mbimxsd51_baseboard_init(); #endif }