summaryrefslogtreecommitdiff
path: root/common/charger.c
diff options
context:
space:
mode:
authorDeepti Deshatty <deepti.deshatty@intel.corp-partner.google.com>2021-10-07 22:34:46 +0530
committerCommit Bot <commit-bot@chromium.org>2021-10-20 23:01:01 +0000
commitb09158a9071226c243702d33919dd3132a6edfb2 (patch)
treeea64ffcdabb8b658d57a206783877ec9d32b31e8 /common/charger.c
parent9cb708d986a3c693ac97b8301f492497a89e4f13 (diff)
downloadchrome-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.c29
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 */