[PATCH 0/3] Add reset driver support for ZynqMP and Versal

This patch series does following things - Add reset driver support for Versal platform - Enable reset driver support for ZynqMP and Versal platforms
Ashok Reddy Soma (1): arm64: zynqmp: Enable reset driver
Michal Simek (1): arm64: versal: Enable reset driver for versal
T Karthik Reddy (1): reset: zynqmp: Add reset driver support for versal
configs/xilinx_versal_virt_defconfig | 2 ++ configs/xilinx_zynqmp_virt_defconfig | 2 ++ drivers/reset/Kconfig | 6 +++--- drivers/reset/reset-zynqmp.c | 10 +++++++--- 4 files changed, 14 insertions(+), 6 deletions(-)

From: T Karthik Reddy t.karthik.reddy@amd.com
Add support for versal platform by adding "xlnx,versal-reset" compatible string in zynqmp-reset driver. Reset numbering schema for versal is not same as zynqmp, so nr_reset and reset_id are set to zero. In case of assert/dessert, required device reset id is sent from respective driver through struct reset_ctl.
Signed-off-by: T Karthik Reddy t.karthik.reddy@amd.com Signed-off-by: Ashok Reddy Soma ashok.reddy.soma@xilinx.com ---
drivers/reset/Kconfig | 6 +++--- drivers/reset/reset-zynqmp.c | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig index b57714111b..69a7b4ccba 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -199,11 +199,11 @@ config RESET_SCMI protocol communication with a SCMI server.
config RESET_ZYNQMP - bool "Reset Driver for Xilinx ZynqMP SoC's" + bool "Reset Driver for Xilinx ZynqMP & Versal SoC's" depends on DM_RESET && ZYNQMP_FIRMWARE help - Support for reset controller on Xilinx ZynqMP SoC. Driver is only - passing request via Xilinx firmware interface to TF-A and PMU + Support for reset controller on Xilinx ZynqMP & Versal SoC's. Driver + is only passing request via Xilinx firmware interface to TF-A and PMU firmware.
config RESET_DRA7 diff --git a/drivers/reset/reset-zynqmp.c b/drivers/reset/reset-zynqmp.c index 4e3f907980..52c08c4722 100644 --- a/drivers/reset/reset-zynqmp.c +++ b/drivers/reset/reset-zynqmp.c @@ -53,7 +53,7 @@ static int zynqmp_reset_request(struct reset_ctl *rst) dev_dbg(rst->dev, "%s(rst=%p) (id=%lu) (nr_reset=%d)\n", __func__, rst, rst->id, priv->nr_reset);
- if (rst->id > priv->nr_reset) + if (priv->nr_reset && rst->id > priv->nr_reset) return -EINVAL;
return 0; @@ -63,8 +63,11 @@ static int zynqmp_reset_probe(struct udevice *dev) { struct zynqmp_reset_priv *priv = dev_get_priv(dev);
- priv->reset_id = ZYNQMP_RESET_ID; - priv->nr_reset = ZYNQMP_NR_RESETS; + if (device_is_compatible(dev, "xlnx,zynqmp-reset")) { + priv->reset_id = ZYNQMP_RESET_ID; + priv->nr_reset = ZYNQMP_NR_RESETS; + } + return 0; }
@@ -76,6 +79,7 @@ const struct reset_ops zynqmp_reset_ops = {
static const struct udevice_id zynqmp_reset_ids[] = { { .compatible = "xlnx,zynqmp-reset" }, + { .compatible = "xlnx,versal-reset" }, { } };

From: Michal Simek michal.simek@amd.com
Add CONFIG_DM_RESET and CONFIG_RESET_ZYNQMP configs in versal default configuration to enable support for reset driver for versal platform.
Signed-off-by: Michal Simek michal.simek@amd.com Signed-off-by: T Karthik Reddy t.karthik.reddy@amd.com Signed-off-by: Ashok Reddy Soma ashok.reddy.soma@xilinx.com ---
configs/xilinx_versal_virt_defconfig | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/configs/xilinx_versal_virt_defconfig b/configs/xilinx_versal_virt_defconfig index 7f0bcb2eaa..d2490fe7c5 100644 --- a/configs/xilinx_versal_virt_defconfig +++ b/configs/xilinx_versal_virt_defconfig @@ -100,6 +100,8 @@ CONFIG_PHY_GIGE=y CONFIG_XILINX_AXIEMAC=y CONFIG_XILINX_AXIMRMAC=y CONFIG_ZYNQ_GEM=y +CONFIG_DM_RESET=y +CONFIG_RESET_ZYNQMP=y CONFIG_ARM_DCC=y CONFIG_PL01X_SERIAL=y CONFIG_XILINX_UARTLITE=y

Enable reset driver for ZynqMP platforms. This will enable us to reset the IP's using generic reset_assert and reset_deassert calls.
Signed-off-by: T Karthik Reddy t.karthik.reddy@amd.com Signed-off-by: Ashok Reddy Soma ashok.reddy.soma@xilinx.com ---
configs/xilinx_zynqmp_virt_defconfig | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig index 89622d18f8..71f71ff905 100644 --- a/configs/xilinx_zynqmp_virt_defconfig +++ b/configs/xilinx_zynqmp_virt_defconfig @@ -184,6 +184,8 @@ CONFIG_DM_REGULATOR=y CONFIG_DM_REGULATOR_FIXED=y CONFIG_DM_PWM=y CONFIG_PWM_CADENCE_TTC=y +CONFIG_DM_RESET=y +CONFIG_RESET_ZYNQMP=y CONFIG_DM_RTC=y CONFIG_RTC_EMULATION=y CONFIG_RTC_ZYNQMP=y

On 7/20/22 11:59, Ashok Reddy Soma wrote:
This patch series does following things
- Add reset driver support for Versal platform
- Enable reset driver support for ZynqMP and Versal platforms
Ashok Reddy Soma (1): arm64: zynqmp: Enable reset driver
Michal Simek (1): arm64: versal: Enable reset driver for versal
T Karthik Reddy (1): reset: zynqmp: Add reset driver support for versal
configs/xilinx_versal_virt_defconfig | 2 ++ configs/xilinx_zynqmp_virt_defconfig | 2 ++ drivers/reset/Kconfig | 6 +++--- drivers/reset/reset-zynqmp.c | 10 +++++++--- 4 files changed, 14 insertions(+), 6 deletions(-)
Applied. M
participants (2)
-
Ashok Reddy Soma
-
Michal Simek