regulator: Make s5m8767_get_voltage_register always return correct register
PATCH 1/1 regulator: Make s5m8767_get_voltage_register always return correct register
Check s5m8767->buck[2|3|4]_gpiodvs status in s5m8767_get_voltage_register and return correct register accordingly.
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/s5m8767.c | 27 +++++++++------------------ 1 files changed, 9 insertions(+), 18 deletions(-)
drivers/regulator/s5m8767.c +9 -18
@@ -219,6 +219,7 @@ static int s5m8767_reg_disable(struct regulator_dev *rdev)static int s5m8767_get_voltage_register (struct regulator_dev *rdev,int *_reg) { +struct s5m8767_info *s5m8767 =rdev_get_drvdata (rdev);int reg_id =rdev_get_id (rdev);int reg;
@@ -234,12 +235,18 @@ static int s5m8767_get_voltage_register(struct regulator_dev *rdev, int *_reg)break ;case S5M8767_BUCK2 : reg =S5M8767_REG_BUCK2DVS1 ; +if (s5m8767->buck2_gpiodvs) + reg += s5m8767->buck_gpioindex;break ;case S5M8767_BUCK3 : reg =S5M8767_REG_BUCK3DVS1 ; +if (s5m8767->buck3_gpiodvs) + reg += s5m8767->buck_gpioindex;break ;case S5M8767_BUCK4 : reg =S5M8767_REG_BUCK4DVS1 ; +if (s5m8767->buck4_gpiodvs) + reg += s5m8767->buck_gpioindex;break ;case S5M8767_BUCK5 : reg =S5M8767_REG_BUCK5CTRL2 ;
@@ -259,7 +266,7 @@ static int s5m8767_get_voltage_register(struct regulator_dev *rdev, int *_reg)static int s5m8767_get_voltage_sel (struct regulator_dev *rdev) {struct s5m8767_info *s5m8767 =rdev_get_drvdata (rdev); -int reg, mask =0xff , ret; +int reg, mask, ret;int reg_id =rdev_get_id (rdev);u8 val;
@@ -267,23 +274,7 @@ static int s5m8767_get_voltage_sel(struct regulator_dev *rdev)if (ret)return ret; -switch (reg_id) { - case S5M8767_LDO1 ... S5M8767_LDO28: - mask =0x3f ; -break ; -case S5M8767_BUCK2 : -if (s5m8767->buck2_gpiodvs) - reg += s5m8767->buck_gpioindex; -break ; -case S5M8767_BUCK3 : -if (s5m8767->buck3_gpiodvs) - reg += s5m8767->buck_gpioindex; -break ; -case S5M8767_BUCK4 : -if (s5m8767->buck4_gpiodvs) - reg += s5m8767->buck_gpioindex; -break ; - } + mask = (reg_id <S5M8767_BUCK1 ) ?0x3f :0xff ; ret =s5m_reg_read (s5m8767->iodev, reg, &val);if (ret)
Signature · 1 line
1.7.5.4
Quoted 2 lines · Axel Lin
Check s5m8767->buck[2|3|4]_gpiodvs status in
s5m8767_get_voltage_registerand return correct register accordingly.
Acked-by Sangbeom Kim <[email protected]>
Thanks,
Sangbeom.
Mark Brown
AppliedQuoted 2 lines · Axel Lin
Check s5m8767->buck[2|3|4]_gpiodvs status in
s5m8767_get_voltage_registerand return correct register accordingly.
Applied, thanks.