[PATCH V3 5/6] dmaengine: zynqmp_dma: Add new compatible string for Versal Net
Golla Nagendra <[email protected]>
| Newsgroups | org.kernel.vger.linux-pm,org.infradead.lists.linux-arm-kernel,org.kernel.vger.dmaengine,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Versal Net previously used the legacy xlnx,zynqmp-dma-1.0 compatible string. Add amd,versal-net-dma-1.0 to the of_device_id match table with SoC-specific match data via versal_net_dma_config. Introduce a has_reset field in zynqmp_dma_config to indicate whether the compatible requires a per-channel reset during probe. Signed-off-by: Golla Nagendra <[email protected]> --- Changes in V3: - New patch: add amd,versal-net-dma-1.0 to the driver match table with versal_net_dma_config (has_reset=true, offset=0) --- drivers/dma/xilinx/zynqmp_dma.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/dma/xilinx/zynqmp_dma.c b/drivers/dma/xilinx/zynqmp_dma.c index b03171e37e27..7561416b8e62 100644 --- a/drivers/dma/xilinx/zynqmp_dma.c +++ b/drivers/dma/xilinx/zynqmp_dma.c @@ -259,13 +259,20 @@ struct zynqmp_dma_device { }; struct zynqmp_dma_config { + bool has_reset; u32 offset; }; static const struct zynqmp_dma_config versal2_dma_config = { + .has_reset = true, .offset = IRQ_REG_OFFSET, }; +/* offset = 0: Versal Net uses base IRQ register address */ +static const struct zynqmp_dma_config versal_net_dma_config = { + .has_reset = true, +}; + static inline void zynqmp_dma_writeq(struct zynqmp_dma_chan *chan, u32 reg, u64 value) { @@ -1184,6 +1191,7 @@ static void zynqmp_dma_remove(struct platform_device *pdev) static const struct of_device_id zynqmp_dma_of_match[] = { { .compatible = "amd,versal2-dma-1.0", .data = &versal2_dma_config }, + { .compatible = "amd,versal-net-dma-1.0", .data = &versal_net_dma_config }, { .compatible = "xlnx,zynqmp-dma-1.0", }, {} }; -- 2.43.7