diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2012-02-17 18:56:11 +0530 |
---|---|---|
committer | Lokesh Pathak <lpathak@nvidia.com> | 2012-02-22 22:16:40 -0800 |
commit | 90287b24753acfce2cb0f9c90189ebd2b11884b8 (patch) | |
tree | 2f92320b1099c070687246c05009685678922e71 /drivers/regulator | |
parent | 304ea342746da8db6926bb5a84e9d570c7462107 (diff) |
regulator: tps65910: Correct VIO voltage configuration
The VIO regulator register specify the voltage configuration
on bit3:2 of its register. And hence only these bits should
be modified when setting voltage and used when reading voltage
from register setting.
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
cherry picked from mainline
commit 83e0323211e33b117ce585bab64636ca1fff807a
Change-Id: Ica9d50dd62ccab15a02c8769e8b1279fb32d4a03
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/85122
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/tps65910-regulator.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/regulator/tps65910-regulator.c b/drivers/regulator/tps65910-regulator.c index 1a74d9ee79a9..7622219903a2 100644 --- a/drivers/regulator/tps65910-regulator.c +++ b/drivers/regulator/tps65910-regulator.c @@ -674,8 +674,9 @@ static int tps65911_get_voltage(struct regulator_dev *dev) step_mv = 100; break; case TPS65910_REG_VIO: + value &= LDO_SEL_MASK; + value >>= LDO_SEL_SHIFT; return pmic->info[id]->voltage_table[value] * 1000; - break; default: return -EINVAL; } @@ -767,9 +768,11 @@ static int tps65911_set_voltage(struct regulator_dev *dev, unsigned selector) case TPS65911_REG_LDO6: case TPS65911_REG_LDO7: case TPS65911_REG_LDO8: - case TPS65910_REG_VIO: return tps65910_modify_bits(pmic, reg, (selector << LDO_SEL_SHIFT), LDO3_SEL_MASK); + case TPS65910_REG_VIO: + return tps65910_modify_bits(pmic, reg, + (selector << LDO_SEL_SHIFT), LDO_SEL_MASK); } return -EINVAL; |