summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2020-08-17 11:23:19 -0700
committerCommit Bot <commit-bot@chromium.org>2020-08-18 23:24:26 +0000
commit9aa69ff724a211ed1e1594cdaf275e8af661bca2 (patch)
treeab92acc2de7c5c1612816eae9f5d9cde5c82b8de
parent474c6a5321de1a56c0751963d20843a5d4eaf7c1 (diff)
downloadchrome-ec-9aa69ff724a211ed1e1594cdaf275e8af661bca2.tar.gz
sm5803: Enable end of charge interrupts for logs
Currently, it seems that charging is terminated for some reason. This commit simply enables the end of charge interrupts such that we can log when this event occurs on the EC console. BUG=b:160918663 BRANCH=None TEST=Build and flash waddledee; verify that the EOC interrupts are detected and that the log prints are emitted when they fire. Signed-off-by: Aseda Aboagye <aaboagye@google.com> Change-Id: I113133146f678748071b94511521baf35e818e0d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2358902 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Diana Z <dzigterman@chromium.org> Auto-Submit: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r--driver/charger/sm5803.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/driver/charger/sm5803.c b/driver/charger/sm5803.c
index d71edee819..072fc2ca14 100644
--- a/driver/charger/sm5803.c
+++ b/driver/charger/sm5803.c
@@ -446,6 +446,9 @@ static void sm5803_init(int chgnum)
/* Configure charger insertion interrupts */
rv |= main_write8(chgnum, SM5803_REG_INT1_EN, SM5803_INT1_CHG);
+ /* Enable end of charge interrupts for logging */
+ rv |= main_write8(chgnum, SM5803_REG_INT4_EN, SM5803_INT4_CHG_FAIL |
+ SM5803_INT4_CHG_DONE);
/* Set TINT interrupts for 360 K and 330 K */
rv |= meas_write8(chgnum, SM5803_REG_TINT_HIGH_TH,
@@ -558,6 +561,18 @@ void sm5803_handle_interrupt(int chgnum)
*/
}
+ rv = main_read8(chgnum, SM5803_REG_INT4_REQ, &int_reg);
+ if (rv) {
+ CPRINTS("%s %d: Failed to read int4 register", CHARGER_NAME,
+ chgnum);
+ return;
+ }
+
+ if (int_reg & SM5803_INT4_CHG_FAIL)
+ CPRINTS("%s %d: CHG_FAIL_INT fired!!!", CHARGER_NAME, chgnum);
+
+ if (int_reg & SM5803_INT4_CHG_DONE)
+ CPRINTS("%s %d: CHG_DONE_INT fired!!!", CHARGER_NAME, chgnum);
}
static void sm5803_irq_deferred(void)