Merge tag 'iwlwifi-next-for-kalle-2014-12-30' of https://git.kernel.org/pub/scm/linux...
[cascardo/linux.git] / Documentation / devicetree / bindings / soc / fsl / qman.txt
1 QorIQ DPAA Queue Manager Device Tree Binding
2
3 Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
4
5 CONTENTS
6
7         - QMan Node
8         - QMan Private Memory Nodes
9         - Example
10
11 QMan Node
12
13 The Queue Manager is part of the Data-Path Acceleration Architecture (DPAA). QMan
14 supports queuing and QoS scheduling of frames to CPUs, network interfaces and
15 DPAA logic modules, maintains packet ordering within flows. Besides providing
16 flow-level queuing, is also responsible for congestion management functions such
17 as RED/WRED, congestion notifications and tail discards. This binding covers the
18 CCSR space programming model
19
20 PROPERTIES
21
22 - compatible
23         Usage:          Required
24         Value type:     <stringlist>
25         Definition:     Must include "fsl,qman"
26                         May include "fsl,<SoC>-qman"
27
28 - reg
29         Usage:          Required
30         Value type:     <prop-encoded-array>
31         Definition:     Registers region within the CCSR address space
32
33 The QMan revision information is located in the QMAN_IP_REV_1/2 registers which
34 are located at offsets 0xbf8 and 0xbfc
35
36 - interrupts
37         Usage:          Required
38         Value type:     <prop-encoded-array>
39         Definition:     Standard property. The error interrupt
40
41 - fsl,liodn
42         Usage:          See pamu.txt
43         Value type:     <prop-encoded-array>
44         Definition:     PAMU property used for static LIODN assignment
45
46 - fsl,iommu-parent
47         Usage:          See pamu.txt
48         Value type:     <phandle>
49         Definition:     PAMU property used for dynamic LIODN assignment
50
51         For additional details about the PAMU/LIODN binding(s) see pamu.txt
52
53 - clocks
54         Usage:          See clock-bindings.txt and qoriq-clock.txt
55         Value type:     <prop-encoded-array>
56         Definition:     Reference input clock. Its frequency is half of the
57                         platform clock
58
59 Devices connected to a QMan instance via Direct Connect Portals (DCP) must link
60 to the respective QMan instance
61
62 - fsl,qman
63         Usage:          Required
64         Value type:     <prop-encoded-array>
65         Description:    List of phandle and DCP index pairs, to the QMan instance
66                         to which this device is connected via the DCP
67
68 QMan Private Memory Nodes
69
70 QMan requires two contiguous range of physical memory used for the backing store
71 for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR).
72 This memory is reserved/allocated as a nodes under the /reserved-memory node
73
74 The QMan FQD memory node must be named "qman-fqd"
75
76 PROPERTIES
77
78 - compatible
79         Usage:          required
80         Value type:     <stringlist>
81         Definition:     Must inclide "fsl,qman-fqd"
82
83 The QMan PFDR memory node must be named "qman-pfdr"
84
85 PROPERTIES
86
87 - compatible
88         Usage:          required
89         Value type:     <stringlist>
90         Definition:     Must inclide "fsl,qman-pfdr"
91
92 The following constraints are relevant to the FQD and PFDR private memory:
93         - The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to
94           1 GiB
95         - The alignment must be a muliptle of the memory size
96
97 The size of the FQD and PFDP must be chosen by observing the hardware features
98 configured via the Reset Configuration Word (RCW) and that are relevant to a
99 specific board (e.g. number of MAC(s) pinned-out, number of offline/host command
100 FMan ports, etc.). The size configured in the DT must reflect the hardware
101 capabilities and not the specific needs of an application
102
103 For additional details about reserved memory regions see reserved-memory.txt
104
105 EXAMPLE
106
107 The example below shows a QMan FQD and a PFDR dynamic allocation memory nodes
108
109         reserved-memory {
110                 #address-cells = <2>;
111                 #size-cells = <2>;
112                 ranges;
113
114                 qman_fqd: qman-fqd {
115                         compatible = "fsl,qman-fqd";
116                         alloc-ranges = <0 0 0xf 0xffffffff>;
117                         size = <0 0x400000>;
118                         alignment = <0 0x400000>;
119                 };
120                 qman_pfdr: qman-pfdr {
121                         compatible = "fsl,qman-pfdr";
122                         alloc-ranges = <0 0 0xf 0xffffffff>;
123                         size = <0 0x2000000>;
124                         alignment = <0 0x2000000>;
125                 };
126         };
127
128 The example below shows a (P4080) QMan CCSR-space node
129
130         clockgen: global-utilities@e1000 {
131                 ...
132                 sysclk: sysclk {
133                         ...
134                 };
135                 ...
136                 platform_pll: platform-pll@c00 {
137                         #clock-cells = <1>;
138                         reg = <0xc00 0x4>;
139                         compatible = "fsl,qoriq-platform-pll-1.0";
140                         clocks = <&sysclk>;
141                         clock-output-names = "platform-pll", "platform-pll-div2";
142                 };
143                 ...
144         };
145
146         crypto@300000 {
147                 ...
148                 fsl,qman = <&qman, 2>;
149                 ...
150         };
151
152         qman: qman@318000 {
153                 compatible = "fsl,qman";
154                 reg = <0x318000 0x1000>;
155                 interrupts = <16 2 1 3>
156                 fsl,liodn = <0x16>;
157                 memory-region = <&qman_fqd &qman_pfdr>;
158                 clocks = <&platform_pll 1>;
159         };
160
161         fman@400000 {
162                 ...
163                 fsl,qman = <&qman, 0>;
164                 ...
165         };