Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5662340a authored by Vamshi Krishna B V's avatar Vamshi Krishna B V
Browse files

power: qpnp-fg-gen3: Add CYCLE_COUNT property



Currently, CYCLE_COUNTS property shows the bucket cycle
counters as a string. Add CYCLE_COUNT property in FG that
can provide an average of all the bucket counters.

CRs-Fixed: 2319085
Change-Id: I8e43fbdd310487adac00303b1675280685be0bcb
Signed-off-by: default avatarVamshi Krishna B V <vbv@codeaurora.org>
parent 30545cd5
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -2739,7 +2739,25 @@ static void fg_cycle_counter_update(struct fg_chip *chip)
	mutex_unlock(&chip->cyc_ctr.lock);
}

static const char *fg_get_cycle_count(struct fg_chip *chip)
static int fg_get_cycle_count(struct fg_chip *chip)
{
	int i, len = 0;

	if (!chip->cyc_ctr.en)
		return 0;

	mutex_lock(&chip->cyc_ctr.lock);
	for (i = 0; i < BUCKET_COUNT; i++)
		len += chip->cyc_ctr.count[i];

	mutex_unlock(&chip->cyc_ctr.lock);

	len = len / BUCKET_COUNT;

	return len;
}

static const char *fg_get_cycle_counts(struct fg_chip *chip)
{
	int i, len = 0;
	char *buf;
@@ -4028,8 +4046,11 @@ static int fg_psy_get_property(struct power_supply *psy,
	case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
		pval->intval = chip->bp.float_volt_uv;
		break;
	case POWER_SUPPLY_PROP_CYCLE_COUNT:
		pval->intval = fg_get_cycle_count(chip);
		break;
	case POWER_SUPPLY_PROP_CYCLE_COUNTS:
		pval->strval = fg_get_cycle_count(chip);
		pval->strval = fg_get_cycle_counts(chip);
		break;
	case POWER_SUPPLY_PROP_CHARGE_NOW_RAW:
		rc = fg_get_charge_raw(chip, &pval->intval);
@@ -4248,6 +4269,7 @@ static enum power_supply_property fg_psy_props[] = {
	POWER_SUPPLY_PROP_BATTERY_TYPE,
	POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
	POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
	POWER_SUPPLY_PROP_CYCLE_COUNT,
	POWER_SUPPLY_PROP_CYCLE_COUNTS,
	POWER_SUPPLY_PROP_CHARGE_NOW_RAW,
	POWER_SUPPLY_PROP_CHARGE_NOW,