summaryrefslogtreecommitdiffstats
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 @@
1From 8548db6d3cf115b29142f803d701122dc4cbb775 Mon Sep 17 00:00:00 2001
2From: Thara Gopinath <thara@ti.com>
3Date: Fri, 31 Dec 2010 13:35:02 +0530
4Subject: [PATCH 01/20] OMAP3: PM: Adding T2 enabling of smartreflex
5
6The smartreflex bit on twl4030 needs to be enabled by default irrespective
7of whether smartreflex module is enabled on the OMAP side or not.
8This is because without this bit enabled the voltage scaling through
9vp forceupdate does not function properly on OMAP3.
10
11Signed-off-by: Thara Gopinath <thara@ti.com>
12---
13 arch/arm/mach-omap2/omap_twl.c | 16 ++++++++++++++++
14 1 files changed, 16 insertions(+), 0 deletions(-)
15
16diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-omap2/omap_twl.c
17index 15f8c6c..a59f36b 100644
18--- a/arch/arm/mach-omap2/omap_twl.c
19+++ b/arch/arm/mach-omap2/omap_twl.c
20@@ -58,7 +58,9 @@
21 static bool is_offset_valid;
22 static u8 smps_offset;
23
24+#define TWL4030_DCDC_GLOBAL_CFG 0x06
25 #define REG_SMPS_OFFSET 0xE0
26+#define SMARTREFLEX_ENABLE BIT(3)
27
28 unsigned long twl4030_vsel_to_uv(const u8 vsel)
29 {
30@@ -256,6 +258,7 @@ int __init omap4_twl_init(void)
31 int __init omap3_twl_init(void)
32 {
33 struct voltagedomain *voltdm;
34+ u8 temp;
35
36 if (!cpu_is_omap34xx())
37 return -ENODEV;
38@@ -267,6 +270,19 @@ int __init omap3_twl_init(void)
39 omap3_core_volt_info.vp_vddmax = OMAP3630_VP2_VLIMITTO_VDDMAX;
40 }
41
42+ /*
43+ * The smartreflex bit on twl4030 needs to be enabled by
44+ * default irrespective of whether smartreflex module is
45+ * enabled on the OMAP side or not. This is because without
46+ * this bit enabled the voltage scaling through
47+ * vp forceupdate does not function properly on OMAP3.
48+ */
49+ twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &temp,
50+ TWL4030_DCDC_GLOBAL_CFG);
51+ temp |= SMARTREFLEX_ENABLE;
52+ twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, temp,
53+ TWL4030_DCDC_GLOBAL_CFG);
54+
55 voltdm = omap_voltage_domain_lookup("mpu");
56 omap_voltage_register_pmic(voltdm, &omap3_mpu_volt_info);
57
58--
591.6.6.1
60