summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYilun Lin <yllin@chromium.org>2019-08-22 15:30:22 +0800
committerCommit Bot <commit-bot@chromium.org>2019-10-02 22:02:26 +0000
commitad64a080363380e7b34d4c395867a55b83e61c1c (patch)
treec4b8574e81dac67de068e3acc7a449d3bbe72d0f
parente2aa17f3235644a07b7f91b328dcf46235dbe686 (diff)
downloadchrome-ec-ad64a080363380e7b34d4c395867a55b83e61c1c.tar.gz
kukui: Raise DCP current limit to 2150mA.
On mt6370, setting ACIR is equivalent to setting Input current max, and the accuracy is 7%. So if AICR=2150mA, then Max=2150mA, and Typ=Max*0.93=2000mA, and Min=Typ*0.93=1860mA. This CL also raise S0 current limit to 2150mA. TEST=Plug Krane charger, and see it could ramp to 1920mA in S0. BUG=b:137700946 BRANCH=None Change-Id: Iea6186c39c916ddf601917ea6e6b6463069c9292 Signed-off-by: Yilun Lin <yllin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1708170 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
-rw-r--r--baseboard/kukui/charger_mt6370.c4
-rw-r--r--driver/charger/rt946x.c2
-rw-r--r--driver/charger/rt946x.h7
3 files changed, 11 insertions, 2 deletions
diff --git a/baseboard/kukui/charger_mt6370.c b/baseboard/kukui/charger_mt6370.c
index c2f39ecfdf..0369ba9b8c 100644
--- a/baseboard/kukui/charger_mt6370.c
+++ b/baseboard/kukui/charger_mt6370.c
@@ -87,7 +87,9 @@ void board_set_charge_limit(int port, int supplier, int charge_ma,
{
/* b/134227872: Limit input current to 2A in S0 to prevent overheat */
if (power_get_state() == POWER_S0)
- charge_set_input_current_limit(MIN(charge_ma, 2000), charge_mv);
+ charge_set_input_current_limit(
+ MIN(charge_ma, RT946X_AICR_TYP2MAX(2000)),
+ charge_mv);
else
charge_set_input_current_limit(
MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT),
diff --git a/driver/charger/rt946x.c b/driver/charger/rt946x.c
index 244fb2f12d..95804c9935 100644
--- a/driver/charger/rt946x.c
+++ b/driver/charger/rt946x.c
@@ -922,7 +922,7 @@ static int rt946x_get_bc12_ilim(int charge_supplier)
if (IS_ENABLED(CONFIG_CHARGE_RAMP_SW) ||
IS_ENABLED(CONFIG_CHARGE_RAMP_HW))
/* A conservative value to prevent a bad charger. */
- return 2000;
+ return RT946X_AICR_TYP2MAX(2000);
/* fallback */
case CHARGE_SUPPLIER_BC12_CDP:
return 1500;
diff --git a/driver/charger/rt946x.h b/driver/charger/rt946x.h
index b30721367a..8918b8789f 100644
--- a/driver/charger/rt946x.h
+++ b/driver/charger/rt946x.h
@@ -296,6 +296,13 @@
#define RT946X_MASK_AICR (0x3F << RT946X_SHIFT_AICR)
#define RT946X_MASK_ILIMEN BIT(RT946X_SHIFT_ILIMEN)
+/*
+ * The accuracy of AICR is 7%. So if AICR = 2150,
+ * then Max=2150, Typ=2000, Min=1860. And plus 25 since the AICR
+ * is 50ma a step.
+ */
+#define RT946X_AICR_TYP2MAX(x) ((x) * 107 / 100 + 25)
+
/* ========== RSTPASCODE2 0x04 (mt6370) ============ */
#define MT6370_MASK_RSTPASCODE2 0x96