Commit 546e7845 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown

regulator: Fix setting new voltage in s5m8767_set_voltage

Current code does not really update the register with new value, fix it.
I rename the variable i to sel for better readability.
Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Acked-by: default avatarSangbeom Kim <sbkim73@samsung.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 5f12760d
...@@ -311,8 +311,7 @@ static int s5m8767_set_voltage(struct regulator_dev *rdev, ...@@ -311,8 +311,7 @@ static int s5m8767_set_voltage(struct regulator_dev *rdev,
struct s5m8767_info *s5m8767 = rdev_get_drvdata(rdev); struct s5m8767_info *s5m8767 = rdev_get_drvdata(rdev);
const struct s5m_voltage_desc *desc; const struct s5m_voltage_desc *desc;
int reg_id = rdev_get_id(rdev); int reg_id = rdev_get_id(rdev);
int reg, mask, ret; int sel, reg, mask, ret;
int i;
u8 val; u8 val;
switch (reg_id) { switch (reg_id) {
...@@ -333,19 +332,20 @@ static int s5m8767_set_voltage(struct regulator_dev *rdev, ...@@ -333,19 +332,20 @@ static int s5m8767_set_voltage(struct regulator_dev *rdev,
desc = reg_voltage_map[reg_id]; desc = reg_voltage_map[reg_id];
i = s5m8767_convert_voltage_to_sel(desc, min_uV, max_uV); sel = s5m8767_convert_voltage_to_sel(desc, min_uV, max_uV);
if (i < 0) if (sel < 0)
return i; return sel;
ret = s5m8767_get_voltage_register(rdev, &reg); ret = s5m8767_get_voltage_register(rdev, &reg);
if (ret) if (ret)
return ret; return ret;
s5m_reg_read(s5m8767->iodev, reg, &val); s5m_reg_read(s5m8767->iodev, reg, &val);
val = val & mask; val &= ~mask;
val |= sel;
ret = s5m_reg_write(s5m8767->iodev, reg, val); ret = s5m_reg_write(s5m8767->iodev, reg, val);
*selector = i; *selector = sel;
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment