regulator: max8649: Convert to get_voltage_sel
PATCH 1/4 regulator: max8649: Convert to get_voltage_sel
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/max8649.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
drivers/regulator/max8649.c +3 -3
@@ -76,7 +76,7 @@ static int max8649_list_voltage(struct regulator_dev *rdev, unsigned index)return (MAX8649_DCDC_VMIN + index *MAX8649_DCDC_STEP ); } -static int max8649_get_voltage (struct regulator_dev *rdev) +static int max8649_get_voltage_sel (struct regulator_dev *rdev) {struct max8649_regulator_info *info =rdev_get_drvdata (rdev);unsigned int val;
@@ -87,7 +87,7 @@ static int max8649_get_voltage(struct regulator_dev *rdev)if (ret !=0 )return ret; data = (unsigned char )val &MAX8649_VOL_MASK ; -return max8649_list_voltage (rdev, data); +return data; } static int max8649_set_voltage(struct regulator_dev *rdev,
@@ -196,7 +196,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev)static struct regulator_ops max8649_dcdc_ops = { .set_voltage = max8649_set_voltage, - .get_voltage = max8649_get_voltage, + .get_voltage_sel = max8649_get_voltage_sel, .list_voltage = max8649_list_voltage, .enable = max8649_enable, .disable = max8649_disable,
Signature · 1 line
1.7.5.4
PATCH 2/4 regulator: max8649: Use regulator_get_voltage_sel_regmap()
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/max8649.c | 45 +++++++++++++++--------------------------- 1 files changed, 16 insertions(+), 29 deletions(-)
drivers/regulator/max8649.c +16 -29
@@ -53,7 +53,6 @@ struct max8649_regulator_info {struct device *dev;struct regmap *regmap; -int vol_reg; unsigned mode:2; /* bit[1:0] = VID1, VID0 */ unsigned extclk_freq:2; unsigned extclk:1;
@@ -76,20 +75,6 @@ static int max8649_list_voltage(struct regulator_dev *rdev, unsigned index)return (MAX8649_DCDC_VMIN + index *MAX8649_DCDC_STEP ); } -static int max8649_get_voltage_sel (struct regulator_dev *rdev) -{ -struct max8649_regulator_info *info =rdev_get_drvdata (rdev); -unsigned int val; -unsigned char data; -int ret; - - ret =regmap_read (info->regmap, info->vol_reg, &val); -if (ret !=0 ) -return ret; - data = (unsigned char )val &MAX8649_VOL_MASK ; -return data; -} -static int max8649_set_voltage (struct regulator_dev *rdev,int min_uV,int max_uV,unsigned *selector) {
@@ -105,7 +90,8 @@ static int max8649_set_voltage(struct regulator_dev *rdev, mask =MAX8649_VOL_MASK ; *selector = data & mask; -return regmap_update_bits (info->regmap, info->vol_reg, mask, data); +return regmap_update_bits (info->regmap, rdev->desc->vsel_reg, mask, + data); }/* EN_PD means pulldown on EN input */
@@ -145,7 +131,7 @@ static int max8649_enable_time(struct regulator_dev *rdev)unsigned int val;/* get voltage */ - ret =regmap_read (info->regmap, info->vol_reg, &val); + ret =regmap_read (info->regmap, rdev->desc->vsel_reg, &val);if (ret !=0 )return ret; val &=MAX8649_VOL_MASK ;
@@ -167,11 +153,11 @@ static int max8649_set_mode(struct regulator_dev *rdev, unsigned int mode)switch (mode) {case REGULATOR_MODE_FAST : -regmap_update_bits (info->regmap, info->vol_reg,MAX8649_FORCE_PWM , -MAX8649_FORCE_PWM ); +regmap_update_bits (info->regmap, rdev->desc->vsel_reg, +MAX8649_FORCE_PWM ,MAX8649_FORCE_PWM );break ;case REGULATOR_MODE_NORMAL : -regmap_update_bits (info->regmap, info->vol_reg, +regmap_update_bits (info->regmap, rdev->desc->vsel_reg,MAX8649_FORCE_PWM ,0 );break ;default :
@@ -186,7 +172,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev)unsigned int val;int ret; - ret =regmap_read (info->regmap, info->vol_reg, &val); + ret =regmap_read (info->regmap, rdev->desc->vsel_reg, &val);if (ret !=0 )return ret;if (val &MAX8649_FORCE_PWM )
@@ -196,7 +182,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev)static struct regulator_ops max8649_dcdc_ops = { .set_voltage = max8649_set_voltage, - .get_voltage_sel = max8649_get_voltage_sel, + .get_voltage_sel = regulator_get_voltage_sel_regmap, .list_voltage = max8649_list_voltage, .enable = max8649_enable, .disable = max8649_disable,
@@ -207,12 +193,13 @@ static struct regulator_ops max8649_dcdc_ops = { }; -static const struct regulator_desc dcdc_desc = { +static struct regulator_desc dcdc_desc = { .name ="max8649" , .ops = &max8649_dcdc_ops, .type =REGULATOR_VOLTAGE , .n_voltages =1 <<6 , .owner =THIS_MODULE , + .vsel_mask =MAX8649_VOL_MASK , };static struct regmap_config max8649_regmap_config = {
@@ -250,16 +237,16 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client, info->mode = pdata->mode;switch (info->mode) {case 0 : - info->vol_reg =MAX8649_MODE0 ; + dcdc_desc.vsel_reg =MAX8649_MODE0 ;break ;case 1 : - info->vol_reg =MAX8649_MODE1 ; + dcdc_desc.vsel_reg =MAX8649_MODE1 ;break ;case 2 : - info->vol_reg =MAX8649_MODE2 ; + dcdc_desc.vsel_reg =MAX8649_MODE2 ;break ;case 3 : - info->vol_reg =MAX8649_MODE3 ; + dcdc_desc.vsel_reg =MAX8649_MODE3 ;break ;default :break ;
@@ -279,7 +266,8 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client,/* enable/disable external clock synchronization */ info->extclk = pdata->extclk; data = (info->extclk) ?MAX8649_SYNC_EXTCLK :0 ; -regmap_update_bits (info->regmap, info->vol_reg,MAX8649_SYNC_EXTCLK , data); +regmap_update_bits (info->regmap, dcdc_desc.vsel_reg, +MAX8649_SYNC_EXTCLK , data);if (info->extclk) {/* set external clock frequency */ info->extclk_freq = pdata->extclk_freq;
@@ -356,4 +344,3 @@ module_exit(max8649_exit);MODULE_DESCRIPTION ("MAXIM 8649 voltage regulator driver" );MODULE_AUTHOR ("Haojian Zhuang <[email protected]>" );MODULE_LICENSE ("GPL" ); -
Signature · 1 line
1.7.5.4
PATCH 3/4 regulator: max8649: Convert to regulator_list_voltage_linear()
In reply to Axel LinSigned-off-by Axel Lin <[email protected]>
--- drivers/regulator/max8649.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)
drivers/regulator/max8649.c +4 -7
@@ -70,11 +70,6 @@ static inline int check_range(int min_uV, int max_uV)return 0 ; } -static int max8649_list_voltage (struct regulator_dev *rdev,unsigned index) -{ -return (MAX8649_DCDC_VMIN + index *MAX8649_DCDC_STEP ); -} -static int max8649_set_voltage (struct regulator_dev *rdev,int min_uV,int max_uV,unsigned *selector) {
@@ -135,7 +130,7 @@ static int max8649_enable_time(struct regulator_dev *rdev)if (ret !=0 )return ret; val &=MAX8649_VOL_MASK ; - voltage =max8649_list_voltage (rdev, (unsigned char )val);/* uV */ + voltage =regulator_list_voltage_linear (rdev, (unsigned char )val);/* get rate */ ret =regmap_read (info->regmap,MAX8649_RAMP , &val);
@@ -183,7 +178,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev)static struct regulator_ops max8649_dcdc_ops = { .set_voltage = max8649_set_voltage, .get_voltage_sel = regulator_get_voltage_sel_regmap, - .list_voltage = max8649_list_voltage, + .list_voltage = regulator_list_voltage_linear, .enable = max8649_enable, .disable = max8649_disable, .is_enabled = max8649_is_enabled,
@@ -200,6 +195,8 @@ static struct regulator_desc dcdc_desc = { .n_voltages = 1 << 6, .owner = THIS_MODULE, .vsel_mask = MAX8649_VOL_MASK, + .min_uV = MAX8649_DCDC_VMIN, + .uV_step = MAX8649_DCDC_STEP, };static struct regmap_config max8649_regmap_config = {
Signature · 1 line
1.7.5.4
PATCH 4/4 regulator: max8649: Convert to regulator_set_voltage_sel_regmap and regulator_map_voltage_linear
In reply to Axel LinSigned-off-by Axel Lin <[email protected]>
--- drivers/regulator/max8649.c | 22 ++-------------------- 1 files changed, 2 insertions(+), 20 deletions(-)
drivers/regulator/max8649.c +2 -20
@@ -70,25 +70,6 @@ static inline int check_range(int min_uV, int max_uV)return 0 ; } -static int max8649_set_voltage (struct regulator_dev *rdev, -int min_uV,int max_uV,unsigned *selector) -{ -struct max8649_regulator_info *info =rdev_get_drvdata (rdev); -unsigned char data, mask; - -if (check_range (min_uV, max_uV)) { -dev_err (info->dev,"invalid voltage range (%d, %d) uV\n" , - min_uV, max_uV); -return -EINVAL ; - } - data =DIV_ROUND_UP (min_uV -MAX8649_DCDC_VMIN ,MAX8649_DCDC_STEP ); - mask =MAX8649_VOL_MASK ; - *selector = data & mask; - -return regmap_update_bits (info->regmap, rdev->desc->vsel_reg, mask, - data); -} -/* EN_PD means pulldown on EN input */ static int max8649_enable (struct regulator_dev *rdev) {
@@ -176,9 +157,10 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev) }static struct regulator_ops max8649_dcdc_ops = { - .set_voltage = max8649_set_voltage, + .set_voltage_sel = regulator_set_voltage_sel_regmap, .get_voltage_sel = regulator_get_voltage_sel_regmap, .list_voltage = regulator_list_voltage_linear, + .map_voltage = regulator_map_voltage_linear, .enable = max8649_enable, .disable = max8649_disable, .is_enabled = max8649_is_enabled,
Signature · 1 line
1.7.5.4