mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
reset: zynqmp: Implement rst_reset using PM_RESET_ACTION_PULSE
Implement the rst_reset operation in the ZynqMP reset driver to use PM_RESET_ACTION_PULSE. This allows the reset controller to perform a reset pulse in a single firmware call instead of separate assert and deassert calls. This matches the Linux kernel implementation of zynqmp_reset_reset(). Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/be77d6f1b60f591ef626c14229d85c5cab867967.1779709539.git.michal.simek@amd.com
This commit is contained in:
@@ -45,6 +45,16 @@ static int zynqmp_reset_deassert(struct reset_ctl *rst)
|
||||
PM_RESET_ACTION_RELEASE);
|
||||
}
|
||||
|
||||
static int zynqmp_reset_reset(struct reset_ctl *rst, ulong delay_us)
|
||||
{
|
||||
struct zynqmp_reset_priv *priv = dev_get_priv(rst->dev);
|
||||
|
||||
dev_dbg(rst->dev, "%s(rst=%p) (id=%lu)\n", __func__, rst, rst->id);
|
||||
|
||||
return zynqmp_pm_reset_assert(priv->reset_id + rst->id,
|
||||
PM_RESET_ACTION_PULSE);
|
||||
}
|
||||
|
||||
static int zynqmp_reset_request(struct reset_ctl *rst)
|
||||
{
|
||||
struct zynqmp_reset_priv *priv = dev_get_priv(rst->dev);
|
||||
@@ -74,6 +84,7 @@ const struct reset_ops zynqmp_reset_ops = {
|
||||
.request = zynqmp_reset_request,
|
||||
.rst_assert = zynqmp_reset_assert,
|
||||
.rst_deassert = zynqmp_reset_deassert,
|
||||
.rst_reset = zynqmp_reset_reset,
|
||||
};
|
||||
|
||||
static const struct udevice_id zynqmp_reset_ids[] = {
|
||||
|
||||
Reference in New Issue
Block a user