max17042_battery: Fix CHARGE_FULL representation.
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Wed, 14 Mar 2012 02:00:01 +0000 (03:00 +0100)
committerAnton Vorontsov <anton.vorontsov@linaro.org>
Mon, 26 Mar 2012 16:41:25 +0000 (20:41 +0400)
CHARGE_FULL should represent the full capacity of the battery in uAh.
The 0x10 (FullCAP) register shows the compensated full capacity in
mAh * 2; e.g., reg(0x10) = 0xBB8 means that it is 1500mAh.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
drivers/power/max17042_battery.c

index 5474e76..d576912 100644 (file)
@@ -179,14 +179,11 @@ static int max17042_get_property(struct power_supply *psy,
                val->intval = ret >> 8;
                break;
        case POWER_SUPPLY_PROP_CHARGE_FULL:
-               ret = max17042_read_reg(chip->client, MAX17042_RepSOC);
+               ret = max17042_read_reg(chip->client, MAX17042_FullCAP);
                if (ret < 0)
                        return ret;
 
-               if ((ret >> 8) >= MAX17042_BATTERY_FULL)
-                       val->intval = 1;
-               else if (ret >= 0)
-                       val->intval = 0;
+               val->intval = ret * 1000 / 2;
                break;
        case POWER_SUPPLY_PROP_TEMP:
                ret = max17042_read_reg(chip->client, MAX17042_TEMP);