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

Commit 270968c0 authored by Pali Rohár's avatar Pali Rohár Committed by Anton Vorontsov
Browse files

bq27x00_battery: Fix reporting status value for bq27500 battery

parent d149e98e
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -62,10 +62,11 @@

#define BQ27500_REG_SOC			0x2C
#define BQ27500_REG_DCAP		0x3C /* Design capacity */
#define BQ27500_FLAG_DSC		BIT(0)
#define BQ27500_FLAG_DSG		BIT(0) /* Discharging */
#define BQ27500_FLAG_SOCF		BIT(1) /* State-of-Charge threshold final */
#define BQ27500_FLAG_SOC1		BIT(2) /* State-of-Charge threshold 1 */
#define BQ27500_FLAG_FC			BIT(9)
#define BQ27500_FLAG_CHG		BIT(8) /* Charging */
#define BQ27500_FLAG_FC			BIT(9) /* Fully charged */

#define BQ27000_RS			20 /* Resistor sense */

@@ -395,10 +396,14 @@ static int bq27x00_battery_status(struct bq27x00_device_info *di,
	if (di->chip == BQ27500) {
		if (di->cache.flags & BQ27500_FLAG_FC)
			status = POWER_SUPPLY_STATUS_FULL;
		else if (di->cache.flags & BQ27500_FLAG_DSC)
		else if (di->cache.flags & BQ27500_FLAG_DSG)
			status = POWER_SUPPLY_STATUS_DISCHARGING;
		else
		else if (di->cache.flags & BQ27500_FLAG_CHG)
			status = POWER_SUPPLY_STATUS_CHARGING;
		else if (power_supply_am_i_supplied(&di->bat))
			status = POWER_SUPPLY_STATUS_NOT_CHARGING;
		else
			status = POWER_SUPPLY_STATUS_UNKNOWN;
	} else {
		if (di->cache.flags & BQ27000_FLAG_FC)
			status = POWER_SUPPLY_STATUS_FULL;