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>
This commit is contained in:
William Wu
2024-03-14 10:36:16 +01:00
committed by Kever Yang
parent 811323ffd4
commit d771597fbb

View File

@@ -901,7 +901,7 @@ static int switch_set_enable(struct udevice *dev, bool enable)
case RK809_ID: case RK809_ID:
mask = (1 << (sw + 2)) | (1 << (sw + 6)); mask = (1 << (sw + 2)) | (1 << (sw + 6));
ret = pmic_clrsetbits(dev->parent, RK817_POWER_EN(3), mask, ret = pmic_clrsetbits(dev->parent, RK817_POWER_EN(3), mask,
enable ? mask : 0); enable ? mask : (1 << (sw + 6)));
break; break;
case RK818_ID: case RK818_ID:
mask = 1 << 6; mask = 1 << 6;