On Mon, Feb 10, 2025 at 02:39:13PM -0500, Frank Li wrote: > On Fri, Feb 07, 2025 at 10:30:22PM +0100, J. Neuschäfer via B4 Relay wrote: > > From: "J. Neuschäfer" <j.ne@xxxxxxxxxx> > > > > The devicetree bindings for Freescale DMA engines have so far existed as > > a text file. This patch converts them to YAML, and specifies all the > > compatible strings currently in use in arch/powerpc/boot/dts. > > > > Signed-off-by: J. Neuschäfer <j.ne@xxxxxxxxxx> > > --- > > > > V2: > > - remove unnecessary multiline markers > > - fix additionalProperties to always be false > > - add description/maxItems to interrupts > > - add missing #address-cells/#size-cells properties > > - convert "Note on DMA channel compatible properties" to YAML by listing > > fsl,ssi-dma-channel as a valid compatible value > > - fix property ordering in examples: compatible and reg come first > > - add missing newlines in examples > > - trim subject line (remove "bindings") > > --- > > .../devicetree/bindings/dma/fsl,elo-dma.yaml | 140 ++++++++++++++ > > .../devicetree/bindings/dma/fsl,elo3-dma.yaml | 123 +++++++++++++ > > .../devicetree/bindings/dma/fsl,eloplus-dma.yaml | 134 ++++++++++++++ > > .../devicetree/bindings/powerpc/fsl/dma.txt | 204 --------------------- > > 4 files changed, 397 insertions(+), 204 deletions(-) [...] > > + reg: > > + maxItems: 1 > > + description: > > + DMA General Status Register, i.e. DGSR which contains status for > > + all the 4 DMA channels. > > needn't maxItems > items: > - description: DMA ... Good point, I'll do that. > > > + > > + cell-index: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: Controller index. 0 for controller @ 0x8100. > > + > > + ranges: true > > + > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 1 > > + > > + interrupts: > > + maxItems: 1 > > + description: Controller interrupt. > > Needn't description because no any additional informaiton. True. > > > + > > +required: > > + - compatible > > + - reg [...] > > +additionalProperties: false > > Need ref to dma-common.yaml? Sounds good, but I'm not sure what to do about the #dma-cells property, which is required by dma-common.yaml. There aren't many examples of DMA channels being explicitly declared in device trees. One example that I could find is the the xilinx_dma.txt binding: axi_vdma_0: axivdma@40030000 { compatible = "xlnx,axi-vdma-1.00.a"; #dma_cells = <1>; reg = < 0x40030000 0x10000 >; dma-ranges = <0x00000000 0x00000000 0x40000000>; xlnx,num-fstores = <0x8>; xlnx,flush-fsync = <0x1>; xlnx,addrwidth = <0x20>; clocks = <&clk 0>, <&clk 1>, <&clk 2>, <&clk 3>, <&clk 4>; clock-names = "s_axi_lite_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk", "m_axis_mm2s_aclk", "s_axis_s2mm_aclk"; dma-channel@40030000 { compatible = "xlnx,axi-vdma-mm2s-channel"; interrupts = < 0 54 4 >; xlnx,datawidth = <0x40>; }; dma-channel@40030030 { compatible = "xlnx,axi-vdma-s2mm-channel"; interrupts = < 0 53 4 >; xlnx,datawidth = <0x40>; }; }; ... vdmatest_0: vdmatest@0 { compatible ="xlnx,axi-vdma-test-1.00.a"; dmas = <&axi_vdma_0 0 &axi_vdma_0 1>; dma-names = "vdma0", "vdma1"; }; It has #dma_cells (I'm sure #dma-cells was intended) on the controller. Another example is in arch/powerpc/boot/dts/fsl/p1022si-post.dtsi: dma@c300 { dma00: dma-channel@0 { compatible = "fsl,ssi-dma-channel"; }; dma01: dma-channel@80 { compatible = "fsl,ssi-dma-channel"; }; }; ... ssi@15000 { compatible = "fsl,mpc8610-ssi"; cell-index = <0>; reg = <0x15000 0x100>; interrupts = <75 2 0 0>; fsl,playback-dma = <&dma00>; fsl,capture-dma = <&dma01>; fsl,fifo-depth = <15>; }; There, the DMA channels are used directly and without additional information (i.e. #dma-cells = <0>, althought it isn't specified). > > + dma-channel@0 { > > + compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; > > + reg = <0 0x80>; > > + cell-index = <0>; > > + interrupt-parent = <&ipic>; > > + interrupts = <71 8>; > > '8', use predefine MACRO for irq type. Good catch, will do > > Frank Thanks for your review! J. Neuschäfer