]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'imx-legacy-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo...
authorArnd Bergmann <arnd@arndb.de>
Wed, 21 Sep 2016 20:34:46 +0000 (22:34 +0200)
committerArnd Bergmann <arnd@arndb.de>
Wed, 21 Sep 2016 20:34:46 +0000 (22:34 +0200)
Pull "i.MX legacy board file changes for 4.9" from Shawn Guo:

It includes a patch series that moves registrations and initializations
of all peripherals which are GPIO line consumers for all legacy boards
from .init_machine to .init_late init level. This is needed to
proactively prevent boot time issues on the legacy boards due to the
deprioritized init level of the GPIO controller driver (set lower than
IOMUX controller driver init level), which is shared among all i.MX
SoCs.

* tag 'imx-legacy-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: imx legacy: pca100: move peripheral initialization to .init_late
  ARM: imx legacy: mx27ads: move peripheral initialization to .init_late
  ARM: imx legacy: mx21ads: move peripheral initialization to .init_late
  ARM: imx legacy: pcm043: move peripheral initialization to .init_late
  ARM: imx legacy: mx35-3ds: move peripheral initialization to .init_late
  ARM: imx legacy: mx27-3ds: move peripheral initialization to .init_late
  ARM: imx legacy: imx27-visstrim-m10: move peripheral initialization to .init_late
  ARM: imx legacy: vpr200: move peripheral initialization to .init_late
  ARM: imx legacy: mx31moboard: move peripheral initialization to .init_late
  ARM: imx legacy: armadillo5x0: move peripheral initialization to .init_late
  ARM: imx legacy: qong: move peripheral initialization to .init_late
  ARM: imx legacy: mx31-3ds: move peripheral initialization to .init_late
  ARM: imx legacy: pcm037: move peripheral initialization to .init_late
  ARM: imx legacy: mx31lilly: move peripheral initialization to .init_late
  ARM: imx legacy: mx31ads: move peripheral initialization to .init_late
  ARM: imx legacy: mx31lite: move peripheral initialization to .init_late
  ARM: imx legacy: kzm: move peripheral initialization to .init_late

19 files changed:
arch/arm/mach-imx/mach-armadillo5x0.c
arch/arm/mach-imx/mach-imx27_visstrim_m10.c
arch/arm/mach-imx/mach-kzm_arm11_01.c
arch/arm/mach-imx/mach-mx21ads.c
arch/arm/mach-imx/mach-mx27_3ds.c
arch/arm/mach-imx/mach-mx27ads.c
arch/arm/mach-imx/mach-mx31_3ds.c
arch/arm/mach-imx/mach-mx31ads.c
arch/arm/mach-imx/mach-mx31lilly.c
arch/arm/mach-imx/mach-mx31lite.c
arch/arm/mach-imx/mach-mx31moboard.c
arch/arm/mach-imx/mach-mx35_3ds.c
arch/arm/mach-imx/mach-pca100.c
arch/arm/mach-imx/mach-pcm037.c
arch/arm/mach-imx/mach-pcm043.c
arch/arm/mach-imx/mach-qong.c
arch/arm/mach-imx/mach-vpr200.c
arch/arm/mach-imx/mx31lilly-db.c
arch/arm/mach-imx/mx31lite-db.c

index eaee47a2fcc0f6d2e196af4dea2d7c3dc74edd2b..17a97ba2cecfe81198752bda6afab5eef3b80b68 100644 (file)
@@ -493,24 +493,12 @@ static void __init armadillo5x0_init(void)
 
        regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
 
-       armadillo5x0_smc911x_resources[1].start =
-                       gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0));
-       armadillo5x0_smc911x_resources[1].end =
-                       gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0));
-       platform_add_devices(devices, ARRAY_SIZE(devices));
-       imx_add_gpio_keys(&armadillo5x0_button_data);
        imx31_add_imx_i2c1(NULL);
 
        /* Register UART */
        imx31_add_imx_uart0(&uart_pdata);
        imx31_add_imx_uart1(&uart_pdata);
 
-       /* SMSC9118 IRQ pin */
-       gpio_direction_input(MX31_PIN_GPIO1_0);
-
-       /* Register SDHC */
-       imx31_add_mxc_mmc(0, &sdhc_pdata);
-
        /* Register FB */
        imx31_add_ipu_core();
        imx31_add_mx3_sdc_fb(&mx3fb_pdata);
@@ -527,21 +515,39 @@ static void __init armadillo5x0_init(void)
        /* set NAND page size to 2k if not configured via boot mode pins */
        imx_writel(imx_readl(mx3_ccm_base + MXC_CCM_RCSR) | (1 << 30),
                   mx3_ccm_base + MXC_CCM_RCSR);
+}
+
+static void __init armadillo5x0_late(void)
+{
+       armadillo5x0_smc911x_resources[1].start =
+               gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0));
+       armadillo5x0_smc911x_resources[1].end =
+               gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0));
+       platform_add_devices(devices, ARRAY_SIZE(devices));
+
+       imx_add_gpio_keys(&armadillo5x0_button_data);
+
+       /* SMSC9118 IRQ pin */
+       gpio_direction_input(MX31_PIN_GPIO1_0);
+
+       /* Register SDHC */
+       imx31_add_mxc_mmc(0, &sdhc_pdata);
 
        /* RTC */
        /* Get RTC IRQ and register the chip */
-       if (gpio_request(ARMADILLO5X0_RTC_GPIO, "rtc") == 0) {
-               if (gpio_direction_input(ARMADILLO5X0_RTC_GPIO) == 0)
-                       armadillo5x0_i2c_rtc.irq = gpio_to_irq(ARMADILLO5X0_RTC_GPIO);
+       if (!gpio_request(ARMADILLO5X0_RTC_GPIO, "rtc")) {
+               if (!gpio_direction_input(ARMADILLO5X0_RTC_GPIO))
+                       armadillo5x0_i2c_rtc.irq =
+                               gpio_to_irq(ARMADILLO5X0_RTC_GPIO);
                else
                        gpio_free(ARMADILLO5X0_RTC_GPIO);
        }
+
        if (armadillo5x0_i2c_rtc.irq == 0)
                pr_warn("armadillo5x0_init: failed to get RTC IRQ\n");
        i2c_register_board_info(1, &armadillo5x0_i2c_rtc, 1);
 
        /* USB */
-
        usbotg_pdata.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS |
                        ULPI_OTG_DRVVBUS_EXT);
        if (usbotg_pdata.otg)
