power: pm8921-bms: report FCC
Since the BMS can calculate FCC based on the charge cycles and age, use it
to report ENERGY_FULL property in the power supply framework.
CRs-Fixed: 304029
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
diff --git a/drivers/power/pm8921-charger.c b/drivers/power/pm8921-charger.c
index 1b76401..62bdd58 100644
--- a/drivers/power/pm8921-charger.c
+++ b/drivers/power/pm8921-charger.c
@@ -737,6 +737,7 @@
POWER_SUPPLY_PROP_CAPACITY,
POWER_SUPPLY_PROP_CURRENT_NOW,
POWER_SUPPLY_PROP_TEMP,
+ POWER_SUPPLY_PROP_ENERGY_FULL,
};
static int get_prop_battery_mvolts(struct pm8921_chg_chip *chip)
@@ -778,6 +779,16 @@
}
}
+static int get_prop_batt_fcc(struct pm8921_chg_chip *chip)
+{
+ int rc;
+
+ rc = pm8921_bms_get_fcc();
+ if (rc < 0)
+ pr_err("unable to get batt fcc rc = %d\n", rc);
+ return rc;
+}
+
static int get_prop_batt_health(struct pm8921_chg_chip *chip)
{
int temp;
@@ -893,6 +904,9 @@
case POWER_SUPPLY_PROP_TEMP:
val->intval = get_prop_batt_temp(chip);
break;
+ case POWER_SUPPLY_PROP_ENERGY_FULL:
+ val->intval = get_prop_batt_fcc(chip);
+ break;
default:
return -EINVAL;
}