Allwinner A31 DMA Controller This driver follows the generic DMA bindings defined in dma.txt. Required properties: - compatible: Must be one of "allwinner,sun6i-a31-dma" "allwinner,sun8i-a23-dma" "allwinner,sun8i-a83t-dma" "allwinner,sun8i-h3-dma" "allwinner,sun8i-v3s-dma" - reg: Should contain the registers base address and length - interrupts: Should contain a reference to the interrupt used by this device - clocks: Should contain a reference to the parent AHB clock - resets: Should contain a reference to the reset controller asserting this device in reset - #dma-cells : Should be 1, a single cell holding a line request number Example: dma: dma-controller@1c02000 { compatible = "allwinner,sun6i-a31-dma"; reg = <0x01c02000 0x1000>; interrupts = <0 50 4>; clocks = <&ahb1_gates 6>; resets = <&ahb1_rst 6>; #dma-cells = <1>; }; ------------------------------------------------------------------------------ For A64 and H6 DMA controller: Required properties: - compatible: Must be one of "allwinner,sun50i-a64-dma" "allwinner,sun50i-h6-dma" - dma-channels: Number of DMA channels supported by the controller. Refer to Documentation/devicetree/bindings/dma/dma.txt - clocks: In addition to parent AHB clock, it should also contain mbus clock (H6 only) - clock-names: Should contain "bus" and "mbus" (H6 only) - all properties above, i.e. reg, interrupts, clocks, resets and #dma-cells Optional properties: - dma-requests: Number of DMA request signals supported by the controller. Refer to Documentation/devicetree/bindings/dma/dma.txt Example: dma: dma-controller@1c02000 { compatible = "allwinner,sun50i-a64-dma"; reg = <0x01c02000 0x1000>; interrupts = ; clocks = <&ccu CLK_BUS_DMA>; dma-channels = <8>; dma-requests = <27>; resets = <&ccu RST_BUS_DMA>; #dma-cells = <1>; }; ------------------------------------------------------------------------------ Clients: DMA clients connected to the A31 DMA controller must use the format described in the dma.txt file, using a two-cell specifier for each channel: a phandle plus one integer cells. The two cells in order are: 1. A phandle pointing to the DMA controller. 2. The port ID as specified in the datasheet Example: spi2: spi@1c6a000 { compatible = "allwinner,sun6i-a31-spi"; reg = <0x01c6a000 0x1000>; interrupts = <0 67 4>; clocks = <&ahb1_gates 22>, <&spi2_clk>; clock-names = "ahb", "mod"; dmas = <&dma 25>, <&dma 25>; dma-names = "rx", "tx"; resets = <&ahb1_rst 22>; };