aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMattias Wallin <mattias.wallin@stericsson.com>2011-05-25 16:17:40 +0200
committersaid m bagheri <ebgheri@steludxu2848.(none)>2011-06-17 13:42:02 +0200
commit1b01081b923876e7a60c95c586ba3dd5fb29dc9b (patch)
treee30ccb0e5ab7b06cab7f0ba30faead76ac5e934f /drivers
parent55fdf671d5afec12166d0228bdce1bc8dc152b97 (diff)
mach-ux500: Regulator: ExtSupply3LPn in Low Power
This patch set the ExtSupply3LPn in Low Power mode at startup. ExtSupply3LPn can control the ExtSmps4 and ExtSmps3. On HREF the ExtSupply3LPn is configured to not control ExtSmps3, only ExtSmps4. ST-Ericsson ID: ER337978 ST-Ericsson Linux next: na ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I793209c7ed104199976c5d35858058e9a49eae16 Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23944 Reviewed-by: QATEST Reviewed-by: Martin PERSSON <martin.persson@stericsson.com> Reviewed-by: Bengt JONSSON <bengt.g.jonsson@stericsson.com>
Diffstat (limited to 'drivers')
-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 b1f38f6cb26..8b94f67d677 100644
--- a/drivers/regulator/ab8500.c
+++ b/drivers/regulator/ab8500.c
@@ -1045,6 +1045,24 @@ static __devinit int ab8500_regulator_probe(struct platform_device *pdev)
value);
}
+ /*
+ * Remove below when ab8500v2.0 is no longer important.
+ * Below only affects power consumption and is depending on the
+ * HREF OTP configuration.
+ * It changes the default setting for VextSupply3Regu to Low Power.
+ * Active high or low is depending on OTP which is changed from ab8500v3.0.
+ */
+ 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;