summaryrefslogtreecommitdiff
path: root/driver/battery
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2015-09-15 14:47:43 -0700
committerchrome-bot <chrome-bot@chromium.org>2015-09-15 19:17:52 -0700
commit3154abd5c358527eecc385b67c4f0fd5f1a022ce (patch)
tree736ab7ad832fbf1eeb982ca4bff252537745b0fb /driver/battery
parentfa6359737129789af7f2a1db6b2e9c05c51038fb (diff)
downloadchrome-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/battery')
-rw-r--r--driver/battery/ryu.c13
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)