From: Denis Mukhin <[email protected]> Some prototype boards may not have (temporarily) all required reset types supported (e.g. only warm reset supported).
Add `board_sysreset_default()` to obtain board-specific default reset type to enable `reset` command on such boards. Signed-off-by: Denis Mukhin <[email protected]> --- drivers/sysreset/sysreset-uclass.c | 7 ++++++- include/sysreset.h | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/sysreset/sysreset-uclass.c b/drivers/sysreset/sysreset-uclass.c index f25e09e9cd06..dc569a6b8ade 100644 --- a/drivers/sysreset/sysreset-uclass.c +++ b/drivers/sysreset/sysreset-uclass.c @@ -150,9 +150,14 @@ void reset_cpu(void) } #if IS_ENABLED(CONFIG_SYSRESET_CMD_RESET) +__weak enum sysreset_t board_sysreset_default(void) +{ + return SYSRESET_COLD; +} + int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - enum sysreset_t reset_type = SYSRESET_COLD; + enum sysreset_t reset_type = board_sysreset_default(); if (argc > 2) return CMD_RET_USAGE; diff --git a/include/sysreset.h b/include/sysreset.h index d1cc9ebc542a..a9e743c13e8b 100644 --- a/include/sysreset.h +++ b/include/sysreset.h @@ -161,4 +161,11 @@ void reset_cpu(void); */ int sysreset_register_wdt(struct udevice *dev); +/** + * board_sysreset_default() - Get board-specific reset type. + * + * @return: Board-specific reset type. + */ +enum sysreset_t board_sysreset_default(void); + #endif -- 2.54.0

