diff options
-rw-r--r-- | drivers/power/bq27x00_battery.c | 7 |
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 | } |