power: supply: sc27xx: Add POWER_SUPPLY_PROP_CHARGE_NOW attribute
authorBaolin Wang <baolin.wang7@gmail.com>
Fri, 14 Feb 2020 05:38:58 +0000 (13:38 +0800)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 24 Feb 2020 17:09:30 +0000 (18:09 +0100)
Add the POWER_SUPPLY_PROP_CHARGE_NOW attribute to allow user to get
current battery capacity (uAh) to do measurement.

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 469c83f..a7c8a84 100644 (file)
@@ -614,6 +614,17 @@ static int sc27xx_fgu_get_property(struct power_supply *psy,
                val->intval = data->total_cap * 1000;
                break;
 
+       case POWER_SUPPLY_PROP_CHARGE_NOW:
+               ret = sc27xx_fgu_get_clbcnt(data, &value);
+               if (ret)
+                       goto error;
+
+               value = DIV_ROUND_CLOSEST(value * 10,
+                                         36 * SC27XX_FGU_SAMPLE_HZ);
+               val->intval = sc27xx_fgu_adc_to_current(data, value);
+
+               break;
+
        default:
                ret = -EINVAL;
                break;
@@ -682,6 +693,7 @@ static enum power_supply_property sc27xx_fgu_props[] = {
        POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE,
        POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
        POWER_SUPPLY_PROP_CALIBRATE,
+       POWER_SUPPLY_PROP_CHARGE_NOW
 };
 
 static const struct power_supply_desc sc27xx_fgu_desc = {