@@ -565,5 +571,6 @@ MACHINE_START(ARMADILLO5X0, "Armadillo-500")
        .init_irq = mx31_init_irq,
        .init_time      = armadillo5x0_timer_init,
        .init_machine = armadillo5x0_init,
+       .init_late      = armadillo5x0_late,
        .restart        = mxc_restart,
 MACHINE_END
index ede2bdbb5dd50f78b43675cbd136fdcbc9422abf..dd75a4756761f347a60fc6107cb9a198db9174e2 100644 (file)
@@ -540,7 +540,6 @@ static void __init visstrim_m10_revision(void)
 static void __init visstrim_m10_board_init(void)
 {
        int ret;
-       int mo_version;
 
        imx27_soc_init();
        visstrim_m10_revision();
@@ -550,11 +549,6 @@ static void __init visstrim_m10_board_init(void)
        if (ret)
                pr_err("Failed to setup pins (%d)\n", ret);
 
-       ret = gpio_request_array(visstrim_m10_gpios,
-                               ARRAY_SIZE(visstrim_m10_gpios));
-       if (ret)
-               pr_err("Failed to request gpios (%d)\n", ret);
-
        imx27_add_imx_ssi(0, &visstrim_m10_ssi_pdata);
        imx27_add_imx_uart0(&uart_pdata);
 
@@ -566,12 +560,26 @@ static void __init visstrim_m10_board_init(void)
        imx27_add_mxc_mmc(0, &visstrim_m10_sdhc_pdata);
        imx27_add_mxc_ehci_otg(&visstrim_m10_usbotg_pdata);
        imx27_add_fec(NULL);
-       imx_add_gpio_keys(&visstrim_gpio_keys_platform_data);
+
        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
+}
+
+static void __init visstrim_m10_late_init(void)
+{
+       int mo_version, ret;
+
+       ret = gpio_request_array(visstrim_m10_gpios,
+                                ARRAY_SIZE(visstrim_m10_gpios));
+       if (ret)
+               pr_err("Failed to request gpios (%d)\n", ret);
+
+       imx_add_gpio_keys(&visstrim_gpio_keys_platform_data);
+
        imx_add_platform_device("mx27vis", 0, NULL, 0, &snd_mx27vis_pdata,
                                sizeof(snd_mx27vis_pdata));
        platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0,
                                      &iclink_tvp5150, sizeof(iclink_tvp5150));
+
        gpio_led_register_device(0, &visstrim_m10_led_data);
 
        /* Use mother board version to decide what video devices we shall use */
@@ -591,6 +599,7 @@ static void __init visstrim_m10_board_init(void)
                visstrim_deinterlace_init();
                visstrim_analog_camera_init();
        }
+
        visstrim_coda_init();
 }
 
@@ -607,5 +616,6 @@ MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10")
        .init_irq = mx27_init_irq,
        .init_time      = visstrim_m10_timer_init,
        .init_machine = visstrim_m10_board_init,
+       .init_late      = visstrim_m10_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index 31df4361996fb7167b3b18dd79fd6f91037e1e26..8288acfe7221f5fe3a258c99de712e2d44c24d10 100644 (file)
@@ -245,13 +245,17 @@ static void __init kzm_board_init(void)
 
        mxc_iomux_setup_multiple_pins(kzm_pins,
                                      ARRAY_SIZE(kzm_pins), "kzm");
-       kzm_init_ext_uart();
-       kzm_init_smsc9118();
        kzm_init_imx_uart();
 
        pr_info("Clock input source is 26MHz\n");
 }
 
+static void __init kzm_late_init(void)
+{
+       kzm_init_ext_uart();
+       kzm_init_smsc9118();
+}
+
 /*
  * This structure defines static mappings for the kzm-arm11-01 board.
  */
@@ -291,5 +295,6 @@ MACHINE_START(KZM_ARM11_01, "Kyoto Microcomputer Co., Ltd. KZM-ARM11-01")
        .init_irq = mx31_init_irq,
        .init_time      = kzm_timer_init,
        .init_machine = kzm_board_init,
+       .init_late      = kzm_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index 9986f9a697c84a20cfe9a3fe60e01e1b4b1f6121..5e366824814fece335f41ffab2bc096642d41ab0 100644 (file)
@@ -302,12 +302,16 @@ static void __init mx21ads_board_init(void)
        imx21_add_imx_uart0(&uart_pdata_rts);
        imx21_add_imx_uart2(&uart_pdata_norts);
        imx21_add_imx_uart3(&uart_pdata_rts);
-       imx21_add_mxc_mmc(0, &mx21ads_sdhc_pdata);
        imx21_add_mxc_nand(&mx21ads_nand_board_info);
 
-       platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
-
        imx21_add_imx_fb(&mx21ads_fb_data);
