diff options
| author | Todd Poynor <toddpoynor@google.com> | 2014-09-23 18:35:25 -0700 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2017-12-13 21:48:41 +0100 |
| commit | e286a8c13178f9420888869c3c2ef11c40ba6fca (patch) | |
| tree | f6704c87b40433e2b235c18d4fb3dcd725204b1f /drivers | |
| parent | 8a9f5ad001ed36fc7d6a70d25cffb6f06116ec09 (diff) | |
power: mediatek: send battery cold/overheat health status to userspace
Change-Id: I4daba069df9fe64f44f4ef064478e7b3a37f9f13
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/power/mediatek/battery_common.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/power/mediatek/battery_common.c b/drivers/power/mediatek/battery_common.c index e5a672ac4..2aa5a14f4 100644 --- a/drivers/power/mediatek/battery_common.c +++ b/drivers/power/mediatek/battery_common.c @@ -1870,7 +1870,17 @@ static void battery_update(struct battery_data *bat_data) kal_bool resetBatteryMeter = KAL_FALSE; bat_data->BAT_TECHNOLOGY = POWER_SUPPLY_TECHNOLOGY_LION; - bat_data->BAT_HEALTH = POWER_SUPPLY_HEALTH_GOOD; + + if (BMT_status.temperature == ERR_CHARGE_TEMPERATURE) { + bat_data->BAT_HEALTH = POWER_SUPPLY_HEALTH_UNSPEC_FAILURE; + } else if (BMT_status.temperature < MIN_CHARGE_TEMPERATURE) { + bat_data->BAT_HEALTH = POWER_SUPPLY_HEALTH_COLD; + } else if (BMT_status.temperature >= MAX_CHARGE_TEMPERATURE) { + bat_data->BAT_HEALTH = POWER_SUPPLY_HEALTH_OVERHEAT; + } else { + bat_data->BAT_HEALTH = POWER_SUPPLY_HEALTH_GOOD; + } + bat_data->BAT_batt_vol = BMT_status.bat_vol * 1000; bat_data->BAT_batt_temp = BMT_status.temperature * 10; bat_data->BAT_PRESENT = BMT_status.bat_exist; |
