diff options
author | Deepti Deshatty <deepti.deshatty@intel.corp-partner.google.com> | 2021-10-07 22:34:46 +0530 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-10-20 23:01:01 +0000 |
commit | b09158a9071226c243702d33919dd3132a6edfb2 (patch) | |
tree | ea64ffcdabb8b658d57a206783877ec9d32b31e8 /common/charger.c | |
parent | 9cb708d986a3c693ac97b8301f492497a89e4f13 (diff) | |
download | chrome-ec-b09158a9071226c243702d33919dd3132a6edfb2.tar.gz |
cleanup: charger: consolidate charger_dump console commands
Console command "charger_dump" is defined in multiple charger
driver files, hence, build fails when more than one charger chip
drivers are enabled for a platform.
To avoid this "charger_dump" console command is defined in
a common file, and this command handler invokes platform specific
charger dump register api.
BRANCH=none
BUG=none
TEST=Verified 'charger dump' command on brya
Signed-off-by: Deepti Deshatty <deepti.deshatty@intel.corp-partner.google.com>
Change-Id: Ic542af90b47880e90073c529f9183abc6a3f5af7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3211760
Commit-Queue: caveh jalali <caveh@chromium.org>
Reviewed-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'common/charger.c')
-rw-r--r-- | common/charger.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/common/charger.c b/common/charger.c index 764f8b7ba7..717759fe1c 100644 --- a/common/charger.c +++ b/common/charger.c @@ -197,10 +197,13 @@ static int command_charger(int argc, char **argv) } idx_provided = isdigit((unsigned char)argv[1][0]); - if (idx_provided) + if (idx_provided) { chgnum = atoi(argv[1]); - else + if ((chgnum < 0) || (chgnum >= board_get_charger_chip_count())) + return EC_ERROR_PARAM1; + } else { chgnum = 0; + } if ((argc == 2) && idx_provided) { print_charger_debug(chgnum); @@ -230,14 +233,32 @@ static int command_charger(int argc, char **argv) return EC_ERROR_PARAM2+idx_provided; dptf_limit_ma = d; return EC_SUCCESS; + } else if (strcasecmp(argv[1+idx_provided], "dump") == 0) { + if (!IS_ENABLED(CONFIG_CMD_CHARGER_DUMP) || + !chg_chips[chgnum].drv->dump_registers) { + ccprintf("dump not supported\n"); + return EC_ERROR_PARAM1+idx_provided; + } + ccprintf("Dump %s registers\n", + chg_chips[chgnum].drv->get_info(chgnum)->name); + chg_chips[chgnum].drv->dump_registers(chgnum); + return EC_SUCCESS; } else { return EC_ERROR_PARAM1+idx_provided; } } DECLARE_CONSOLE_COMMAND(charger, command_charger, - "[chgnum] [input | current | voltage | dptf] [newval]", - "Get or set charger param(s)"); + "[chgnum] [input | current | voltage | dptf] [newval]" +#ifdef CONFIG_CMD_CHARGER_DUMP + "\n\t[chgnum] dump" +#endif + , + "Get or set charger param(s)" +#ifdef CONFIG_CMD_CHARGER_DUMP + ". Dump registers." +#endif +); /* Driver wrapper functions */ |