xref: /freebsd/sys/contrib/device-tree/Bindings/dma/snps,dw-axi-dmac.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotSynopsys DesignWare AXI DMA Controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible: "snps,axi-dma-1.01a"
5*c66ec88fSEmmanuel Vadot- reg: Address range of the DMAC registers. This should include
6*c66ec88fSEmmanuel Vadot  all of the per-channel registers.
7*c66ec88fSEmmanuel Vadot- interrupt: Should contain the DMAC interrupt number.
8*c66ec88fSEmmanuel Vadot- dma-channels: Number of channels supported by hardware.
9*c66ec88fSEmmanuel Vadot- snps,dma-masters: Number of AXI masters supported by the hardware.
10*c66ec88fSEmmanuel Vadot- snps,data-width: Maximum AXI data width supported by hardware.
11*c66ec88fSEmmanuel Vadot  (0 - 8bits, 1 - 16bits, 2 - 32bits, ..., 6 - 512bits)
12*c66ec88fSEmmanuel Vadot- snps,priority: Priority of channel. Array size is equal to the number of
13*c66ec88fSEmmanuel Vadot  dma-channels. Priority value must be programmed within [0:dma-channels-1]
14*c66ec88fSEmmanuel Vadot  range. (0 - minimum priority)
15*c66ec88fSEmmanuel Vadot- snps,block-size: Maximum block size supported by the controller channel.
16*c66ec88fSEmmanuel Vadot  Array size is equal to the number of dma-channels.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotOptional properties:
19*c66ec88fSEmmanuel Vadot- snps,axi-max-burst-len: Restrict master AXI burst length by value specified
20*c66ec88fSEmmanuel Vadot  in this property. If this property is missing the maximum AXI burst length
21*c66ec88fSEmmanuel Vadot  supported by DMAC is used. [1:256]
22*c66ec88fSEmmanuel Vadot
23*c66ec88fSEmmanuel VadotExample:
24*c66ec88fSEmmanuel Vadot
25*c66ec88fSEmmanuel Vadotdmac: dma-controller@80000 {
26*c66ec88fSEmmanuel Vadot	compatible = "snps,axi-dma-1.01a";
27*c66ec88fSEmmanuel Vadot	reg = <0x80000 0x400>;
28*c66ec88fSEmmanuel Vadot	clocks = <&core_clk>, <&cfgr_clk>;
29*c66ec88fSEmmanuel Vadot	clock-names = "core-clk", "cfgr-clk";
30*c66ec88fSEmmanuel Vadot	interrupt-parent = <&intc>;
31*c66ec88fSEmmanuel Vadot	interrupts = <27>;
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot	dma-channels = <4>;
34*c66ec88fSEmmanuel Vadot	snps,dma-masters = <2>;
35*c66ec88fSEmmanuel Vadot	snps,data-width = <3>;
36*c66ec88fSEmmanuel Vadot	snps,block-size = <4096 4096 4096 4096>;
37*c66ec88fSEmmanuel Vadot	snps,priority = <0 1 2 3>;
38*c66ec88fSEmmanuel Vadot	snps,axi-max-burst-len = <16>;
39*c66ec88fSEmmanuel Vadot};
40