mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
bq27x00_battery: Fix reporting status value for bq27500 battery
Signed-off-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
This commit is contained in:
parent
d149e98e02
commit
270968c098
1 changed files with 9 additions and 4 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue