summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatti Vaittinen <mazziesaccount@gmail.com>2026-08-10 13:09:07 +0300
committerSebastian Reichel <sebastian.reichel@collabora.com>2026-08-12 23:12:32 +0200
commitd012fab12fed2053e0dca4c8cd4e2b2053afabfb (patch)
tree89afa5130cc13ef5fc59a3daa726dbb373e2605f
parentc15f0eabec5a051cb8190fa2bff3b211730f4acb (diff)
power: supply: bd71828: Fix current direction
Both the current and the average current registers contain same 'direction' -bit to denote the direction of the current. The code reading these registers incorrectly caches the direction read from the first register, and uses it also for the second. Fix this by initializing the direction bit for both register reads. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Fixes: 5bff79dad20a ("power: supply: Add bd718(15/28/78) charger driver") Tested-by: Andreas Kemnade <andreas@kemnade.info> # Kobo Clara 2e rev B Tested-by: Kalle Niemi <kaleposti@gmail.com> Link: https://patch.msgid.link/22c6816204b3f2a8b50df8171e384937822d195b.1786356145.git.mazziesaccount@gmail.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
-rw-r--r--drivers/power/supply/bd71828-power.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/power/supply/bd71828-power.c b/drivers/power/supply/bd71828-power.c
index e1ae5fe52e1d..9927a7e8934a 100644
--- a/drivers/power/supply/bd71828-power.c
+++ b/drivers/power/supply/bd71828-power.c
@@ -192,12 +192,13 @@ static int bd71828_get_current_ds_adc(struct bd71828_power *pwr, int *curr, int
{
__be16 tmp_curr;
char *tmp = (char *)&tmp_curr;
- int dir = 1;
int regs[] = { pwr->regs->ibat, pwr->regs->ibat_avg };
int *vals[] = { curr, curr_avg };
int ret, i;
- for (dir = 1, i = 0; i < ARRAY_SIZE(regs); i++) {
+ for (i = 0; i < ARRAY_SIZE(regs); i++) {
+ int dir = 1;
+
ret = regmap_bulk_read(pwr->regmap, regs[i], &tmp_curr,
sizeof(tmp_curr));
if (ret)