aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pm.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/pm.c')
-rw-r--r--arch/arm/mach-omap2/pm.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index b98c46d7f112..ca03af8fe43f 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -230,8 +230,20 @@ static void __init omap4_init_voltages(void)
230 omap2_set_init_voltage("iva", "dpll_iva_m5x2_ck", "iva"); 230 omap2_set_init_voltage("iva", "dpll_iva_m5x2_ck", "iva");
231} 231}
232 232
233int __maybe_unused omap_pm_nop_init(void)
234{
235 return 0;
236}
237
238int (*omap_pm_soc_init)(void);
239
233int __init omap2_common_pm_late_init(void) 240int __init omap2_common_pm_late_init(void)
234{ 241{
242 int error;
243
244 if (!omap_pm_soc_init)
245 return 0;
246
235 /* Init the voltage layer */ 247 /* Init the voltage layer */
236 omap3_twl_init(); 248 omap3_twl_init();
237 omap4_twl_init(); 249 omap4_twl_init();
@@ -244,5 +256,12 @@ int __init omap2_common_pm_late_init(void)
244 /* Smartreflex device init */ 256 /* Smartreflex device init */
245 omap_devinit_smartreflex(); 257 omap_devinit_smartreflex();
246 258
259 error = omap_pm_soc_init();
260 if (error)
261 pr_warn("%s: pm soc init failed: %i\n", __func__, error);
262
263 omap2_clk_enable_autoidle_all();
264
247 return 0; 265 return 0;
248} 266}
267omap_late_initcall(omap2_common_pm_late_init);