ARM: OMAP2+: Initialize SoC PM later
[sfrench/cifs-2.6.git] / arch / arm / mach-omap2 / io.c
index cf546dfe3b3288865ea4231237a939b41a24c2d9..bb8e0bb7ef5de71d713beeda76eff14d17981099 100644 (file)
@@ -37,7 +37,6 @@
 #include "clock.h"
 #include "clock2xxx.h"
 #include "clock3xxx.h"
-#include "omap-pm.h"
 #include "sdrc.h"
 #include "control.h"
 #include "serial.h"
@@ -421,13 +420,6 @@ static void __init __maybe_unused omap_hwmod_init_postsetup(void)
        postsetup_state = _HWMOD_STATE_ENABLED;
 #endif
        omap_hwmod_for_each(_set_hwmod_postsetup_state, &postsetup_state);
-
-       omap_pm_if_early_init();
-}
-
-static void __init __maybe_unused omap_common_late_init(void)
-{
-       omap2_common_pm_late_init();
 }
 
 #ifdef CONFIG_SOC_OMAP2420
@@ -450,9 +442,7 @@ void __init omap2420_init_early(void)
 
 void __init omap2420_init_late(void)
 {
-       omap_common_late_init();
-       omap2_pm_init();
-       omap2_clk_enable_autoidle_all();
+       omap_pm_soc_init = omap2_pm_init;
 }
 #endif
 
@@ -476,9 +466,7 @@ void __init omap2430_init_early(void)
 
 void __init omap2430_init_late(void)
 {
-       omap_common_late_init();
-       omap2_pm_init();
-       omap2_clk_enable_autoidle_all();
+       omap_pm_soc_init = omap2_pm_init;
 }
 #endif
 
@@ -529,43 +517,12 @@ void __init am35xx_init_early(void)
 
 void __init omap3_init_late(void)
 {
-       omap_common_late_init();
-       omap3_pm_init();
-       omap2_clk_enable_autoidle_all();
-}
-
-void __init omap3430_init_late(void)
-{
-       omap_common_late_init();
-       omap3_pm_init();
-       omap2_clk_enable_autoidle_all();
-}
-
-void __init omap35xx_init_late(void)
-{
-       omap_common_late_init();
-       omap3_pm_init();
-       omap2_clk_enable_autoidle_all();
-}
-
-void __init omap3630_init_late(void)
-{
-       omap_common_late_init();
-       omap3_pm_init();
-       omap2_clk_enable_autoidle_all();
-}
-
-void __init am35xx_init_late(void)
-{
-       omap_common_late_init();
-       omap3_pm_init();
-       omap2_clk_enable_autoidle_all();
+       omap_pm_soc_init = omap3_pm_init;
 }
 
 void __init ti81xx_init_late(void)
 {
-       omap_common_late_init();
-       omap2_clk_enable_autoidle_all();
+       omap_pm_soc_init = omap_pm_nop_init;
 }
 #endif
 
@@ -621,8 +578,7 @@ void __init am33xx_init_early(void)
 
 void __init am33xx_init_late(void)
 {
-       omap_common_late_init();
-       amx3_common_pm_init();
+       omap_pm_soc_init = amx3_common_pm_init;
 }
 #endif
 
@@ -645,9 +601,7 @@ void __init am43xx_init_early(void)
 
 void __init am43xx_init_late(void)
 {
-       omap_common_late_init();
-       omap2_clk_enable_autoidle_all();
-       amx3_common_pm_init();
+       omap_pm_soc_init = amx3_common_pm_init;
 }
 #endif
 
@@ -675,9 +629,7 @@ void __init omap4430_init_early(void)
 
 void __init omap4430_init_late(void)
 {
-       omap_common_late_init();
-       omap4_pm_init();
-       omap2_clk_enable_autoidle_all();
+       omap_pm_soc_init = omap4_pm_init;
 }
 #endif
 
@@ -703,9 +655,7 @@ void __init omap5_init_early(void)
 
 void __init omap5_init_late(void)
 {
-       omap_common_late_init();
-       omap4_pm_init();
-       omap2_clk_enable_autoidle_all();
+       omap_pm_soc_init = omap4_pm_init;
 }
 #endif
 
@@ -728,9 +678,7 @@ void __init dra7xx_init_early(void)
 
 void __init dra7xx_init_late(void)
 {
-       omap_common_late_init();
-       omap4_pm_init();
-       omap2_clk_enable_autoidle_all();
+       omap_pm_soc_init = omap4_pm_init;
 }
 #endif