msm: board-8064: Add GPIO controlled external regulators
Add support for the external regulators present on MPQ8064 boards. These
regulators are enabled via external SX1509 gpio-expander chip.
Change-Id: I4aa940996c9cdf9de302018efd2a1dc6dc3229c1
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8064-regulator.c b/arch/arm/mach-msm/board-8064-regulator.c
index 114ba7e..7bb8af9 100644
--- a/arch/arm/mach-msm/board-8064-regulator.c
+++ b/arch/arm/mach-msm/board-8064-regulator.c
@@ -252,6 +252,24 @@
REGULATOR_SUPPLY("ext_ts_sw", NULL),
REGULATOR_SUPPLY("vdd_ana", "3-005b"),
};
+VREG_CONSUMERS(FRC_5V) = {
+ REGULATOR_SUPPLY("frc_5v", NULL),
+};
+VREG_CONSUMERS(AVC_1P2V) = {
+ REGULATOR_SUPPLY("avc_1p2v", NULL),
+};
+VREG_CONSUMERS(AVC_1P8V) = {
+ REGULATOR_SUPPLY("avc_1p8v", NULL),
+};
+VREG_CONSUMERS(AVC_2P2V) = {
+ REGULATOR_SUPPLY("avc_2p2v", NULL),
+};
+VREG_CONSUMERS(AVC_5V) = {
+ REGULATOR_SUPPLY("avc_5v", NULL),
+};
+VREG_CONSUMERS(AVC_3P3V) = {
+ REGULATOR_SUPPLY("avc_3p3v", NULL),
+};
#define PM8XXX_VREG_INIT(_id, _name, _min_uV, _max_uV, _modes, _ops, \
_apply_uV, _pull_down, _always_on, _supply_regulator, \
@@ -486,6 +504,18 @@
PM8921_MPP_PM_TO_SYS(8), NULL),
};
+struct gpio_regulator_platform_data
+mpq8064_gpio_regulator_pdata[] __devinitdata = {
+ GPIO_VREG(FRC_5V, "frc_5v", "frc_5v_en", SX150X_GPIO(4, 10), NULL),
+ GPIO_VREG(AVC_1P2V, "avc_1p2v", "avc_1p2v_en", SX150X_GPIO(4, 2), NULL),
+ GPIO_VREG(AVC_1P8V, "avc_1p8v", "avc_1p8v_en", SX150X_GPIO(4, 4), NULL),
+ GPIO_VREG(AVC_2P2V, "avc_2p2v", "avc_2p2v_en",
+ SX150X_GPIO(4, 14), NULL),
+ GPIO_VREG(AVC_5V, "avc_5v", "avc_5v_en", SX150X_GPIO(4, 3), NULL),
+ GPIO_VREG(AVC_3P3V, "avc_3p3v", "avc_3p3v_en",
+ SX150X_GPIO(4, 15), "avc_5v"),
+};
+
/* SAW regulator constraints */
struct regulator_init_data msm8064_saw_regulator_pdata_8921_s5 =
/* ID vreg_name min_uV max_uV */