summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-09-29 20:42:49 -0600
committerCommit Bot <commit-bot@chromium.org>2020-09-30 08:33:23 +0000
commit4f2bbac0770ace9ffe24eefbc26506f6dfe81303 (patch)
tree9d4860829483375ac358af99dd4470d122e7a048
parent9e7a0e936e66731ad73893b1304eebbca8a1e206 (diff)
downloadchrome-ec-4f2bbac0770ace9ffe24eefbc26506f6dfe81303.tar.gz
zork: Workaround VBUS=0 for charge_ramp_sw
The ISL9241 sometimes incorrectly reports 0 for unknown reason, causing ramp to stop at 0.5A. Workaround this by ignoring 0. This partly defeats the point of ramping, but will still catch VBUS below 4.5V and above 0V. BUG=b:168569046 BRANCH=zork TEST=EC reboot with no battery and 65W charger, ramp to 3.25A @ 20V Signed-off-by: Edward Hill <ecgh@chromium.org> Change-Id: I2c08cc548b1fd67507865e7339e8168b0e53e628 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2438934 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Commit-Queue: Denis Brockus <dbrockus@chromium.org>
-rw-r--r--baseboard/zork/baseboard.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/baseboard/zork/baseboard.c b/baseboard/zork/baseboard.c
index b72e4fb77f..36591bb4f2 100644
--- a/baseboard/zork/baseboard.c
+++ b/baseboard/zork/baseboard.c
@@ -325,10 +325,29 @@ void board_pwrbtn_to_pch(int level)
*/
int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
{
- int voltage;
+ int voltage = 0;
+ int rv;
+
+ rv = charger_get_vbus_voltage(port, &voltage);
+
+ if (rv) {
+ ccprints("%s rv=%d", __func__, rv);
+ return 0;
+ }
+
+ /*
+ * b/168569046: The ISL9241 sometimes incorrectly reports 0 for unknown
+ * reason, causing ramp to stop at 0.5A. Workaround this by ignoring 0.
+ * This partly defeats the point of ramping, but will still catch
+ * VBUS below 4.5V and above 0V.
+ */
+ if (voltage == 0) {
+ ccprints("%s vbus=0", __func__);
+ return 0;
+ }
- if (charger_get_vbus_voltage(port, &voltage))
- voltage = 0;
+ if (voltage < BC12_MIN_VOLTAGE)
+ ccprints("%s vbus=%d", __func__, voltage);
return voltage < BC12_MIN_VOLTAGE;
}