power: supply: bq27xxx: fix sign of current_now for newer ICs
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Wed, 3 Mar 2021 09:54:18 +0000 (10:54 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 15 Mar 2021 01:26:03 +0000 (02:26 +0100)
Commit cd060b4d0868 ("power: supply: bq27xxx: fix polarity of current_now")
changed the sign of current_now for all bq27xxx variants, but on BQ28Z610
I'm now seeing negated values *with* that patch.

The GTA04/Openmoko device that was used for testing uses a BQ27000 or
BQ27010 IC, so I assume only the BQ27XXX_O_ZERO code path was incorrect.
Revert the behaviour for newer ICs.

Fixes: cd060b4d0868 "power: supply: bq27xxx: fix polarity of current_now"
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/bq27xxx_battery.c

index 4c4a7b1c64c574d56b783114d7b7cead20d169e9..cb6ebd2f905e6f7dc3f7d7b24920cd14db153d64 100644 (file)
@@ -1827,7 +1827,7 @@ static int bq27xxx_battery_current(struct bq27xxx_device_info *di,
                val->intval = curr * BQ27XXX_CURRENT_CONSTANT / BQ27XXX_RS;
        } else {
                /* Other gauges return signed value */
-               val->intval = -(int)((s16)curr) * 1000;
+               val->intval = (int)((s16)curr) * 1000;
        }
 
        return 0;