regulator: rt6160: Fix setting suspend voltage
The vsel active level is for the normal voltage, the opposite level is the suspend voltage. Signed-off-by: Axel Lin <axel.lin@ingics.com> Reviewed-by: ChiYuan Huang <cy_huang@richtek.com> Link: https://lore.kernel.org/r/20210616011816.3479406-1-axel.lin@ingics.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
70d654ea3d
commit
512d895664
|
@ -128,13 +128,19 @@ static unsigned int rt6160_get_mode(struct regulator_dev *rdev)
|
|||
static int rt6160_set_suspend_voltage(struct regulator_dev *rdev, int uV)
|
||||
{
|
||||
struct regmap *regmap = rdev_get_regmap(rdev);
|
||||
unsigned int suspend_vsel_reg;
|
||||
int vsel;
|
||||
|
||||
vsel = regulator_map_voltage_linear(rdev, uV, uV);
|
||||
if (vsel < 0)
|
||||
return vsel;
|
||||
|
||||
return regmap_update_bits(regmap, rdev->desc->vsel_reg,
|
||||
if (rdev->desc->vsel_reg == RT6160_REG_VSELL)
|
||||
suspend_vsel_reg = RT6160_REG_VSELH;
|
||||
else
|
||||
suspend_vsel_reg = RT6160_REG_VSELL;
|
||||
|
||||
return regmap_update_bits(regmap, suspend_vsel_reg,
|
||||
RT6160_VSEL_MASK, vsel);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue