diff options
Diffstat (limited to 'arch/arm/mach-omap2/pm.c')
-rw-r--r-- | arch/arm/mach-omap2/pm.c | 19 |
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 | ||
233 | int __maybe_unused omap_pm_nop_init(void) | ||
234 | { | ||
235 | return 0; | ||
236 | } | ||
237 | |||
238 | int (*omap_pm_soc_init)(void); | ||
239 | |||
233 | int __init omap2_common_pm_late_init(void) | 240 | int __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 | } |
267 | omap_late_initcall(omap2_common_pm_late_init); | ||