power: supply: ltc2941-battery-gauge: Fix temperature units
authorLadislav Michl <ladis@linux-mips.org>
Thu, 22 Feb 2018 17:21:36 +0000 (18:21 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.co.uk>
Thu, 22 Feb 2018 20:28:16 +0000 (21:28 +0100)
Temperature is measured in tenths of degree Celsius.

Fixes: 085bc24d1553 ("Add LTC2941/LTC2943 Battery Gauge Driver")
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
drivers/power/supply/ltc2941-battery-gauge.c

index 4cfa3f0..cc7c516 100644 (file)
@@ -317,15 +317,15 @@ static int ltc294x_get_temperature(const struct ltc294x_info *info, int *val)
 
        if (info->id == LTC2942_ID) {
                reg = LTC2942_REG_TEMPERATURE_MSB;
-               value = 60000;  /* Full-scale is 600 Kelvin */
+               value = 6000  /* Full-scale is 600 Kelvin */
        } else {
                reg = LTC2943_REG_TEMPERATURE_MSB;
-               value = 51000;  /* Full-scale is 510 Kelvin */
+               value = 5100  /* Full-scale is 510 Kelvin */
        }
        ret = ltc294x_read_regs(info->client, reg, &datar[0], 2);
        value *= (datar[0] << 8) | datar[1];
-       /* Convert to centidegrees  */
-       *val = value / 0xFFFF - 27215;
+       /* Convert to tenths of degree Celsius */
+       *val = value / 0xFFFF - 2722;
        return ret;
 }