regulator: isl6271a: Use regulator_list_voltage_linear()
PATCH 1/3 regulator: isl6271a: Use regulator_list_voltage_linear()
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/isl6271a-regulator.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-)
drivers/regulator/isl6271a-regulator.c +3 -6
@@ -83,15 +83,10 @@ static int isl6271a_set_voltage(struct regulator_dev *dev,return err; } -static int isl6271a_list_voltage (struct regulator_dev *dev,unsigned selector) -{ -return ISL6271A_VOLTAGE_MIN + (ISL6271A_VOLTAGE_STEP * selector); -} -static struct regulator_ops isl_core_ops = { .get_voltage = isl6271a_get_voltage, .set_voltage = isl6271a_set_voltage, - .list_voltage = isl6271a_list_voltage, + .list_voltage = regulator_list_voltage_linear, };static int isl6271a_get_fixed_voltage (struct regulator_dev *dev)
@@ -119,6 +114,8 @@ static const struct regulator_desc isl_rd[] = { .ops = &isl_core_ops, .type = REGULATOR_VOLTAGE, .owner = THIS_MODULE, + .min_uV = ISL6271A_VOLTAGE_MIN, + .uV_step = ISL6271A_VOLTAGE_STEP, }, { .name = "LDO1", .id = 1,
Signature · 1 line
1.7.5.4
PATCH 2/3 regulator: isl6271a: Convert to get_voltage_sel
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/isl6271a-regulator.c | 17 +++++------------ 1 files changed, 5 insertions(+), 12 deletions(-)
drivers/regulator/isl6271a-regulator.c +5 -12
@@ -35,26 +35,19 @@ struct isl_pmic {struct mutex mtx; }; -static int isl6271a_get_voltage (struct regulator_dev *dev) +static int isl6271a_get_voltage_sel (struct regulator_dev *dev) {struct isl_pmic *pmic =rdev_get_drvdata (dev); -int idx, data; +int idx;mutex_lock (&pmic->mtx); idx =i2c_smbus_read_byte (pmic->client); -if (idx <0 ) { +if (idx <0 )dev_err (&pmic->client->dev,"Error getting voltage\n" ); - data = idx; - goto out; - } - -/* Convert the data from chip to microvolts */ - data =ISL6271A_VOLTAGE_MIN + (ISL6271A_VOLTAGE_STEP * (idx &0xf )); -out:mutex_unlock (&pmic->mtx); -return data; +return idx; } static int isl6271a_set_voltage(struct regulator_dev *dev,
@@ -84,7 +77,7 @@ static int isl6271a_set_voltage(struct regulator_dev *dev, }static struct regulator_ops isl_core_ops = { - .get_voltage = isl6271a_get_voltage, + .get_voltage_sel = isl6271a_get_voltage_sel, .set_voltage = isl6271a_set_voltage, .list_voltage = regulator_list_voltage_linear, };
Signature · 1 line
1.7.5.4
PATCH 3/3 regulator: isl6271a: Convert to set_voltage_sel and regulator_map_voltage_linear
In reply to Axel LinSigned-off-by Axel Lin <[email protected]>
--- drivers/regulator/isl6271a-regulator.c | 21 ++++++--------------- 1 files changed, 6 insertions(+), 15 deletions(-)
drivers/regulator/isl6271a-regulator.c +6 -15
@@ -50,25 +50,15 @@ static int isl6271a_get_voltage_sel(struct regulator_dev *dev)return idx; } -static int isl6271a_set_voltage (struct regulator_dev *dev, -int minuV,int maxuV, -unsigned *selector) +static int isl6271a_set_voltage_sel (struct regulator_dev *dev, +unsigned selector) {struct isl_pmic *pmic =rdev_get_drvdata (dev); -int err, data; - -if (minuV <ISL6271A_VOLTAGE_MIN || minuV >ISL6271A_VOLTAGE_MAX ) -return -EINVAL ; -if (maxuV <ISL6271A_VOLTAGE_MIN || maxuV >ISL6271A_VOLTAGE_MAX ) -return -EINVAL ; - - data =DIV_ROUND_UP (minuV -ISL6271A_VOLTAGE_MIN , -ISL6271A_VOLTAGE_STEP ); - *selector = data; +int err;mutex_lock (&pmic->mtx); - err =i2c_smbus_write_byte (pmic->client, data); + err =i2c_smbus_write_byte (pmic->client, selector);if (err <0 )dev_err (&pmic->client->dev,"Error setting voltage\n" );
@@ -78,8 +68,9 @@ static int isl6271a_set_voltage(struct regulator_dev *dev,static struct regulator_ops isl_core_ops = { .get_voltage_sel = isl6271a_get_voltage_sel, - .set_voltage = isl6271a_set_voltage, + .set_voltage_sel = isl6271a_set_voltage_sel, .list_voltage = regulator_list_voltage_linear, + .map_voltage = regulator_map_voltage_linear, };static int isl6271a_get_fixed_voltage (struct regulator_dev *dev)
Signature · 1 line
1.7.5.4
Re: [PATCH RFT 3/3] regulator: isl6271a: Convert to set_voltage_sel and regulator_map_voltage_linear
Dear Axel Lin,
Quoted 50 lines
Signed-off-by Axel Lin <[email protected]>--- drivers/regulator/isl6271a-regulator.c | 21 ++++++--------------- 1 files changed, 6 insertions(+), 15 deletions(-)(quoted diff) +0
-0
b/drivers/regulator/isl6271a-regulator.cindex 00cb288..56d273f 100644drivers/regulator/isl6271a-regulator.c +6
-15@@ -50,25 +50,15 @@ static int isl6271a_get_voltage_sel(struct regulator_dev *dev) return idx; } -static int isl6271a_set_voltage (struct regulator_dev *dev, -int minuV,int maxuV, -unsigned *selector) +static int isl6271a_set_voltage_sel (struct regulator_dev *dev, +unsigned selector) {struct isl_pmic *pmic =rdev_get_drvdata (dev); -int err, data; - -if (minuV <ISL6271A_VOLTAGE_MIN || minuV >ISL6271A_VOLTAGE_MAX ) -return -EINVAL ; -if (maxuV <ISL6271A_VOLTAGE_MIN || maxuV >ISL6271A_VOLTAGE_MAX ) -return -EINVAL ; - - data =DIV_ROUND_UP (minuV -ISL6271A_VOLTAGE_MIN , -ISL6271A_VOLTAGE_STEP ); - *selector = data; +int err;mutex_lock (&pmic->mtx); - err =i2c_smbus_write_byte (pmic->client, data); + err =i2c_smbus_write_byte (pmic->client, selector);if (err <0 )dev_err (&pmic->client->dev,"Error setting voltage\n" );@@ -78,8 +68,9 @@ static int isl6271a_set_voltage(struct regulator_dev *dev, static struct regulator_ops isl_core_ops = { .get_voltage_sel = isl6271a_get_voltage_sel, - .set_voltage = isl6271a_set_voltage, + .set_voltage_sel = isl6271a_set_voltage_sel, .list_voltage = regulator_list_voltage_linear, + .map_voltage = regulator_map_voltage_linear, };
Quoted 1 line
static int
isl6271a_get_fixed_voltage(struct regulator_dev *dev)
Hm well, I hope this won't break the driver. I can't test it any soon.
Best regards,
Marek Vasut
Mark Brown
AppliedQuoted 1 line · Axel Lin
Signed-off-by Axel Lin <[email protected]>
Applied all, thanks.