diff options
author | Eric Herrmann <eherrmann@chromium.org> | 2020-06-03 17:05:55 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-05 06:30:55 +0000 |
commit | 29af11e2e3da844390f893a4776fecb5a21fd0fe (patch) | |
tree | bc1a873231783a6713eb1207403a596a33568bd9 | |
parent | 1a91ab29a3b91e6a5e3829b6e6bcb2954bb283bd (diff) | |
download | chrome-ec-29af11e2e3da844390f893a4776fecb5a21fd0fe.tar.gz |
ISL9241: Fix slew rate control
The slew rate control was not being configured properly, which lead to
overcurrent protection being triggered on adapter insertion. This now
enables slew rate control in the init sequence.
BUG=b:148487130
BRANCH=none
TEST=With a current probe, ensure that there is no spike when the
battery begins charging due to VSYS ramp.
TEST=make buildall
Signed-off-by: Eric Herrmann <eherrmann@chromium.org>
Change-Id: I8df02e4983acd1e11c4d395b8aabd34bf9688e06
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2229960
Tested-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
-rw-r--r-- | driver/charger/isl9241.c | 9 | ||||
-rw-r--r-- | driver/charger/isl9241.h | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/driver/charger/isl9241.c b/driver/charger/isl9241.c index d21e438edb..ffd2ff6e17 100644 --- a/driver/charger/isl9241.c +++ b/driver/charger/isl9241.c @@ -363,6 +363,15 @@ static void isl9241_init(int chgnum) MASK_SET)) goto init_fail; + /* + * Set control4 register to + * [13]: Slew rate control enable (sets VSYS ramp to 8mV/us) + */ + if (isl9241_update(chgnum, ISL9241_REG_CONTROL4, + ISL9241_CONTROL4_SLEW_RATE_CTRL, + MASK_SET)) + goto init_fail; + #ifndef CONFIG_CHARGE_RAMP_HW if (isl9241_update(chgnum, ISL9241_REG_CONTROL0, ISL9241_CONTROL0_INPUT_VTG_REGULATION, diff --git a/driver/charger/isl9241.h b/driver/charger/isl9241.h index 3e5c9ad749..337c624758 100644 --- a/driver/charger/isl9241.h +++ b/driver/charger/isl9241.h @@ -39,6 +39,7 @@ /* 2: Input Voltage Regulation (0 = Enable (default), 1 = Disable) */ #define ISL9241_CONTROL0_INPUT_VTG_REGULATION BIT(2) + #define ISL9241_REG_INFORMATION1 0x3A #define ISL9241_REG_ADAPTER_CUR_LIMIT2 0x3B @@ -96,6 +97,9 @@ #define ISL9241_INFORMATION2_ACOK_PIN BIT(14) #define ISL9241_REG_CONTROL4 0x4E +/* 13: Enable VSYS slew rate control (0 - disable, 1 - enable) */ +#define ISL9241_CONTROL4_SLEW_RATE_CTRL BIT(13) + #define ISL9241_REG_CONTROL5 0x4F #define ISL9241_REG_NTC_ADC_RESULTS 0x80 #define ISL9241_REG_VBAT_ADC_RESULTS 0x81 |