diff options
Diffstat (limited to 'Documentation/devicetree/bindings/dma')
7 files changed, 335 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt index e577196a12c0..4659fd952301 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt | |||
@@ -47,6 +47,7 @@ The full ID of peripheral types can be found below. | |||
47 | 20 ASRC | 47 | 20 ASRC |
48 | 21 ESAI | 48 | 21 ESAI |
49 | 22 SSI Dual FIFO (needs firmware ver >= 2) | 49 | 22 SSI Dual FIFO (needs firmware ver >= 2) |
50 | 23 Shared ASRC | ||
50 | 51 | ||
51 | The third cell specifies the transfer priority as below. | 52 | The third cell specifies the transfer priority as below. |
52 | 53 | ||
diff --git a/Documentation/devicetree/bindings/dma/mpc512x-dma.txt b/Documentation/devicetree/bindings/dma/mpc512x-dma.txt new file mode 100644 index 000000000000..a6511df165c5 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/mpc512x-dma.txt | |||
@@ -0,0 +1,29 @@ | |||
1 | * Freescale MPC512x and MPC8308 DMA Controller | ||
2 | |||
3 | The DMA controller in Freescale MPC512x and MPC8308 SoCs can move | ||
4 | blocks of memory contents between memory and peripherals or | ||
5 | from memory to memory. | ||
6 | |||
7 | Refer to "Generic DMA Controller and DMA request bindings" in | ||
8 | the dma/dma.txt file for a more detailed description of binding. | ||
9 | |||
10 | Required properties: | ||
11 | - compatible: should be "fsl,mpc5121-dma" or "fsl,mpc8308-dma"; | ||
12 | - reg: should contain the DMA controller registers location and length; | ||
13 | - interrupt for the DMA controller: syntax of interrupt client node | ||
14 | is described in interrupt-controller/interrupts.txt file. | ||
15 | - #dma-cells: the length of the DMA specifier, must be <1>. | ||
16 | Each channel of this DMA controller has a peripheral request line, | ||
17 | the assignment is fixed in hardware. This one cell | ||
18 | in dmas property of a client device represents the channel number. | ||
19 | |||
20 | Example: | ||
21 | |||
22 | dma0: dma@14000 { | ||
23 | compatible = "fsl,mpc5121-dma"; | ||
24 | reg = <0x14000 0x1800>; | ||
25 | interrupts = <65 0x8>; | ||
26 | #dma-cells = <1>; | ||
27 | }; | ||
28 | |||
29 | DMA clients must use the format described in dma/dma.txt file. | ||
diff --git a/Documentation/devicetree/bindings/dma/nbpfaxi.txt b/Documentation/devicetree/bindings/dma/nbpfaxi.txt new file mode 100644 index 000000000000..d5e2522b9ec1 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/nbpfaxi.txt | |||
@@ -0,0 +1,61 @@ | |||
1 | * Renesas "Type-AXI" NBPFAXI* DMA controllers | ||
2 | |||
3 | * DMA controller | ||
4 | |||
5 | Required properties | ||
6 | |||
7 | - compatible: must be one of | ||
8 | "renesas,nbpfaxi64dmac1b4" | ||
9 | "renesas,nbpfaxi64dmac1b8" | ||
10 | "renesas,nbpfaxi64dmac1b16" | ||
11 | "renesas,nbpfaxi64dmac4b4" | ||
12 | "renesas,nbpfaxi64dmac4b8" | ||
13 | "renesas,nbpfaxi64dmac4b16" | ||
14 | "renesas,nbpfaxi64dmac8b4" | ||
15 | "renesas,nbpfaxi64dmac8b8" | ||
16 | "renesas,nbpfaxi64dmac8b16" | ||
17 | - #dma-cells: must be 2: the first integer is a terminal number, to which this | ||
18 | slave is connected, the second one is flags. Flags is a bitmask | ||
19 | with the following bits defined: | ||
20 | |||
21 | #define NBPF_SLAVE_RQ_HIGH 1 | ||
22 | #define NBPF_SLAVE_RQ_LOW 2 | ||
23 | #define NBPF_SLAVE_RQ_LEVEL 4 | ||
24 | |||
25 | Optional properties: | ||
26 | |||
27 | You can use dma-channels and dma-requests as described in dma.txt, although they | ||
28 | won't be used, this information is derived from the compatibility string. | ||
29 | |||
30 | Example: | ||
31 | |||
32 | dma: dma-controller@48000000 { | ||
33 | compatible = "renesas,nbpfaxi64dmac8b4"; | ||
34 | reg = <0x48000000 0x400>; | ||
35 | interrupts = <0 12 0x4 | ||
36 | 0 13 0x4 | ||
37 | 0 14 0x4 | ||
38 | 0 15 0x4 | ||
39 | 0 16 0x4 | ||
40 | 0 17 0x4 | ||
41 | 0 18 0x4 | ||
42 | 0 19 0x4>; | ||
43 | #dma-cells = <2>; | ||
44 | dma-channels = <8>; | ||
45 | dma-requests = <8>; | ||
46 | }; | ||
47 | |||
48 | * DMA client | ||
49 | |||
50 | Required properties: | ||
51 | |||
52 | dmas and dma-names are required, as described in dma.txt. | ||
53 | |||
54 | Example: | ||
55 | |||
56 | #include <dt-bindings/dma/nbpfaxi.h> | ||
57 | |||
58 | ... | ||
59 | dmas = <&dma 0 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL) | ||
60 | &dma 1 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>; | ||
61 | dma-names = "rx", "tx"; | ||
diff --git a/Documentation/devicetree/bindings/dma/rcar-audmapp.txt b/Documentation/devicetree/bindings/dma/rcar-audmapp.txt new file mode 100644 index 000000000000..9f1d750d76de --- /dev/null +++ b/Documentation/devicetree/bindings/dma/rcar-audmapp.txt | |||
@@ -0,0 +1,29 @@ | |||
1 | * R-Car Audio DMAC peri peri Device Tree bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "renesas,rcar-audmapp" | ||
5 | - #dma-cells: should be <1>, see "dmas" property below | ||
6 | |||
7 | Example: | ||
8 | audmapp: audio-dma-pp@0xec740000 { | ||
9 | compatible = "renesas,rcar-audmapp"; | ||
10 | #dma-cells = <1>; | ||
11 | |||
12 | reg = <0 0xec740000 0 0x200>; | ||
13 | }; | ||
14 | |||
15 | |||
16 | * DMA client | ||
17 | |||
18 | Required properties: | ||
19 | - dmas: a list of <[DMA multiplexer phandle] [SRS/DRS value]> pairs, | ||
20 | where SRS/DRS values are fixed handles, specified in the SoC | ||
21 | manual as the value that would be written into the PDMACHCR. | ||
22 | - dma-names: a list of DMA channel names, one per "dmas" entry | ||
23 | |||
24 | Example: | ||
25 | |||
26 | dmas = <&audmapp 0x2d00 | ||
27 | &audmapp 0x3700>; | ||
28 | dma-names = "src0_ssiu0", | ||
29 | "dvc0_ssiu0"; | ||
diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt new file mode 100644 index 000000000000..df0f48bcf75a --- /dev/null +++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt | |||
@@ -0,0 +1,98 @@ | |||
1 | * Renesas R-Car DMA Controller Device Tree bindings | ||
2 | |||
3 | Renesas R-Car Generation 2 SoCs have 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 | DMA clients are connected to the DMAC ports referenced by an 8-bit identifier | ||
9 | called MID/RID. | ||
10 | |||
11 | Each DMA client is connected to one dedicated port of the DMAC, identified by | ||
12 | an 8-bit port number called the MID/RID. A DMA controller can thus serve up to | ||
13 | 256 clients in total. When the number of hardware channels is lower than the | ||
14 | number of clients to be served, channels must be shared between multiple DMA | ||
15 | clients. The association of DMA clients to DMAC channels is fully dynamic and | ||
16 | not described in these device tree bindings. | ||
17 | |||
18 | Required Properties: | ||
19 | |||
20 | - compatible: must contain "renesas,rcar-dmac" | ||
21 | |||
22 | - reg: base address and length of the registers block for the DMAC | ||
23 | |||
24 | - interrupts: interrupt specifiers for the DMAC, one for each entry in | ||
25 | interrupt-names. | ||
26 | - interrupt-names: one entry per channel, named "ch%u", where %u is the | ||
27 | channel number ranging from zero to the number of channels minus one. | ||
28 | |||
29 | - clock-names: "fck" for the functional clock | ||
30 | - clocks: a list of phandle + clock-specifier pairs, one for each entry | ||
31 | in clock-names. | ||
32 | - clock-names: must contain "fck" for the functional clock. | ||
33 | |||
34 | - #dma-cells: must be <1>, the cell specifies the MID/RID of the DMAC port | ||
35 | connected to the DMA client | ||
36 | - dma-channels: number of DMA channels | ||
37 | |||
38 | Example: R8A7790 (R-Car H2) SYS-DMACs | ||
39 | |||
40 | dmac0: dma-controller@e6700000 { | ||
41 | compatible = "renesas,rcar-dmac"; | ||
42 | reg = <0 0xe6700000 0 0x20000>; | ||
43 | interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH | ||
44 | 0 200 IRQ_TYPE_LEVEL_HIGH | ||
45 | 0 201 IRQ_TYPE_LEVEL_HIGH | ||
46 | 0 202 IRQ_TYPE_LEVEL_HIGH | ||
47 | 0 203 IRQ_TYPE_LEVEL_HIGH | ||
48 | 0 204 IRQ_TYPE_LEVEL_HIGH | ||
49 | 0 205 IRQ_TYPE_LEVEL_HIGH | ||
50 | 0 206 IRQ_TYPE_LEVEL_HIGH | ||
51 | 0 207 IRQ_TYPE_LEVEL_HIGH | ||
52 | 0 208 IRQ_TYPE_LEVEL_HIGH | ||
53 | 0 209 IRQ_TYPE_LEVEL_HIGH | ||
54 | 0 210 IRQ_TYPE_LEVEL_HIGH | ||
55 | 0 211 IRQ_TYPE_LEVEL_HIGH | ||
56 | 0 212 IRQ_TYPE_LEVEL_HIGH | ||
57 | 0 213 IRQ_TYPE_LEVEL_HIGH | ||
58 | 0 214 IRQ_TYPE_LEVEL_HIGH>; | ||
59 | interrupt-names = "error", | ||
60 | "ch0", "ch1", "ch2", "ch3", | ||
61 | "ch4", "ch5", "ch6", "ch7", | ||
62 | "ch8", "ch9", "ch10", "ch11", | ||
63 | "ch12", "ch13", "ch14"; | ||
64 | clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC0>; | ||
65 | clock-names = "fck"; | ||
66 | #dma-cells = <1>; | ||
67 | dma-channels = <15>; | ||
68 | }; | ||
69 | |||
70 | dmac1: dma-controller@e6720000 { | ||
71 | compatible = "renesas,rcar-dmac"; | ||
72 | reg = <0 0xe6720000 0 0x20000>; | ||
73 | interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH | ||
74 | 0 216 IRQ_TYPE_LEVEL_HIGH | ||
75 | 0 217 IRQ_TYPE_LEVEL_HIGH | ||
76 | 0 218 IRQ_TYPE_LEVEL_HIGH | ||
77 | 0 219 IRQ_TYPE_LEVEL_HIGH | ||
78 | 0 308 IRQ_TYPE_LEVEL_HIGH | ||
79 | 0 309 IRQ_TYPE_LEVEL_HIGH | ||
80 | 0 310 IRQ_TYPE_LEVEL_HIGH | ||
81 | 0 311 IRQ_TYPE_LEVEL_HIGH | ||
82 | 0 312 IRQ_TYPE_LEVEL_HIGH | ||
83 | 0 313 IRQ_TYPE_LEVEL_HIGH | ||
84 | 0 314 IRQ_TYPE_LEVEL_HIGH | ||
85 | 0 315 IRQ_TYPE_LEVEL_HIGH | ||
86 | 0 316 IRQ_TYPE_LEVEL_HIGH | ||
87 | 0 317 IRQ_TYPE_LEVEL_HIGH | ||
88 | 0 318 IRQ_TYPE_LEVEL_HIGH>; | ||
89 | interrupt-names = "error", | ||
90 | "ch0", "ch1", "ch2", "ch3", | ||
91 | "ch4", "ch5", "ch6", "ch7", | ||
92 | "ch8", "ch9", "ch10", "ch11", | ||
93 | "ch12", "ch13", "ch14"; | ||
94 | clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC1>; | ||
95 | clock-names = "fck"; | ||
96 | #dma-cells = <1>; | ||
97 | dma-channels = <15>; | ||
98 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/ste-dma40.txt b/Documentation/devicetree/bindings/dma/ste-dma40.txt index 1f5729f10621..95800ab37bb0 100644 --- a/Documentation/devicetree/bindings/dma/ste-dma40.txt +++ b/Documentation/devicetree/bindings/dma/ste-dma40.txt | |||
@@ -35,9 +35,11 @@ Required properties: | |||
35 | 35 | ||
36 | Each dmas request consists of 4 cells: | 36 | Each dmas request consists of 4 cells: |
37 | 1. A phandle pointing to the DMA controller | 37 | 1. A phandle pointing to the DMA controller |
38 | 2. Device Type | 38 | 2. Device signal number, the signal line for single and burst requests |
39 | connected from the device to the DMA40 engine | ||
39 | 3. The DMA request line number (only when 'use fixed channel' is set) | 40 | 3. The DMA request line number (only when 'use fixed channel' is set) |
40 | 4. A 32bit mask specifying; mode, direction and endianness [NB: This list will grow] | 41 | 4. A 32bit mask specifying; mode, direction and endianness |
42 | [NB: This list will grow] | ||
41 | 0x00000001: Mode: | 43 | 0x00000001: Mode: |
42 | Logical channel when unset | 44 | Logical channel when unset |
43 | Physical channel when set | 45 | Physical channel when set |
@@ -54,6 +56,74 @@ Each dmas request consists of 4 cells: | |||
54 | Normal priority when unset | 56 | Normal priority when unset |
55 | High priority when set | 57 | High priority when set |
56 | 58 | ||
59 | Existing signal numbers for the DB8500 ASIC. Unless specified, the signals are | ||
60 | bidirectional, i.e. the same for RX and TX operations: | ||
61 | |||
62 | 0: SPI controller 0 | ||
63 | 1: SD/MMC controller 0 (unused) | ||
64 | 2: SD/MMC controller 1 (unused) | ||
65 | 3: SD/MMC controller 2 (unused) | ||
66 | 4: I2C port 1 | ||
67 | 5: I2C port 3 | ||
68 | 6: I2C port 2 | ||
69 | 7: I2C port 4 | ||
70 | 8: Synchronous Serial Port SSP0 | ||
71 | 9: Synchronous Serial Port SSP1 | ||
72 | 10: Multi-Channel Display Engine MCDE RX | ||
73 | 11: UART port 2 | ||
74 | 12: UART port 1 | ||
75 | 13: UART port 0 | ||
76 | 14: Multirate Serial Port MSP2 | ||
77 | 15: I2C port 0 | ||
78 | 16: USB OTG in/out endpoints 7 & 15 | ||
79 | 17: USB OTG in/out endpoints 6 & 14 | ||
80 | 18: USB OTG in/out endpoints 5 & 13 | ||
81 | 19: USB OTG in/out endpoints 4 & 12 | ||
82 | 20: SLIMbus or HSI channel 0 | ||
83 | 21: SLIMbus or HSI channel 1 | ||
84 | 22: SLIMbus or HSI channel 2 | ||
85 | 23: SLIMbus or HSI channel 3 | ||
86 | 24: Multimedia DSP SXA0 | ||
87 | 25: Multimedia DSP SXA1 | ||
88 | 26: Multimedia DSP SXA2 | ||
89 | 27: Multimedia DSP SXA3 | ||
90 | 28: SD/MM controller 2 | ||
91 | 29: SD/MM controller 0 | ||
92 | 30: MSP port 1 on DB8500 v1, MSP port 3 on DB8500 v2 | ||
93 | 31: MSP port 0 or SLIMbus channel 0 | ||
94 | 32: SD/MM controller 1 | ||
95 | 33: SPI controller 2 | ||
96 | 34: i2c3 RX2 TX2 | ||
97 | 35: SPI controller 1 | ||
98 | 36: USB OTG in/out endpoints 3 & 11 | ||
99 | 37: USB OTG in/out endpoints 2 & 10 | ||
100 | 38: USB OTG in/out endpoints 1 & 9 | ||
101 | 39: USB OTG in/out endpoints 8 | ||
102 | 40: SPI controller 3 | ||
103 | 41: SD/MM controller 3 | ||
104 | 42: SD/MM controller 4 | ||
105 | 43: SD/MM controller 5 | ||
106 | 44: Multimedia DSP SXA4 | ||
107 | 45: Multimedia DSP SXA5 | ||
108 | 46: SLIMbus channel 8 or Multimedia DSP SXA6 | ||
109 | 47: SLIMbus channel 9 or Multimedia DSP SXA7 | ||
110 | 48: Crypto Accelerator 1 | ||
111 | 49: Crypto Accelerator 1 TX or Hash Accelerator 1 TX | ||
112 | 50: Hash Accelerator 1 TX | ||
113 | 51: memcpy TX (to be used by the DMA driver for memcpy operations) | ||
114 | 52: SLIMbus or HSI channel 4 | ||
115 | 53: SLIMbus or HSI channel 5 | ||
116 | 54: SLIMbus or HSI channel 6 | ||
117 | 55: SLIMbus or HSI channel 7 | ||
118 | 56: memcpy (to be used by the DMA driver for memcpy operations) | ||
119 | 57: memcpy (to be used by the DMA driver for memcpy operations) | ||
120 | 58: memcpy (to be used by the DMA driver for memcpy operations) | ||
121 | 59: memcpy (to be used by the DMA driver for memcpy operations) | ||
122 | 60: memcpy (to be used by the DMA driver for memcpy operations) | ||
123 | 61: Crypto Accelerator 0 | ||
124 | 62: Crypto Accelerator 0 TX or Hash Accelerator 0 TX | ||
125 | 63: Hash Accelerator 0 TX | ||
126 | |||
57 | Example: | 127 | Example: |
58 | 128 | ||
59 | uart@80120000 { | 129 | uart@80120000 { |
diff --git a/Documentation/devicetree/bindings/dma/sun6i-dma.txt b/Documentation/devicetree/bindings/dma/sun6i-dma.txt new file mode 100644 index 000000000000..3e145c1675b1 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/sun6i-dma.txt | |||
@@ -0,0 +1,45 @@ | |||
1 | Allwinner A31 DMA Controller | ||
2 | |||
3 | This driver follows the generic DMA bindings defined in dma.txt. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible: Must be "allwinner,sun6i-a31-dma" | ||
8 | - reg: Should contain the registers base address and length | ||
9 | - interrupts: Should contain a reference to the interrupt used by this device | ||
10 | - clocks: Should contain a reference to the parent AHB clock | ||
11 | - resets: Should contain a reference to the reset controller asserting | ||
12 | this device in reset | ||
13 | - #dma-cells : Should be 1, a single cell holding a line request number | ||
14 | |||
15 | Example: | ||
16 | dma: dma-controller@01c02000 { | ||
17 | compatible = "allwinner,sun6i-a31-dma"; | ||
18 | reg = <0x01c02000 0x1000>; | ||
19 | interrupts = <0 50 4>; | ||
20 | clocks = <&ahb1_gates 6>; | ||
21 | resets = <&ahb1_rst 6>; | ||
22 | #dma-cells = <1>; | ||
23 | }; | ||
24 | |||
25 | Clients: | ||
26 | |||
27 | DMA clients connected to the A31 DMA controller must use the format | ||
28 | described in the dma.txt file, using a two-cell specifier for each | ||
29 | channel: a phandle plus one integer cells. | ||
30 | The two cells in order are: | ||
31 | |||
32 | 1. A phandle pointing to the DMA controller. | ||
33 | 2. The port ID as specified in the datasheet | ||
34 | |||
35 | Example: | ||
36 | spi2: spi@01c6a000 { | ||
37 | compatible = "allwinner,sun6i-a31-spi"; | ||
38 | reg = <0x01c6a000 0x1000>; | ||
39 | interrupts = <0 67 4>; | ||
40 | clocks = <&ahb1_gates 22>, <&spi2_clk>; | ||
41 | clock-names = "ahb", "mod"; | ||
42 | dmas = <&dma 25>, <&dma 25>; | ||
43 | dma-names = "rx", "tx"; | ||
44 | resets = <&ahb1_rst 22>; | ||
45 | }; | ||