summaryrefslogtreecommitdiff
path: root/drivers/regulator
diff options
context:
space:
mode:
authorMattias Wallin <mattias.wallin@stericsson.com>2011-05-25 16:17:40 +0200
committerJonas ABERG <jonas.aberg@stericsson.com>2011-09-29 09:00:30 +0200
commita78dd40ea30dd6ec70e88a90aca6c620339823d7 (patch)
treef0e81e7aa95d15c3aa69d757db2d46877475851c /drivers/regulator
parent7e1bd0ce6a4000e1a114d6f4881c5880b9ddf7d5 (diff)
ux500: regulator: ExtSupply3LPn in low power
This patch sets the ExtSupply3LPn in low power mode at startup. ExtSupply3LPn can control the ExtSmps4 and ExtSmps3. On HREF the ExtSupply3LPn is configured to control only ExtSmps4. Change-Id: I43bc26185e7d1ad64d0b8d0d2301cc72c01c8f9e Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32104 Reviewed-by: Bengt JONSSON <bengt.g.jonsson@stericsson.com> Tested-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'drivers/regulator')
-rw-r--r--drivers/regulator/ab8500.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c
index 38753aa5958..3da379cd0ac 100644
--- a/drivers/regulator/ab8500.c
+++ b/drivers/regulator/ab8500.c
@@ -1136,6 +1136,24 @@ static __devinit int ab8500_regulator_probe(struct platform_device *pdev)
mask, value);
}
+ /*
+ * This changes the default setting for VextSupply3Regu to low power.
+ * Active high or low is depending on OTP which is changed from ab8500v3.0.
+ * Remove this when ab8500v2.0 is no longer important.
+ * This only affects power consumption and it depends on the
+ * HREF OTP configurations.
+ */
+ if (abx500_get_chip_id(&pdev->dev) < 0x30) {
+ err = abx500_mask_and_set_register_interruptible(&pdev->dev,
+ AB8500_REGU_CTRL2, 0x08, 0x30, 0x30);
+ if (err < 0) {
+ dev_err(&pdev->dev,
+ "Failed to override 0x%02x, 0x%02x.\n",
+ AB8500_REGU_CTRL2, 0x08);
+ return err;
+ }
+ }
+
/* register all regulators */
for (i = 0; i < ARRAY_SIZE(ab8500_regulator_info); i++) {
struct ab8500_regulator_info *info = NULL;