aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-03-03 13:20:22 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-03-03 13:20:22 -0500
commit527c680f7c36ff17d49efc99632232dba3549c51 (patch)
treeae72c69971ff8dce4cc17b0035bd6abb2651a110 /Documentation
parent23caaeea271cfe3176f0e27374d2016bd7583ea8 (diff)
parentf9c6a655a94042f94c0adb30d07d93cfd8915e95 (diff)
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
Pull second set of slave-dmaengine updates from Vinod Koul: "Arnd's patch moves the dw_dmac to use generic DMA binding. I agreed to merge this late as it will avoid the conflicts between trees. The second patch from Matt adding a dma_request_slave_channel_compat API was supposed to be picked up, but somehow never got picked up. Some patches dependent on this are already in -next :(" * 'next' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: dw_dmac: move to generic DMA binding dmaengine: add dma_request_slave_channel_compat()
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/dma/snps-dma.txt70
1 files changed, 36 insertions, 34 deletions
diff --git a/Documentation/devicetree/bindings/dma/snps-dma.txt b/Documentation/devicetree/bindings/dma/snps-dma.txt
index 5bb3dfb6f1d8..d58675ea1abf 100644
--- a/Documentation/devicetree/bindings/dma/snps-dma.txt
+++ b/Documentation/devicetree/bindings/dma/snps-dma.txt
@@ -3,59 +3,61 @@
3Required properties: 3Required properties:
4- compatible: "snps,dma-spear1340" 4- compatible: "snps,dma-spear1340"
5- reg: Address range of the DMAC registers 5- reg: Address range of the DMAC registers
6- interrupt-parent: Should be the phandle for the interrupt controller
7 that services interrupts for this device
8- interrupt: Should contain the DMAC interrupt number 6- interrupt: Should contain the DMAC interrupt number
9- nr_channels: Number of channels supported by hardware 7- dma-channels: Number of channels supported by hardware
10- is_private: The device channels should be marked as private and not for by the 8- dma-requests: Number of DMA request lines supported, up to 16
11 general purpose DMA channel allocator. False if not passed. 9- dma-masters: Number of AHB masters supported by the controller
10- #dma-cells: must be <3>
12- chan_allocation_order: order of allocation of channel, 0 (default): ascending, 11- chan_allocation_order: order of allocation of channel, 0 (default): ascending,
13 1: descending 12 1: descending
14- chan_priority: priority of channels. 0 (default): increase from chan 0->n, 1: 13- chan_priority: priority of channels. 0 (default): increase from chan 0->n, 1:
15 increase from chan n->0 14 increase from chan n->0
16- block_size: Maximum block size supported by the controller 15- block_size: Maximum block size supported by the controller
17- nr_masters: Number of AHB masters supported by the controller
18- data_width: Maximum data width supported by hardware per AHB master 16- data_width: Maximum data width supported by hardware per AHB master
19 (0 - 8bits, 1 - 16bits, ..., 5 - 256bits) 17 (0 - 8bits, 1 - 16bits, ..., 5 - 256bits)
20- slave_info: 18
21 - bus_id: name of this device channel, not just a device name since 19
22 devices may have more than one channel e.g. "foo_tx". For using the 20Optional properties:
23 dw_generic_filter(), slave drivers must pass exactly this string as 21- interrupt-parent: Should be the phandle for the interrupt controller
24 param to filter function. 22 that services interrupts for this device
25 - cfg_hi: Platform-specific initializer for the CFG_HI register 23- is_private: The device channels should be marked as private and not for by the
26 - cfg_lo: Platform-specific initializer for the CFG_LO register 24 general purpose DMA channel allocator. False if not passed.
27 - src_master: src master for transfers on allocated channel.
28 - dst_master: dest master for transfers on allocated channel.
29 25
30Example: 26Example:
31 27
32 dma@fc000000 { 28 dmahost: dma@fc000000 {
33 compatible = "snps,dma-spear1340"; 29 compatible = "snps,dma-spear1340";
34 reg = <0xfc000000 0x1000>; 30 reg = <0xfc000000 0x1000>;
35 interrupt-parent = <&vic1>; 31 interrupt-parent = <&vic1>;
36 interrupts = <12>; 32 interrupts = <12>;
37 33
38 nr_channels = <8>; 34 dma-channels = <8>;
35 dma-requests = <16>;
36 dma-masters = <2>;
37 #dma-cells = <3>;
39 chan_allocation_order = <1>; 38 chan_allocation_order = <1>;
40 chan_priority = <1>; 39 chan_priority = <1>;
41 block_size = <0xfff>; 40 block_size = <0xfff>;
42 nr_masters = <2>;
43 data_width = <3 3 0 0>; 41 data_width = <3 3 0 0>;
42 };
44 43
45 slave_info { 44DMA clients connected to the Designware DMA controller must use the format
46 uart0-tx { 45described in the dma.txt file, using a four-cell specifier for each channel.
47 bus_id = "uart0-tx"; 46The four cells in order are:
48 cfg_hi = <0x4000>; /* 0x8 << 11 */ 47
49 cfg_lo = <0>; 481. A phandle pointing to the DMA controller
50 src_master = <0>; 492. The DMA request line number
51 dst_master = <1>; 503. Source master for transfers on allocated channel
52 }; 514. Destination master for transfers on allocated channel
53 spi0-tx { 52
54 bus_id = "spi0-tx"; 53Example:
55 cfg_hi = <0x2000>; /* 0x4 << 11 */ 54
56 cfg_lo = <0>; 55 serial@e0000000 {
57 src_master = <0>; 56 compatible = "arm,pl011", "arm,primecell";
58 dst_master = <0>; 57 reg = <0xe0000000 0x1000>;
59 }; 58 interrupts = <0 35 0x4>;
60 }; 59 status = "disabled";
60 dmas = <&dmahost 12 0 1>,
61 <&dmahost 13 0 1 0>;
62 dma-names = "rx", "rx";
61 }; 63 };