diff options
author | Vladimir Zapolskiy <vz@mleia.com> | 2016-09-18 21:37:30 -0400 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2016-09-20 10:39:07 -0400 |
commit | f0ebbdc423296934ac284da6baf2267cabab0e43 (patch) | |
tree | 8bbc04396244cfd6955f972a8cc7085875fb8351 /arch/arm/mach-imx | |
parent | bfe16c894e9fd920cfca01375bd2e0d5184b4be1 (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.c | 13 |
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 | |||
361 | static 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 | ||
365 | static void __init mx27ads_timer_init(void) | 371 | static 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, |
399 | MACHINE_END | 406 | MACHINE_END |