diff options
author | Bengt Jonsson <bengt.g.jonsson@stericsson.com> | 2011-09-19 14:56:34 +0200 |
---|---|---|
committer | Bibek BASU <bibek.basu@stericsson.com> | 2011-09-22 12:25:15 +0200 |
commit | bca54fab636b5187669048b5ce2f15ed1e4c5812 (patch) | |
tree | 4e50e847345a98b5c00a84874758b2c8d5ebd224 | |
parent | 4bbfac33cc8b4670dd27c7e49002308baf41b787 (diff) |
regulator: Do not disable Vext3 during suspend
Do not disable Vext3 during suspend because it is needed
by 3 V SIM. This is a temporary change, to be changed so
it takes into account if the SIM is 1.8 V or 3 V.
ST-Ericsson ID: 351937
ST-Ericsson FOSS-OUT ID: Trivial
ST-Ericsson Linux next: -
Change-Id: Id4739d32185e8381bbc8925aaa1b92fb7d3b51b8
Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/31722
Reviewed-by: Bibek BASU <bibek.basu@stericsson.com>
Tested-by: Bibek BASU <bibek.basu@stericsson.com>
-rw-r--r-- | drivers/regulator/ab8500-debug.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/drivers/regulator/ab8500-debug.c b/drivers/regulator/ab8500-debug.c index 5463721d24e..661386890af 100644 --- a/drivers/regulator/ab8500-debug.c +++ b/drivers/regulator/ab8500-debug.c @@ -1736,17 +1736,35 @@ static int __devinit ab8500_regulator_debug_probe(struct platform_device *plf) if ((abx500_get_chip_id(&pdev->dev) >= 0x30) && cpu_is_u8500v22()) { /* * find ExtSupplyRegu register (bank 0x04, addr 0x08) - * and update value (Vext1 in low-power, Vext2 and Vext3 - * off). + * and update value (Vext1 in low-power, Vext2 off). */ for (i = 0; i < ARRAY_SIZE(ab8500_force_reg); i++) { if (ab8500_force_reg[i].bank == 0x04 && ab8500_force_reg[i].addr == 0x08) { - ab8500_force_reg[i].val = 0x03; + u8 val, val_mask = 0x0f; + + val = ab8500_force_reg[i].val; + val = (val & ~val_mask) | (0x03 & val_mask); + ab8500_force_reg[i].val = val; } } } + /* + * find ExtSupplyRegu register (bank 0x04, addr 0x08) + * and update value (Vext3 in high power). + */ + for (i = 0; i < ARRAY_SIZE(ab8500_force_reg); i++) { + if (ab8500_force_reg[i].bank == 0x04 && + ab8500_force_reg[i].addr == 0x08) { + u8 val, val_mask = 0x30; + + val = ab8500_force_reg[i].val; + val = (val & ~val_mask) | (0x10 & val_mask); + ab8500_force_reg[i].val = val; + } + } + /* make suspend-force default if board profile is v5x-power */ boot_info_backupram = ioremap(BOOT_INFO_BACKUPRAM1, 0x4); |