aboutsummaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorWilliam Wu <william.wu@rock-chips.com>2024-03-14 10:36:16 +0100
committerKever Yang <kever.yang@rock-chips.com>2024-03-14 18:19:44 +0800
commitd771597fbbade5c45ca6e0956ec3120b2d9bdce0 (patch)
tree4b27e8244590d0b470b1921671e3f3a9c0091d7f /drivers/power
parent811323ffd460ce6e54846c872df1ea157adf5ea8 (diff)
downloadu-boot-d771597fbbade5c45ca6e0956ec3120b2d9bdce0.zip
u-boot-d771597fbbade5c45ca6e0956ec3120b2d9bdce0.tar.gz
u-boot-d771597fbbade5c45ca6e0956ec3120b2d9bdce0.tar.bz2
regulator: rk8xx: fix SWITCH enable on RK809
On RK809 in PMIC_POWER_ENX registers, in order to set or clear a bit N, the bit at offset N + 4 needs to be set otherwise nothing is done. This fixes the inability to modify the SWITCH state on RK809. Cc: Quentin Schulz <foss+uboot@0leil.net> Signed-off-by: William Wu <william.wu@rock-chips.com> [reworded commit log] Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/regulator/rk8xx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/power/regulator/rk8xx.c b/drivers/power/regulator/rk8xx.c
index 97d73ac..e905df3 100644
--- a/drivers/power/regulator/rk8xx.c
+++ b/drivers/power/regulator/rk8xx.c
@@ -901,7 +901,7 @@ static int switch_set_enable(struct udevice *dev, bool enable)
case RK809_ID:
mask = (1 << (sw + 2)) | (1 << (sw + 6));
ret = pmic_clrsetbits(dev->parent, RK817_POWER_EN(3), mask,
- enable ? mask : 0);
+ enable ? mask : (1 << (sw + 6)));
break;
case RK818_ID:
mask = 1 << 6;