diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/devicetree/bindings/dma/shdma.txt | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/dma/shdma.txt b/Documentation/devicetree/bindings/dma/shdma.txt new file mode 100644 index 000000000000..c15994aa1939 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/shdma.txt | |||
@@ -0,0 +1,75 @@ | |||
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"; | ||