2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-27 06:34:11 +08:00

dt-bindings: dmaengine: xilinx_dma: Add binding for Xilinx MCDMA IP

Add devicetree binding for Xilinx AXI Multichannel Direct Memory Access
(AXI MCDMA) IP. The AXI MCDMA provides high-bandwidth direct memory
access between memory and AXI4-Stream target peripherals. The AXI MCDMA
core provides a scatter-gather interface with multiple channel support
with independent configuration.

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Acked-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/1571763622-29281-4-git-send-email-radhey.shyam.pandey@xilinx.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Radhey Shyam Pandey 2019-10-22 22:30:19 +05:30 committed by Vinod Koul
parent 535b4b0c05
commit 7cb1e57544

View File

@ -11,11 +11,16 @@ is to receive from the device.
Xilinx AXI CDMA engine, it does transfers between memory-mapped source Xilinx AXI CDMA engine, it does transfers between memory-mapped source
address and a memory-mapped destination address. address and a memory-mapped destination address.
Xilinx AXI MCDMA engine, it does transfer between memory and AXI4 stream
target devices. It can be configured to have up to 16 independent transmit
and receive channels.
Required properties: Required properties:
- compatible: Should be one of- - compatible: Should be one of-
"xlnx,axi-vdma-1.00.a" "xlnx,axi-vdma-1.00.a"
"xlnx,axi-dma-1.00.a" "xlnx,axi-dma-1.00.a"
"xlnx,axi-cdma-1.00.a" "xlnx,axi-cdma-1.00.a"
"xlnx,axi-mcdma-1.00.a"
- #dma-cells: Should be <1>, see "dmas" property below - #dma-cells: Should be <1>, see "dmas" property below
- reg: Should contain VDMA registers location and length. - reg: Should contain VDMA registers location and length.
- xlnx,addrwidth: Should be the vdma addressing size in bits(ex: 32 bits). - xlnx,addrwidth: Should be the vdma addressing size in bits(ex: 32 bits).
@ -31,7 +36,7 @@ Required properties:
"m_axis_mm2s_aclk", "s_axis_s2mm_aclk" "m_axis_mm2s_aclk", "s_axis_s2mm_aclk"
For CDMA: For CDMA:
Required elements: "s_axi_lite_aclk", "m_axi_aclk" Required elements: "s_axi_lite_aclk", "m_axi_aclk"
For AXIDMA: For AXIDMA and MCDMA:
Required elements: "s_axi_lite_aclk" Required elements: "s_axi_lite_aclk"
Optional elements: "m_axi_mm2s_aclk", "m_axi_s2mm_aclk", Optional elements: "m_axi_mm2s_aclk", "m_axi_s2mm_aclk",
"m_axi_sg_aclk" "m_axi_sg_aclk"
@ -39,7 +44,7 @@ Required properties:
Required properties for VDMA: Required properties for VDMA:
- xlnx,num-fstores: Should be the number of framebuffers as configured in h/w. - xlnx,num-fstores: Should be the number of framebuffers as configured in h/w.
Optional properties for AXI DMA: Optional properties for AXI DMA and MCDMA:
- xlnx,sg-length-width: Should be set to the width in bits of the length - xlnx,sg-length-width: Should be set to the width in bits of the length
register as configured in h/w. Takes values {8...26}. If the property register as configured in h/w. Takes values {8...26}. If the property
is missing or invalid then the default value 23 is used. This is the is missing or invalid then the default value 23 is used. This is the
@ -56,8 +61,8 @@ Required child node properties:
For VDMA: It should be either "xlnx,axi-vdma-mm2s-channel" or For VDMA: It should be either "xlnx,axi-vdma-mm2s-channel" or
"xlnx,axi-vdma-s2mm-channel". "xlnx,axi-vdma-s2mm-channel".
For CDMA: It should be "xlnx,axi-cdma-channel". For CDMA: It should be "xlnx,axi-cdma-channel".
For AXIDMA: It should be either "xlnx,axi-dma-mm2s-channel" or For AXIDMA and MCDMA: It should be either "xlnx,axi-dma-mm2s-channel"
"xlnx,axi-dma-s2mm-channel". or "xlnx,axi-dma-s2mm-channel".
- interrupts: Should contain per channel VDMA interrupts. - interrupts: Should contain per channel VDMA interrupts.
- xlnx,datawidth: Should contain the stream data width, take values - xlnx,datawidth: Should contain the stream data width, take values
{32,64...1024}. {32,64...1024}.
@ -70,6 +75,8 @@ Optional child node properties for VDMA:
enabled/disabled in hardware. enabled/disabled in hardware.
- xlnx,enable-vert-flip: Tells vertical flip is - xlnx,enable-vert-flip: Tells vertical flip is
enabled/disabled in hardware(S2MM path). enabled/disabled in hardware(S2MM path).
Optional child node properties for MCDMA:
- dma-channels: Number of dma channels in child node.
Example: Example:
++++++++ ++++++++