summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2021-12-21 17:41:49 +0800
committerCommit Bot <commit-bot@chromium.org>2022-02-17 08:17:04 +0000
commite3cc4acb7965ee726a0a12e0381d01fbe48b0ada (patch)
treea1bd7826858134a343dd97851405e7a03a5f3c7b
parentffbb7331a0ad02d70860ea439ce886c671a9d16a (diff)
downloadchrome-ec-e3cc4acb7965ee726a0a12e0381d01fbe48b0ada.tar.gz
rt9490: implement dump_registers
Support printing some status registers and ADCs for HW testing. BUG=b:194967754 TEST=manually run `charger dump` BRANCH=none Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: Ic493907fe1983af974b9f7d835982944c33cdab2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3351726 Reviewed-by: Eric Yilun Lin <yllin@google.com> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
-rw-r--r--driver/charger/rt9490.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/driver/charger/rt9490.c b/driver/charger/rt9490.c
index 85dac52bdc..776529190d 100644
--- a/driver/charger/rt9490.c
+++ b/driver/charger/rt9490.c
@@ -492,6 +492,37 @@ static int rt9490_ramp_get_current_limit(int chgnum)
}
#endif
+#ifdef CONFIG_CMD_CHARGER_DUMP
+static void dump_range(int chgnum, int from, int to)
+{
+ for (int reg = from; reg <= to; ++reg) {
+ int val = 0;
+
+ if (!rt9490_read8(chgnum, reg, &val))
+ CPRINTS(" 0x%02x: 0x%02x", reg, val);
+ else
+ CPRINTS(" 0x%02x: (error)", reg);
+ }
+}
+
+static void rt9490_dump_registers(int chgnum)
+{
+ uint16_t ts, tdie;
+
+ CPRINTS("CHG_STATUS:");
+ dump_range(chgnum, RT9490_REG_CHG_STATUS0, RT9490_REG_CHG_STATUS4);
+ CPRINTS("FAULT_STATUS:");
+ dump_range(chgnum, RT9490_REG_FAULT_STATUS0, RT9490_REG_FAULT_STATUS1);
+ CPRINTS("IRQ_FLAG:");
+ dump_range(chgnum, RT9490_REG_CHG_IRQ_FLAG0, RT9490_REG_CHG_IRQ_FLAG5);
+
+ rt9490_read16(chgnum, RT9490_REG_TS_ADC, &ts);
+ CPRINTS("TS_ADC: %d.%d%%", ts / 10, ts % 10);
+ rt9490_read16(chgnum, RT9490_REG_TDIE_ADC, &tdie);
+ CPRINTS("TDIE_ADC: %d deg C", tdie);
+}
+#endif
+
const struct charger_drv rt9490_drv = {
.init = &rt9490_init,
.get_info = &rt9490_get_info,
@@ -520,4 +551,7 @@ const struct charger_drv rt9490_drv = {
.ramp_is_detected = &rt9490_ramp_is_detected,
.ramp_get_current_limit = &rt9490_ramp_get_current_limit,
#endif
+#ifdef CONFIG_CMD_CHARGER_DUMP
+ .dump_registers = &rt9490_dump_registers,
+#endif
};