aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2014-03-30 17:29:04 -0400
committerSantosh Shilimkar <santosh.shilimkar@ti.com>2014-09-24 09:49:15 -0400
commit8172296d8717be1951da4bb4feb2700a60e8cdde (patch)
tree2f72cc61653022a42ce901ff7e3450abfbf999c5
parent41f93af900a20d1a0a358b522b5129c89677e9dc (diff)
Documentation: dt: soc: add Keystone Navigator DMA bindings
The Keystone Navigator DMA driver sets up the dma channels and flows for the QMSS(Queue Manager SubSystem) who triggers the actual data movements across clients using destination queues. Every client modules like NETCP(Network Coprocessor), SRIO(Serial Rapid IO) and CRYPTO Engines has its own instance of packet dma hardware. QMSS has also an internal packet DMA module which is used as an infrastructure DMA with zero copy. Initially this driver was proposed as DMA engine driver but since the hardware is not typical DMA engine and hence doesn't comply with typical DMA engine driver needs, that approach was naked. Link to that discussion - https://lkml.org/lkml/2014/3/18/340 As aligned, now we pair the Navigator DMA with its companion Navigator QMSS subsystem driver. Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Kumar Gala <galak@codeaurora.org> Cc: Olof Johansson <olof@lixom.net> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Grant Likely <grant.likely@linaro.org> Cc: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Sandeep Nair <sandeep_n@ti.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
-rw-r--r--Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt111
1 files changed, 111 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt
new file mode 100644
index 000000000000..337c4ea5c57b
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt
@@ -0,0 +1,111 @@
1Keystone Navigator DMA Controller
2
3This document explains the device tree bindings for the packet dma
4on keystone devices. The Keystone Navigator DMA driver sets up the dma
5channels and flows for the QMSS(Queue Manager SubSystem) who triggers
6the actual data movements across clients using destination queues. Every
7client modules like NETCP(Network Coprocessor), SRIO(Serial Rapid IO),
8CRYPTO Engines etc has its own instance of dma hardware. QMSS has also
9an internal packet DMA module which is used as an infrastructure DMA
10with zero copy.
11
12Navigator DMA cloud layout:
13 ------------------
14 | Navigator DMAs |
15 ------------------
16 |
17 |-> DMA instance #0
18 |
19 |-> DMA instance #1
20 .
21 .
22 |
23 |-> DMA instance #n
24
25Navigator DMA properties:
26Required properties:
27 - compatible: Should be "ti,keystone-navigator-dma"
28 - clocks: phandle to dma instances clocks. The clock handles can be as
29 many as the dma instances. The order should be maintained as per
30 the dma instances.
31 - ti,navigator-cloud-address: Should contain base address for the multi-core
32 navigator cloud and number of addresses depends on SOC integration
33 configuration.. Navigator cloud global address needs to be programmed
34 into DMA and the DMA uses it as the physical addresses to reach queue
35 managers. Note that these addresses though points to queue managers,
36 they are relevant only from DMA perspective. The QMSS may not choose to
37 use them since it has a different address space view to reach all
38 its components.
39
40DMA instance properties:
41Required properties:
42 - reg: Should contain register location and length of the following dma
43 register regions. Register regions should be specified in the following
44 order.
45 - Global control register region (global).
46 - Tx DMA channel configuration register region (txchan).
47 - Rx DMA channel configuration register region (rxchan).
48 - Tx DMA channel Scheduler configuration register region (txsched).
49 - Rx DMA flow configuration register region (rxflow).
50
51Optional properties:
52 - reg-names: Names for the register regions.
53 - ti,enable-all: Enable all DMA channels vs clients opening specific channels
54 what they need. This property is useful for the userspace fast path
55 case where the linux drivers enables the channels used by userland
56 stack.
57 - ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for
58 infrastructure transfers.
59 - ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer
60 starvation.
61
62Example:
63
64 knav_dmas: knav_dmas@0 {
65 compatible = "ti,keystone-navigator-dma";
66 clocks = <&papllclk>, <&clkxge>;
67 #address-cells = <1>;
68 #size-cells = <1>;
69 ranges;
70 ti,navigator-cloud-address = <0x23a80000 0x23a90000
71 0x23aa0000 0x23ab0000>;
72
73 dma_gbe: dma_gbe@0 {
74 reg = <0x2004000 0x100>,
75 <0x2004400 0x120>,
76 <0x2004800 0x300>,
77 <0x2004c00 0x120>,
78 <0x2005000 0x400>;
79 reg-names = "global", "txchan", "rxchan",
80 "txsched", "rxflow";
81 };
82
83 dma_xgbe: dma_xgbe@0 {
84 reg = <0x2fa1000 0x100>,
85 <0x2fa1400 0x200>,
86 <0x2fa1800 0x200>,
87 <0x2fa1c00 0x200>,
88 <0x2fa2000 0x400>;
89 reg-names = "global", "txchan", "rxchan",
90 "txsched", "rxflow";
91 };
92 };
93
94Navigator DMA client:
95Required properties:
96 - ti,navigator-dmas: List of one or more DMA specifiers, each consisting of
97 - A phandle pointing to DMA instance node
98 - A DMA channel number as a phandle arg.
99 - ti,navigator-dma-names: Contains dma channel name for each DMA specifier in
100 the 'ti,navigator-dmas' property.
101
102Example:
103
104 netcp: netcp@2090000 {
105 ..
106 ti,navigator-dmas = <&dma_gbe 22>,
107 <&dma_gbe 23>,
108 <&dma_gbe 8>;
109 ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
110 ..
111 };