static void __init mx53_ard_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx53_ard_pads, ARRAY_SIZE(mx53_ard_pads)); mx53_ard_init_uart(); imx53_add_srtc(); imx53_add_imx2_wdt(0, NULL); imx53_add_sdhci_esdhc_imx(0, &mx53_ard_sd1_data); imx53_add_sdhci_esdhc_imx(1, &mx53_ard_sd2_data); weim_cs_config(); mx53_ard_io_init(); mxc_register_device(&ard_smsc_lan9220_device, &ard_smsc911x_config); imx53_add_imx_i2c(1, &mx53_ard_i2c1_data); imx53_add_imx_i2c(2, &mx53_ard_i2c2_data); i2c_register_board_info(1, mxc_i2c1_board_info, ARRAY_SIZE(mxc_i2c1_board_info)); i2c_register_board_info(2, mxc_i2c2_board_info, ARRAY_SIZE(mxc_i2c2_board_info)); /* 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 mx6q_csi0_io_init(void) { mxc_iomux_v3_setup_multiple_pads(mx6q_sabrelite_csi0_sensor_pads, ARRAY_SIZE(mx6q_sabrelite_csi0_sensor_pads)); /* Camera power down */ gpio_request(MX6Q_SABRELITE_CSI0_PWN, "cam-pwdn"); gpio_direction_output(MX6Q_SABRELITE_CSI0_PWN, 1); msleep(1); gpio_set_value(MX6Q_SABRELITE_CSI0_PWN, 0); /* Camera reset */ gpio_request(MX6Q_SABRELITE_CSI0_RST, "cam-reset"); gpio_direction_output(MX6Q_SABRELITE_CSI0_RST, 1); gpio_set_value(MX6Q_SABRELITE_CSI0_RST, 0); msleep(1); gpio_set_value(MX6Q_SABRELITE_CSI0_RST, 1); /* For MX6Q GPR1 bit19 and bit20 meaning: * Bit19: 0 - Enable mipi to IPU1 CSI0 * virtual channel is fixed to 0 * 1 - Enable parallel interface to IPU1 CSI0 * Bit20: 0 - Enable mipi to IPU2 CSI1 * virtual channel is fixed to 3 * 1 - Enable parallel interface to IPU2 CSI1 * IPU1 CSI1 directly connect to mipi csi2, * virtual channel is fixed to 1 * IPU2 CSI0 directly connect to mipi csi2, * virtual channel is fixed to 2 */ mxc_iomux_set_gpr_register(1, 19, 1, 1); }
static void epdc_enable_pins(void) { /* Configure MUX settings to enable EPDC use */ mxc_iomux_v3_setup_multiple_pads(mx6sl_brd_epdc_enable_pads, \ ARRAY_SIZE(mx6sl_brd_epdc_enable_pads)); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_0); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_1); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_2); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_3); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_4); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_5); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_6); gpio_direction_input(MX6SL_BRD_EPDC_SDDO_7); gpio_direction_input(MX6SL_BRD_EPDC_GDCLK); gpio_direction_input(MX6SL_BRD_EPDC_GDSP); gpio_direction_input(MX6SL_BRD_EPDC_GDOE); gpio_direction_input(MX6SL_BRD_EPDC_GDRL); gpio_direction_input(MX6SL_BRD_EPDC_SDCLK); gpio_direction_input(MX6SL_BRD_EPDC_SDOE); gpio_direction_input(MX6SL_BRD_EPDC_SDLE); gpio_direction_input(MX6SL_BRD_EPDC_SDSHR); gpio_direction_input(MX6SL_BRD_EPDC_BDR0); gpio_direction_input(MX6SL_BRD_EPDC_SDCE0); gpio_direction_input(MX6SL_BRD_EPDC_SDCE1); gpio_direction_input(MX6SL_BRD_EPDC_SDCE2); }
static void __init mx25pdk_init(void) { imx25_soc_init(); mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads, ARRAY_SIZE(mx25pdk_pads)); imx25_add_imx_uart0(&uart_pdata); imx25_add_fsl_usb2_udc(&otg_device_pdata); imx25_add_mxc_ehci_hs(&usbh2_pdata); imx25_add_mxc_nand(&mx25pdk_nand_board_info); imx25_add_imxdi_rtc(); imx25_add_imx_fb(&mx25pdk_fb_pdata); imx25_add_imx2_wdt(); mx25pdk_fec_reset(); imx25_add_fec(&mx25_fec_pdata); imx25_add_imx_keypad(&mx25pdk_keymap_data); imx25_add_sdhci_esdhc_imx(0, &mx25pdk_esdhc_pdata); imx25_add_imx_i2c0(&mx25_3ds_i2c0_data); gpio_request_one(MX25PDK_CAN_PWDN, GPIOF_OUT_INIT_LOW, "can-pwdn"); imx25_add_flexcan0(NULL); }
static int sabrelite_ksz9021rn_setup(void) { mxc_iomux_v3_setup_multiple_pads(sabrelite_enet_gpio_pads, ARRAY_SIZE(sabrelite_enet_gpio_pads)); gpio_direction_output(87, 0); /* GPIO 3-23 */ gpio_direction_output(190, 1); /* GPIO 6-30: PHYAD2 */ /* LED-Mode: Tri-Color Dual LED Mode */ gpio_direction_output(23 , 0); /* GPIO 1-23 */ /* MODE strap-in pins: advertise all capabilities */ gpio_direction_output(185, 1); /* GPIO 6-25 */ gpio_direction_output(187, 1); /* GPIO 6-27 */ gpio_direction_output(188, 1); /* GPIO 6-28*/ gpio_direction_output(189, 1); /* GPIO 6-29 */ /* Enable 125 MHz clock output */ gpio_direction_output(184, 1); /* GPIO 6-24 */ mdelay(10); gpio_set_value(87, 1); return 0; }
void __init eukrea_mbimxsd51_baseboard_init(void) { if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads, ARRAY_SIZE(eukrea_mbimxsd_pads))) printk(KERN_ERR "error setting mbimxsd pads !\n"); imx51_add_imx_uart(1, NULL); imx51_add_imx_uart(2, &uart_pdata); imx51_add_sdhci_esdhc_imx(0, NULL); gpio_request(GPIO_LED1, "LED1"); gpio_direction_output(GPIO_LED1, 1); gpio_free(GPIO_LED1); gpio_request(GPIO_SWITCH1, "SWITCH1"); gpio_direction_input(GPIO_SWITCH1); gpio_free(GPIO_SWITCH1); i2c_register_board_info(0, eukrea_mbimxsd_i2c_devices, ARRAY_SIZE(eukrea_mbimxsd_i2c_devices)); gpio_led_register_device(-1, &eukrea_mbimxsd_led_info); imx_add_gpio_keys(&eukrea_mbimxsd_button_data); }
static int tx25_console_init(void) { mxc_iomux_v3_setup_multiple_pads(tx25_pads, ARRAY_SIZE(tx25_pads)); imx25_add_uart0(); return 0; }
/* * Board specific initialization. */ static void __init mxc_board_init(void) { mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx35_pads, ARRAY_SIZE(eukrea_cpuimx35_pads)); imx35_add_fec(NULL); platform_add_devices(devices, ARRAY_SIZE(devices)); imx35_add_imx_uart0(&uart_pdata); imx35_add_mxc_nand(&eukrea_cpuimx35_nand_board_info); i2c_register_board_info(0, eukrea_cpuimx35_i2c_devices, ARRAY_SIZE(eukrea_cpuimx35_i2c_devices)); imx35_add_imx_i2c0(&eukrea_cpuimx35_i2c0_data); if (otg_mode_host) mxc_register_device(&mxc_otg_host, &otg_pdata); else mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata); mxc_register_device(&mxc_usbh1, &usbh1_pdata); #ifdef CONFIG_MACH_EUKREA_MBIMXSD35_BASEBOARD eukrea_mbimxsd35_baseboard_init(); #endif }
static void epdc_disable_pins(void) { /* Configure MUX settings for EPDC pins to * GPIO and drive to 0. */ mxc_iomux_v3_setup_multiple_pads(mx50_epdc_pads_disabled, \ ARRAY_SIZE(mx50_epdc_pads_disabled)); gpio_direction_output(EPDC_D0, 0); gpio_direction_output(EPDC_D1, 0); gpio_direction_output(EPDC_D2, 0); gpio_direction_output(EPDC_D3, 0); gpio_direction_output(EPDC_D4, 0); gpio_direction_output(EPDC_D5, 0); gpio_direction_output(EPDC_D6, 0); gpio_direction_output(EPDC_D7, 0); gpio_direction_output(EPDC_GDCLK, 0); gpio_direction_output(EPDC_GDSP, 0); gpio_direction_output(EPDC_GDOE, 0); gpio_direction_output(EPDC_GDRL, 0); gpio_direction_output(EPDC_SDCLK, 0); gpio_direction_output(EPDC_SDOE, 0); gpio_direction_output(EPDC_SDLE, 0); gpio_direction_output(EPDC_SDSHR, 0); gpio_direction_output(EPDC_BDR0, 0); gpio_direction_output(EPDC_SDCE0, 0); gpio_direction_output(EPDC_SDCE1, 0); gpio_direction_output(EPDC_SDCE2, 0); }
int __init addon_setup_atmark_techno_ble(struct addon_device_descriptor *desc, enum addon_interface intf) { mxc_iomux_v3_setup_multiple_pads(addon_data[intf].pads, addon_data[intf].nr_pads); imx25_add_imx_uart(addon_data[intf].uart_id, &addon_uart_pdata); addon_gpio_request(addon_data[intf].cmd_mldp); addon_gpio_request(addon_data[intf].wake_sw); addon_gpio_request(addon_data[intf].wake_hw); addon_gpio_direction_output(addon_data[intf].wake_sw, RN4020_WAKE_SW_ASSERT); addon_gpio_direction_output(addon_data[intf].wake_hw, RN4020_WAKE_HW_DEASSERT); addon_gpio_direction_output(addon_data[intf].cmd_mldp, RN4020_COMMAND_MODE); addon_gpio_export(addon_data[intf].wake_sw, false); addon_gpio_export(addon_data[intf].wake_hw, false); addon_gpio_export(addon_data[intf].cmd_mldp, false); return 0; }
static void epdc_enable_pins(void) { /* Configure MUX settings to enable EPDC use */ mxc_iomux_v3_setup_multiple_pads(mx50_epdc_pads_enabled, \ ARRAY_SIZE(mx50_epdc_pads_enabled)); gpio_direction_input(EPDC_D0); gpio_direction_input(EPDC_D1); gpio_direction_input(EPDC_D2); gpio_direction_input(EPDC_D3); gpio_direction_input(EPDC_D4); gpio_direction_input(EPDC_D5); gpio_direction_input(EPDC_D6); gpio_direction_input(EPDC_D7); gpio_direction_input(EPDC_GDCLK); gpio_direction_input(EPDC_GDSP); gpio_direction_input(EPDC_GDOE); gpio_direction_input(EPDC_GDRL); gpio_direction_input(EPDC_SDCLK); gpio_direction_input(EPDC_SDOE); gpio_direction_input(EPDC_SDLE); gpio_direction_input(EPDC_SDSHR); gpio_direction_input(EPDC_BDR0); gpio_direction_input(EPDC_SDCE0); gpio_direction_input(EPDC_SDCE1); gpio_direction_input(EPDC_SDCE2); }
/* * Board specific initialization. */ static void __init mx51_3ds_init(void) { 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); mxc_spdif_data.spdif_core_clk = clk_get(NULL, "spdif_xtal_clk"); clk_put(mxc_spdif_data.spdif_core_clk); 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); imx51_add_spdif(&mxc_spdif_data); imx51_add_spdif_dai(); imx51_add_spdif_audio_device(); }
static int imx51_babbage_xload_init_pinmux(void) { static const iomux_v3_cfg_t pinmux[] = { /* (e)CSPI */ MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI, MX51_PAD_CSPI1_MISO__ECSPI1_MISO, MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK, /* (e)CSPI chip select lines */ MX51_PAD_CSPI1_SS1__GPIO4_25, /* eSDHC 1 */ MX51_PAD_SD1_CMD__SD1_CMD, MX51_PAD_SD1_CLK__SD1_CLK, MX51_PAD_SD1_DATA0__SD1_DATA0, MX51_PAD_SD1_DATA1__SD1_DATA1, MX51_PAD_SD1_DATA2__SD1_DATA2, MX51_PAD_SD1_DATA3__SD1_DATA3, }; mxc_iomux_v3_setup_multiple_pads(ARRAY_AND_SIZE(pinmux)); return 0; }
void __init efika_board_common_init(void) { mxc_iomux_v3_setup_multiple_pads(mx51efika_pads, ARRAY_SIZE(mx51efika_pads)); imx51_add_imx_uart(0, &uart_pdata); mx51_efika_usb(); /* FIXME: comes from original code. check this. */ if (mx51_revision() < IMX_CHIP_REVISION_2_0) sw2_init.constraints.state_mem.uV = 1100000; else if (mx51_revision() == IMX_CHIP_REVISION_2_0) { sw2_init.constraints.state_mem.uV = 1250000; sw1_init.constraints.state_mem.uV = 1000000; } if (machine_is_mx51_efikasb()) vgen1_init.constraints.max_uV = 1200000; gpio_request(EFIKAMX_PMIC, "pmic irq"); gpio_direction_input(EFIKAMX_PMIC); spi_register_board_info(mx51_efika_spi_board_info, ARRAY_SIZE(mx51_efika_spi_board_info)); imx51_add_ecspi(0, &mx51_efika_spi_pdata); imx51_add_pata_imx(); #if defined(CONFIG_CPU_FREQ_IMX) get_cpu_op = mx51_get_cpu_op; #endif }
void __init eukrea_mbimxsd35_baseboard_init(void) { if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads, ARRAY_SIZE(eukrea_mbimxsd_pads))) printk(KERN_ERR "error setting mbimxsd pads !\n"); imx35_add_imx_uart1(&uart_pdata); imx35_add_ipu_core(&mx3_ipu_data); imx35_add_mx3_sdc_fb(&mx3fb_pdata); imx35_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata); imx35_add_flexcan1(NULL); imx35_add_sdhci_esdhc_imx(0, &sd1_pdata); gpio_request(GPIO_LED1, "LED1"); gpio_direction_output(GPIO_LED1, 1); gpio_free(GPIO_LED1); gpio_request(GPIO_SWITCH1, "SWITCH1"); gpio_direction_input(GPIO_SWITCH1); gpio_free(GPIO_SWITCH1); gpio_request(GPIO_LCDPWR, "LCDPWR"); gpio_direction_output(GPIO_LCDPWR, 1); i2c_register_board_info(0, eukrea_mbimxsd_i2c_devices, ARRAY_SIZE(eukrea_mbimxsd_i2c_devices)); platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); gpio_led_register_device(-1, &eukrea_mbimxsd_led_info); imx_add_gpio_keys(&eukrea_mbimxsd_button_data); }
static int eukrea_cpuimx25_devices_init(void) { eukrea_cpuimx25_mmu_init(); mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx25_pads, ARRAY_SIZE(eukrea_cpuimx25_pads)); register_device(&fec_dev); nand_info.width = 1; register_device(&nand_dev); devfs_add_partition("nand0", 0x00000, 0x40000, PARTITION_FIXED, "self_raw"); dev_add_bb_dev("self_raw", "self0"); devfs_add_partition("nand0", 0x40000, 0x20000, PARTITION_FIXED, "env_raw"); dev_add_bb_dev("env_raw", "env0"); register_device(&sdram0_dev); /* enable LCD */ gpio_direction_output(26, 1); gpio_set_value(26, 1); register_device(&imxfb_dev); armlinux_add_dram(&sdram0_dev); armlinux_set_bootparams((void *)0x80000100); armlinux_set_architecture(MACH_TYPE_EUKREA_CPUIMX25); return 0; }
static void mx50_suspend_exit() { iomux_v3_cfg_t iomux_setting = (MX50_PAD_ECSPI2_SCLK__GPIO_4_16 & ~MUX_PAD_CTRL_MASK) | MUX_PAD_CTRL(0x84); /* Power Up the band-gap and set the SELFBIAS bit. */ __raw_writel(MXC_ANADIG_REF_PWD, apll_base + MXC_ANADIG_MISC_CLR); udelay(100); __raw_writel(MXC_ANADIG_REF_SELFBIAS_OFF, apll_base + MXC_ANADIG_MISC_SET); //if (board_is_mx50_rd3()) { /* Enable the Pull/keeper */ mxc_iomux_v3_setup_pad(iomux_setting); gpio_request(DCDC_EN, "dcdc-en"); gpio_direction_output(DCDC_EN, 1); //} mxc_iomux_v3_setup_multiple_pads(suspend_exit_pads, ARRAY_SIZE(suspend_exit_pads)); nimbus_gpio_iomux_init(); }
static void __init eukrea_cpuimx25_init(void) { if (mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx25_pads, ARRAY_SIZE(eukrea_cpuimx25_pads))) printk(KERN_ERR "error setting cpuimx25 pads !\n"); imx25_add_imx_uart0(&uart_pdata); imx25_add_mxc_nand(&eukrea_cpuimx25_nand_board_info); mxc_register_device(&mx25_rtc_device, NULL); mxc_register_device(&mx25_fec_device, &mx25_fec_pdata); i2c_register_board_info(0, eukrea_cpuimx25_i2c_devices, ARRAY_SIZE(eukrea_cpuimx25_i2c_devices)); imx25_add_imx_i2c0(&eukrea_cpuimx25_i2c0_data); #if defined(CONFIG_USB_ULPI) if (otg_mode_host) { otg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT); mxc_register_device(&mxc_otg, &otg_pdata); } mxc_register_device(&mxc_usbh2, &usbh2_pdata); #endif if (!otg_mode_host) mxc_register_device(&otg_udc_device, &otg_device_pdata); #ifdef CONFIG_MACH_EUKREA_MBIMXSD25_BASEBOARD eukrea_mbimxsd25_baseboard_init(); #endif }
static void __init eukrea_cpuimx25_init(void) { imx25_soc_init(); if (mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx25_pads, ARRAY_SIZE(eukrea_cpuimx25_pads))) printk(KERN_ERR "error setting cpuimx25 pads !\n"); imx25_add_imx_uart0(&uart_pdata); imx25_add_mxc_nand(&eukrea_cpuimx25_nand_board_info); imx25_add_imxdi_rtc(NULL); imx25_add_fec(&mx25_fec_pdata); i2c_register_board_info(0, eukrea_cpuimx25_i2c_devices, ARRAY_SIZE(eukrea_cpuimx25_i2c_devices)); imx25_add_imx_i2c0(&eukrea_cpuimx25_i2c0_data); if (otg_mode_host) imx25_add_mxc_ehci_otg(&otg_pdata); else imx25_add_fsl_usb2_udc(&otg_device_pdata); imx25_add_mxc_ehci_hs(&usbh2_pdata); #ifdef CONFIG_MACH_EUKREA_MBIMXSD25_BASEBOARD eukrea_mbimxsd25_baseboard_init(); #endif }
/* * baseboard initialization. */ void __init eukrea_mbimx51_baseboard_init(void) { mxc_iomux_v3_setup_multiple_pads(mbimx51_pads, ARRAY_SIZE(mbimx51_pads)); imx51_add_imx_uart(1, NULL); imx51_add_imx_uart(2, &uart_pdata); gpio_request(MBIMX51_LED0, "LED0"); gpio_direction_output(MBIMX51_LED0, 1); gpio_free(MBIMX51_LED0); gpio_request(MBIMX51_LED1, "LED1"); gpio_direction_output(MBIMX51_LED1, 1); gpio_free(MBIMX51_LED1); gpio_request(MBIMX51_LED2, "LED2"); gpio_direction_output(MBIMX51_LED2, 1); gpio_free(MBIMX51_LED2); gpio_request(MBIMX51_LED3, "LED3"); gpio_direction_output(MBIMX51_LED3, 1); gpio_free(MBIMX51_LED3); platform_add_devices(devices, ARRAY_SIZE(devices)); imx51_add_imx_keypad(&mbimx51_map_data); gpio_request(MBIMX51_TSC2007_GPIO, "tsc2007_irq"); gpio_direction_input(MBIMX51_TSC2007_GPIO); irq_set_irq_type(MBIMX51_TSC2007_IRQ, IRQF_TRIGGER_FALLING); i2c_register_board_info(1, mbimx51_i2c_devices, ARRAY_SIZE(mbimx51_i2c_devices)); imx51_add_sdhci_esdhc_imx(0, NULL); imx51_add_sdhci_esdhc_imx(1, NULL); }
/* * Board specific initialization. */ static void __init mx35_3ds_init(void) { imx35_soc_init(); mxc_iomux_v3_setup_multiple_pads(mx35pdk_pads, ARRAY_SIZE(mx35pdk_pads)); imx35_add_fec(NULL); imx35_add_imx2_wdt(NULL); platform_add_devices(devices, ARRAY_SIZE(devices)); imx35_add_imx_uart0(&uart_pdata); if (otg_mode_host) imx35_add_mxc_ehci_otg(&otg_pdata); imx35_add_mxc_ehci_hs(&usb_host_pdata); if (!otg_mode_host) imx35_add_fsl_usb2_udc(&usb_otg_pdata); imx35_add_mxc_nand(&mx35pdk_nand_board_info); imx35_add_sdhci_esdhc_imx(0, NULL); if (mxc_expio_init(MX35_CS5_BASE_ADDR, EXPIO_PARENT_INT)) pr_warn("Init of the debugboard failed, all " "devices on the debugboard are unusable.\n"); imx35_add_imx_i2c0(&mx35_3ds_i2c0_data); }
/* * Board specific initialization. */ static void __init eukrea_cpuimx35_init(void) { imx35_soc_init(); mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx35_pads, ARRAY_SIZE(eukrea_cpuimx35_pads)); imx35_add_fec(NULL); imx35_add_imx2_wdt(); imx35_add_imx_uart0(&uart_pdata); imx35_add_mxc_nand(&eukrea_cpuimx35_nand_board_info); eukrea_cpuimx35_i2c_devices[1].irq = gpio_to_irq(TSC2007_IRQGPIO); i2c_register_board_info(0, eukrea_cpuimx35_i2c_devices, ARRAY_SIZE(eukrea_cpuimx35_i2c_devices)); imx35_add_imx_i2c0(&eukrea_cpuimx35_i2c0_data); if (otg_mode_host) imx35_add_mxc_ehci_otg(&otg_pdata); else imx35_add_fsl_usb2_udc(&otg_device_pdata); imx35_add_mxc_ehci_hs(&usbh1_pdata); #ifdef CONFIG_MACH_EUKREA_MBIMXSD35_BASEBOARD eukrea_mbimxsd35_baseboard_init(); #endif }
/* * Board specific initialization. */ static void __init mxc_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx35pdk_pads, ARRAY_SIZE(mx35pdk_pads)); platform_add_devices(devices, ARRAY_SIZE(devices)); imx35_add_imx_uart0(&uart_pdata); imx35_add_imx_uart1(&uart_pdata); imx35_add_imx_uart2(&uart_pdata); imx35_add_spi_imx0(&spi_pdata); imx35_add_spi_imx1(&spi_pdata); mxc_register_device(&mxc_otg_udc_device, &usb_pdata); mxc_register_device(&mxc_nor_mtd_device, &mxc_nor_flash_pdata); mxc_register_nandv2_devices(); i2c_register_board_info(0, mxc_i2c_board_info, ARRAY_SIZE(mxc_i2c_board_info)); imx35_add_imx_i2c0(&i2c_data); mx35_3stack_init_mc13892(); mx35_3stack_init_mc9s08dz60(); imx35_add_imx_mmc0(&mmc1_data); if (mxc_expio_init(CS5_BASE_ADDR, EXPIO_PARENT_INT)) printk(KERN_WARNING "Init of the debugboard failed, all " "devices on the board are unusable.\n"); }
static void epdc_disable_pins(void) { /* Configure MUX settings for EPDC pins to * GPIO and drive to 0. */ mxc_iomux_v3_setup_multiple_pads(mx6sl_brd_epdc_disable_pads, \ ARRAY_SIZE(mx6sl_brd_epdc_disable_pads)); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_0, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_1, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_2, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_3, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_4, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_5, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_6, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_7, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDCLK, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDSP, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDOE, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDRL, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCLK, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDOE, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDLE, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDSHR, 0); gpio_direction_output(MX6SL_BRD_EPDC_BDR0, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCE0, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCE1, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCE2, 0); }
static void __init mx53_loco_io_init(void) { mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads, ARRAY_SIZE(mx53_loco_pads)); /* SD3 */ gpio_request(SD3_CD, "sd3-cd"); gpio_direction_input(SD3_CD); gpio_request(SD3_WP, "sd3-wp"); gpio_direction_input(SD3_WP); /* reset FEC PHY */ gpio_request(FEC_RST, "fec-rst"); gpio_direction_output(FEC_RST, 0); gpio_set_value(FEC_RST, 0); msleep(1); gpio_set_value(FEC_RST, 1); /* headphone_det_b */ gpio_request(HEADPHONE_DEC_B, "headphone-dec"); gpio_direction_input(HEADPHONE_DEC_B); /* USB PWR enable */ gpio_request(USB_PWREN, "usb-pwr"); gpio_direction_output(USB_PWREN, 0); /* LCD panel power enable */ gpio_request(DISP0_POWER_EN, "disp0-power-en"); gpio_direction_output(DISP0_POWER_EN, 1); /* USR LED */ gpio_request(USER_LED_EN, "user-led-en"); gpio_direction_output(USER_LED_EN, 1); gpio_free(USER_LED_EN); }
void enet_board_init(void) { unsigned int reg; mxc_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads)); /*set GPIO4_26 input as FEC clock */ reg = readl(GPIO4_BASE_ADDR + 0x04); reg &= ~(1 << 26); writel(reg, GPIO4_BASE_ADDR + 0x4); /* phy power enable and reset: gpio4_21 */ /* DR: High Level off: Power Off */ reg = readl(GPIO4_BASE_ADDR + 0x0); reg &= ~(1 << 21); writel(reg, GPIO4_BASE_ADDR + 0x0); /* DIR: output */ reg = readl(GPIO4_BASE_ADDR + 0x4); reg |= (1 << 21); writel(reg, GPIO4_BASE_ADDR + 0x4); udelay(1000); /* DR: High Level on: Power On */ reg = readl(GPIO4_BASE_ADDR + 0x0); reg |= (1 << 21); writel(reg, GPIO4_BASE_ADDR + 0x0); /* wait RC ms for hw reset */ udelay(500); }
static void epdc_disable_pins(void) { mxc_iomux_v3_setup_multiple_pads(mx6sl_brd_epdc_disable_pads, \ ARRAY_SIZE(mx6sl_brd_epdc_disable_pads)); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_0, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_1, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_2, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_3, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_4, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_5, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_6, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDDO_7, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDCLK, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDSP, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDOE, 0); gpio_direction_output(MX6SL_BRD_EPDC_GDRL, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCLK, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDOE, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDLE, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDSHR, 0); gpio_direction_output(MX6SL_BRD_EPDC_BDR0, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCE0, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCE1, 0); gpio_direction_output(MX6SL_BRD_EPDC_SDCE2, 0); }
/* * Board specific initialization. */ static void __init mxc_board_init(void) { struct pad_desc usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP; mxc_iomux_v3_setup_multiple_pads(mx51babbage_pads, ARRAY_SIZE(mx51babbage_pads)); mxc_init_imx_uart(); platform_add_devices(devices, ARRAY_SIZE(devices)); mxc_register_device(&mxc_i2c_device0, &babbage_i2c_data); mxc_register_device(&mxc_i2c_device1, &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_esdhc(0, NULL); imx51_add_esdhc(1, NULL); }
static int vincell_console_init(void) { mxc_iomux_v3_setup_multiple_pads(vincell_pads, ARRAY_SIZE(vincell_pads)); imx53_add_uart1(); return 0; }
/* * Board specific initialization. */ static void __init mxc_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx35pdk_pads, ARRAY_SIZE(mx35pdk_pads)); platform_add_devices(devices, ARRAY_SIZE(devices)); mxc_register_device(&mxc_uart_device0, &uart_pdata); }