diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2015-09-15 14:47:43 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2015-09-15 19:17:52 -0700 |
commit | 3154abd5c358527eecc385b67c4f0fd5f1a022ce (patch) | |
tree | 736ab7ad832fbf1eeb982ca4bff252537745b0fb /driver | |
parent | fa6359737129789af7f2a1db6b2e9c05c51038fb (diff) | |
download | chrome-ec-3154abd5c358527eecc385b67c4f0fd5f1a022ce.tar.gz |
ryu: put additional temperature checks for battery charging
Whatever the battery gas gauge returns, ensure we never charge below 0 C
and above 60 C.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=smaug
BUG=chrome-os-partner:44820
TEST=charge a Smaug DVT, use a cold spray on the battery and see the
charge stop.
Change-Id: I8670fbe1713b35aa079bebc9c5bb70e9f28cf8ac
Reviewed-on: https://chromium-review.googlesource.com/299945
Trybot-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
(cherry picked from commit 1d19259be3b0721667835ce01bfe719fb547785e)
Reviewed-on: https://chromium-review.googlesource.com/299906
Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/battery/ryu.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/driver/battery/ryu.c b/driver/battery/ryu.c index 867d4e34d2..cc945f9605 100644 --- a/driver/battery/ryu.c +++ b/driver/battery/ryu.c @@ -22,9 +22,9 @@ static const struct battery_info info = { .precharge_current = 64, /* mA */ /* Operational temperature range */ .start_charging_min_c = 0, - .start_charging_max_c = 45, + .start_charging_max_c = 60, .charging_min_c = 0, - .charging_max_c = 50, + .charging_max_c = 60, .discharging_min_c = -20, .discharging_max_c = 60, }; @@ -86,6 +86,15 @@ int charger_profile_override(struct charge_state_data *curr) * If temp reading was bad, use last range. */ if (!(curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE)) { + /* Don't charge if outside of allowable temperature range */ + if (temp_c >= info.charging_max_c * 10 || + temp_c < info.charging_min_c * 10) { + curr->requested_current = 0; + curr->requested_voltage = 0; + return 0; + } + + if (temp_c < 99) temp_range = TEMP_RANGE_1; else if (temp_c > 101 && temp_c < 149) |