[PATCH V2 3/4] power: supply: rk817-charger: Clear SYS_CAN_SD register by default
Chris Morgan
macroalpha82 at gmail.com
Mon Nov 2 06:39:41 PST 2026
From: Chris Morgan <macromorgan at hotmail.com>
The BSP driver for the rk817 charger by default clears the SYS_CAN_SD.
This register tells the PMIC that the system voltage can be shut down in
battery off mode. Though the BSP driver also included a way to bypass
this behavior, no boards have been observed using the override.
When this register is not cleared, it can result in a persistent power
drain on certain devices while the device is off, as observed by users.
Fixes: 11cb8da0189b ("power: supply: Add charger driver for Rockchip RK817")
Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
Suggested-by: Zetarancio <zetarancio at users.noreply.github.com>
---
drivers/power/supply/rk817_charger.c | 9 +++++++++
include/linux/mfd/rk808.h | 1 +
2 files changed, 10 insertions(+)
diff --git a/drivers/power/supply/rk817_charger.c b/drivers/power/supply/rk817_charger.c
index 0c7287ad27c6..d7d367211d5e 100644
--- a/drivers/power/supply/rk817_charger.c
+++ b/drivers/power/supply/rk817_charger.c
@@ -1166,6 +1166,15 @@ static int rk817_battery_init(struct rk817_charger *charger,
regmap_write_bits(rk808->regmap, RK817_PMIC_CHRG_IN, RK817_USB_ILIM_EN,
(0x01 << 3));
+ /*
+ * Do not shut down the system voltage in bat_off mode. The BSP driver
+ * cleared this bit for all devices unless a specific device tree
+ * parameter was used, however I have yet to see such parameter on any
+ * device.
+ */
+ regmap_clear_bits(rk808->regmap,
+ RK817_PMIC_CHRG_TERM, RK817_SYS_CAN_SD);
+
return 0;
}
diff --git a/include/linux/mfd/rk808.h b/include/linux/mfd/rk808.h
index 72419d311626..2bc58de53d82 100644
--- a/include/linux/mfd/rk808.h
+++ b/include/linux/mfd/rk808.h
@@ -1297,6 +1297,7 @@ enum rk809_reg_id {
#define RK817_USB_ILIM_EN (0x01 << 3)
#define RK817_USB_ILIM_SEL (0x07 << 0)
#define RK817_PMIC_CHRG_TERM 0xe6
+#define RK817_SYS_CAN_SD (0x01 << 7)
#define RK817_CHRG_TERM_ANA_DIG (0x01 << 2)
#define RK817_CHRG_TERM_ANA_SEL (0x03 << 0)
#define RK817_CHRG_EN (0x01 << 6)
--
2.53.0
More information about the Linux-rockchip
mailing list