The main purpose of this patch is to make the supply name "vddarm"
available to the cpufreq driver. There are two unrelated changes (to be
split out) in this patch:
1) Allow core voltage down to 1.0 V.
2) Always enable the core voltage regulator. It somehow isn't enabled
anywhere else. I'm guessing the core's running on leakage current from
VDDalive when the kernel is booted.
arch/arm/mach-s3c2442/mach-gta02.c | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-s3c2442/mach-gta02.c
b/arch/arm/mach-s3c2442/mach-gta02.c
index e1f8b9b..f7cd406 100644
--- a/arch/arm/mach-s3c2442/mach-gta02.c
+++ b/arch/arm/mach-s3c2442/mach-gta02.c
@@ -540,6 +540,14 @@ static struct regulator_consumer_supply hcldo_consumers[]
= {
},
};
+
+/* This if so the cpufreq driver can find the core voltage regulator. */
+static struct regulator_consumer_supply down1_consumers[] = {
+ {
+ .supply = "vddarm",
+ },
+};
+
static char *gta02_batteries[] = {
"battery",
};
@@ -579,13 +587,15 @@ struct pcf50633_platform_data gta02_pcf_pdata = {
[PCF50633_REGULATOR_DOWN1] = {
.constraints = {
.name = "CORE_1V3",
- .min_uV = 1300000,
+ .min_uV = 1000000,
.max_uV = 1600000,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
- .boot_on = 1,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .always_on = 1,
.apply_uV = 1,
},
- .num_consumer_supplies = 0,
+ .num_consumer_supplies = 1,
+ .consumer_supplies = down1_consumers,
},
[PCF50633_REGULATOR_DOWN2] = {
.constraints = {
--
Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a year