+}
+
+static void __init mx21ads_late_init(void)
+{
+       imx21_add_mxc_mmc(0, &mx21ads_sdhc_pdata);
+
+       platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
 
        mx21ads_cs8900_resources[1].start =
                        gpio_to_irq(MX21ADS_CS8900A_IRQ_GPIO);
@@ -328,6 +332,7 @@ MACHINE_START(MX21ADS, "Freescale i.MX21ADS")
        .init_early = imx21_init_early,
        .init_irq = mx21_init_irq,
        .init_time      = mx21ads_timer_init,
-       .init_machine = mx21ads_board_init,
+       .init_machine   = mx21ads_board_init,
+       .init_late      = mx21ads_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index 9ef4640f3660663dd5fb5eb0f61a38b02e715f8d..7ba651a9b5b84841f3b71e4014e4405f7e74f819 100644 (file)
@@ -485,17 +485,32 @@ static const struct imxi2c_platform_data mx27_3ds_i2c0_data __initconst = {
 
 static void __init mx27pdk_init(void)
 {
-       int ret;
        imx27_soc_init();
 
        mxc_gpio_setup_multiple_pins(mx27pdk_pins, ARRAY_SIZE(mx27pdk_pins),
                "mx27pdk");
-       mx27_3ds_sdhc1_enable_level_translator();
        imx27_add_imx_uart0(&uart_pdata);
        imx27_add_fec(NULL);
        imx27_add_imx_keypad(&mx27_3ds_keymap_data);
-       imx27_add_mxc_mmc(0, &sdhc1_pdata);
        imx27_add_imx2_wdt();
+
+       imx27_add_spi_imx1(&spi2_pdata);
+       imx27_add_spi_imx0(&spi1_pdata);
+
+       imx27_add_imx_i2c(0, &mx27_3ds_i2c0_data);
+       platform_add_devices(devices, ARRAY_SIZE(devices));
+       imx27_add_imx_fb(&mx27_3ds_fb_data);
+
+       imx27_add_imx_ssi(0, &mx27_3ds_ssi_pdata);
+}
+
+static void __init mx27pdk_late_init(void)
+{
+       int ret;
+
+       mx27_3ds_sdhc1_enable_level_translator();
+       imx27_add_mxc_mmc(0, &sdhc1_pdata);
+
        otg_phy_init();
 
        if (otg_mode_host) {
@@ -509,17 +524,12 @@ static void __init mx27pdk_init(void)
        if (!otg_mode_host)
                imx27_add_fsl_usb2_udc(&otg_device_pdata);
 
-       imx27_add_spi_imx1(&spi2_pdata);
-       imx27_add_spi_imx0(&spi1_pdata);
        mx27_3ds_spi_devs[0].irq = gpio_to_irq(PMIC_INT);
        spi_register_board_info(mx27_3ds_spi_devs,
-                                               ARRAY_SIZE(mx27_3ds_spi_devs));
+                               ARRAY_SIZE(mx27_3ds_spi_devs));
 
        if (mxc_expio_init(MX27_CS5_BASE_ADDR, IMX_GPIO_NR(3, 28)))
                pr_warn("Init of the debugboard failed, all devices on the debugboard are unusable.\n");
-       imx27_add_imx_i2c(0, &mx27_3ds_i2c0_data);
-       platform_add_devices(devices, ARRAY_SIZE(devices));
-       imx27_add_imx_fb(&mx27_3ds_fb_data);
 
        ret = gpio_request_array(mx27_3ds_camera_gpios,
                                 ARRAY_SIZE(mx27_3ds_camera_gpios));
@@ -529,7 +539,6 @@ static void __init mx27pdk_init(void)
        }
 
        imx27_add_mx2_camera(&mx27_3ds_cam_pdata);
-       imx27_add_imx_ssi(0, &mx27_3ds_ssi_pdata);
 
        imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
 }
@@ -547,5 +556,6 @@ MACHINE_START(MX27_3DS, "Freescale MX27PDK")
        .init_irq = mx27_init_irq,
        .init_time      = mx27pdk_timer_init,
        .init_machine = mx27pdk_init,
+       .init_late      = mx27pdk_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index a4c389eae31a2384134a5b4b31b111651ec007a6..a04bb094ded1851d24537d19a7dd37494eb4464c 100644 (file)
@@ -352,14 +352,20 @@ static void __init mx27ads_board_init(void)
        i2c_register_board_info(1, mx27ads_i2c_devices,
                                ARRAY_SIZE(mx27ads_i2c_devices));
        imx27_add_imx_i2c(1, &mx27ads_i2c1_data);
-       mx27ads_regulator_init();
        imx27_add_imx_fb(&mx27ads_fb_data);
+
+       imx27_add_fec(NULL);
+       imx27_add_mxc_w1();
+}
+
+static void __init mx27ads_late_init(void)
+{
+       mx27ads_regulator_init();
+
        imx27_add_mxc_mmc(0, &sdhc1_pdata);
        imx27_add_mxc_mmc(1, &sdhc2_pdata);
 
-       imx27_add_fec(NULL);
        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
-       imx27_add_mxc_w1();
 }
 
 static void __init mx27ads_timer_init(void)
@@ -395,5 +401,6 @@ MACHINE_START(MX27ADS, "Freescale i.MX27ADS")
        .init_irq = mx27_init_irq,
        .init_time      = mx27ads_timer_init,
        .init_machine = mx27ads_board_init,
+       .init_late      = mx27ads_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index 65a0dc06a97ccc3a7b613d85fdd738616ea4b97f..12b8a52c9cb443fe9bab33f573c0c00ff382cff2 100644 (file)
@@ -694,8 +694,6 @@ static struct platform_device *devices[] __initdata = {
 
 static void __init mx31_3ds_init(void)
 {
-       int ret;
-
        imx31_soc_init();
 
        /* Configure SPI1 IOMUX */
@@ -708,14 +706,31 @@ static void __init mx31_3ds_init(void)
        imx31_add_mxc_nand(&mx31_3ds_nand_board_info);
 
        imx31_add_spi_imx1(&spi1_pdata);
+
+       imx31_add_imx_keypad(&mx31_3ds_keymap_data);
+
+       imx31_add_imx2_wdt();
+       imx31_add_imx_i2c0(&mx31_3ds_i2c0_data);
+
+       imx31_add_spi_imx0(&spi0_pdata);
+       imx31_add_ipu_core();
+       imx31_add_mx3_sdc_fb(&mx3fb_pdata);
+
+       imx31_add_imx_ssi(0, &mx31_3ds_ssi_pdata);
+
+       imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
+}
+
+static void __init mx31_3ds_late(void)
+{
+       int ret;
+
        mx31_3ds_spi_devs[0].irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
        spi_register_board_info(mx31_3ds_spi_devs,
-                                               ARRAY_SIZE(mx31_3ds_spi_devs));
+                               ARRAY_SIZE(mx31_3ds_spi_devs));
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 
-       imx31_add_imx_keypad(&mx31_3ds_keymap_data);
-
        mx31_3ds_usbotg_init();
        if (otg_mode_host) {
                otg_pdata.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS |
@@ -733,14 +748,9 @@ static void __init mx31_3ds_init(void)
 
        if (mxc_expio_init(MX31_CS5_BASE_ADDR, IOMUX_TO_GPIO(MX31_PIN_GPIO1_1)))
                printk(KERN_WARNING "Init of the debug board failed, all "
-                                   "devices on the debug board are unusable.\n");
-       imx31_add_imx2_wdt();
-       imx31_add_imx_i2c0(&mx31_3ds_i2c0_data);
-       imx31_add_mxc_mmc(0, &sdhc1_pdata);
+                      "devices on the debug board are unusable.\n");
 
-       imx31_add_spi_imx0(&spi0_pdata);
-       imx31_add_ipu_core();
-       imx31_add_mx3_sdc_fb(&mx3fb_pdata);
+       imx31_add_mxc_mmc(0, &sdhc1_pdata);
 
        /* CSI */
        /* Camera power: default - off */
@@ -752,10 +762,6 @@ static void __init mx31_3ds_init(void)
        }
 
        mx31_3ds_init_camera();
