[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210616011816.3479406-1-axel.lin@ingics.com>
Date: Wed, 16 Jun 2021 09:18:16 +0800
From: Axel Lin <axel.lin@...ics.com>
To: Mark Brown <broonie@...nel.org>
Cc: ChiYuan Huang <cy_huang@...htek.com>,
Liam Girdwood <lgirdwood@...il.com>,
linux-kernel@...r.kernel.org, Axel Lin <axel.lin@...ics.com>
Subject: [PATCH] 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@...ics.com>
---
Hi ChiYuan,
I think fix it this way make the intention more clear.
drivers/regulator/rt6160-regulator.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/regulator/rt6160-regulator.c b/drivers/regulator/rt6160-regulator.c
index ccd023da4318..5d7b0e7ad69a 100644
--- a/drivers/regulator/rt6160-regulator.c
+++ b/drivers/regulator/rt6160-regulator.c
@@ -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);
}
--
2.25.1
Powered by blists - more mailing lists