Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -311,8 +311,7 @@ static int s5m8767_set_voltage(struct regulator_dev *rdev,
	struct s5m8767_info *s5m8767 = rdev_get_drvdata(rdev);
	const struct s5m_voltage_desc *desc;
	int reg_id = rdev_get_id(rdev);
	int reg, mask, ret;
	int i;
	int sel, reg, mask, ret;
	u8 val;

	switch (reg_id) {
@@ -333,19 +332,20 @@ static int s5m8767_set_voltage(struct regulator_dev *rdev,

	desc = reg_voltage_map[reg_id];

	i = s5m8767_convert_voltage_to_sel(desc, min_uV, max_uV);
	if (i < 0)
		return i;
	sel = s5m8767_convert_voltage_to_sel(desc, min_uV, max_uV);
	if (sel < 0)
		return sel;

	ret = s5m8767_get_voltage_register(rdev, &reg);
	if (ret)
		return ret;

	s5m_reg_read(s5m8767->iodev, reg, &val);
	val = val & mask;
	val &= ~mask;
	val |= sel;

	ret = s5m_reg_write(s5m8767->iodev, reg, val);
	*selector = i;
	*selector = sel;

	return ret;
}