-
-       imx31_add_imx_ssi(0, &mx31_3ds_ssi_pdata);
-
-       imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
 }
 
 static void __init mx31_3ds_timer_init(void)
@@ -778,6 +784,7 @@ MACHINE_START(MX31_3DS, "Freescale MX31PDK (3DS)")
        .init_irq = mx31_init_irq,
        .init_time      = mx31_3ds_timer_init,
        .init_machine = mx31_3ds_init,
+       .init_late      = mx31_3ds_late,
        .reserve = mx31_3ds_reserve,
        .restart        = mxc_restart,
 MACHINE_END
index 4f2c56d44ba14de19f10ccc2dc16927a4b03a545..766b8b93fb97e27d59eaa3aa50d479c2f21b30e1 100644 (file)
@@ -554,20 +554,19 @@ static void __init mx31ads_map_io(void)
        iotable_init(mx31ads_io_desc, ARRAY_SIZE(mx31ads_io_desc));
 }
 
-static void __init mx31ads_init_irq(void)
-{
-       mx31_init_irq();
-       mx31ads_init_expio();
-}
-
 static void __init mx31ads_init(void)
 {
        imx31_soc_init();
 
-       mxc_init_extuart();
        mxc_init_imx_uart();
-       mxc_init_i2c();
        mxc_init_audio();
+}
+
+static void __init mx31ads_late(void)
+{
+       mx31ads_init_expio();
+       mxc_init_extuart();
+       mxc_init_i2c();
        mxc_init_ext_ethernet();
 }
 
@@ -581,8 +580,9 @@ MACHINE_START(MX31ADS, "Freescale MX31ADS")
        .atag_offset = 0x100,
        .map_io = mx31ads_map_io,
        .init_early = imx31_init_early,
-       .init_irq = mx31ads_init_irq,
+       .init_irq       = mx31_init_irq,
        .init_time      = mx31ads_timer_init,
        .init_machine = mx31ads_init,
+       .init_late      = mx31ads_late,
        .restart        = mxc_restart,
 MACHINE_END
index e9549a3c0223e849b9bbe6f2009d42405b72d1dc..6fd463642954a404e60cfb9526e2041360008260 100644 (file)
  * appropriate baseboard support code.
  */
 
+static unsigned int mx31lilly_pins[] __initdata = {
+       MX31_PIN_CTS1__CTS1,
+       MX31_PIN_RTS1__RTS1,
+       MX31_PIN_TXD1__TXD1,
+       MX31_PIN_RXD1__RXD1,
+       MX31_PIN_CTS2__CTS2,
+       MX31_PIN_RTS2__RTS2,
+       MX31_PIN_TXD2__TXD2,
+       MX31_PIN_RXD2__RXD2,
+       MX31_PIN_CSPI3_MOSI__RXD3,
+       MX31_PIN_CSPI3_MISO__TXD3,
+       MX31_PIN_CSPI3_SCLK__RTS3,
+       MX31_PIN_CSPI3_SPI_RDY__CTS3,
+};
+
+/* UART */
+static const struct imxuart_platform_data uart_pdata __initconst = {
+       .flags = IMXUART_HAVE_RTSCTS,
+};
+
 /* SMSC ethernet support */
 
 static struct resource smsc91x_resources[] = {
@@ -252,16 +272,12 @@ static void __init mx31lilly_board_init(void)
 {
        imx31_soc_init();
 
-       switch (mx31lilly_baseboard) {
-       case MX31LILLY_NOBOARD:
-               break;
-       case MX31LILLY_DB:
-               mx31lilly_db_init();
-               break;
-       default:
-               printk(KERN_ERR "Illegal mx31lilly_baseboard type %d\n",
-                       mx31lilly_baseboard);
-       }
+       mxc_iomux_setup_multiple_pins(mx31lilly_pins,
+                                     ARRAY_SIZE(mx31lilly_pins), "mx31lily");
+
+       imx31_add_imx_uart0(&uart_pdata);
+       imx31_add_imx_uart1(&uart_pdata);
+       imx31_add_imx_uart2(&uart_pdata);
 
        mxc_iomux_alloc_pin(MX31_PIN_CS4__CS4, "Ethernet CS");
 
@@ -284,10 +300,17 @@ static void __init mx31lilly_board_init(void)
 
        imx31_add_spi_imx0(&spi0_pdata);
        imx31_add_spi_imx1(&spi1_pdata);
-       mc13783_dev.irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
-       spi_register_board_info(&mc13783_dev, 1);
 
        regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
+}
+
+static void __init mx31lilly_late_init(void)
+{
+       if (mx31lilly_baseboard == MX31LILLY_DB)
+               mx31lilly_db_init();
+
+       mc13783_dev.irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
+       spi_register_board_info(&mc13783_dev, 1);
 
        smsc91x_resources[1].start =
                        gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0));
@@ -310,6 +333,7 @@ MACHINE_START(LILLY1131, "INCO startec LILLY-1131")
        .init_early = imx31_init_early,
        .init_irq = mx31_init_irq,
        .init_time      = mx31lilly_timer_init,
