Re: [PATCH v2 05/12] dt-bindings: dma: Convert fsl,elo*-dma to YAML
From: J. Neuschäfer <hidden>
Date: 2025-02-25 12:54:34
Also in:
dmaengine, imx, linux-crypto, linux-devicetree, linux-ide, linux-pci, linux-spi, linux-watchdog, lkml
On Fri, Feb 14, 2025 at 12:35:41PM +0000, J. Neuschäfer wrote:
On Mon, Feb 10, 2025 at 02:39:13PM -0500, Frank Li wrote:quoted
On Fri, Feb 07, 2025 at 10:30:22PM +0100, J. Neuschäfer via B4 Relay wrote:quoted
From: "J. Neuschäfer" <redacted> 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 <redacted> ---
[...]
quoted
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).
I had another look at dma-common.yaml and it explicitly requires #dma-cells to have a value of at least 1, so this second idea won't work. Best regards, J. Neuschäfer