diff options
-rw-r--r-- | drivers/power/bq27x00_battery.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c index a22124ab1e3b..c4c403e5542c 100644 --- a/drivers/power/bq27x00_battery.c +++ b/drivers/power/bq27x00_battery.c | |||
@@ -62,10 +62,11 @@ | |||
62 | 62 | ||
63 | #define BQ27500_REG_SOC 0x2C | 63 | #define BQ27500_REG_SOC 0x2C |
64 | #define BQ27500_REG_DCAP 0x3C /* Design capacity */ | 64 | #define BQ27500_REG_DCAP 0x3C /* Design capacity */ |
65 | #define BQ27500_FLAG_DSC BIT(0) | 65 | #define BQ27500_FLAG_DSG BIT(0) /* Discharging */ |
66 | #define BQ27500_FLAG_SOCF BIT(1) /* State-of-Charge threshold final */ | 66 | #define BQ27500_FLAG_SOCF BIT(1) /* State-of-Charge threshold final */ |
67 | #define BQ27500_FLAG_SOC1 BIT(2) /* State-of-Charge threshold 1 */ | 67 | #define BQ27500_FLAG_SOC1 BIT(2) /* State-of-Charge threshold 1 */ |
68 | #define BQ27500_FLAG_FC BIT(9) | 68 | #define BQ27500_FLAG_CHG BIT(8) /* Charging */ |
69 | #define BQ27500_FLAG_FC BIT(9) /* Fully charged */ | ||
69 | 70 | ||
70 | #define BQ27000_RS 20 /* Resistor sense */ | 71 | #define BQ27000_RS 20 /* Resistor sense */ |
71 | 72 | ||
@@ -395,10 +396,14 @@ static int bq27x00_battery_status(struct bq27x00_device_info *di, | |||
395 | if (di->chip == BQ27500) { | 396 | if (di->chip == BQ27500) { |
396 | if (di->cache.flags & BQ27500_FLAG_FC) | 397 | if (di->cache.flags & BQ27500_FLAG_FC) |
397 | status = POWER_SUPPLY_STATUS_FULL; | 398 | status = POWER_SUPPLY_STATUS_FULL; |
398 | else if (di->cache.flags & BQ27500_FLAG_DSC) | 399 | else if (di->cache.flags & BQ27500_FLAG_DSG) |
399 | status = POWER_SUPPLY_STATUS_DISCHARGING; | 400 | status = POWER_SUPPLY_STATUS_DISCHARGING; |
400 | else | 401 | else if (di->cache.flags & BQ27500_FLAG_CHG) |
401 | status = POWER_SUPPLY_STATUS_CHARGING; | 402 | status = POWER_SUPPLY_STATUS_CHARGING; |
403 | else if (power_supply_am_i_supplied(&di->bat)) | ||
404 | status = POWER_SUPPLY_STATUS_NOT_CHARGING; | ||
405 | else | ||
406 | status = POWER_SUPPLY_STATUS_UNKNOWN; | ||
402 | } else { | 407 | } else { |
403 | if (di->cache.flags & BQ27000_FLAG_FC) | 408 | if (di->cache.flags & BQ27000_FLAG_FC) |
404 | status = POWER_SUPPLY_STATUS_FULL; | 409 | status = POWER_SUPPLY_STATUS_FULL; |