-       .init_machine = mx31lilly_board_init,
+       .init_machine   = mx31lilly_board_init,
+       .init_late      = mx31lilly_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index 4822a1738de491e420b1150c6683e7673200610f..f033a57d56942442f1b7041be14887a9189fe688 100644 (file)
  */
 
 static unsigned int mx31lite_pins[] = {
+       /* UART1 */
+       MX31_PIN_CTS1__CTS1,
+       MX31_PIN_RTS1__RTS1,
+       MX31_PIN_TXD1__TXD1,
+       MX31_PIN_RXD1__RXD1,
+       /* SPI 0 */
+       MX31_PIN_CSPI1_SCLK__SCLK,
+       MX31_PIN_CSPI1_MOSI__MOSI,
+       MX31_PIN_CSPI1_MISO__MISO,
+       MX31_PIN_CSPI1_SPI_RDY__SPI_RDY,
+       MX31_PIN_CSPI1_SS0__SS0,
+       MX31_PIN_CSPI1_SS1__SS1,
+       MX31_PIN_CSPI1_SS2__SS2,
        /* LAN9117 IRQ pin */
        IOMUX_MODE(MX31_PIN_SFS6, IOMUX_CONFIG_GPIO),
        /* SPI 1 */
@@ -64,6 +77,23 @@ static unsigned int mx31lite_pins[] = {
        MX31_PIN_CSPI2_SS2__SS2,
 };
 
+/* UART */
+static const struct imxuart_platform_data uart_pdata __initconst = {
+       .flags = IMXUART_HAVE_RTSCTS,
+};
+
+/* SPI */
+static int spi0_internal_chipselect[] = {
+       MXC_SPI_CS(0),
+       MXC_SPI_CS(1),
+       MXC_SPI_CS(2),
+};
+
+static const struct spi_imx_master spi0_pdata __initconst = {
+       .chipselect     = spi0_internal_chipselect,
+       .num_chipselect = ARRAY_SIZE(spi0_internal_chipselect),
+};
+
 static const struct mxc_nand_platform_data
 mx31lite_nand_board_info __initconst  = {
        .width = 1,
@@ -103,13 +133,13 @@ static struct platform_device smsc911x_device = {
  * The MC13783 is the only hard-wired SPI device on the module.
  */
 
-static int spi_internal_chipselect[] = {
+static int spi1_internal_chipselect[] = {
        MXC_SPI_CS(0),
 };
 
 static const struct spi_imx_master spi1_pdata __initconst = {
-       .chipselect     = spi_internal_chipselect,
-       .num_chipselect = ARRAY_SIZE(spi_internal_chipselect),
+       .chipselect     = spi1_internal_chipselect,
+       .num_chipselect = ARRAY_SIZE(spi1_internal_chipselect),
 };
 
 static struct mc13xxx_platform_data mc13783_pdata __initdata = {
@@ -200,8 +230,6 @@ static struct platform_device physmap_flash_device = {
        .num_resources = 1,
 };
 
-
-
 /*
  * This structure defines the MX31 memory map.
  */
@@ -233,29 +261,30 @@ static struct regulator_consumer_supply dummy_supplies[] = {
 
 static void __init mx31lite_init(void)
 {
-       int ret;
-
        imx31_soc_init();
 
-       switch (mx31lite_baseboard) {
-       case MX31LITE_NOBOARD:
-               break;
-       case MX31LITE_DB:
-               mx31lite_db_init();
-               break;
-       default:
-               printk(KERN_ERR "Illegal mx31lite_baseboard type %d\n",
-                               mx31lite_baseboard);
-       }
-
        mxc_iomux_setup_multiple_pins(mx31lite_pins, ARRAY_SIZE(mx31lite_pins),
                                      "mx31lite");
 
+       imx31_add_imx_uart0(&uart_pdata);
+       imx31_add_spi_imx0(&spi0_pdata);
+
        /* NOR and NAND flash */
        platform_device_register(&physmap_flash_device);
        imx31_add_mxc_nand(&mx31lite_nand_board_info);
 
        imx31_add_spi_imx1(&spi1_pdata);
+
+       regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
+}
+
+static void __init mx31lite_late(void)
+{
+       int ret;
+
+       if (mx31lite_baseboard == MX31LITE_DB)
+               mx31lite_db_init();
+
        mc13783_spi_dev.irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
        spi_register_board_info(&mc13783_spi_dev, 1);
 
@@ -265,8 +294,6 @@ static void __init mx31lite_init(void)
        if (usbh2_pdata.otg)
                imx31_add_mxc_ehci_hs(2, &usbh2_pdata);
 
-       regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
-
        /* SMSC9117 IRQ pin */
        ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq");
        if (ret)
@@ -294,5 +321,6 @@ MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM")
        .init_irq = mx31_init_irq,
        .init_time      = mx31lite_timer_init,
        .init_machine = mx31lite_init,
+       .init_late      = mx31lite_late,
        .restart        = mxc_restart,
 MACHINE_END
index 4f2d99888afd28833044022396a6ea9582a2c994..cc867682520ef144cc6d54ced7e3285c2044b55d 100644 (file)
@@ -526,11 +526,9 @@ static void __init mx31moboard_init(void)
                "moboard");
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
-       gpio_led_register_device(-1, &mx31moboard_led_pdata);
 
        imx31_add_imx2_wdt();
 
-       moboard_uart0_init();
        imx31_add_imx_uart0(&uart0_pdata);
        imx31_add_imx_uart4(&uart4_pdata);
 
@@ -540,6 +538,19 @@ static void __init mx31moboard_init(void)
        imx31_add_spi_imx1(&moboard_spi1_pdata);
        imx31_add_spi_imx2(&moboard_spi2_pdata);
 
+       mx31moboard_init_cam();
+
+       imx31_add_imx_ssi(0, &moboard_ssi_pdata);
+
+       pm_power_off = mx31moboard_poweroff;
+}
+
+static void __init mx31moboard_late(void)
+{
+       gpio_led_register_device(-1, &mx31moboard_led_pdata);
+
+       moboard_uart0_init();
+
        gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3), "pmic-irq");
        gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
        moboard_spi_board_info[0].irq =
@@ -549,18 +560,11 @@ static void __init mx31moboard_init(void)
 
        imx31_add_mxc_mmc(0, &sdhc1_pdata);
 
-       mx31moboard_init_cam();
-
        usb_xcvr_reset();
-
        moboard_usbh2_init();
 
-       imx31_add_imx_ssi(0, &moboard_ssi_pdata);
-
        imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
 
-       pm_power_off = mx31moboard_poweroff;
-
        switch (mx31moboard_baseboard) {
        case MX31NOBOARD:
                break;
@@ -601,5 +605,6 @@ MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard")
        .init_irq = mx31_init_irq,
        .init_time      = mx31moboard_timer_init,
        .init_machine = mx31moboard_init,
+       .init_late      = mx31moboard_late,
        .restart        = mxc_restart,
 MACHINE_END
index 7e315f00648d64122cee910af0466fad66c1550c..c8c2e095604870d015d4b335323785f59a34cec2 100644 (file)
@@ -555,8 +555,6 @@ static const struct imxi2c_platform_data mx35_3ds_i2c0_data __initconst = {
  */
 static void __init mx35_3ds_init(void)
 {
-       struct platform_device *imx35_fb_pdev;
-
        imx35_soc_init();
 
        mxc_iomux_v3_setup_multiple_pads(mx35pdk_pads, ARRAY_SIZE(mx35pdk_pads));
@@ -579,9 +577,6 @@ static void __init mx35_3ds_init(void)
        imx35_add_mxc_nand(&mx35pdk_nand_board_info);
        imx35_add_sdhci_esdhc_imx(0, NULL);
 
-       if (mxc_expio_init(MX35_CS5_BASE_ADDR, IMX_GPIO_NR(1, 1)))
-               pr_warn("Init of the debugboard failed, all "
-                               "devices on the debugboard are unusable.\n");
        imx35_add_imx_i2c0(&mx35_3ds_i2c0_data);
 
        i2c_register_board_info(
@@ -590,6 +585,15 @@ static void __init mx35_3ds_init(void)
        imx35_add_ipu_core();
        platform_device_register(&mx35_3ds_ov2640);
        imx35_3ds_init_camera();
+}
+
+static void __init mx35_3ds_late_init(void)
+{
+       struct platform_device *imx35_fb_pdev;
+
+       if (mxc_expio_init(MX35_CS5_BASE_ADDR, IMX_GPIO_NR(1, 1)))
+               pr_warn("Init of the debugboard failed, all "
+                       "devices on the debugboard are unusable.\n");
 
        imx35_fb_pdev = imx35_add_mx3_sdc_fb(&mx3fb_pdata);
        mx35_3ds_lcd.dev.parent = &imx35_fb_pdev->dev;
@@ -618,6 +622,7 @@ MACHINE_START(MX35_3DS, "Freescale MX35PDK")
        .init_irq = mx35_init_irq,
        .init_time      = mx35pdk_timer_init,
        .init_machine = mx35_3ds_init,
+       .init_late      = mx35_3ds_late_init,
        .reserve = mx35_3ds_reserve,
        .restart        = mxc_restart,
 MACHINE_END
index 2d1c50bd8bdfbd68f4594f20723fb7da2dc1eeda..ed675863655b7115df6ce911d40f6c7022918c37 100644 (file)
@@ -362,12 +362,8 @@ static void __init pca100_init(void)
        if (ret)
                printk(KERN_ERR "pca100: Failed to setup pins (%d)\n", ret);
 
-       imx27_add_imx_ssi(0, &pca100_ssi_pdata);
-
        imx27_add_imx_uart0(&uart_pdata);
 
-       imx27_add_mxc_mmc(1, &sdhc_pdata);
-
        imx27_add_mxc_nand(&pca100_nand_board_info);
 
        /* only the i2c master 1 is used on this CPU card */
@@ -382,6 +378,19 @@ static void __init pca100_init(void)
                                ARRAY_SIZE(pca100_spi_board_info));
        imx27_add_spi_imx0(&pca100_spi0_data);
 
+       imx27_add_imx_fb(&pca100_fb_data);
+
+       imx27_add_fec(NULL);
+       imx27_add_imx2_wdt();
+       imx27_add_mxc_w1();
+}
+
+static void __init pca100_late_init(void)
+{
+       imx27_add_imx_ssi(0, &pca100_ssi_pdata);
+
+       imx27_add_mxc_mmc(1, &sdhc_pdata);
+
        gpio_request(OTG_PHY_CS_GPIO, "usb-otg-cs");
        gpio_direction_output(OTG_PHY_CS_GPIO, 1);
        gpio_request(USBH2_PHY_CS_GPIO, "usb-host2-cs");
@@ -403,12 +412,6 @@ static void __init pca100_init(void)
 
        if (usbh2_pdata.otg)
                imx27_add_mxc_ehci_hs(2, &usbh2_pdata);
-
-       imx27_add_imx_fb(&pca100_fb_data);
-
-       imx27_add_fec(NULL);
-       imx27_add_imx2_wdt();
-       imx27_add_mxc_w1();
 }
 
 static void __init pca100_timer_init(void)
@@ -421,7 +424,8 @@ MACHINE_START(PCA100, "phyCARD-i.MX27")
        .map_io = mx27_map_io,
        .init_early = imx27_init_early,
        .init_irq = mx27_init_irq,
-       .init_machine = pca100_init,
+       .init_machine   = pca100_init,
+       .init_late      = pca100_late_init,
        .init_time      = pca100_timer_init,
        .restart        = mxc_restart,
 MACHINE_END
index 6d879417db4947daa1a77713b4e7c283cf6c6a5f..d071ced7425df27f53a554b8f2fc9409cc8bef3a 100644 (file)
@@ -576,8 +576,6 @@ static struct regulator_consumer_supply dummy_supplies[] = {
  */
 static void __init pcm037_init(void)
 {
-       int ret;
-
        imx31_soc_init();
 
        regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
@@ -621,20 +619,6 @@ static void __init pcm037_init(void)
 
        imx31_add_mxc_w1();
 
-       /* LAN9217 IRQ pin */
-       ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1), "lan9217-irq");
-       if (ret)
-               pr_warn("could not get LAN irq gpio\n");
-       else {
-               gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1));
-               smsc911x_resources[1].start =
-                       gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1));
-               smsc911x_resources[1].end =
-                       gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1));
-               platform_device_register(&pcm037_eth);
-       }
-
-
        /* I2C adapters and devices */
        i2c_register_board_info(1, pcm037_i2c_devices,
                        ARRAY_SIZE(pcm037_i2c_devices));
