Documentation / devicetree / bindings / dma / adi,axi-dmac.txt


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 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 60 61
Analog Devices AXI-DMAC DMA controller

Required properties:
 - compatible: Must be "adi,axi-dmac-1.00.a".
 - reg: Specification for the controllers memory mapped register map.
 - interrupts: Specification for the controllers interrupt.
 - clocks: Phandle and specifier to the controllers AXI interface clock
 - #dma-cells: Must be 1.

Required sub-nodes:
 - adi,channels: This sub-node must contain a sub-node for each DMA channel. For
   the channel sub-nodes the following bindings apply. They must match the
   configuration options of the peripheral as it was instantiated.

Required properties for adi,channels sub-node:
 - #size-cells: Must be 0
 - #address-cells: Must be 1

Required channel sub-node properties:
 - reg: Which channel this node refers to.
 - adi,source-bus-width,
   adi,destination-bus-width: Width of the source or destination bus in bits.
 - adi,source-bus-type,
   adi,destination-bus-type: Type of the source or destination bus. Must be one
   of the following:
	0 (AXI_DMAC_TYPE_AXI_MM): Memory mapped AXI interface
	1 (AXI_DMAC_TYPE_AXI_STREAM): Streaming AXI interface
	2 (AXI_DMAC_TYPE_AXI_FIFO): FIFO interface

Deprecated optional channel properties:
 - adi,length-width: Width of the DMA transfer length register.
 - adi,cyclic: Must be set if the channel supports hardware cyclic DMA
   transfers.
 - adi,2d: Must be set if the channel supports hardware 2D DMA transfers.

DMA clients connected to the AXI-DMAC DMA controller must use the format
described in the dma.txt file using a one-cell specifier. The value of the
specifier refers to the DMA channel index.

Example:

dma: dma@7c420000 {
	compatible = "adi,axi-dmac-1.00.a";
	reg = <0x7c420000 0x10000>;
	interrupts = <0 57 0>;
	clocks = <&clkc 16>;
	#dma-cells = <1>;

	adi,channels {
		#size-cells = <0>;
		#address-cells = <1>;

		dma-channel@0 {
			reg = <0>;
			adi,source-bus-width = <32>;
			adi,source-bus-type = <ADI_AXI_DMAC_TYPE_MM_AXI>;
			adi,destination-bus-width = <64>;
			adi,destination-bus-type = <ADI_AXI_DMAC_TYPE_FIFO>;
		};
	};
};