aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/tps65912-regulator.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2012-03-15 05:18:35 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-01 06:59:25 -0400
commit33426e97968113d5421acc82b494d8a035ca4331 (patch)
treed6f9fa008fcc723a3686b0f3f04e1f055a86cbe7 /drivers/regulator/tps65912-regulator.c
parentf72d643e87581cbee49f39c1fd8268b1a9252b80 (diff)
regulator: Use tps65912_get_voltage for both DCDCs and LDOs
Now tps65912_get_voltage_dcdc and tps65912_get_voltage_ldo has exactly the same implementation. We can merge them to tps65912_get_voltage function. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/regulator/tps65912-regulator.c')
-rw-r--r--drivers/regulator/tps65912-regulator.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/drivers/regulator/tps65912-regulator.c b/drivers/regulator/tps65912-regulator.c
index 46f3c6160fda..05ea096cf8a7 100644
--- a/drivers/regulator/tps65912-regulator.c
+++ b/drivers/regulator/tps65912-regulator.c
@@ -406,7 +406,7 @@ static int tps65912_list_voltage(struct regulator_dev *dev, unsigned selector)
406 return voltage; 406 return voltage;
407} 407}
408 408
409static int tps65912_get_voltage_dcdc(struct regulator_dev *dev) 409static int tps65912_get_voltage(struct regulator_dev *dev)
410{ 410{
411 struct tps65912_reg *pmic = rdev_get_drvdata(dev); 411 struct tps65912_reg *pmic = rdev_get_drvdata(dev);
412 struct tps65912 *mfd = pmic->mfd; 412 struct tps65912 *mfd = pmic->mfd;
@@ -438,21 +438,6 @@ static int tps65912_set_voltage_sel(struct regulator_dev *dev,
438 return tps65912_reg_write(mfd, reg, selector | value); 438 return tps65912_reg_write(mfd, reg, selector | value);
439} 439}
440 440
441static int tps65912_get_voltage_ldo(struct regulator_dev *dev)
442{
443 struct tps65912_reg *pmic = rdev_get_drvdata(dev);
444 struct tps65912 *mfd = pmic->mfd;
445 int id = rdev_get_id(dev);
446 int vsel = 0;
447 u8 reg;
448
449 reg = tps65912_get_sel_register(pmic, id);
450 vsel = tps65912_reg_read(mfd, reg);
451 vsel &= 0x3F;
452
453 return tps65912_vsel_to_uv_ldo(vsel);
454}
455
456/* Operations permitted on DCDCx */ 441/* Operations permitted on DCDCx */
457static struct regulator_ops tps65912_ops_dcdc = { 442static struct regulator_ops tps65912_ops_dcdc = {
458 .is_enabled = tps65912_reg_is_enabled, 443 .is_enabled = tps65912_reg_is_enabled,
@@ -460,7 +445,7 @@ static struct regulator_ops tps65912_ops_dcdc = {
460 .disable = tps65912_reg_disable, 445 .disable = tps65912_reg_disable,
461 .set_mode = tps65912_set_mode, 446 .set_mode = tps65912_set_mode,
462 .get_mode = tps65912_get_mode, 447 .get_mode = tps65912_get_mode,
463 .get_voltage = tps65912_get_voltage_dcdc, 448 .get_voltage = tps65912_get_voltage,
464 .set_voltage_sel = tps65912_set_voltage_sel, 449 .set_voltage_sel = tps65912_set_voltage_sel,
465 .list_voltage = tps65912_list_voltage, 450 .list_voltage = tps65912_list_voltage,
466}; 451};
@@ -470,7 +455,7 @@ static struct regulator_ops tps65912_ops_ldo = {
470 .is_enabled = tps65912_reg_is_enabled, 455 .is_enabled = tps65912_reg_is_enabled,
471 .enable = tps65912_reg_enable, 456 .enable = tps65912_reg_enable,
472 .disable = tps65912_reg_disable, 457 .disable = tps65912_reg_disable,
473 .get_voltage = tps65912_get_voltage_ldo, 458 .get_voltage = tps65912_get_voltage,
474 .set_voltage_sel = tps65912_set_voltage_sel, 459 .set_voltage_sel = tps65912_set_voltage_sel,
475 .list_voltage = tps65912_list_voltage, 460 .list_voltage = tps65912_list_voltage,
476}; 461};