xref: /linux/Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt (revision e8cfa385054c6aa7ae8dd743d8ea980039a0fc0b)
1fde57a7cSKedareswara rao AppanaXilinx AXI VDMA engine, it does transfers between memory and video devices.
2fde57a7cSKedareswara rao AppanaIt can be configured to have one channel or two channels. If configured
3fde57a7cSKedareswara rao Appanaas two channels, one is to transmit to the video device and another is
4fde57a7cSKedareswara rao Appanato receive from the video device.
5fde57a7cSKedareswara rao Appana
6fde57a7cSKedareswara rao AppanaXilinx AXI DMA engine, it does transfers between memory and AXI4 stream
7fde57a7cSKedareswara rao Appanatarget devices. It can be configured to have one channel or two channels.
8fde57a7cSKedareswara rao AppanaIf configured as two channels, one is to transmit to the device and another
9fde57a7cSKedareswara rao Appanais to receive from the device.
10fde57a7cSKedareswara rao Appana
11fde57a7cSKedareswara rao AppanaXilinx AXI CDMA engine, it does transfers between memory-mapped source
12fde57a7cSKedareswara rao Appanaaddress and a memory-mapped destination address.
13fde57a7cSKedareswara rao Appana
147cb1e575SRadhey Shyam PandeyXilinx AXI MCDMA engine, it does transfer between memory and AXI4 stream
157cb1e575SRadhey Shyam Pandeytarget devices. It can be configured to have up to 16 independent transmit
167cb1e575SRadhey Shyam Pandeyand receive channels.
177cb1e575SRadhey Shyam Pandey
18fde57a7cSKedareswara rao AppanaRequired properties:
19535b4b0cSRadhey Shyam Pandey- compatible: Should be one of-
20535b4b0cSRadhey Shyam Pandey		"xlnx,axi-vdma-1.00.a"
21535b4b0cSRadhey Shyam Pandey		"xlnx,axi-dma-1.00.a"
22535b4b0cSRadhey Shyam Pandey		"xlnx,axi-cdma-1.00.a"
237cb1e575SRadhey Shyam Pandey		"xlnx,axi-mcdma-1.00.a"
24fde57a7cSKedareswara rao Appana- #dma-cells: Should be <1>, see "dmas" property below
25fde57a7cSKedareswara rao Appana- reg: Should contain VDMA registers location and length.
26fde57a7cSKedareswara rao Appana- xlnx,addrwidth: Should be the vdma addressing size in bits(ex: 32 bits).
27fde57a7cSKedareswara rao Appana- dma-ranges: Should be as the following <dma_addr cpu_addr max_len>.
28fde57a7cSKedareswara rao Appana- dma-channel child node: Should have at least one channel and can have up to
29fde57a7cSKedareswara rao Appana	two channels per device. This node specifies the properties of each
30fde57a7cSKedareswara rao Appana	DMA channel (see child node properties below).
31fde57a7cSKedareswara rao Appana- clocks: Input clock specifier. Refer to common clock bindings.
32fde57a7cSKedareswara rao Appana- clock-names: List of input clocks
33fde57a7cSKedareswara rao Appana	For VDMA:
34fde57a7cSKedareswara rao Appana	Required elements: "s_axi_lite_aclk"
35fde57a7cSKedareswara rao Appana	Optional elements: "m_axi_mm2s_aclk" "m_axi_s2mm_aclk",
36fde57a7cSKedareswara rao Appana			   "m_axis_mm2s_aclk", "s_axis_s2mm_aclk"
37fde57a7cSKedareswara rao Appana	For CDMA:
38fde57a7cSKedareswara rao Appana	Required elements: "s_axi_lite_aclk", "m_axi_aclk"
397cb1e575SRadhey Shyam Pandey	For AXIDMA and MCDMA:
40fde57a7cSKedareswara rao Appana	Required elements: "s_axi_lite_aclk"
41fde57a7cSKedareswara rao Appana	Optional elements: "m_axi_mm2s_aclk", "m_axi_s2mm_aclk",
42fde57a7cSKedareswara rao Appana			   "m_axi_sg_aclk"
43fde57a7cSKedareswara rao Appana
44fde57a7cSKedareswara rao AppanaRequired properties for VDMA:
45fde57a7cSKedareswara rao Appana- xlnx,num-fstores: Should be the number of framebuffers as configured in h/w.
46fde57a7cSKedareswara rao Appana
477cb1e575SRadhey Shyam PandeyOptional properties for AXI DMA and MCDMA:
487df54dbeSAndrea Merello- xlnx,sg-length-width: Should be set to the width in bits of the length
497df54dbeSAndrea Merello	register as configured in h/w. Takes values {8...26}. If the property
507df54dbeSAndrea Merello	is missing or invalid then the default value 23 is used. This is the
517df54dbeSAndrea Merello	maximum value that is supported by all IP versions.
5294afcfb8SRadhey Shyam Pandey
5394afcfb8SRadhey Shyam PandeyOptional properties for AXI DMA:
5494afcfb8SRadhey Shyam Pandey- xlnx,axistream-connected: Tells whether DMA is connected to AXI stream IP.
55*e8cfa385SRadhey Shyam Pandey- xlnx,irq-delay: Tells the interrupt delay timeout value. Valid range is from
56*e8cfa385SRadhey Shyam Pandey	0-255. Setting this value to zero disables the delay timer interrupt.
57*e8cfa385SRadhey Shyam Pandey	1 timeout interval = 125 * clock period of SG clock.
58fde57a7cSKedareswara rao AppanaOptional properties for VDMA:
59fde57a7cSKedareswara rao Appana- xlnx,flush-fsync: Tells which channel to Flush on Frame sync.
60fde57a7cSKedareswara rao Appana	It takes following values:
61fde57a7cSKedareswara rao Appana	{1}, flush both channels
62fde57a7cSKedareswara rao Appana	{2}, flush mm2s channel
63fde57a7cSKedareswara rao Appana	{3}, flush s2mm channel
64fde57a7cSKedareswara rao Appana
65fde57a7cSKedareswara rao AppanaRequired child node properties:
66e131f1baSKedareswara rao Appana- compatible:
67e131f1baSKedareswara rao Appana	For VDMA: It should be either "xlnx,axi-vdma-mm2s-channel" or
68fde57a7cSKedareswara rao Appana	"xlnx,axi-vdma-s2mm-channel".
69e131f1baSKedareswara rao Appana	For CDMA: It should be "xlnx,axi-cdma-channel".
707cb1e575SRadhey Shyam Pandey	For AXIDMA and MCDMA: It should be either "xlnx,axi-dma-mm2s-channel"
717cb1e575SRadhey Shyam Pandey	or "xlnx,axi-dma-s2mm-channel".
72fde57a7cSKedareswara rao Appana- interrupts: Should contain per channel VDMA interrupts.
73fde57a7cSKedareswara rao Appana- xlnx,datawidth: Should contain the stream data width, take values
74fde57a7cSKedareswara rao Appana	{32,64...1024}.
75fde57a7cSKedareswara rao Appana
76fde57a7cSKedareswara rao AppanaOptional child node properties:
77fde57a7cSKedareswara rao Appana- xlnx,include-dre: Tells hardware is configured for Data
78fde57a7cSKedareswara rao Appana	Realignment Engine.
79fde57a7cSKedareswara rao AppanaOptional child node properties for VDMA:
80fde57a7cSKedareswara rao Appana- xlnx,genlock-mode: Tells Genlock synchronization is
81fde57a7cSKedareswara rao Appana	enabled/disabled in hardware.
82714b8392SRadhey Shyam Pandey- xlnx,enable-vert-flip: Tells vertical flip is
83714b8392SRadhey Shyam Pandey	enabled/disabled in hardware(S2MM path).
847cb1e575SRadhey Shyam PandeyOptional child node properties for MCDMA:
857cb1e575SRadhey Shyam Pandey- dma-channels: Number of dma channels in child node.
86fde57a7cSKedareswara rao Appana
87fde57a7cSKedareswara rao AppanaExample:
88fde57a7cSKedareswara rao Appana++++++++
89fde57a7cSKedareswara rao Appana
90fde57a7cSKedareswara rao Appanaaxi_vdma_0: axivdma@40030000 {
91fde57a7cSKedareswara rao Appana	compatible = "xlnx,axi-vdma-1.00.a";
92fde57a7cSKedareswara rao Appana	#dma_cells = <1>;
93fde57a7cSKedareswara rao Appana	reg = < 0x40030000 0x10000 >;
94fde57a7cSKedareswara rao Appana	dma-ranges = <0x00000000 0x00000000 0x40000000>;
95fde57a7cSKedareswara rao Appana	xlnx,num-fstores = <0x8>;
96fde57a7cSKedareswara rao Appana	xlnx,flush-fsync = <0x1>;
97fde57a7cSKedareswara rao Appana	xlnx,addrwidth = <0x20>;
98fde57a7cSKedareswara rao Appana	clocks = <&clk 0>, <&clk 1>, <&clk 2>, <&clk 3>, <&clk 4>;
99fde57a7cSKedareswara rao Appana	clock-names = "s_axi_lite_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk",
100fde57a7cSKedareswara rao Appana		      "m_axis_mm2s_aclk", "s_axis_s2mm_aclk";
101fde57a7cSKedareswara rao Appana	dma-channel@40030000 {
102fde57a7cSKedareswara rao Appana		compatible = "xlnx,axi-vdma-mm2s-channel";
103fde57a7cSKedareswara rao Appana		interrupts = < 0 54 4 >;
104fde57a7cSKedareswara rao Appana		xlnx,datawidth = <0x40>;
105fde57a7cSKedareswara rao Appana	} ;
106fde57a7cSKedareswara rao Appana	dma-channel@40030030 {
107fde57a7cSKedareswara rao Appana		compatible = "xlnx,axi-vdma-s2mm-channel";
108fde57a7cSKedareswara rao Appana		interrupts = < 0 53 4 >;
109fde57a7cSKedareswara rao Appana		xlnx,datawidth = <0x40>;
110fde57a7cSKedareswara rao Appana	} ;
111fde57a7cSKedareswara rao Appana} ;
112fde57a7cSKedareswara rao Appana
113fde57a7cSKedareswara rao Appana
114fde57a7cSKedareswara rao Appana* DMA client
115fde57a7cSKedareswara rao Appana
116fde57a7cSKedareswara rao AppanaRequired properties:
117fde57a7cSKedareswara rao Appana- dmas: a list of <[Video DMA device phandle] [Channel ID]> pairs,
118fde57a7cSKedareswara rao Appana	where Channel ID is '0' for write/tx and '1' for read/rx
119766b540dSRadhey Shyam Pandey	channel. For MCMDA, MM2S channel(write/tx) ID start from
120766b540dSRadhey Shyam Pandey	'0' and is in [0-15] range. S2MM channel(read/rx) ID start
121766b540dSRadhey Shyam Pandey	from '16' and is in [16-31] range. These channels ID are
122766b540dSRadhey Shyam Pandey	fixed irrespective of IP configuration.
123766b540dSRadhey Shyam Pandey
124fde57a7cSKedareswara rao Appana- dma-names: a list of DMA channel names, one per "dmas" entry
125fde57a7cSKedareswara rao Appana
126fde57a7cSKedareswara rao AppanaExample:
127fde57a7cSKedareswara rao Appana++++++++
128fde57a7cSKedareswara rao Appana
129fde57a7cSKedareswara rao Appanavdmatest_0: vdmatest@0 {
130fde57a7cSKedareswara rao Appana	compatible ="xlnx,axi-vdma-test-1.00.a";
131fde57a7cSKedareswara rao Appana	dmas = <&axi_vdma_0 0
132fde57a7cSKedareswara rao Appana		&axi_vdma_0 1>;
133fde57a7cSKedareswara rao Appana	dma-names = "vdma0", "vdma1";
134fde57a7cSKedareswara rao Appana} ;
135