summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2/pm.c
diff options
context:
space:
mode:
authorThara Gopinath <thara@ti.com>2010-05-29 20:32:25 +0400
committerKevin Hilman <khilman@deeprootsystems.com>2010-12-23 01:31:48 +0300
commit1376ee1d191b32d0be6d2956f1a6f3dd63251e2e (patch)
tree1e7843507f3d4c5e241d75316e3a89da93728fc5 /arch/arm/mach-omap2/pm.c
parentbd38107b565a41d994aa22db0962ffcc34ebef02 (diff)
downloadlinux-1376ee1d191b32d0be6d2956f1a6f3dd63251e2e.tar.xz
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>
Diffstat (limited to 'arch/arm/mach-omap2/pm.c')
-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)
omap2_set_init_voltage("core", "l3_ick", l3_dev);
}
+static void __init omap4_init_voltages(void)
+{
+ if (!cpu_is_omap44xx())
+ return;
+
+ omap2_set_init_voltage("mpu", "dpll_mpu_ck", mpu_dev);
+ omap2_set_init_voltage("core", "l3_div_ck", l3_dev);
+ omap2_set_init_voltage("iva", "dpll_iva_m5x2_ck", iva_dev);
+}
+
static int __init omap2_common_pm_init(void)
{
omap2_init_processor_devices();
@@ -247,6 +257,7 @@ static int __init omap2_common_pm_late_init(void)
/* Initialize the voltages */
omap3_init_voltages();
+ omap4_init_voltages();
/* Smartreflex device init */
omap_devinit_smartreflex();