max17042_battery: Bugfix of incorrect voltage register value interpretation
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Wed, 17 Aug 2011 01:18:34 +0000 (10:18 +0900)
committerAnton Vorontsov <cbouatmailru@gmail.com>
Fri, 19 Aug 2011 17:03:35 +0000 (21:03 +0400)
The calculation had error in getting voltage values from
MAX17042 registers. The least bit denotes 78.125uV (625/8).

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Philip Rakity <prakity@marvell.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
drivers/power/max17042_battery.c

index 61fb6d7..a6dc9c7 100644 (file)
@@ -111,12 +111,12 @@ static int max17042_get_property(struct power_supply *psy,
                val->intval *= 10000; /* Units of LSB = 10mV */
                break;
        case POWER_SUPPLY_PROP_VOLTAGE_NOW:
-               val->intval = max17042_read_reg(chip->client,
-                               MAX17042_VCELL) * 83; /* 1000 / 12 = 83 */
+               val->intval = max17042_read_reg(chip->client, MAX17042_VCELL)
+                           * 625 / 8;
                break;
        case POWER_SUPPLY_PROP_VOLTAGE_AVG:
-               val->intval = max17042_read_reg(chip->client,
-                               MAX17042_AvgVCELL) * 83;
+               val->intval = max17042_read_reg(chip->client, MAX17042_AvgVCELL)
+                           * 625 / 8;
                break;
        case POWER_SUPPLY_PROP_CAPACITY:
                val->intval = max17042_read_reg(chip->client,