xref: /freebsd/sys/contrib/device-tree/Bindings/dma/arm-pl08x.txt (revision 8ddb146abcdf061be9f2c0db7e391697dafad85c)
1* ARM PrimeCells PL080 and PL081 and derivatives DMA controller
2
3Required properties:
4- compatible: "arm,pl080", "arm,primecell";
5	      "arm,pl081", "arm,primecell";
6	      "faraday,ftdmac020", "arm,primecell"
7- arm,primecell-periphid: on the FTDMAC020 the primecell ID is not hard-coded
8  in the hardware and must be specified here as <0x0003b080>. This number
9  follows the PrimeCell standard numbering using the JEP106 vendor code 0x38
10  for Faraday Technology.
11- reg: Address range of the PL08x registers
12- interrupt: The PL08x interrupt number
13- clocks: The clock running the IP core clock
14- clock-names: Must contain "apb_pclk"
15- lli-bus-interface-ahb1: if AHB master 1 is eligible for fetching LLIs
16- lli-bus-interface-ahb2: if AHB master 2 is eligible for fetching LLIs
17- mem-bus-interface-ahb1: if AHB master 1 is eligible for fetching memory contents
18- mem-bus-interface-ahb2: if AHB master 2 is eligible for fetching memory contents
19- #dma-cells: must be <2>. First cell should contain the DMA request,
20              second cell should contain either 1 or 2 depending on
21              which AHB master that is used.
22
23Optional properties:
24- dma-channels: contains the total number of DMA channels supported by the DMAC
25- dma-requests: contains the total number of DMA requests supported by the DMAC
26- memcpy-burst-size: the size of the bursts for memcpy: 1, 4, 8, 16, 32
27  64, 128 or 256 bytes are legal values
28- memcpy-bus-width: the bus width used for memcpy in bits: 8, 16 or 32 are legal
29  values, the Faraday FTDMAC020 can also accept 64 bits
30
31Clients
32Required properties:
33- dmas: List of DMA controller phandle, request channel and AHB master id
34- dma-names: Names of the aforementioned requested channels
35
36Example:
37
38dmac0: dma-controller@10130000 {
39	compatible = "arm,pl080", "arm,primecell";
40	reg = <0x10130000 0x1000>;
41	interrupt-parent = <&vica>;
42	interrupts = <15>;
43	clocks = <&hclkdma0>;
44	clock-names = "apb_pclk";
45	lli-bus-interface-ahb1;
46	lli-bus-interface-ahb2;
47	mem-bus-interface-ahb2;
48	memcpy-burst-size = <256>;
49	memcpy-bus-width = <32>;
50	#dma-cells = <2>;
51};
52
53device@40008000 {
54	...
55	dmas = <&dmac0 0 2
56		&dmac0 1 2>;
57	dma-names = "tx", "rx";
58	...
59};
60