@@ -643,26 +627,9 @@ static void __init pcm037_init(void)
        imx31_add_imx_i2c2(&pcm037_i2c2_data);
 
        imx31_add_mxc_nand(&pcm037_nand_board_info);
-       imx31_add_mxc_mmc(0, &sdhc_pdata);
        imx31_add_ipu_core();
        imx31_add_mx3_sdc_fb(&mx3fb_pdata);
 
-       /* CSI */
-       /* Camera power: default - off */
-       ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), "mt9t031-power");
-       if (!ret)
-               gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1);
-       else
-               iclink_mt9t031.power = NULL;
-
-       pcm037_init_camera();
-
-       pcm970_sja1000_resources[1].start =
-                       gpio_to_irq(IOMUX_TO_GPIO(IOMUX_PIN(48, 105)));
-       pcm970_sja1000_resources[1].end =
-                       gpio_to_irq(IOMUX_TO_GPIO(IOMUX_PIN(48, 105)));
-       platform_device_register(&pcm970_sja1000);
-
        if (otg_mode_host) {
                otg_pdata.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS |
                                ULPI_OTG_DRVVBUS_EXT);
@@ -677,7 +644,6 @@ static void __init pcm037_init(void)
 
        if (!otg_mode_host)
                imx31_add_fsl_usb2_udc(&otg_device_pdata);
