regulator: Use tps65912_set_voltage_sel for both DCDCx and LDOx
PATCH 1/2 regulator: Use tps65912_set_voltage_sel for both DCDCx and LDOx
commit 42b5ef "regulator: tps65912: Use simple equations to get register address" uses tps65912_get_sel_register to replace tps65912_get_dcdc_sel_register and tps65912_get_ldo_sel_register.
Now tps65912_set_voltage_dcdc_sel and tps65912_set_voltage_ldo_sel has exactly the same implementation. Merge them to tps65912_set_voltage_sel function.
--- drivers/regulator/tps65912-regulator.c | 19 +++---------------- 1 files changed, 3 insertions(+), 16 deletions(-)
drivers/regulator/tps65912-regulator.c +3 -16
@@ -442,7 +442,7 @@ static int tps65912_get_voltage_dcdc(struct regulator_dev *dev)return tps65912_list_voltage_dcdc (dev, vsel); } -static int tps65912_set_voltage_dcdc_sel (struct regulator_dev *dev, +static int tps65912_set_voltage_sel (struct regulator_dev *dev,unsigned selector) {struct tps65912_reg *pmic =rdev_get_drvdata (dev);
@@ -472,19 +472,6 @@ static int tps65912_get_voltage_ldo(struct regulator_dev *dev)return tps65912_vsel_to_uv_ldo (vsel); } -static int tps65912_set_voltage_ldo_sel (struct regulator_dev *dev, -unsigned selector) -{ -struct tps65912_reg *pmic =rdev_get_drvdata (dev); -struct tps65912 *mfd = pmic->mfd; -int id =rdev_get_id (dev), reg, value; - - reg =tps65912_get_sel_register (pmic, id); - value =tps65912_reg_read (mfd, reg); - value &=0xC0 ; -return tps65912_reg_write (mfd, reg, selector | value); -} -static int tps65912_list_voltage_ldo (struct regulator_dev *dev,unsigned selector) {
@@ -504,7 +491,7 @@ static struct regulator_ops tps65912_ops_dcdc = { .set_mode = tps65912_set_mode, .get_mode = tps65912_get_mode, .get_voltage = tps65912_get_voltage_dcdc, - .set_voltage_sel = tps65912_set_voltage_dcdc_sel, + .set_voltage_sel = tps65912_set_voltage_sel, .list_voltage = tps65912_list_voltage_dcdc, };
@@ -514,7 +501,7 @@ static struct regulator_ops tps65912_ops_ldo = { .enable = tps65912_reg_enable, .disable = tps65912_reg_disable, .get_voltage = tps65912_get_voltage_ldo, - .set_voltage_sel = tps65912_set_voltage_ldo_sel, + .set_voltage_sel = tps65912_set_voltage_sel, .list_voltage = tps65912_list_voltage_ldo, };
Signature · 1 line
1.7.5.4
PATCH 2/2 regulator: Simplify implementation of tps65912_get_voltage_dcdc
Call tps65912_get_sel_register instead of duplicating the same code.
--- drivers/regulator/tps65912-regulator.c | 31 +++++-------------------------- 1 files changed, 5 insertions(+), 26 deletions(-)
drivers/regulator/tps65912-regulator.c +5 -26
@@ -409,34 +409,13 @@ static int tps65912_get_voltage_dcdc(struct regulator_dev *dev)struct tps65912_reg *pmic =rdev_get_drvdata (dev);struct tps65912 *mfd = pmic->mfd;int id =rdev_get_id (dev); -int opvsel =0 , avsel =0 , sr, vsel; +int reg, vsel; -switch (id) { -case TPS65912_REG_DCDC1 : - opvsel =tps65912_reg_read (mfd,TPS65912_DCDC1_OP ); - avsel =tps65912_reg_read (mfd,TPS65912_DCDC1_AVS ); -break ; -case TPS65912_REG_DCDC2 : - opvsel =tps65912_reg_read (mfd,TPS65912_DCDC2_OP ); - avsel =tps65912_reg_read (mfd,TPS65912_DCDC2_AVS ); -break ; -case TPS65912_REG_DCDC3 : - opvsel =tps65912_reg_read (mfd,TPS65912_DCDC3_OP ); - avsel =tps65912_reg_read (mfd,TPS65912_DCDC3_AVS ); -break ; -case TPS65912_REG_DCDC4 : - opvsel =tps65912_reg_read (mfd,TPS65912_DCDC4_OP ); - avsel =tps65912_reg_read (mfd,TPS65912_DCDC4_AVS ); -break ; -default : -return -EINVAL ; - } + reg =tps65912_get_sel_register (pmic, id); +if (reg <0 ) +return reg; - sr = (opvsel &OP_SELREG_MASK ) >>OP_SELREG_SHIFT ; -if (sr) - vsel = avsel; -else - vsel = opvsel; + vsel =tps65912_reg_read (mfd, reg); vsel &=0x3F ;return tps65912_list_voltage_dcdc (dev, vsel);
Signature · 1 line
1.7.5.4
Mark Brown
AppliedQuoted 3 lines · Axel Lin
commit 42b5ef "regulator: tps65912: Use simple equations to get register address" uses
tps65912_get_sel_registerto replacetps65912_get_dcdc_sel_registerandtps65912_get_ldo_sel_register.
Applied both, thanks.