Re: [PATCH V3 4/6] dt-bindings: dma: xlnx,zynqmp-dma: Add Versal Net compatible support
"Golla, Nagendra" <[email protected]>
| Newsgroups | org.kernel.vger.dmaengine,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm |
|---|---|
| Message-ID | <[email protected]> |
Hi Frank On 8/11/2026 10:11 PM, Frank Li wrote: > On Mon, Aug 10, 2026 at 03:34:50PM +0530, Golla Nagendra wrote: >> From: Jay Buddhabhatti <[email protected]> >> >> Introduce a new compatible string amd,versal-net-dma-1.0 for >> Versal Net ZDMA.The new compatible requires xlnx,zynqmp-dma-1.0 as a >> fallback. >> >> Add a reset property to describe the per-channel reset line exposed >> on Versal Gen2 and Versal Net. > > why only one reset if per-channel reset line? Thanks for the review Each ZDMA channel has its own DT node, so maxItems: 1 means one reset per channel node — which is exactly the per-channel reset. Thanks, Nagendra > >> Mark the resets property as required >> for both Versal Gen2 and Versal Net, and not applicable for other >> platforms. >> >> Note that making resets required for Versal Gen2 results in an ABI >> break but this is unavoidable. When DMA is used by two software components >> back to back (e.g., firmware before Linux boot), DMA functionality fails >> due to configuration differences or the DMA being left in a bad state by >> the previous user. The channel can only be cleanly re-configured after >> a DMA channel reset,making it essential. >> >> Signed-off-by: Jay Buddhabhatti <[email protected]> >> Co-developed-by: Golla Nagendra <[email protected]> >> Signed-off-by: Golla Nagendra <[email protected]> >> --- >> Changes in V3: >> - Use allOf:if:then: to restrict the resets property per-compatible, >> making it required for amd,versal2-dma-1.0 and amd,versal-net-dma-1.0 >> and explicitly setting resets: false for all other platforms >> - Add amd,versal-net-dma-1.0 compatible string with xlnx,zynqmp-dma-1.0 >> as fallback >> - Switch compatible from enum to oneOf to accommodate the new multi-item >> entry for Versal Net >> - Add ABI break justification >> --- >> .../dma/xilinx/xlnx,zynqmp-dma-1.0.yaml | 25 ++++++++++++++++--- >> 1 file changed, 22 insertions(+), 3 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/dma/xilinx/xlnx,zynqmp-dma-1.0.yaml b/Documentation/devicetree/bindings/dma/xilinx/xlnx,zynqmp-dma-1.0.yaml >> index 2da86037ad79..87c65aef5c7d 100644 >> --- a/Documentation/devicetree/bindings/dma/xilinx/xlnx,zynqmp-dma-1.0.yaml >> +++ b/Documentation/devicetree/bindings/dma/xilinx/xlnx,zynqmp-dma-1.0.yaml >> @@ -18,15 +18,31 @@ maintainers: >> >> allOf: >> - $ref: ../dma-controller.yaml# >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - amd,versal2-dma-1.0 >> + - amd,versal-net-dma-1.0 >> + then: >> + required: >> + - resets >> + else: >> + properties: >> + resets: false >> >> properties: >> "#dma-cells": >> const: 1 >> >> compatible: >> - enum: >> - - amd,versal2-dma-1.0 >> - - xlnx,zynqmp-dma-1.0 >> + oneOf: >> + - const: amd,versal2-dma-1.0 >> + - const: xlnx,zynqmp-dma-1.0 > > use enum > - enum > - amd,versal2-dma-1.0 > - xlnx,zynqmp-dma-1.0 > >> + - items: >> + - const: amd,versal-net-dma-1.0 >> + - const: xlnx,zynqmp-dma-1.0 >> >> reg: >> description: memory map for gdma/adma module access >> @@ -59,6 +75,9 @@ properties: >> power-domains: >> maxItems: 1 >> >> + resets: >> + maxItems: 1 >> + >> dma-coherent: true >> >> required: >> -- >> 2.43.7 >>