ARM: imx legacy: mx31moboard: move peripheral initialization to .init_late
The change moves some of peripheral registrations and initializations (all peripherals dependent on GPIOs) from .init_machine to .init_late level, this allows to safely shift the shared GPIO controller driver initialization level after init level of i.MX IOMUXC driver. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
parent
a95a9322df
commit
1cecfa48d9
@ -526,11 +526,9 @@ static void __init mx31moboard_init(void)
|
|||||||
"moboard");
|
"moboard");
|
||||||
|
|
||||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||||
gpio_led_register_device(-1, &mx31moboard_led_pdata);
|
|
||||||
|
|
||||||
imx31_add_imx2_wdt();
|
imx31_add_imx2_wdt();
|
||||||
|
|
||||||
moboard_uart0_init();
|
|
||||||
imx31_add_imx_uart0(&uart0_pdata);
|
imx31_add_imx_uart0(&uart0_pdata);
|
||||||
imx31_add_imx_uart4(&uart4_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_imx1(&moboard_spi1_pdata);
|
||||||
imx31_add_spi_imx2(&moboard_spi2_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_request(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3), "pmic-irq");
|
||||||
gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
|
gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
|
||||||
moboard_spi_board_info[0].irq =
|
moboard_spi_board_info[0].irq =
|
||||||
@ -549,18 +560,11 @@ static void __init mx31moboard_init(void)
|
|||||||
|
|
||||||
imx31_add_mxc_mmc(0, &sdhc1_pdata);
|
imx31_add_mxc_mmc(0, &sdhc1_pdata);
|
||||||
|
|
||||||
mx31moboard_init_cam();
|
|
||||||
|
|
||||||
usb_xcvr_reset();
|
usb_xcvr_reset();
|
||||||
|
|
||||||
moboard_usbh2_init();
|
moboard_usbh2_init();
|
||||||
|
|
||||||
imx31_add_imx_ssi(0, &moboard_ssi_pdata);
|
|
||||||
|
|
||||||
imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
|
imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
|
||||||
|
|
||||||
pm_power_off = mx31moboard_poweroff;
|
|
||||||
|
|
||||||
switch (mx31moboard_baseboard) {
|
switch (mx31moboard_baseboard) {
|
||||||
case MX31NOBOARD:
|
case MX31NOBOARD:
|
||||||
break;
|
break;
|
||||||
@ -601,5 +605,6 @@ MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard")
|
|||||||
.init_irq = mx31_init_irq,
|
.init_irq = mx31_init_irq,
|
||||||
.init_time = mx31moboard_timer_init,
|
.init_time = mx31moboard_timer_init,
|
||||||
.init_machine = mx31moboard_init,
|
.init_machine = mx31moboard_init,
|
||||||
|
.init_late = mx31moboard_late,
|
||||||
.restart = mxc_restart,
|
.restart = mxc_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
Loading…
Reference in New Issue
Block a user