aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/dma
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/devicetree/bindings/dma')
-rw-r--r--Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt1
-rw-r--r--Documentation/devicetree/bindings/dma/mpc512x-dma.txt29
-rw-r--r--Documentation/devicetree/bindings/dma/nbpfaxi.txt61
-rw-r--r--Documentation/devicetree/bindings/dma/rcar-audmapp.txt29
-rw-r--r--Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt98
-rw-r--r--Documentation/devicetree/bindings/dma/ste-dma40.txt74
-rw-r--r--Documentation/devicetree/bindings/dma/sun6i-dma.txt45
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
51The third cell specifies the transfer priority as below. 52The 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
3The DMA controller in Freescale MPC512x and MPC8308 SoCs can move
4blocks of memory contents between memory and peripherals or
5from memory to memory.
6
7Refer to "Generic DMA Controller and DMA request bindings" in
8the dma/dma.txt file for a more detailed description of binding.
9
10Required 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
20Example:
21
22 dma0: dma@14000 {
23 compatible = "fsl,mpc5121-dma";
24 reg = <0x14000 0x1800>;
25 interrupts = <65 0x8>;
26 #dma-cells = <1>;
27 };
28
29DMA 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
5Required 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
25Optional properties:
26
27You can use dma-channels and dma-requests as described in dma.txt, although they
28won't be used, this information is derived from the compatibility string.
29
30Example:
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
50Required properties:
51
52dmas and dma-names are required, as described in dma.txt.
53
54Example:
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
3Required properties:
4- compatible: should be "renesas,rcar-audmapp"
5- #dma-cells: should be <1>, see "dmas" property below
6
7Example:
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
18Required 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
24Example:
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
3Renesas R-Car Generation 2 SoCs have have multiple multi-channel DMA
4controller instances named DMAC capable of serving multiple clients. Channels
5can be dedicated to specific clients or shared between a large number of
6clients.
7
8DMA clients are connected to the DMAC ports referenced by an 8-bit identifier
9called MID/RID.
10
11Each DMA client is connected to one dedicated port of the DMAC, identified by
12an 8-bit port number called the MID/RID. A DMA controller can thus serve up to
13256 clients in total. When the number of hardware channels is lower than the
14number of clients to be served, channels must be shared between multiple DMA
15clients. The association of DMA clients to DMAC channels is fully dynamic and
16not described in these device tree bindings.
17
18Required 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
38Example: 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
36Each dmas request consists of 4 cells: 36Each 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
59Existing signal numbers for the DB8500 ASIC. Unless specified, the signals are
60bidirectional, i.e. the same for RX and TX operations:
61
620: SPI controller 0
631: SD/MMC controller 0 (unused)
642: SD/MMC controller 1 (unused)
653: SD/MMC controller 2 (unused)
664: I2C port 1
675: I2C port 3
686: I2C port 2
697: I2C port 4
708: Synchronous Serial Port SSP0
719: Synchronous Serial Port SSP1
7210: Multi-Channel Display Engine MCDE RX
7311: UART port 2
7412: UART port 1
7513: UART port 0
7614: Multirate Serial Port MSP2
7715: I2C port 0
7816: USB OTG in/out endpoints 7 & 15
7917: USB OTG in/out endpoints 6 & 14
8018: USB OTG in/out endpoints 5 & 13
8119: USB OTG in/out endpoints 4 & 12
8220: SLIMbus or HSI channel 0
8321: SLIMbus or HSI channel 1
8422: SLIMbus or HSI channel 2
8523: SLIMbus or HSI channel 3
8624: Multimedia DSP SXA0
8725: Multimedia DSP SXA1
8826: Multimedia DSP SXA2
8927: Multimedia DSP SXA3
9028: SD/MM controller 2
9129: SD/MM controller 0
9230: MSP port 1 on DB8500 v1, MSP port 3 on DB8500 v2
9331: MSP port 0 or SLIMbus channel 0
9432: SD/MM controller 1
9533: SPI controller 2
9634: i2c3 RX2 TX2
9735: SPI controller 1
9836: USB OTG in/out endpoints 3 & 11
9937: USB OTG in/out endpoints 2 & 10
10038: USB OTG in/out endpoints 1 & 9
10139: USB OTG in/out endpoints 8
10240: SPI controller 3
10341: SD/MM controller 3
10442: SD/MM controller 4
10543: SD/MM controller 5
10644: Multimedia DSP SXA4
10745: Multimedia DSP SXA5
10846: SLIMbus channel 8 or Multimedia DSP SXA6
10947: SLIMbus channel 9 or Multimedia DSP SXA7
11048: Crypto Accelerator 1
11149: Crypto Accelerator 1 TX or Hash Accelerator 1 TX
11250: Hash Accelerator 1 TX
11351: memcpy TX (to be used by the DMA driver for memcpy operations)
11452: SLIMbus or HSI channel 4
11553: SLIMbus or HSI channel 5
11654: SLIMbus or HSI channel 6
11755: SLIMbus or HSI channel 7
11856: memcpy (to be used by the DMA driver for memcpy operations)
11957: memcpy (to be used by the DMA driver for memcpy operations)
12058: memcpy (to be used by the DMA driver for memcpy operations)
12159: memcpy (to be used by the DMA driver for memcpy operations)
12260: memcpy (to be used by the DMA driver for memcpy operations)
12361: Crypto Accelerator 0
12462: Crypto Accelerator 0 TX or Hash Accelerator 0 TX
12563: Hash Accelerator 0 TX
126
57Example: 127Example:
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 @@
1Allwinner A31 DMA Controller
2
3This driver follows the generic DMA bindings defined in dma.txt.
4
5Required 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
15Example:
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
25Clients:
26
27DMA clients connected to the A31 DMA controller must use the format
28described in the dma.txt file, using a two-cell specifier for each
29channel: a phandle plus one integer cells.
30The two cells in order are:
31
321. A phandle pointing to the DMA controller.
332. The port ID as specified in the datasheet
34
35Example:
36spi2: 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};