diff options
Diffstat (limited to 'Documentation/devicetree/bindings/dma')
4 files changed, 184 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/dma/atmel-dma.txt b/Documentation/devicetree/bindings/dma/atmel-dma.txt index c80e8a3402f0..c280a0e6f42d 100644 --- a/Documentation/devicetree/bindings/dma/atmel-dma.txt +++ b/Documentation/devicetree/bindings/dma/atmel-dma.txt | |||
@@ -24,8 +24,11 @@ The three cells in order are: | |||
24 | 1. A phandle pointing to the DMA controller. | 24 | 1. A phandle pointing to the DMA controller. |
25 | 2. The memory interface (16 most significant bits), the peripheral interface | 25 | 2. The memory interface (16 most significant bits), the peripheral interface |
26 | (16 less significant bits). | 26 | (16 less significant bits). |
27 | 3. The peripheral identifier for the hardware handshaking interface. The | 27 | 3. Parameters for the at91 DMA configuration register which are device |
28 | identifier can be different for tx and rx. | 28 | dependant: |
29 | - bit 7-0: peripheral identifier for the hardware handshaking interface. The | ||
30 | identifier can be different for tx and rx. | ||
31 | - bit 11-8: FIFO configuration. 0 for half FIFO, 1 for ALAP, 1 for ASAP. | ||
29 | 32 | ||
30 | Example: | 33 | Example: |
31 | 34 | ||
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt new file mode 100644 index 000000000000..2717ecb47db9 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt | |||
@@ -0,0 +1,48 @@ | |||
1 | * Freescale Direct Memory Access (DMA) Controller for i.MX | ||
2 | |||
3 | This document will only describe differences to the generic DMA Controller and | ||
4 | DMA request bindings as described in dma/dma.txt . | ||
5 | |||
6 | * DMA controller | ||
7 | |||
8 | Required properties: | ||
9 | - compatible : Should be "fsl,<chip>-dma". chip can be imx1, imx21 or imx27 | ||
10 | - reg : Should contain DMA registers location and length | ||
11 | - interrupts : First item should be DMA interrupt, second one is optional and | ||
12 | should contain DMA Error interrupt | ||
13 | - #dma-cells : Has to be 1. imx-dma does not support anything else. | ||
14 | |||
15 | Optional properties: | ||
16 | - #dma-channels : Number of DMA channels supported. Should be 16. | ||
17 | - #dma-requests : Number of DMA requests supported. | ||
18 | |||
19 | Example: | ||
20 | |||
21 | dma: dma@10001000 { | ||
22 | compatible = "fsl,imx27-dma"; | ||
23 | reg = <0x10001000 0x1000>; | ||
24 | interrupts = <32 33>; | ||
25 | #dma-cells = <1>; | ||
26 | #dma-channels = <16>; | ||
27 | }; | ||
28 | |||
29 | |||
30 | * DMA client | ||
31 | |||
32 | Clients have to specify the DMA requests with phandles in a list. | ||
33 | |||
34 | Required properties: | ||
35 | - dmas: List of one or more DMA request specifiers. One DMA request specifier | ||
36 | consists of a phandle to the DMA controller followed by the integer | ||
37 | specifiying the request line. | ||
38 | - dma-names: List of string identifiers for the DMA requests. For the correct | ||
39 | names, have a look at the specific client driver. | ||
40 | |||
41 | Example: | ||
42 | |||
43 | sdhci1: sdhci@10013000 { | ||
44 | ... | ||
45 | dmas = <&dma 7>; | ||
46 | dma-names = "rx-tx"; | ||
47 | ... | ||
48 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt index d1e3f443e205..68cee4f5539f 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt | |||
@@ -4,14 +4,70 @@ Required properties: | |||
4 | - compatible : Should be "fsl,<chip>-sdma" | 4 | - compatible : Should be "fsl,<chip>-sdma" |
5 | - reg : Should contain SDMA registers location and length | 5 | - reg : Should contain SDMA registers location and length |
6 | - interrupts : Should contain SDMA interrupt | 6 | - interrupts : Should contain SDMA interrupt |
7 | - #dma-cells : Must be <3>. | ||
8 | The first cell specifies the DMA request/event ID. See details below | ||
9 | about the second and third cell. | ||
7 | - fsl,sdma-ram-script-name : Should contain the full path of SDMA RAM | 10 | - fsl,sdma-ram-script-name : Should contain the full path of SDMA RAM |
8 | scripts firmware | 11 | scripts firmware |
9 | 12 | ||
13 | The second cell of dma phandle specifies the peripheral type of DMA transfer. | ||
14 | The full ID of peripheral types can be found below. | ||
15 | |||
16 | ID transfer type | ||
17 | --------------------- | ||
18 | 0 MCU domain SSI | ||
19 | 1 Shared SSI | ||
20 | 2 MMC | ||
21 | 3 SDHC | ||
22 | 4 MCU domain UART | ||
23 | 5 Shared UART | ||
24 | 6 FIRI | ||
25 | 7 MCU domain CSPI | ||
26 | 8 Shared CSPI | ||
27 | 9 SIM | ||
28 | 10 ATA | ||
29 | 11 CCM | ||
30 | 12 External peripheral | ||
31 | 13 Memory Stick Host Controller | ||
32 | 14 Shared Memory Stick Host Controller | ||
33 | 15 DSP | ||
34 | 16 Memory | ||
35 | 17 FIFO type Memory | ||
36 | 18 SPDIF | ||
37 | 19 IPU Memory | ||
38 | 20 ASRC | ||
39 | 21 ESAI | ||
40 | |||
41 | The third cell specifies the transfer priority as below. | ||
42 | |||
43 | ID transfer priority | ||
44 | ------------------------- | ||
45 | 0 High | ||
46 | 1 Medium | ||
47 | 2 Low | ||
48 | |||
10 | Examples: | 49 | Examples: |
11 | 50 | ||
12 | sdma@83fb0000 { | 51 | sdma@83fb0000 { |
13 | compatible = "fsl,imx51-sdma", "fsl,imx35-sdma"; | 52 | compatible = "fsl,imx51-sdma", "fsl,imx35-sdma"; |
14 | reg = <0x83fb0000 0x4000>; | 53 | reg = <0x83fb0000 0x4000>; |
15 | interrupts = <6>; | 54 | interrupts = <6>; |
55 | #dma-cells = <3>; | ||
16 | fsl,sdma-ram-script-name = "sdma-imx51.bin"; | 56 | fsl,sdma-ram-script-name = "sdma-imx51.bin"; |
17 | }; | 57 | }; |
58 | |||
59 | DMA clients connected to the i.MX SDMA controller must use the format | ||
60 | described in the dma.txt file. | ||
61 | |||
62 | Examples: | ||
63 | |||
64 | ssi2: ssi@70014000 { | ||
65 | compatible = "fsl,imx51-ssi", "fsl,imx21-ssi"; | ||
66 | reg = <0x70014000 0x4000>; | ||
67 | interrupts = <30>; | ||
68 | clocks = <&clks 49>; | ||
69 | dmas = <&sdma 24 1 0>, | ||
70 | <&sdma 25 1 0>; | ||
71 | dma-names = "rx", "tx"; | ||
72 | fsl,fifo-depth = <15>; | ||
73 | }; | ||
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"; | ||