Re: [PATCH V3 4/6] dt-bindings: dma: xlnx,zynqmp-dma: Add Versal Net compatible support
Frank Li <[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 | <antQqyT-slTnY2e1@SMW015318> |
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? > 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 >