diff options
Diffstat (limited to 'drivers/power/lp8727_charger.c')
-rw-r--r-- | drivers/power/lp8727_charger.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/power/lp8727_charger.c b/drivers/power/lp8727_charger.c index 2507b2bb9df2..13a787adcbe9 100644 --- a/drivers/power/lp8727_charger.c +++ b/drivers/power/lp8727_charger.c | |||
@@ -336,15 +336,16 @@ static int lp8727_battery_get_property(struct power_supply *psy, | |||
336 | 336 | ||
337 | switch (psp) { | 337 | switch (psp) { |
338 | case POWER_SUPPLY_PROP_STATUS: | 338 | case POWER_SUPPLY_PROP_STATUS: |
339 | if (lp8727_is_charger_attached(psy->name, pchg->devid)) { | 339 | if (!lp8727_is_charger_attached(psy->name, pchg->devid)) { |
340 | lp8727_read_byte(pchg, LP8727_STATUS1, &read); | 340 | val->intval = POWER_SUPPLY_STATUS_DISCHARGING; |
341 | return 0; | ||
342 | } | ||
343 | |||
344 | lp8727_read_byte(pchg, LP8727_STATUS1, &read); | ||
341 | 345 | ||
342 | val->intval = (read & LP8727_CHGSTAT) == LP8727_STAT_EOC ? | 346 | val->intval = (read & LP8727_CHGSTAT) == LP8727_STAT_EOC ? |
343 | POWER_SUPPLY_STATUS_FULL : | 347 | POWER_SUPPLY_STATUS_FULL : |
344 | POWER_SUPPLY_STATUS_CHARGING; | 348 | POWER_SUPPLY_STATUS_CHARGING; |
345 | } else { | ||
346 | val->intval = POWER_SUPPLY_STATUS_DISCHARGING; | ||
347 | } | ||
348 | break; | 349 | break; |
349 | case POWER_SUPPLY_PROP_HEALTH: | 350 | case POWER_SUPPLY_PROP_HEALTH: |
350 | lp8727_read_byte(pchg, LP8727_STATUS2, &read); | 351 | lp8727_read_byte(pchg, LP8727_STATUS2, &read); |