1* Renesas R-Car (RZ/G) DMA Controller Device Tree bindings 2 3Renesas R-Car Generation 2 SoCs have multiple multi-channel DMA 4controller instances named DMAC capable of serving multiple clients. Channels 5can be dedicated to specific clients or shared between a large number of 6clients. 7 8Each DMA client is connected to one dedicated port of the DMAC, identified by 9an 8-bit port number called the MID/RID. A DMA controller can thus serve up to 10256 clients in total. When the number of hardware channels is lower than the 11number of clients to be served, channels must be shared between multiple DMA 12clients. The association of DMA clients to DMAC channels is fully dynamic and 13not described in these device tree bindings. 14 15Required Properties: 16 17- compatible: "renesas,dmac-<soctype>", "renesas,rcar-dmac" as fallback. 18 Examples with soctypes are: 19 - "renesas,dmac-r8a7743" (RZ/G1M) 20 - "renesas,dmac-r8a7745" (RZ/G1E) 21 - "renesas,dmac-r8a77470" (RZ/G1C) 22 - "renesas,dmac-r8a7790" (R-Car H2) 23 - "renesas,dmac-r8a7791" (R-Car M2-W) 24 - "renesas,dmac-r8a7792" (R-Car V2H) 25 - "renesas,dmac-r8a7793" (R-Car M2-N) 26 - "renesas,dmac-r8a7794" (R-Car E2) 27 - "renesas,dmac-r8a7795" (R-Car H3) 28 - "renesas,dmac-r8a7796" (R-Car M3-W) 29 - "renesas,dmac-r8a77965" (R-Car M3-N) 30 - "renesas,dmac-r8a77970" (R-Car V3M) 31 - "renesas,dmac-r8a77980" (R-Car V3H) 32 - "renesas,dmac-r8a77990" (R-Car E3) 33 - "renesas,dmac-r8a77995" (R-Car D3) 34 35- reg: base address and length of the registers block for the DMAC 36 37- interrupts: interrupt specifiers for the DMAC, one for each entry in 38 interrupt-names. 39- interrupt-names: one entry for the error interrupt, named "error", plus one 40 entry per channel, named "ch%u", where %u is the channel number ranging from 41 zero to the number of channels minus one. 42 43- clock-names: "fck" for the functional clock 44- clocks: a list of phandle + clock-specifier pairs, one for each entry 45 in clock-names. 46- clock-names: must contain "fck" for the functional clock. 47 48- #dma-cells: must be <1>, the cell specifies the MID/RID of the DMAC port 49 connected to the DMA client 50- dma-channels: number of DMA channels 51 52Example: R8A7790 (R-Car H2) SYS-DMACs 53 54 dmac0: dma-controller@e6700000 { 55 compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac"; 56 reg = <0 0xe6700000 0 0x20000>; 57 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH 58 0 200 IRQ_TYPE_LEVEL_HIGH 59 0 201 IRQ_TYPE_LEVEL_HIGH 60 0 202 IRQ_TYPE_LEVEL_HIGH 61 0 203 IRQ_TYPE_LEVEL_HIGH 62 0 204 IRQ_TYPE_LEVEL_HIGH 63 0 205 IRQ_TYPE_LEVEL_HIGH 64 0 206 IRQ_TYPE_LEVEL_HIGH 65 0 207 IRQ_TYPE_LEVEL_HIGH 66 0 208 IRQ_TYPE_LEVEL_HIGH 67 0 209 IRQ_TYPE_LEVEL_HIGH 68 0 210 IRQ_TYPE_LEVEL_HIGH 69 0 211 IRQ_TYPE_LEVEL_HIGH 70 0 212 IRQ_TYPE_LEVEL_HIGH 71 0 213 IRQ_TYPE_LEVEL_HIGH 72 0 214 IRQ_TYPE_LEVEL_HIGH>; 73 interrupt-names = "error", 74 "ch0", "ch1", "ch2", "ch3", 75 "ch4", "ch5", "ch6", "ch7", 76 "ch8", "ch9", "ch10", "ch11", 77 "ch12", "ch13", "ch14"; 78 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC0>; 79 clock-names = "fck"; 80 #dma-cells = <1>; 81 dma-channels = <15>; 82 }; 83 84 dmac1: dma-controller@e6720000 { 85 compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac"; 86 reg = <0 0xe6720000 0 0x20000>; 87 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH 88 0 216 IRQ_TYPE_LEVEL_HIGH 89 0 217 IRQ_TYPE_LEVEL_HIGH 90 0 218 IRQ_TYPE_LEVEL_HIGH 91 0 219 IRQ_TYPE_LEVEL_HIGH 92 0 308 IRQ_TYPE_LEVEL_HIGH 93 0 309 IRQ_TYPE_LEVEL_HIGH 94 0 310 IRQ_TYPE_LEVEL_HIGH 95 0 311 IRQ_TYPE_LEVEL_HIGH 96 0 312 IRQ_TYPE_LEVEL_HIGH 97 0 313 IRQ_TYPE_LEVEL_HIGH 98 0 314 IRQ_TYPE_LEVEL_HIGH 99 0 315 IRQ_TYPE_LEVEL_HIGH 100 0 316 IRQ_TYPE_LEVEL_HIGH 101 0 317 IRQ_TYPE_LEVEL_HIGH 102 0 318 IRQ_TYPE_LEVEL_HIGH>; 103 interrupt-names = "error", 104 "ch0", "ch1", "ch2", "ch3", 105 "ch4", "ch5", "ch6", "ch7", 106 "ch8", "ch9", "ch10", "ch11", 107 "ch12", "ch13", "ch14"; 108 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC1>; 109 clock-names = "fck"; 110 #dma-cells = <1>; 111 dma-channels = <15>; 112 }; 113