diff options
-rw-r--r-- | common/charge_state_v2.c | 15 |
1 files 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; |