aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx
diff options
context:
space:
mode:
authorVladimir Zapolskiy <vz@mleia.com>2016-09-18 21:37:30 -0400
committerShawn Guo <shawnguo@kernel.org>2016-09-20 10:39:07 -0400
commitf0ebbdc423296934ac284da6baf2267cabab0e43 (patch)
tree8bbc04396244cfd6955f972a8cc7085875fb8351 /arch/arm/mach-imx
parentbfe16c894e9fd920cfca01375bd2e0d5184b4be1 (diff)
ARM: imx legacy: mx27ads: 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>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r--arch/arm/mach-imx/mach-mx27ads.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c
index a4c389eae31a..a04bb094ded1 100644
--- a/arch/arm/mach-imx/mach-mx27ads.c
+++ b/arch/arm/mach-imx/mach-mx27ads.c
@@ -352,14 +352,20 @@ static void __init mx27ads_board_init(void)
352 i2c_register_board_info(1, mx27ads_i2c_devices, 352 i2c_register_board_info(1, mx27ads_i2c_devices,
353 ARRAY_SIZE(mx27ads_i2c_devices)); 353 ARRAY_SIZE(mx27ads_i2c_devices));
354 imx27_add_imx_i2c(1, &mx27ads_i2c1_data); 354 imx27_add_imx_i2c(1, &mx27ads_i2c1_data);
355 mx27ads_regulator_init();
356 imx27_add_imx_fb(&mx27ads_fb_data); 355 imx27_add_imx_fb(&mx27ads_fb_data);
356
357 imx27_add_fec(NULL);
358 imx27_add_mxc_w1();
359}
360
361static void __init mx27ads_late_init(void)
362{
363 mx27ads_regulator_init();
364
357 imx27_add_mxc_mmc(0, &sdhc1_pdata); 365 imx27_add_mxc_mmc(0, &sdhc1_pdata);
358 imx27_add_mxc_mmc(1, &sdhc2_pdata); 366 imx27_add_mxc_mmc(1, &sdhc2_pdata);
359 367
360 imx27_add_fec(NULL);
361 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); 368 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
362 imx27_add_mxc_w1();
363} 369}
364 370
365static void __init mx27ads_timer_init(void) 371static void __init mx27ads_timer_init(void)
@@ -395,5 +401,6 @@ MACHINE_START(MX27ADS, "Freescale i.MX27ADS")
395 .init_irq = mx27_init_irq, 401 .init_irq = mx27_init_irq,
396 .init_time = mx27ads_timer_init, 402 .init_time = mx27ads_timer_init,
397 .init_machine = mx27ads_board_init, 403 .init_machine = mx27ads_board_init,
404 .init_late = mx27ads_late_init,
398 .restart = mxc_restart, 405 .restart = mxc_restart,
399MACHINE_END 406MACHINE_END