.. | .. |
---|
1 | | -* Generic DMA Controller and DMA request bindings |
---|
2 | | - |
---|
3 | | -Generic binding to provide a way for a driver using DMA Engine to retrieve the |
---|
4 | | -DMA request or channel information that goes from a hardware device to a DMA |
---|
5 | | -controller. |
---|
6 | | - |
---|
7 | | - |
---|
8 | | -* DMA controller |
---|
9 | | - |
---|
10 | | -Required property: |
---|
11 | | -- #dma-cells: Must be at least 1. Used to provide DMA controller |
---|
12 | | - specific information. See DMA client binding below for |
---|
13 | | - more details. |
---|
14 | | - |
---|
15 | | -Optional properties: |
---|
16 | | -- dma-channels: Number of DMA channels supported by the controller. |
---|
17 | | -- dma-requests: Number of DMA request signals supported by the |
---|
18 | | - controller. |
---|
19 | | - |
---|
20 | | -Example: |
---|
21 | | - |
---|
22 | | - dma: dma@48000000 { |
---|
23 | | - compatible = "ti,omap-sdma"; |
---|
24 | | - reg = <0x48000000 0x1000>; |
---|
25 | | - interrupts = <0 12 0x4 |
---|
26 | | - 0 13 0x4 |
---|
27 | | - 0 14 0x4 |
---|
28 | | - 0 15 0x4>; |
---|
29 | | - #dma-cells = <1>; |
---|
30 | | - dma-channels = <32>; |
---|
31 | | - dma-requests = <127>; |
---|
32 | | - }; |
---|
33 | | - |
---|
34 | | -* DMA router |
---|
35 | | - |
---|
36 | | -DMA routers are transparent IP blocks used to route DMA request lines from |
---|
37 | | -devices to the DMA controller. Some SoCs (like TI DRA7x) have more peripherals |
---|
38 | | -integrated with DMA requests than what the DMA controller can handle directly. |
---|
39 | | - |
---|
40 | | -Required property: |
---|
41 | | -- dma-masters: phandle of the DMA controller or list of phandles for |
---|
42 | | - the DMA controllers the router can direct the signal to. |
---|
43 | | -- #dma-cells: Must be at least 1. Used to provide DMA router specific |
---|
44 | | - information. See DMA client binding below for more |
---|
45 | | - details. |
---|
46 | | - |
---|
47 | | -Optional properties: |
---|
48 | | -- dma-requests: Number of incoming request lines the router can handle. |
---|
49 | | -- In the node pointed by the dma-masters: |
---|
50 | | - - dma-requests: The router driver might need to look for this in order |
---|
51 | | - to configure the routing. |
---|
52 | | - |
---|
53 | | -Example: |
---|
54 | | - sdma_xbar: dma-router@4a002b78 { |
---|
55 | | - compatible = "ti,dra7-dma-crossbar"; |
---|
56 | | - reg = <0x4a002b78 0xfc>; |
---|
57 | | - #dma-cells = <1>; |
---|
58 | | - dma-requests = <205>; |
---|
59 | | - ti,dma-safe-map = <0>; |
---|
60 | | - dma-masters = <&sdma>; |
---|
61 | | - }; |
---|
62 | | - |
---|
63 | | -* DMA client |
---|
64 | | - |
---|
65 | | -Client drivers should specify the DMA property using a phandle to the controller |
---|
66 | | -followed by DMA controller specific data. |
---|
67 | | - |
---|
68 | | -Required property: |
---|
69 | | -- dmas: List of one or more DMA specifiers, each consisting of |
---|
70 | | - - A phandle pointing to DMA controller node |
---|
71 | | - - A number of integer cells, as determined by the |
---|
72 | | - #dma-cells property in the node referenced by phandle |
---|
73 | | - containing DMA controller specific information. This |
---|
74 | | - typically contains a DMA request line number or a |
---|
75 | | - channel number, but can contain any data that is |
---|
76 | | - required for configuring a channel. |
---|
77 | | -- dma-names: Contains one identifier string for each DMA specifier in |
---|
78 | | - the dmas property. The specific strings that can be used |
---|
79 | | - are defined in the binding of the DMA client device. |
---|
80 | | - Multiple DMA specifiers can be used to represent |
---|
81 | | - alternatives and in this case the dma-names for those |
---|
82 | | - DMA specifiers must be identical (see examples). |
---|
83 | | - |
---|
84 | | -Examples: |
---|
85 | | - |
---|
86 | | -1. A device with one DMA read channel, one DMA write channel: |
---|
87 | | - |
---|
88 | | - i2c1: i2c@1 { |
---|
89 | | - ... |
---|
90 | | - dmas = <&dma 2 /* read channel */ |
---|
91 | | - &dma 3>; /* write channel */ |
---|
92 | | - dma-names = "rx", "tx"; |
---|
93 | | - ... |
---|
94 | | - }; |
---|
95 | | - |
---|
96 | | -2. A single read-write channel with three alternative DMA controllers: |
---|
97 | | - |
---|
98 | | - dmas = <&dma1 5 |
---|
99 | | - &dma2 7 |
---|
100 | | - &dma3 2>; |
---|
101 | | - dma-names = "rx-tx", "rx-tx", "rx-tx"; |
---|
102 | | - |
---|
103 | | -3. A device with three channels, one of which has two alternatives: |
---|
104 | | - |
---|
105 | | - dmas = <&dma1 2 /* read channel */ |
---|
106 | | - &dma1 3 /* write channel */ |
---|
107 | | - &dma2 0 /* error read */ |
---|
108 | | - &dma3 0>; /* alternative error read */ |
---|
109 | | - dma-names = "rx", "tx", "error", "error"; |
---|
| 1 | +This file has been moved to dma-controller.yaml. |
---|