[PATCH 1/4] reset: Add reset_reset() and reset_reset_bulk() API
Simon Glass
sjg at chromium.org
Mon May 4 14:17:23 CEST 2026
Hi Michal,
On 2026-04-30T12:20:00, Michal Simek <michal.simek at amd.com> wrote:
> reset: Add reset_reset() and reset_reset_bulk() API
>
> Add reset_reset() and reset_reset_bulk() functions to the reset
> controller API. These functions assert and then deassert reset signals
> in a single call, providing a convenient way to pulse/toggle a reset
> line.
>
> This mirrors the Linux kernel's reset_control_reset() and
> reset_control_bulk_reset() APIs. The new functions are useful for
> drivers that need to cycle a reset line during initialization or
> error recovery.
>
> Signed-off-by: Michal Simek <michal.simek at amd.com>
>
> drivers/reset/reset-uclass.c | 30 ++++++++++++++++++++++++++++++
> include/reset-uclass.h | 11 +++++++++++
> include/reset.h | 35 +++++++++++++++++++++++++++++++++++
> 3 files changed, 76 insertions(+)
> diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c
> @@ -225,6 +225,36 @@ int reset_deassert_bulk(struct reset_ctl_bulk *bulk)
> +int reset_reset(struct reset_ctl *reset_ctl)
> +{
> + struct reset_ops *ops = reset_dev_ops(reset_ctl->dev);
> + int ret;
> +
> + debug('%s(reset_ctl=%p)\n', __func__, reset_ctl);
> +
> + if (ops->rst_reset)
> + return ops->rst_reset(reset_ctl);
> +
> + ret = reset_assert(reset_ctl);
> + if (ret < 0)
> + return ret;
> +
> + return reset_deassert(reset_ctl);
> +}
Will this provide a long-enough pulse on real hardware?
> diff --git a/include/reset.h b/include/reset.h
> @@ -443,6 +468,16 @@ static inline int reset_deassert_bulk(struct reset_ctl_bulk *bulk)
> +static inline int reset_reset(struct reset_ctl *reset_ctl)
> +{
> + return 0;
> +}
Just to check - this matches the existing assert/deassert stubs,
silently succeeding with !CONFIG_DM_RESET: is that intended? Should we
return -NOSYS here?
Regards,
Simon
More information about the U-Boot
mailing list