Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / devicetree / bindings / soc / ti / keystone-navigator-dma.txt
diff --git a/kernel/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt b/kernel/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt
new file mode 100644 (file)
index 0000000..337c4ea
--- /dev/null
@@ -0,0 +1,111 @@
+Keystone Navigator DMA Controller
+
+This document explains the device tree bindings for the packet dma
+on keystone devices. 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),
+CRYPTO Engines etc has its own instance of dma hardware. QMSS has also
+an internal packet DMA module which is used as an infrastructure DMA
+with zero copy.
+
+Navigator DMA cloud layout:
+       ------------------
+       | Navigator DMAs |
+       ------------------
+               |
+               |-> DMA instance #0
+               |
+               |-> DMA instance #1
+                       .
+                       .
+               |
+               |-> DMA instance #n
+
+Navigator DMA properties:
+Required properties:
+ - compatible: Should be "ti,keystone-navigator-dma"
+ - clocks: phandle to dma instances clocks. The clock handles can be as
+       many as the dma instances. The order should be maintained as per
+       the dma instances.
+ - ti,navigator-cloud-address: Should contain base address for the multi-core
+       navigator cloud and number of addresses depends on SOC integration
+       configuration.. Navigator cloud global address needs to be programmed
+       into DMA and the DMA uses it as the physical addresses to reach queue
+       managers. Note that these addresses though points to queue managers,
+       they are relevant only from DMA perspective. The QMSS may not choose to
+       use them since it has a different address space view to reach all
+       its components.
+
+DMA instance properties:
+Required properties:
+ - reg: Should contain register location and length of the following dma
+       register regions. Register regions should be specified in the following
+       order.
+       - Global control register region (global).
+       - Tx DMA channel configuration register region (txchan).
+       - Rx DMA channel configuration register region (rxchan).
+       - Tx DMA channel Scheduler configuration register region (txsched).
+       - Rx DMA flow configuration register region (rxflow).
+
+Optional properties:
+ - reg-names: Names for the register regions.
+ - ti,enable-all: Enable all DMA channels vs clients opening specific channels
+       what they need. This property is useful for the userspace fast path
+       case where the linux drivers enables the channels used by userland
+       stack.
+ - ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for
+             infrastructure transfers.
+ - ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer
+                    starvation.
+
+Example:
+
+       knav_dmas: knav_dmas@0 {
+               compatible = "ti,keystone-navigator-dma";
+               clocks = <&papllclk>, <&clkxge>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               ti,navigator-cloud-address = <0x23a80000 0x23a90000
+                                          0x23aa0000 0x23ab0000>;
+
+               dma_gbe: dma_gbe@0 {
+                       reg = <0x2004000 0x100>,
+                                 <0x2004400 0x120>,
+                                 <0x2004800 0x300>,
+                                 <0x2004c00 0x120>,
+                                 <0x2005000 0x400>;
+                       reg-names = "global", "txchan", "rxchan",
+                                       "txsched", "rxflow";
+               };
+
+               dma_xgbe: dma_xgbe@0 {
+                       reg = <0x2fa1000 0x100>,
+                               <0x2fa1400 0x200>,
+                               <0x2fa1800 0x200>,
+                               <0x2fa1c00 0x200>,
+                               <0x2fa2000 0x400>;
+                       reg-names = "global", "txchan", "rxchan",
+                                       "txsched", "rxflow";
+               };
+       };
+
+Navigator DMA client:
+Required properties:
+ - ti,navigator-dmas: List of one or more DMA specifiers, each consisting of
+                       - A phandle pointing to DMA instance node
+                       - A DMA channel number as a phandle arg.
+ - ti,navigator-dma-names: Contains dma channel name for each DMA specifier in
+                       the 'ti,navigator-dmas' property.
+
+Example:
+
+       netcp: netcp@2090000 {
+               ..
+               ti,navigator-dmas = <&dma_gbe 22>,
+                               <&dma_gbe 23>,
+                               <&dma_gbe 8>;
+               ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
+               ..
+       };