]> Pileus Git - ~andy/linux/blob - Documentation/devicetree/bindings/dma/shdma.txt
Merge tag 'remoteproc-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[~andy/linux] / Documentation / devicetree / bindings / dma / shdma.txt
1 * SHDMA Device Tree bindings
2
3 Sh-/r-mobile and r-car systems often have multiple identical DMA controller
4 instances, capable of serving any of a common set of DMA slave devices, using
5 the same configuration. To describe this topology we require all compatible
6 SHDMA DT nodes to be placed under a DMA multiplexer node. All such compatible
7 DMAC instances have the same number of channels and use the same DMA
8 descriptors. Therefore respective DMA DT bindings can also all be placed in the
9 multiplexer node. Even if there is only one such DMAC instance on a system, it
10 still has to be placed under such a multiplexer node.
11
12 * DMA multiplexer
13
14 Required properties:
15 - compatible:   should be "renesas,shdma-mux"
16 - #dma-cells:   should be <1>, see "dmas" property below
17
18 Optional properties (currently unused):
19 - dma-channels: number of DMA channels
20 - dma-requests: number of DMA request signals
21
22 * DMA controller
23
24 Required properties:
25 - compatible:   should be "renesas,shdma"
26
27 Example:
28         dmac: dma-mux0 {
29                 compatible = "renesas,shdma-mux";
30                 #dma-cells = <1>;
31                 dma-channels = <6>;
32                 dma-requests = <256>;
33                 reg = <0 0>;    /* Needed for AUXDATA */
34                 #address-cells = <1>;
35                 #size-cells = <1>;
36                 ranges;
37
38                 dma0: shdma@fe008020 {
39                         compatible = "renesas,shdma";
40                         reg = <0xfe008020 0x270>,
41                                 <0xfe009000 0xc>;
42                         interrupt-parent = <&gic>;
43                         interrupts = <0 34 4
44                                         0 28 4
45                                         0 29 4
46                                         0 30 4
47                                         0 31 4
48                                         0 32 4
49                                         0 33 4>;
50                         interrupt-names = "error",
51                                         "ch0", "ch1", "ch2", "ch3",
52                                         "ch4", "ch5";
53                 };
54
55                 dma1: shdma@fe018020 {
56                         ...
57                 };
58
59                 dma2: shdma@fe028020 {
60                         ...
61                 };
62         };
63
64 * DMA client
65
66 Required properties:
67 - dmas:         a list of <[DMA multiplexer phandle] [MID/RID value]> pairs,
68                 where MID/RID values are fixed handles, specified in the SoC
69                 manual
70 - dma-names:    a list of DMA channel names, one per "dmas" entry
71
72 Example:
73         dmas = <&dmac 0xd1
74                 &dmac 0xd2>;
75         dma-names = "tx", "rx";