isl923x: initially disable autonomous charging

We do not use autonomous charging since it is automatically
disabled when ever we set the current limits manually (which
we always do). Allowing autonomous charging for the short period during
initialization can cause current over protection events on devices with
2S batteries.

BRANCH=none
BUG=b:114318779
TEST=meep can boot without battery from daughter board USB-C port
without boot looping

Change-Id: Id50517d7e34bb5be171fe8b781b3ccf835db1f88
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1227411
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1231364
Reviewed-by: Martin Roth <martinroth@chromium.org>
Commit-Queue: Martin Roth <martinroth@chromium.org>
Tested-by: Martin Roth <martinroth@chromium.org>
This commit is contained in:
Jett Rink 2018-09-14 16:02:37 -06:00 committed by ChromeOS Commit Bot
parent bf4aea7fb4
commit d2a2ec6582
2 changed files with 14 additions and 0 deletions

View File

@ -365,6 +365,12 @@ static void isl923x_init(void)
goto init_fail;
reg |= ISL9238_C3_NO_RELOAD_ACLIM_ON_ACIN |
ISL9238_C3_NO_REREAD_PROG_PIN;
/*
* Disable autonomous charging initially since 1) it causes boot loop
* issues with 2S batteries, and 2) it will automatically get disabled
* as soon as we manually set the current limit anyway.
*/
reg |= ISL9238_C3_DISABLE_AUTO_CHARING;
if (raw_write16(ISL9238_REG_CONTROL3, reg))
goto init_fail;

View File

@ -213,6 +213,14 @@
*/
#define ISL9238_C3_AMON_BMON_DIRECTION (1 << 3)
/*
* Control3: Disables Autonomous Charing
*
* Note: This is disabled automatically when ever we set the current limit
* manually (which we always do).
*/
#define ISL9238_C3_DISABLE_AUTO_CHARING (1 << 7)
/* Control3: PSYS gain in uA/W (ISL9238 only) */
#define ISL9238_C3_PSYS_GAIN (1 << 9)