regulator: rc5t583: Convert to regulator_list_voltage_linear()
PATCH 1/2 regulator: rc5t583: Convert to regulator_list_voltage_linear()
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/rc5t583-regulator.c | 28 +++++++++------------------- 1 files changed, 9 insertions(+), 19 deletions(-)
drivers/regulator/rc5t583-regulator.c +9 -19
@@ -41,9 +41,7 @@ struct rc5t583_regulator_info {uint8_t deepsleep_reg;/* Chip constraints on regulator behavior */ -int min_uV;int max_uV; -int step_uV;/* Regulator specific turn-on delay and voltage settling time*/ int enable_uv_per_us;
@@ -62,24 +60,16 @@ struct rc5t583_regulator {struct regulator_dev *rdev; }; -static int rc5t583_list_voltage (struct regulator_dev *rdev,unsigned selector) -{ -struct rc5t583_regulator *reg =rdev_get_drvdata (rdev); -struct rc5t583_regulator_info *ri = reg->reg_info; -return ri->min_uV + (ri->step_uV * selector); -} -static int rc5t583_set_voltage (struct regulator_dev *rdev,int min_uV,int max_uV,unsigned *selector) {struct rc5t583_regulator *reg =rdev_get_drvdata (rdev); -struct rc5t583_regulator_info *ri = reg->reg_info;int sel, ret; -if (min_uV < ri->min_uV) - min_uV = ri->min_uV; +if (min_uV < rdev->desc->min_uV) + min_uV = rdev->desc->min_uV; - sel =DIV_ROUND_UP (min_uV - ri->min_uV, ri->step_uV); + sel =DIV_ROUND_UP (min_uV - rdev->desc->min_uV, rdev->desc->uV_step);if (sel >= rdev->desc->n_voltages) {dev_err (&rdev->dev,"Invalid selector 0x%02x\n" , sel);
@@ -100,7 +90,7 @@ static int rc5t583_regulator_enable_time(struct regulator_dev *rdev) {struct rc5t583_regulator *reg =rdev_get_drvdata (rdev);int vsel =regulator_get_voltage_sel_regmap (rdev); -int curr_uV =rc5t583_list_voltage (rdev, vsel); +int curr_uV =regulator_list_voltage_linear (rdev, vsel);return DIV_ROUND_UP (curr_uV, reg->reg_info->enable_uv_per_us); }
@@ -110,12 +100,12 @@ static int rc5t583_set_voltage_time_sel(struct regulator_dev *rdev, {struct rc5t583_regulator *reg =rdev_get_drvdata (rdev);int old_uV, new_uV; - old_uV =rc5t583_list_voltage (rdev, old_selector); + old_uV =regulator_list_voltage_linear (rdev, old_selector);if (old_uV <0 )return old_uV; - new_uV =rc5t583_list_voltage (rdev, new_selector); + new_uV =regulator_list_voltage_linear (rdev, new_selector);if (new_uV <0 )return new_uV;
@@ -131,7 +121,7 @@ static struct regulator_ops rc5t583_ops = { .enable_time = rc5t583_regulator_enable_time, .get_voltage_sel = regulator_get_voltage_sel_regmap, .set_voltage = rc5t583_set_voltage, - .list_voltage = rc5t583_list_voltage, + .list_voltage = regulator_list_voltage_linear, .set_voltage_time_sel = rc5t583_set_voltage_time_sel, };
@@ -141,9 +131,7 @@ static struct regulator_ops rc5t583_ops = { .reg_disc_reg = RC5T583_REG_##_disc_reg, \ .disc_bit = _disc_bit, \ .deepsleep_reg = RC5T583_REG_##_id##DAC_DS, \ - .min_uV = _min_mv * 1000, \ .max_uV = _max_mv * 1000, \ - .step_uV = _step_uV, \ .enable_uv_per_us = _enable_mv * 1000, \ .change_uv_per_us = 40 * 1000, \ .deepsleep_id = RC5T583_DS_##_id, \
@@ -158,6 +146,8 @@ static struct regulator_ops rc5t583_ops = { .vsel_mask = _vout_mask, \ .enable_reg = RC5T583_REG_##_en_reg, \ .enable_mask = BIT(_en_bit), \ + .min_uV = _min_mv * 1000, \ + .uV_step = _step_uV, \ }, \ }
Signature · 1 line
1.7.5.4
PATCH 2/2 regulator: rc5t583: Convert to regulator_set_voltage_sel_regmap and regulator_map_voltage_linear
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/rc5t583-regulator.c | 29 ++--------------------------- 1 files changed, 2 insertions(+), 27 deletions(-)
drivers/regulator/rc5t583-regulator.c +2 -27
@@ -60,32 +60,6 @@ struct rc5t583_regulator {struct regulator_dev *rdev; }; -static int rc5t583_set_voltage (struct regulator_dev *rdev, -int min_uV,int max_uV,unsigned *selector) -{ -struct rc5t583_regulator *reg =rdev_get_drvdata (rdev); -int sel, ret; - -if (min_uV < rdev->desc->min_uV) - min_uV = rdev->desc->min_uV; - - sel =DIV_ROUND_UP (min_uV - rdev->desc->min_uV, rdev->desc->uV_step); - -if (sel >= rdev->desc->n_voltages) { -dev_err (&rdev->dev,"Invalid selector 0x%02x\n" , sel); -return -EINVAL ; - } - - *selector = sel; - - ret =rc5t583_update (reg->mfd->dev, rdev->desc->vsel_reg, sel, - rdev->desc->vsel_mask); -if (ret <0 ) -dev_err (&rdev->dev,"Error in update voltage register 0x%02x\n" , - rdev->desc->vsel_reg); -return ret; -} -static int rc5t583_regulator_enable_time (struct regulator_dev *rdev) {struct rc5t583_regulator *reg =rdev_get_drvdata (rdev);
@@ -120,8 +94,9 @@ static struct regulator_ops rc5t583_ops = { .disable = regulator_disable_regmap, .enable_time = rc5t583_regulator_enable_time, .get_voltage_sel = regulator_get_voltage_sel_regmap, - .set_voltage = rc5t583_set_voltage, + .set_voltage_sel = regulator_set_voltage_sel_regmap, .list_voltage = regulator_list_voltage_linear, + .map_voltage = regulator_map_voltage_linear, .set_voltage_time_sel = rc5t583_set_voltage_time_sel, };
Signature · 1 line
1.7.5.4
Quoted 5 lines · Axel Lin
Signed-off-by Axel Lin<[email protected]>--- drivers/regulator/rc5t583-regulator.c | 28 +++++++++------------------- 1 files changed, 9 insertions(+), 19 deletions(-)
Acked-by Laxman Dewangan <[email protected]>
Looks fine to me.
Thanks,
Laxman
Mark Brown
AppliedQuoted 1 line · Axel Lin
Signed-off-by Axel Lin <[email protected]>
Applied both, thanks.