xref: /linux/Documentation/devicetree/bindings/dma/atmel-xdma.txt (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1* Atmel Extensible Direct Memory Access Controller (XDMAC)
2
3* XDMA Controller
4Required properties:
5- compatible: Should be "atmel,<chip>-dma".
6  <chip> compatible description:
7  - sama5d4: first SoC adding the XDMAC
8- reg: Should contain DMA registers location and length.
9- interrupts: Should contain DMA interrupt.
10- #dma-cells: Must be <1>, used to represent the number of integer cells in
11the dmas property of client devices.
12  - The 1st cell specifies the channel configuration register:
13    - bit 13: SIF, source interface identifier, used to get the memory
14    interface identifier,
15    - bit 14: DIF, destination interface identifier, used to get the peripheral
16    interface identifier,
17    - bit 30-24: PERID, peripheral identifier.
18
19Example:
20
21dma1: dma-controller@f0004000 {
22	compatible = "atmel,sama5d4-dma";
23	reg = <0xf0004000 0x200>;
24	interrupts = <50 4 0>;
25	#dma-cells = <1>;
26};
27
28
29* DMA clients
30DMA clients connected to the Atmel XDMA controller must use the format
31described in the dma.txt file, using a one-cell specifier for each channel.
32The two cells in order are:
331. A phandle pointing to the DMA controller.
342. Channel configuration register. Configurable fields are:
35    - bit 13: SIF, source interface identifier, used to get the memory
36    interface identifier,
37    - bit 14: DIF, destination interface identifier, used to get the peripheral
38    interface identifier,
39  - bit 30-24: PERID, peripheral identifier.
40
41Example:
42
43i2c2: i2c@f8024000 {
44	compatible = "atmel,at91sam9x5-i2c";
45	reg = <0xf8024000 0x4000>;
46	interrupts = <34 4 6>;
47	dmas = <&dma1
48		(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
49		 | AT91_XDMAC_DT_PERID(6))>,
50	       <&dma1
51		(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
52		| AT91_XDMAC_DT_PERID(7))>;
53	dma-names = "tx", "rx";
54};
55