aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/power/bq27x00_battery.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c
index 0e99d02dea33..003be5f1c785 100644
--- a/drivers/power/bq27x00_battery.c
+++ b/drivers/power/bq27x00_battery.c
@@ -54,6 +54,7 @@
54#define BQ27000_REG_RSOC 0x0B /* Relative State-of-Charge */ 54#define BQ27000_REG_RSOC 0x0B /* Relative State-of-Charge */
55#define BQ27000_REG_ILMD 0x76 /* Initial last measured discharge */ 55#define BQ27000_REG_ILMD 0x76 /* Initial last measured discharge */
56#define BQ27000_FLAG_CHGS BIT(7) 56#define BQ27000_FLAG_CHGS BIT(7)
57#define BQ27000_FLAG_FC BIT(5)
57 58
58#define BQ27500_REG_SOC 0x2c 59#define BQ27500_REG_SOC 0x2c
59#define BQ27500_REG_DCAP 0x3C /* Design capacity */ 60#define BQ27500_REG_DCAP 0x3C /* Design capacity */
@@ -365,8 +366,12 @@ static int bq27x00_battery_status(struct bq27x00_device_info *di,
365 else 366 else
366 status = POWER_SUPPLY_STATUS_CHARGING; 367 status = POWER_SUPPLY_STATUS_CHARGING;
367 } else { 368 } else {
368 if (di->cache.flags & BQ27000_FLAG_CHGS) 369 if (di->cache.flags & BQ27000_FLAG_FC)
370 status = POWER_SUPPLY_STATUS_FULL;
371 else if (di->cache.flags & BQ27000_FLAG_CHGS)
369 status = POWER_SUPPLY_STATUS_CHARGING; 372 status = POWER_SUPPLY_STATUS_CHARGING;
373 else if (power_supply_am_i_supplied(&di->bat))
374 status = POWER_SUPPLY_STATUS_NOT_CHARGING;
370 else 375 else
371 status = POWER_SUPPLY_STATUS_DISCHARGING; 376 status = POWER_SUPPLY_STATUS_DISCHARGING;
372 } 377 }