aboutsummaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap/dvfs/0001-OMAP3-PM-Adding-T2-enabling-of-smartreflex.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap/dvfs/0001-OMAP3-PM-Adding-T2-enabling-of-smartreflex.patch')
-rw-r--r--extras/recipes-kernel/linux/linux-omap/dvfs/0001-OMAP3-PM-Adding-T2-enabling-of-smartreflex.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap/dvfs/0001-OMAP3-PM-Adding-T2-enabling-of-smartreflex.patch b/extras/recipes-kernel/linux/linux-omap/dvfs/0001-OMAP3-PM-Adding-T2-enabling-of-smartreflex.patch
new file mode 100644
index 00000000..eafc4d30
--- /dev/null
+++ b/extras/recipes-kernel/linux/linux-omap/dvfs/0001-OMAP3-PM-Adding-T2-enabling-of-smartreflex.patch
@@ -0,0 +1,60 @@
+From 8548db6d3cf115b29142f803d701122dc4cbb775 Mon Sep 17 00:00:00 2001
+From: Thara Gopinath <thara@ti.com>
+Date: Fri, 31 Dec 2010 13:35:02 +0530
+Subject: [PATCH 01/20] OMAP3: PM: Adding T2 enabling of smartreflex
+
+The smartreflex bit on twl4030 needs to be enabled by default irrespective
+of whether smartreflex module is enabled on the OMAP side or not.
+This is because without this bit enabled the voltage scaling through
+vp forceupdate does not function properly on OMAP3.
+
+Signed-off-by: Thara Gopinath <thara@ti.com>
+---
+ arch/arm/mach-omap2/omap_twl.c | 16 ++++++++++++++++
+ 1 files changed, 16 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-omap2/omap_twl.c
+index 15f8c6c..a59f36b 100644
+--- a/arch/arm/mach-omap2/omap_twl.c
++++ b/arch/arm/mach-omap2/omap_twl.c
+@@ -58,7 +58,9 @@
+ static bool is_offset_valid;
+ static u8 smps_offset;
+
++#define TWL4030_DCDC_GLOBAL_CFG 0x06
+ #define REG_SMPS_OFFSET 0xE0
++#define SMARTREFLEX_ENABLE BIT(3)
+
+ unsigned long twl4030_vsel_to_uv(const u8 vsel)
+ {
+@@ -256,6 +258,7 @@ int __init omap4_twl_init(void)
+ int __init omap3_twl_init(void)
+ {
+ struct voltagedomain *voltdm;
++ u8 temp;
+
+ if (!cpu_is_omap34xx())
+ return -ENODEV;
+@@ -267,6 +270,19 @@ int __init omap3_twl_init(void)
+ omap3_core_volt_info.vp_vddmax = OMAP3630_VP2_VLIMITTO_VDDMAX;
+ }
+
++ /*
++ * The smartreflex bit on twl4030 needs to be enabled by
++ * default irrespective of whether smartreflex module is
++ * enabled on the OMAP side or not. This is because without
++ * this bit enabled the voltage scaling through
++ * vp forceupdate does not function properly on OMAP3.
++ */
++ twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &temp,
++ TWL4030_DCDC_GLOBAL_CFG);
++ temp |= SMARTREFLEX_ENABLE;
++ twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, temp,
++ TWL4030_DCDC_GLOBAL_CFG);
++
+ voltdm = omap_voltage_domain_lookup("mpu");
+ omap_voltage_register_pmic(voltdm, &omap3_mpu_volt_info);
+
+--
+1.6.6.1
+