|
@@ -54,6 +54,7 @@
|
|
|
#define BQ27000_REG_RSOC 0x0B /* Relative State-of-Charge */
|
|
|
#define BQ27000_REG_ILMD 0x76 /* Initial last measured discharge */
|
|
|
#define BQ27000_FLAG_CHGS BIT(7)
|
|
|
+#define BQ27000_FLAG_FC BIT(5)
|
|
|
|
|
|
#define BQ27500_REG_SOC 0x2c
|
|
|
#define BQ27500_REG_DCAP 0x3C /* Design capacity */
|
|
@@ -365,8 +366,12 @@ static int bq27x00_battery_status(struct bq27x00_device_info *di,
|
|
|
else
|
|
|
status = POWER_SUPPLY_STATUS_CHARGING;
|
|
|
} else {
|
|
|
- if (di->cache.flags & BQ27000_FLAG_CHGS)
|
|
|
+ if (di->cache.flags & BQ27000_FLAG_FC)
|
|
|
+ status = POWER_SUPPLY_STATUS_FULL;
|
|
|
+ else if (di->cache.flags & BQ27000_FLAG_CHGS)
|
|
|
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_DISCHARGING;
|
|
|
}
|