-
 }
 
 static void __init pcm037_timer_init(void)
@@ -694,6 +660,39 @@ static void __init pcm037_reserve(void)
 
 static void __init pcm037_init_late(void)
 {
+       int ret;
+
+       /* LAN9217 IRQ pin */
+       ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1), "lan9217-irq");
+       if (!ret) {
+               gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1));
+               smsc911x_resources[1].start =
+                       gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1));
+               smsc911x_resources[1].end =
+                       gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1));
+               platform_device_register(&pcm037_eth);
+       } else {
+               pr_warn("could not get LAN irq gpio\n");
+       }
+
+       imx31_add_mxc_mmc(0, &sdhc_pdata);
+
+       /* CSI */
+       /* Camera power: default - off */
+       ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), "mt9t031-power");
+       if (!ret)
+               gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1);
+       else
+               iclink_mt9t031.power = NULL;
+
+       pcm037_init_camera();
+
+       pcm970_sja1000_resources[1].start =
+                       gpio_to_irq(IOMUX_TO_GPIO(IOMUX_PIN(48, 105)));
+       pcm970_sja1000_resources[1].end =
+                       gpio_to_irq(IOMUX_TO_GPIO(IOMUX_PIN(48, 105)));
+       platform_device_register(&pcm970_sja1000);
+
        pcm037_eet_init_devices();
 }
 
index e447e59c0604072ab02d5dd6c1834c8bb699b87d..78e2bf8dcd965a236c3f82b7a53b738c13ad92a1 100644 (file)
@@ -363,7 +363,6 @@ static void __init pcm043_init(void)
 
        imx35_add_imx_uart0(&uart_pdata);
        imx35_add_mxc_nand(&pcm037_nand_board_info);
-       imx35_add_imx_ssi(0, &pcm043_ssi_pdata);
 
        imx35_add_imx_uart1(&uart_pdata);
 
@@ -387,6 +386,12 @@ static void __init pcm043_init(void)
                imx35_add_fsl_usb2_udc(&otg_device_pdata);
 
        imx35_add_flexcan1();
+}
+
+static void __init pcm043_late_init(void)
+{
+       imx35_add_imx_ssi(0, &pcm043_ssi_pdata);
+
        imx35_add_sdhci_esdhc_imx(0, &sd1_pdata);
 }
 
@@ -402,6 +407,7 @@ MACHINE_START(PCM043, "Phytec Phycore pcm043")
        .init_early = imx35_init_early,
        .init_irq = mx35_init_irq,
        .init_time = pcm043_timer_init,
-       .init_machine = pcm043_init,
+       .init_machine   = pcm043_init,
+       .init_late      = pcm043_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index 34df64f133ed2f360ee57354c75a10649815bf90..8c2cbd693d21642be33ae430b2a285ad2a2c694c 100644 (file)
@@ -251,7 +251,6 @@ static void __init qong_init(void)
 
        mxc_init_imx_uart();
        qong_init_nor_mtd();
-       qong_init_fpga();
        imx31_add_imx2_wdt();
 }
 
@@ -268,5 +267,6 @@ MACHINE_START(QONG, "Dave/DENX QongEVB-LITE")
        .init_irq = mx31_init_irq,
        .init_time      = qong_timer_init,
        .init_machine = qong_init,
+       .init_late      = qong_init_fpga,
        .restart        = mxc_restart,
 MACHINE_END
index 27a8f7e3ec08016e16998e8472ba7aa1d1a9a457..5ff154c9a08626fa179983d0361a2ec22a7aa6c7 100644 (file)
@@ -268,6 +268,22 @@ static void __init vpr200_board_init(void)
 
        imx35_add_fec(NULL);
        imx35_add_imx2_wdt();
