Documentation / devicetree / bindings / dma / arm-pl08x.txt


Based on kernel version 5.13. Page generated on 2021-06-28 07:05 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
* ARM PrimeCells PL080 and PL081 and derivatives DMA controller

Required properties:
- compatible: "arm,pl080", "arm,primecell";
	      "arm,pl081", "arm,primecell";
	      "faraday,ftdmac020", "arm,primecell"
- arm,primecell-periphid: on the FTDMAC020 the primecell ID is not hard-coded
  in the hardware and must be specified here as <0x0003b080>. This number
  follows the PrimeCell standard numbering using the JEP106 vendor code 0x38
  for Faraday Technology.
- reg: Address range of the PL08x registers
- interrupt: The PL08x interrupt number
- clocks: The clock running the IP core clock
- clock-names: Must contain "apb_pclk"
- lli-bus-interface-ahb1: if AHB master 1 is eligible for fetching LLIs
- lli-bus-interface-ahb2: if AHB master 2 is eligible for fetching LLIs
- mem-bus-interface-ahb1: if AHB master 1 is eligible for fetching memory contents
- mem-bus-interface-ahb2: if AHB master 2 is eligible for fetching memory contents
- #dma-cells: must be <2>. First cell should contain the DMA request,
              second cell should contain either 1 or 2 depending on
              which AHB master that is used.

Optional properties:
- dma-channels: contains the total number of DMA channels supported by the DMAC
- dma-requests: contains the total number of DMA requests supported by the DMAC
- memcpy-burst-size: the size of the bursts for memcpy: 1, 4, 8, 16, 32
  64, 128 or 256 bytes are legal values
- memcpy-bus-width: the bus width used for memcpy in bits: 8, 16 or 32 are legal
  values, the Faraday FTDMAC020 can also accept 64 bits

Clients
Required properties:
- dmas: List of DMA controller phandle, request channel and AHB master id
- dma-names: Names of the aforementioned requested channels

Example:

dmac0: dma-controller@10130000 {
	compatible = "arm,pl080", "arm,primecell";
	reg = <0x10130000 0x1000>;
	interrupt-parent = <&vica>;
	interrupts = <15>;
	clocks = <&hclkdma0>;
	clock-names = "apb_pclk";
	lli-bus-interface-ahb1;
	lli-bus-interface-ahb2;
	mem-bus-interface-ahb2;
	memcpy-burst-size = <256>;
	memcpy-bus-width = <32>;
	#dma-cells = <2>;
};

device@40008000 {
	...
	dmas = <&dmac0 0 2
		&dmac0 1 2>;
	dma-names = "tx", "rx";
	...
};