aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-10-18 21:11:04 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-18 21:11:04 -0400
commit52d589a01d4545ce1dc5c3892bb8c7b55edfe714 (patch)
tree864858dae5d01aae411497e926679cf92392b4f6 /Documentation
parent0a582821d4f8edf41d9b56ae057ee2002fc275f0 (diff)
parent6b997bab20448cfe85456e4789d5d9222ab6b830 (diff)
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
Pull slave-dmaengine updates from Vinod Koul: "For dmaengine contributions we have: - designware cleanup by Andy - my series moving device_control users to dmanegine_xxx APIs for later removal of device_control API - minor fixes spread over drivers mainly mv_xor, pl330, mmp, imx-sdma etc" * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (60 commits) serial: atmel: add missing dmaengine header dmaengine: remove FSLDMA_EXTERNAL_START dmaengine: freescale: remove FSLDMA_EXTERNAL_START control method carma-fpga: move to fsl_dma_external_start() carma-fpga: use dmaengine_xxx() API dmaengine: freescale: add and export fsl_dma_external_start() dmaengine: add dmaengine_prep_dma_sg() helper video: mx3fb: use dmaengine_terminate_all() API serial: sh-sci: use dmaengine_terminate_all() API net: ks8842: use dmaengine_terminate_all() API mtd: sh_flctl: use dmaengine_terminate_all() API mtd: fsmc_nand: use dmaengine_terminate_all() API V4L2: mx3_camer: use dmaengine_pause() API dmaengine: coh901318: use dmaengine_terminate_all() API pata_arasan_cf: use dmaengine_terminate_all() API dmaengine: edma: check for echan->edesc => NULL in edma_dma_pause() dmaengine: dw: export probe()/remove() and Co to users dmaengine: dw: enable and disable controller when needed dmaengine: dw: always export dw_dma_{en,dis}able dmaengine: dw: introduce dw_dma_on() helper ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/dma/qcom_adm.txt62
-rw-r--r--Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt65
-rw-r--r--Documentation/dmaengine.txt4
3 files changed, 129 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/dma/qcom_adm.txt b/Documentation/devicetree/bindings/dma/qcom_adm.txt
new file mode 100644
index 000000000000..9bcab9115982
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/qcom_adm.txt
@@ -0,0 +1,62 @@
1QCOM ADM DMA Controller
2
3Required properties:
4- compatible: must contain "qcom,adm" for IPQ/APQ8064 and MSM8960
5- reg: Address range for DMA registers
6- interrupts: Should contain one interrupt shared by all channels
7- #dma-cells: must be <2>. First cell denotes the channel number. Second cell
8 denotes CRCI (client rate control interface) flow control assignment.
9- clocks: Should contain the core clock and interface clock.
10- clock-names: Must contain "core" for the core clock and "iface" for the
11 interface clock.
12- resets: Must contain an entry for each entry in reset names.
13- reset-names: Must include the following entries:
14 - clk
15 - c0
16 - c1
17 - c2
18- qcom,ee: indicates the security domain identifier used in the secure world.
19
20Example:
21 adm_dma: dma@18300000 {
22 compatible = "qcom,adm";
23 reg = <0x18300000 0x100000>;
24 interrupts = <0 170 0>;
25 #dma-cells = <2>;
26
27 clocks = <&gcc ADM0_CLK>, <&gcc ADM0_PBUS_CLK>;
28 clock-names = "core", "iface";
29
30 resets = <&gcc ADM0_RESET>,
31 <&gcc ADM0_C0_RESET>,
32 <&gcc ADM0_C1_RESET>,
33 <&gcc ADM0_C2_RESET>;
34 reset-names = "clk", "c0", "c1", "c2";
35 qcom,ee = <0>;
36 };
37
38DMA clients must use the format descripted in the dma.txt file, using a three
39cell specifier for each channel.
40
41Each dmas request consists of 3 cells:
42 1. phandle pointing to the DMA controller
43 2. channel number
44 3. CRCI assignment, if applicable. If no CRCI flow control is required, use 0.
45 The CRCI is used for flow control. It identifies the peripheral device that
46 is the source/destination for the transferred data.
47
48Example:
49
50 spi4: spi@1a280000 {
51 status = "ok";
52 spi-max-frequency = <50000000>;
53
54 pinctrl-0 = <&spi_pins>;
55 pinctrl-names = "default";
56
57 cs-gpios = <&qcom_pinmux 20 0>;
58
59 dmas = <&adm_dma 6 9>,
60 <&adm_dma 5 10>;
61 dma-names = "rx", "tx";
62 };
diff --git a/Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt b/Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt
new file mode 100644
index 000000000000..2291c4098730
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt
@@ -0,0 +1,65 @@
1Xilinx AXI DMA engine, it does transfers between memory and AXI4 stream
2target devices. It can be configured to have one channel or two channels.
3If configured as two channels, one is to transmit to the device and another
4is to receive from the device.
5
6Required properties:
7- compatible: Should be "xlnx,axi-dma-1.00.a"
8- #dma-cells: Should be <1>, see "dmas" property below
9- reg: Should contain DMA registers location and length.
10- dma-channel child node: Should have atleast one channel and can have upto
11 two channels per device. This node specifies the properties of each
12 DMA channel (see child node properties below).
13
14Optional properties:
15- xlnx,include-sg: Tells whether configured for Scatter-mode in
16 the hardware.
17
18Required child node properties:
19- compatible: It should be either "xlnx,axi-dma-mm2s-channel" or
20 "xlnx,axi-dma-s2mm-channel".
21- interrupts: Should contain per channel DMA interrupts.
22- xlnx,datawidth: Should contain the stream data width, take values
23 {32,64...1024}.
24
25Option child node properties:
26- xlnx,include-dre: Tells whether hardware is configured for Data
27 Realignment Engine.
28
29Example:
30++++++++
31
32axi_dma_0: axidma@40400000 {
33 compatible = "xlnx,axi-dma-1.00.a";
34 #dma_cells = <1>;
35 reg = < 0x40400000 0x10000 >;
36 dma-channel@40400000 {
37 compatible = "xlnx,axi-dma-mm2s-channel";
38 interrupts = < 0 59 4 >;
39 xlnx,datawidth = <0x40>;
40 } ;
41 dma-channel@40400030 {
42 compatible = "xlnx,axi-dma-s2mm-channel";
43 interrupts = < 0 58 4 >;
44 xlnx,datawidth = <0x40>;
45 } ;
46} ;
47
48
49* DMA client
50
51Required properties:
52- dmas: a list of <[DMA device phandle] [Channel ID]> pairs,
53 where Channel ID is '0' for write/tx and '1' for read/rx
54 channel.
55- dma-names: a list of DMA channel names, one per "dmas" entry
56
57Example:
58++++++++
59
60dmatest_0: dmatest@0 {
61 compatible ="xlnx,axi-dma-test-1.00.a";
62 dmas = <&axi_dma_0 0
63 &axi_dma_0 1>;
64 dma-names = "dma0", "dma1";
65} ;
diff --git a/Documentation/dmaengine.txt b/Documentation/dmaengine.txt
index 573e28ce9751..11fb87ff6cd0 100644
--- a/Documentation/dmaengine.txt
+++ b/Documentation/dmaengine.txt
@@ -98,7 +98,7 @@ The slave DMA usage consists of following steps:
98 unsigned long flags); 98 unsigned long flags);
99 99
100 The peripheral driver is expected to have mapped the scatterlist for 100 The peripheral driver is expected to have mapped the scatterlist for
101 the DMA operation prior to calling device_prep_slave_sg, and must 101 the DMA operation prior to calling dmaengine_prep_slave_sg(), and must
102 keep the scatterlist mapped until the DMA operation has completed. 102 keep the scatterlist mapped until the DMA operation has completed.
103 The scatterlist must be mapped using the DMA struct device. 103 The scatterlist must be mapped using the DMA struct device.
104 If a mapping needs to be synchronized later, dma_sync_*_for_*() must be 104 If a mapping needs to be synchronized later, dma_sync_*_for_*() must be
@@ -195,5 +195,5 @@ Further APIs:
195 Note: 195 Note:
196 Not all DMA engine drivers can return reliable information for 196 Not all DMA engine drivers can return reliable information for
197 a running DMA channel. It is recommended that DMA engine users 197 a running DMA channel. It is recommended that DMA engine users
198 pause or stop (via dmaengine_terminate_all) the channel before 198 pause or stop (via dmaengine_terminate_all()) the channel before
199 using this API. 199 using this API.