]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
power: supply: sc27xx: Allow to change the battery full capacity
authorYuanjiang Yu <yuanjiang.yu@unisoc.com>
Mon, 20 Apr 2020 03:42:05 +0000 (11:42 +0800)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 28 Apr 2020 19:24:06 +0000 (21:24 +0200)
The battery full capacity can be affected by the temperature or the
servicing time or other factors, so some platforms will track the
real battery full capacity in charger manager service. Thus we should
allow to change the battery full capacity by setting the
'POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN' property as writeable.

Signed-off-by: Yuanjiang Yu <yuanjiang.yu@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang7@gmail.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/sc27xx_fuel_gauge.c

index 9dcd55f1d9f3b8e32cc1d1c9c80c3f151ceadcc3..5970d4a780160a4ca54664edd6926b4a6985ba8f 100644 (file)
@@ -656,6 +656,11 @@ static int sc27xx_fgu_set_property(struct power_supply *psy,
                ret = 0;
                break;
 
+       case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
+               data->total_cap = val->intval / 1000;
+               ret = 0;
+               break;
+
        default:
                ret = -EINVAL;
        }
@@ -676,7 +681,8 @@ static int sc27xx_fgu_property_is_writeable(struct power_supply *psy,
                                            enum power_supply_property psp)
 {
        return psp == POWER_SUPPLY_PROP_CAPACITY ||
-               psp == POWER_SUPPLY_PROP_CALIBRATE;
+               psp == POWER_SUPPLY_PROP_CALIBRATE ||
+               psp == POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN;
 }
 
 static enum power_supply_property sc27xx_fgu_props[] = {