[PATCH V2 1/4] power: supply: rk817-charger: Fix NVRAM SoC Value
Chris Morgan
macroalpha82 at gmail.com
Mon Nov 2 06:39:39 PST 2026
From: Chris Morgan <macromorgan at hotmail.com>
The NVRAM value is stored as a value between 0 (0%) and 100000 (100%),
but the bounds checking checks and truncates with a max of 10000,
causing a value of 100% to get read as 10%.
Fixes: 11cb8da0189b ("power: supply: Add charger driver for Rockchip RK817")
Suggested-by: Jacob Cook <jacobmcook1984 at gmail.com>
Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
---
drivers/power/supply/rk817_charger.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/power/supply/rk817_charger.c b/drivers/power/supply/rk817_charger.c
index 5558b182a1a6..86da0462fb59 100644
--- a/drivers/power/supply/rk817_charger.c
+++ b/drivers/power/supply/rk817_charger.c
@@ -728,7 +728,7 @@ static int rk817_read_battery_nvram_values(struct rk817_charger *charger)
/*
* Read the nvram for state of charge. Sanity check for values greater
- * than 100 (10000) or less than 0, because other things (BSP kernels,
+ * than 100 (100000) or less than 0, because other things (BSP kernels,
* U-Boot, or even i2cset) can write to this register. If the value is
* off it should get corrected automatically when the voltage drops to
* the min (soc is 0) or when the battery is full (soc is 100).
@@ -738,8 +738,8 @@ static int rk817_read_battery_nvram_values(struct rk817_charger *charger)
if (ret < 0)
return ret;
charger->soc = get_unaligned_le24(bulk_reg);
- if (charger->soc > 10000)
- charger->soc = 10000;
+ if (charger->soc > 100000)
+ charger->soc = 100000;
if (charger->soc < 0)
charger->soc = 0;
--
2.53.0
More information about the Linux-rockchip
mailing list