diff options
author | Mattias Wallin <mattias.wallin@stericsson.com> | 2011-05-25 16:17:40 +0200 |
---|---|---|
committer | said m bagheri <ebgheri@steludxu2848.(none)> | 2011-06-17 13:42:02 +0200 |
commit | 1b01081b923876e7a60c95c586ba3dd5fb29dc9b (patch) | |
tree | e30ccb0e5ab7b06cab7f0ba30faead76ac5e934f /drivers | |
parent | 55fdf671d5afec12166d0228bdce1bc8dc152b97 (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.c | 18 |
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; |