diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-10 09:38:29 -0500 |
---|---|---|
committer | Liam Girdwood <lrg@slimlogic.co.uk> | 2011-01-12 09:32:59 -0500 |
commit | 3a93f2a9f4d8f73d74c0e552feb68a10f778a219 (patch) | |
tree | 8a9f503f2f061ad3fe9712b0986b0da346f4c8d2 /drivers/regulator/ab8500.c | |
parent | 63cee946148821bca42be10130b061c2d0f5af7e (diff) |
regulator: Report actual configured voltage to set_voltage()
Change the interface used by set_voltage() to report the selected value
to the regulator core in terms of a selector used by list_voltage().
This allows the regulator core to know the voltage that was chosen
without having to do an explict get_voltage(), which would be much more
expensive as it will generally access hardware.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'drivers/regulator/ab8500.c')
-rw-r--r-- | drivers/regulator/ab8500.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c index db6b70f20511..2f4ec0facef1 100644 --- a/drivers/regulator/ab8500.c +++ b/drivers/regulator/ab8500.c | |||
@@ -215,7 +215,8 @@ static int ab8500_get_best_voltage_index(struct regulator_dev *rdev, | |||
215 | } | 215 | } |
216 | 216 | ||
217 | static int ab8500_regulator_set_voltage(struct regulator_dev *rdev, | 217 | static int ab8500_regulator_set_voltage(struct regulator_dev *rdev, |
218 | int min_uV, int max_uV) | 218 | int min_uV, int max_uV, |
219 | unsigned *selector) | ||
219 | { | 220 | { |
220 | int regulator_id, ret; | 221 | int regulator_id, ret; |
221 | struct ab8500_regulator_info *info = rdev_get_drvdata(rdev); | 222 | struct ab8500_regulator_info *info = rdev_get_drvdata(rdev); |
@@ -232,6 +233,8 @@ static int ab8500_regulator_set_voltage(struct regulator_dev *rdev, | |||
232 | return ret; | 233 | return ret; |
233 | } | 234 | } |
234 | 235 | ||
236 | *selector = ret; | ||
237 | |||
235 | /* set the registers for the request */ | 238 | /* set the registers for the request */ |
236 | ret = abx500_mask_and_set_register_interruptible(info->dev, | 239 | ret = abx500_mask_and_set_register_interruptible(info->dev, |
237 | info->voltage_bank, info->voltage_reg, | 240 | info->voltage_bank, info->voltage_reg, |