The AXI DMAC is a high-speed, high-throughput, general purpose DMA controller intended to be used to transfer data between system memory and other peripherals like high-speed converters.
Source | Mainlined? |
---|---|
drivers/dma/dma-axi-dmac.c | Yes |
Function | File |
---|---|
driver | drivers/dma/dma-axi-dmac.c |
include | include/dt-bindings/dma/axi-dmac.h |
Documentation | Documentation/devicetree/bindings/dma/adi,axi-dmac.txt |
The AXI-DMAC driver is a platform driver and can currently only be instantiated via device tree.
Required properties:
Required sub-nodes:
Required properties for adi,channels sub-node:
Required channel sub-node properties:
Optional channel properties:
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>; }; }; };
Configure kernel with “make menuconfig” (alternatively use “make xconfig” or “make qconfig”)
Linux Kernel Configuration Device Drivers ---> <*> DMA ---> <*> DMA Engine support ---> [--snip--] <*> Analog Devices AXI-DMAC DMA support [--snip--]