+
+       imx35_add_imx_uart0(NULL);
+       imx35_add_imx_uart2(NULL);
+
+       imx35_add_ipu_core();
+       imx35_add_mx3_sdc_fb(&mx3fb_pdata);
+
+       imx35_add_fsl_usb2_udc(&otg_device_pdata);
+       imx35_add_mxc_ehci_hs(&usb_host_pdata);
+
+       imx35_add_mxc_nand(&vpr200_nand_board_info);
+       imx35_add_sdhci_esdhc_imx(0, NULL);
+}
+
+static void __init vpr200_late_init(void)
+{
        imx_add_gpio_keys(&vpr200_gpio_keys_data);
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
@@ -282,18 +298,6 @@ static void __init vpr200_board_init(void)
        else
                gpio_direction_input(GPIO_PMIC_INT);
 
-       imx35_add_imx_uart0(NULL);
-       imx35_add_imx_uart2(NULL);
-
-       imx35_add_ipu_core();
-       imx35_add_mx3_sdc_fb(&mx3fb_pdata);
-
-       imx35_add_fsl_usb2_udc(&otg_device_pdata);
-       imx35_add_mxc_ehci_hs(&usb_host_pdata);
-
-       imx35_add_mxc_nand(&vpr200_nand_board_info);
-       imx35_add_sdhci_esdhc_imx(0, NULL);
-
        vpr200_i2c_devices[1].irq = gpio_to_irq(GPIO_PMIC_INT);
        i2c_register_board_info(0, vpr200_i2c_devices,
                        ARRAY_SIZE(vpr200_i2c_devices));
@@ -313,5 +317,6 @@ MACHINE_START(VPR200, "VPR200")
        .init_irq = mx35_init_irq,
        .init_time = vpr200_timer_init,
        .init_machine = vpr200_board_init,
+       .init_late      = vpr200_late_init,
        .restart        = mxc_restart,
 MACHINE_END
index 649fe49ce85eed34765474badbc1be36a9627b4b..231f900a1de734149c021569c2018bab5cb5031b 100644 (file)
  */
 
 static unsigned int lilly_db_board_pins[] __initdata = {
-       MX31_PIN_CTS1__CTS1,
-       MX31_PIN_RTS1__RTS1,
-       MX31_PIN_TXD1__TXD1,
-       MX31_PIN_RXD1__RXD1,
-       MX31_PIN_CTS2__CTS2,
-       MX31_PIN_RTS2__RTS2,
-       MX31_PIN_TXD2__TXD2,
-       MX31_PIN_RXD2__RXD2,
-       MX31_PIN_CSPI3_MOSI__RXD3,
-       MX31_PIN_CSPI3_MISO__TXD3,
-       MX31_PIN_CSPI3_SCLK__RTS3,
-       MX31_PIN_CSPI3_SPI_RDY__CTS3,
        MX31_PIN_SD1_DATA3__SD1_DATA3,
        MX31_PIN_SD1_DATA2__SD1_DATA2,
        MX31_PIN_SD1_DATA1__SD1_DATA1,
@@ -86,11 +74,6 @@ static unsigned int lilly_db_board_pins[] __initdata = {
        MX31_PIN_CONTRAST__CONTRAST,
 };
 
-/* UART */
-static const struct imxuart_platform_data uart_pdata __initconst = {
-       .flags = IMXUART_HAVE_RTSCTS,
-};
-
 /* MMC support */
 
 static int mxc_mmc1_get_ro(struct device *dev)
@@ -203,9 +186,6 @@ void __init mx31lilly_db_init(void)
        mxc_iomux_setup_multiple_pins(lilly_db_board_pins,
                                        ARRAY_SIZE(lilly_db_board_pins),
                                        "development board pins");
-       imx31_add_imx_uart0(&uart_pdata);
-       imx31_add_imx_uart1(&uart_pdata);
-       imx31_add_imx_uart2(&uart_pdata);
        imx31_add_mxc_mmc(0, &mmc_pdata);
        mx31lilly_init_fb();
 }
index 5a160b7e4fceb9232c6b2c2db5b1138b3377a232..c66a006bf2fd0ad8cb44679911e784d5014eae45 100644 (file)
  */
 
 static unsigned int litekit_db_board_pins[] __initdata = {
-       /* UART1 */
-       MX31_PIN_CTS1__CTS1,
-       MX31_PIN_RTS1__RTS1,
-       MX31_PIN_TXD1__TXD1,
-       MX31_PIN_RXD1__RXD1,
-       /* SPI 0 */
-       MX31_PIN_CSPI1_SCLK__SCLK,
-       MX31_PIN_CSPI1_MOSI__MOSI,
-       MX31_PIN_CSPI1_MISO__MISO,
-       MX31_PIN_CSPI1_SPI_RDY__SPI_RDY,
-       MX31_PIN_CSPI1_SS0__SS0,
-       MX31_PIN_CSPI1_SS1__SS1,
-       MX31_PIN_CSPI1_SS2__SS2,
        /* SDHC1 */
        MX31_PIN_SD1_DATA0__SD1_DATA0,
        MX31_PIN_SD1_DATA1__SD1_DATA1,
@@ -67,11 +54,6 @@ static unsigned int litekit_db_board_pins[] __initdata = {
        MX31_PIN_SD1_CMD__SD1_CMD,
 };
 
-/* UART */
-static const struct imxuart_platform_data uart_pdata __initconst = {
-       .flags = IMXUART_HAVE_RTSCTS,
-};
-
 /* MMC */
 
 static int gpio_det, gpio_wp;
@@ -146,19 +128,6 @@ static const struct imxmmc_platform_data mmc_pdata __initconst = {
        .exit      = mxc_mmc1_exit,
 };
 
-/* SPI */
-
-static int spi_internal_chipselect[] = {
-       MXC_SPI_CS(0),
-       MXC_SPI_CS(1),
-       MXC_SPI_CS(2),
-};
-
-static const struct spi_imx_master spi0_pdata __initconst = {
-       .chipselect     = spi_internal_chipselect,
-       .num_chipselect = ARRAY_SIZE(spi_internal_chipselect),
-};
-
 /* GPIO LEDs */
 
 static const struct gpio_led litekit_leds[] __initconst = {
@@ -187,9 +156,7 @@ void __init mx31lite_db_init(void)
        mxc_iomux_setup_multiple_pins(litekit_db_board_pins,
                                        ARRAY_SIZE(litekit_db_board_pins),
                                        "development board pins");
-       imx31_add_imx_uart0(&uart_pdata);
        imx31_add_mxc_mmc(0, &mmc_pdata);
-       imx31_add_spi_imx0(&spi0_pdata);
        gpio_led_register_device(-1, &litekit_led_platform_data);
        imx31_add_imx2_wdt();
        imx31_add_mxc_rtc();