diff options
author | Ting Shen <phoenixshen@google.com> | 2021-12-21 17:41:49 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-02-17 08:17:04 +0000 |
commit | e3cc4acb7965ee726a0a12e0381d01fbe48b0ada (patch) | |
tree | a1bd7826858134a343dd97851405e7a03a5f3c7b | |
parent | ffbb7331a0ad02d70860ea439ce886c671a9d16a (diff) | |
download | chrome-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.c | 34 |
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 }; |