From b8423e066922f70d65248abd8ad325177bfc615f Mon Sep 17 00:00:00 2001 From: Philip Chen Date: Sun, 11 Mar 2018 15:03:05 -0700 Subject: charger/rt946x: Enable charge current termination BUG=b:74373538 BRANCH=scarlet TEST=confirm charge current drops to 0mA right after it hits 400mA, when battery is nearly fully charged Change-Id: Icd4a7886bf68f3bd4ed91d2b8e705cb62f6e4fb8 Signed-off-by: Philip Chen Reviewed-on: https://chromium-review.googlesource.com/958295 Commit-Ready: Philip Chen Tested-by: Philip Chen Reviewed-by: Alexandru M Stan Reviewed-by: David Schneider --- driver/charger/rt946x.c | 6 +++++- driver/charger/rt946x.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'driver/charger') diff --git a/driver/charger/rt946x.c b/driver/charger/rt946x.c index 5c1acfac79..378d8f6814 100644 --- a/driver/charger/rt946x.c +++ b/driver/charger/rt946x.c @@ -49,7 +49,7 @@ struct charger_init_setting { }; static const struct charger_init_setting rt946x_charger_init_setting = { - .eoc_current = 250, + .eoc_current = 400, .mivr = 4000, .ircmp_vclamp = 32, .ircmp_res = 25, @@ -397,6 +397,10 @@ static int rt946x_init_setting(void) if (rv) return rv; rv = rt946x_set_iprec(batt_info->precharge_current); + if (rv) + return rv; + /* Enable charge current termination */ + rv = rt946x_set_bit(RT946X_REG_CHGCTRL2, RT946X_MASK_TE); if (rv) return rv; diff --git a/driver/charger/rt946x.h b/driver/charger/rt946x.h index a31415b136..48f9cd02e9 100644 --- a/driver/charger/rt946x.h +++ b/driver/charger/rt946x.h @@ -140,10 +140,12 @@ /* ========== CHGCTRL2 0x02 ============ */ #define RT946X_SHIFT_SHIP_MODE 7 +#define RT946X_SHIFT_TE 4 #define RT946X_SHIFT_ILMTSEL 2 #define RT946X_SHIFT_CHG_EN 0 #define RT946X_MASK_SHIP_MODE (1 << RT946X_SHIFT_SHIP_MODE) +#define RT946X_MASK_TE (1 << RT946X_SHIFT_TE) #define RT946X_MASK_ILMTSEL 0x0C #define RT946X_MASK_CHG_EN (1 << RT946X_SHIFT_CHG_EN) -- cgit v1.2.1