summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijaya Kumar Kilari <vijay.kilari@stericsson.com>2011-09-13 11:30:37 +0530
committerRabin Vincent <rabin.vincent@stericsson.com>2011-09-22 15:41:30 +0530
commitb0bfaac433203e2270bb56070bf560f6e7d48b6f (patch)
treec5fcc6c099bf8a560191097054f6c8d2d3415ac9
parent24326825e3f6ef9ed74c39240276b16416f5c1d1 (diff)
U5500: Add VAPE as supply regulator for EPODS
Added VAPE as supply regulator for MM EPODS. Avoids ApSleep when EPOD regulators are ON ST-Ericsson Linux next: - ST-Ericsson ID: 356729 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ieba7c30fff4d29c3c47373c8e4f55ea502ad9efa Signed-off-by: Vijaya Kumar Kilari <vijay.kilari@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30723 Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
-rw-r--r--arch/arm/mach-ux500/board-u5500-regulators.c36
1 files changed, 28 insertions, 8 deletions
diff --git a/arch/arm/mach-ux500/board-u5500-regulators.c b/arch/arm/mach-ux500/board-u5500-regulators.c
index a5d3e585e48..e3fd4efcb1e 100644
--- a/arch/arm/mach-ux500/board-u5500-regulators.c
+++ b/arch/arm/mach-ux500/board-u5500-regulators.c
@@ -179,15 +179,31 @@ static struct regulator_consumer_supply u5500_esram12_consumers[] = {
REGULATOR_SUPPLY("esram12", "hva"),
};
-#define U5500_REGULATOR_SWITCH(lower, upper) \
-[U5500_REGULATOR_SWITCH_##upper] = (struct regulator_init_data []) { \
-{ \
+#define U5500_REGULATOR_SWITCH(lower, upper) \
+[U5500_REGULATOR_SWITCH_##upper] = (struct regulator_init_data []) { \
+{ \
.constraints = { \
.valid_ops_mask = REGULATOR_CHANGE_STATUS, \
}, \
.consumer_supplies = u5500_##lower##_consumers, \
.num_consumer_supplies = ARRAY_SIZE(u5500_##lower##_consumers),\
-} \
+} \
+}
+
+/*
+ * EPODs that require VAPE as supply regulator
+ */
+
+#define U5500_REGULATOR_SWITCH_WITH_SUPPLY(lower, upper) \
+[U5500_REGULATOR_SWITCH_##upper] = (struct regulator_init_data []) { \
+{ \
+ .supply_regulator = "u5500-vape", \
+ .constraints = { \
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS, \
+ }, \
+ .consumer_supplies = u5500_##lower##_consumers, \
+ .num_consumer_supplies = ARRAY_SIZE(u5500_##lower##_consumers),\
+} \
}
static struct regulator_init_data *
@@ -201,10 +217,14 @@ u5500_regulator_init_data[U5500_NUM_REGULATORS] __initdata = {
.num_consumer_supplies = ARRAY_SIZE(u5500_vape_consumers),
}
},
- U5500_REGULATOR_SWITCH(sga, SGA),
- U5500_REGULATOR_SWITCH(hva, HVA),
- U5500_REGULATOR_SWITCH(sia, SIA),
- U5500_REGULATOR_SWITCH(disp, DISP),
+ U5500_REGULATOR_SWITCH_WITH_SUPPLY(sga, SGA),
+ U5500_REGULATOR_SWITCH_WITH_SUPPLY(hva, HVA),
+ U5500_REGULATOR_SWITCH_WITH_SUPPLY(sia, SIA),
+ U5500_REGULATOR_SWITCH_WITH_SUPPLY(disp, DISP),
+ /*
+ * ESRAM12 is put in rentention by FW on VAPE off
+ * no need to hold VAPE
+ */
U5500_REGULATOR_SWITCH(esram12, ESRAM12),
};