aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThara Gopinath <thara@ti.com>2010-05-29 12:32:25 -0400
committerKevin Hilman <khilman@deeprootsystems.com>2010-12-22 17:31:48 -0500
commit1376ee1d191b32d0be6d2956f1a6f3dd63251e2e (patch)
tree1e7843507f3d4c5e241d75316e3a89da93728fc5
parentbd38107b565a41d994aa22db0962ffcc34ebef02 (diff)
OMAP4: PM: Program correct init voltages for scalable VDDs
By default the system boots up at nominal voltage for every voltage domain in the system. This patch puts vdd_mpu, vdd_iva and vdd_core to the correct boot up voltage as per the opp tables specified. This patch implements this by matching the rate of the main clock of the voltage domain with the opp table and picking up the correct voltage. Signed-off-by: Thara Gopinath <thara@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
-rw-r--r--arch/arm/mach-omap2/pm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index aac9bacf1bd1..d5a102c71989 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -227,6 +227,16 @@ static void __init omap3_init_voltages(void)
227 omap2_set_init_voltage("core", "l3_ick", l3_dev); 227 omap2_set_init_voltage("core", "l3_ick", l3_dev);
228} 228}
229 229
230static void __init omap4_init_voltages(void)
231{
232 if (!cpu_is_omap44xx())
233 return;
234
235 omap2_set_init_voltage("mpu", "dpll_mpu_ck", mpu_dev);
236 omap2_set_init_voltage("core", "l3_div_ck", l3_dev);
237 omap2_set_init_voltage("iva", "dpll_iva_m5x2_ck", iva_dev);
238}
239
230static int __init omap2_common_pm_init(void) 240static int __init omap2_common_pm_init(void)
231{ 241{
232 omap2_init_processor_devices(); 242 omap2_init_processor_devices();
@@ -247,6 +257,7 @@ static int __init omap2_common_pm_late_init(void)
247 257
248 /* Initialize the voltages */ 258 /* Initialize the voltages */
249 omap3_init_voltages(); 259 omap3_init_voltages();
260 omap4_init_voltages();
250 261
251 /* Smartreflex device init */ 262 /* Smartreflex device init */
252 omap_devinit_smartreflex(); 263 omap_devinit_smartreflex();