Hi Denis,

On 2026-05-29T03:48:33, None <[email protected]> wrote:
> reset: Allow per-board reset type
>
> Some prototype boards may not have (temporarily) all required reset
> types supported (e.g. only warm reset supported).
>
> Add a Kconfig choice to select the board-specific default reset type
> used by the reset command, allowing it to work on such boards.
>
> Keep cold reset as the default.
>
> Signed-off-by: Denis Mukhin <[email protected]>
>
> drivers/sysreset/Kconfig           | 31 +++++++++++++++++++++++++++++++
>  drivers/sysreset/sysreset-uclass.c | 19 ++++++++++++++++++-
>  2 files changed, 49 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass <[email protected]>

> diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
> @@ -57,6 +57,37 @@ config SYSRESET_CMD_RESET_ARGS
> +config SYSRESET_CMD_RESET_DEFAULT_WARM
> +     bool "Warm reset"
> +     help
> +       Reset CPU while keeping GPIOs active.
> +
> +config SYSRESET_CMD_RESET_DEFAULT_COLD
> +     bool "Cold reset"
> +     help
> +       Reset CPU and GPIOs.

This is very thin - as is the comment in include/sysreset.h - how about:

"Full cold reset of the machine, including CPU, GPIOs, PMIC and other
logic in the machine"

> diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
> @@ -57,6 +57,37 @@ config SYSRESET_CMD_RESET_ARGS
> +config SYSRESET_CMD_RESET_DEFAULT_POWER
> +     bool "Power reset"
> +     help
> +       Reset PMIC by removing and restoring power.
> +
> +config SYSRESET_CMD_RESET_DEFAULT_POWER_OFF
> +     bool "Power off"
> +     help
> +       Turn off power.

Could we use the 'poweroff' command instead?

> diff --git a/drivers/sysreset/sysreset-uclass.c 
> b/drivers/sysreset/sysreset-uclass.c
> @@ -150,9 +150,26 @@ void reset_cpu(void)
> +static enum sysreset_t sysreset_get_default_type(void)
> +{
> +     if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_WARM))
> +             return SYSRESET_WARM;
> +
> +     if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_COLD))
> +             return SYSRESET_COLD;
> +
> +     if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_POWER))
> +             return SYSRESET_POWER;
> +
> +     if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_POWER_OFF))
> +             return SYSRESET_POWER_OFF;
> +
> +     return SYSRESET_COLD;
> +}

The trailing return SYSRESET_COLD is unreachable, BTW.

Regards,
Simon

Reply via email to