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