aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshengfei Xu <xsf@rock-chips.com>2023-08-21 22:30:26 +0000
committerKever Yang <kever.yang@rock-chips.com>2023-10-07 16:49:41 +0800
commitbb657ffdd688dc08073734a402914ec0a8492d53 (patch)
tree57c8ada33666b10d119f025eeac3b44782ca23e8
parent04c38c6c4936f353de36be60655f402922292a37 (diff)
downloadu-boot-bb657ffdd688dc08073734a402914ec0a8492d53.zip
u-boot-bb657ffdd688dc08073734a402914ec0a8492d53.tar.gz
u-boot-bb657ffdd688dc08073734a402914ec0a8492d53.tar.bz2
regulator: rk8xx: Return correct voltage for switchout converters
The voltage value for switchout converters is always reported as 0 uV. When the switch is enabled, it's voltage is same as input supply. Fix this by implementing get_value for switchout converters. Fixes: ee30068fa574 ("power: pmic: rk809: support rk809 pmic") Signed-off-by: shengfei Xu <xsf@rock-chips.com> [jonas@kwiboo.se: fix checkpatch error, update commit message] Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
-rw-r--r--drivers/power/regulator/rk8xx.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/power/regulator/rk8xx.c b/drivers/power/regulator/rk8xx.c
index 9444daa..e80bd6c 100644
--- a/drivers/power/regulator/rk8xx.c
+++ b/drivers/power/regulator/rk8xx.c
@@ -1032,6 +1032,25 @@ static int switch_get_suspend_enable(struct udevice *dev)
*/
static int switch_get_value(struct udevice *dev)
{
+ static const char * const supply_name_rk809[] = {
+ "vcc9-supply",
+ "vcc8-supply",
+ };
+ struct rk8xx_priv *priv = dev_get_priv(dev->parent);
+ struct udevice *supply;
+ int id = dev->driver_data - 1;
+
+ if (!switch_get_enable(dev))
+ return 0;
+
+ if (priv->variant == RK809_ID) {
+ if (!uclass_get_device_by_phandle(UCLASS_REGULATOR,
+ dev->parent,
+ supply_name_rk809[id],
+ &supply))
+ return regulator_get_value(supply);
+ }
+
return 0;
}