mirror of
https://github.com/torvalds/linux.git
synced 2024-11-02 02:01:29 +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
@ -62,10 +62,11 @@
|
|||||||
|
|
||||||
#define BQ27500_REG_SOC 0x2C
|
#define BQ27500_REG_SOC 0x2C
|
||||||
#define BQ27500_REG_DCAP 0x3C /* Design capacity */
|
#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_SOCF BIT(1) /* State-of-Charge threshold final */
|
||||||
#define BQ27500_FLAG_SOC1 BIT(2) /* State-of-Charge threshold 1 */
|
#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 */
|
#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->chip == BQ27500) {
|
||||||
if (di->cache.flags & BQ27500_FLAG_FC)
|
if (di->cache.flags & BQ27500_FLAG_FC)
|
||||||
status = POWER_SUPPLY_STATUS_FULL;
|
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;
|
status = POWER_SUPPLY_STATUS_DISCHARGING;
|
||||||
else
|
else if (di->cache.flags & BQ27500_FLAG_CHG)
|
||||||
status = POWER_SUPPLY_STATUS_CHARGING;
|
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 {
|
} else {
|
||||||
if (di->cache.flags & BQ27000_FLAG_FC)
|
if (di->cache.flags & BQ27000_FLAG_FC)
|
||||||
status = POWER_SUPPLY_STATUS_FULL;
|
status = POWER_SUPPLY_STATUS_FULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user