diff options
author | shengfei Xu <xsf@rock-chips.com> | 2023-08-21 22:30:26 +0000 |
---|---|---|
committer | Kever Yang <kever.yang@rock-chips.com> | 2023-10-07 16:49:41 +0800 |
commit | bb657ffdd688dc08073734a402914ec0a8492d53 (patch) | |
tree | 57c8ada33666b10d119f025eeac3b44782ca23e8 | |
parent | 04c38c6c4936f353de36be60655f402922292a37 (diff) | |
download | u-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.c | 19 |
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; } |