From aab3448bb85abab2e56ddef510d976c5ed549c4c Mon Sep 17 00:00:00 2001 From: "YongBeum.Ha" Date: Fri, 22 Nov 2019 22:54:28 +0900 Subject: battery : differentiate overtemperature condition Battery charging is stopped over 55'C during charging and started below 45'C. BUG=b:140596424 BRANCH=hatch TEST=make -j BOARD=kohaku && ./util/flash_ec --board=kohaku check charging status & led on chamber Change-Id: Ib4a8ba5236d107397db904ca7075f0d0f29dd724 Signed-off-by: YongBeum.Ha Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1928539 Tested-by: YongBeum Ha Reviewed-by: Shelley Chen Reviewed-by: Paul Fagerburg --- common/charge_state_v2.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index 5a383373af..54d21a97a4 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -1483,12 +1483,23 @@ static int battery_outside_charging_temperature(void) const struct battery_info *batt_info = battery_get_info(); /* battery temp in 0.1 deg C */ int batt_temp_c = DECI_KELVIN_TO_CELSIUS(curr.batt.temperature); + int max_c, min_c; if (curr.batt.flags & BATT_FLAG_BAD_TEMPERATURE) return 0; - if ((batt_temp_c > batt_info->charging_max_c) || - (batt_temp_c < batt_info->charging_min_c)) { + if((curr.batt.desired_voltage == 0) && + (curr.batt.desired_current == 0)){ + max_c = batt_info->start_charging_max_c; + min_c = batt_info->start_charging_min_c; + } else { + max_c = batt_info->charging_max_c; + min_c = batt_info->charging_min_c; + } + + + if ((batt_temp_c >= max_c) || + (batt_temp_c <= min_c)) { return 1; } return 0; -- cgit v1.2.1