dt/bindings: Introduce the FSL QorIQ DPAA QMan portal(s)
authorEmil Medve <Emilian.Medve@freescale.com>
Wed, 5 Nov 2014 15:18:54 +0000 (09:18 -0600)
committerScott Wood <scottwood@freescale.com>
Thu, 13 Nov 2014 05:53:47 +0000 (23:53 -0600)
Portals are memory mapped interfaces to QMan that allow low-latency,
lock-less interaction by software running on processor cores,
accelerators and network interfaces with the QMan

Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
Change-Id: I29764fa8093b5ce65460abc879446795c50d7185
Signed-off-by: Scott Wood <scottwood@freescale.com>
Documentation/devicetree/bindings/soc/fsl/qman-portals.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/soc/fsl/qman-portals.txt b/Documentation/devicetree/bindings/soc/fsl/qman-portals.txt
new file mode 100644 (file)
index 0000000..48c4dae
--- /dev/null
@@ -0,0 +1,154 @@
+QorIQ DPAA Queue Manager Portals Device Tree Binding
+
+Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
+
+CONTENTS
+
+       - QMan Portal
+       - QMan Pool Channel
+       - Example
+
+QMan Portal Node
+
+Portals are memory mapped interfaces to QMan that allow low-latency, lock-less
+interaction by software running on processor cores, accelerators and network
+interfaces with the QMan
+
+PROPERTIES
+
+- compatible
+       Usage:          Required
+       Value type:     <stringlist>
+       Definition:     Must include "fsl,qman-portal-<hardware revision>"
+                       May include "fsl,<SoC>-qman-portal" or "fsl,qman-portal"
+
+- reg
+       Usage:          Required
+       Value type:     <prop-encoded-array>
+       Definition:     Two regions. The first is the cache-enabled region of
+                       the portal. The second is the cache-inhibited region of
+                       the portal
+
+- interrupts
+       Usage:          Required
+       Value type:     <prop-encoded-array>
+       Definition:     Standard property
+
+- fsl,liodn
+       Usage:          See pamu.txt
+       Value type:     <prop-encoded-array>
+       Definition:     Two LIODN(s). DQRR LIODN (DLIODN) and Frame LIODN
+                       (FLIODN)
+
+- fsl,iommu-parent
+       Usage:          See pamu.txt
+       Value type:     <phandle>
+       Definition:     PAMU property used for dynamic LIODN assignment
+
+       For additional details about the PAMU/LIODN binding(s) see pamu.txt
+
+- fsl,qman-channel-id
+       Usage:          Required
+       Value type:     <u32>
+       Definition:     The hardware index of the channel. This can also be
+                       determined by dividing any of the channel's 8 work queue
+                       IDs by 8
+
+In addition to these properties the qman-portals should have sub-nodes to
+represent the HW devices/portals that are connected to the software portal
+described here
+
+The currently supported sub-nodes are:
+       * fman0
+       * fman1
+       * pme
+       * crypto
+
+These subnodes should have the following properties:
+
+- fsl,liodn
+       Usage:          See pamu.txt
+       Value type:     <prop-encoded-array>
+       Definition:     PAMU property used for static LIODN assignment
+
+- fsl,iommu-parent
+       Usage:          See pamu.txt
+       Value type:     <phandle>
+       Definition:     PAMU property used for dynamic LIODN assignment
+
+- dev-handle
+       Usage:          Required
+       Value type:     <phandle>
+       Definition:     The phandle to the particular hardware device that this
+                       portal is connected to.
+
+DPAA QMan Pool Channel Nodes
+
+Pool Channels are defined with the following properties.
+
+PROPERTIES
+
+- compatible
+       Usage:          Required
+       Value type:     <stringlist>
+       Definition:     Must include "fsl,qman-pool-channel"
+                       May include "fsl,<SoC>-qman-pool-channel"
+
+- fsl,qman-channel-id
+       Usage:          Required
+       Value type:     <u32>
+       Definition:     The hardware index of the channel. This can also be
+                       determined by dividing any of the channel's 8 work queue
+                       IDs by 8
+
+EXAMPLE
+
+The example below shows a (P4080) QMan portals container/bus node with two portals
+
+       qman-portals@ff4200000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges = <0 0xf 0xf4200000 0x200000>;
+
+               qman-portal@0 {
+                       compatible = "fsl,qman-portal-1.2.0", "fsl,qman-portal";
+                       reg = <0 0x4000>, <0x100000 0x1000>;
+                       interrupts = <104 2 0 0>;
+                       fsl,liodn = <1 2>;
+                       fsl,qman-channel-id = <0>;
+
+                       fman0 {
+                               fsl,liodn = <0x21>;
+                               dev-handle = <&fman0>;
+                       };
+                       fman1 {
+                               fsl,liodn = <0xa1>;
+                               dev-handle = <&fman1>;
+                       };
+                       crypto {
+                               fsl,liodn = <0x41 0x66>;
+                               dev-handle = <&crypto>;
+                       };
+               };
+               qman-portal@4000 {
+                       compatible = "fsl,qman-portal-1.2.0", "fsl,qman-portal";
+                       reg = <0x4000 0x4000>, <0x101000 0x1000>;
+                       interrupts = <106 2 0 0>;
+                       fsl,liodn = <3 4>;
+                       fsl,qman-channel-id = <1>;
+
+                       fman0 {
+                               fsl,liodn = <0x22>;
+                               dev-handle = <&fman0>;
+                       };
+                       fman1 {
+                               fsl,liodn = <0xa2>;
+                               dev-handle = <&fman1>;
+                       };
+                       crypto {
+                               fsl,liodn = <0x42 0x67>;
+                               dev-handle = <&crypto>;
+                       };
+               };
+       };