]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
regulator: rk8xx: Return correct voltage for switchout converters
authorshengfei Xu <xsf@rock-chips.com>
Mon, 21 Aug 2023 22:30:26 +0000 (22:30 +0000)
committerKever Yang <kever.yang@rock-chips.com>
Sat, 7 Oct 2023 08:49:41 +0000 (16:49 +0800)
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>
drivers/power/regulator/rk8xx.c

index 9444daa85c197837081e99b879ef224793406fea..e80bd6c37230efed0fda392575682b3cdbaf59d5 100644 (file)
@@ -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;
 }