diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2014-11-18 00:58:15 -0500 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2014-11-18 01:00:38 -0500 |
commit | 35891d40bfc4f41fc627abb757c0894c0028f3ab (patch) | |
tree | beabb57ce8423538cd534a774fb5c0f8a3a8ec74 /Documentation | |
parent | 80fa93fce37d3490f4bb0da8a5b239a6745bc744 (diff) | |
parent | 76f3e2929bb6b476fb02b519ad953e2e29ee7bd5 (diff) |
Merge remote-tracking branch 'scottwood/next' into next
Scott says:
"Highlights include a bunch of 8xx optimizations, device tree bindings
for Freescale BMan, QMan, and FMan datapath components, misc device tree
updates, and inbound rio window support."
Diffstat (limited to 'Documentation')
6 files changed, 1046 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/clock/qoriq-clock.txt b/Documentation/devicetree/bindings/clock/qoriq-clock.txt index 5666812fc42b..266ff9d23229 100644 --- a/Documentation/devicetree/bindings/clock/qoriq-clock.txt +++ b/Documentation/devicetree/bindings/clock/qoriq-clock.txt | |||
@@ -62,6 +62,8 @@ Required properties: | |||
62 | It takes parent's clock-frequency as its clock. | 62 | It takes parent's clock-frequency as its clock. |
63 | * "fsl,qoriq-sysclk-2.0": for input system clock (v2.0). | 63 | * "fsl,qoriq-sysclk-2.0": for input system clock (v2.0). |
64 | It takes parent's clock-frequency as its clock. | 64 | It takes parent's clock-frequency as its clock. |
65 | * "fsl,qoriq-platform-pll-1.0" for the platform PLL clock (v1.0) | ||
66 | * "fsl,qoriq-platform-pll-2.0" for the platform PLL clock (v2.0) | ||
65 | - #clock-cells: From common clock binding. The number of cells in a | 67 | - #clock-cells: From common clock binding. The number of cells in a |
66 | clock-specifier. Should be <0> for "fsl,qoriq-sysclk-[1,2].0" | 68 | clock-specifier. Should be <0> for "fsl,qoriq-sysclk-[1,2].0" |
67 | clocks, or <1> for "fsl,qoriq-core-pll-[1,2].0" clocks. | 69 | clocks, or <1> for "fsl,qoriq-core-pll-[1,2].0" clocks. |
@@ -128,8 +130,16 @@ Example for clock block and clock provider: | |||
128 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; | 130 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; |
129 | clock-output-names = "cmux1"; | 131 | clock-output-names = "cmux1"; |
130 | }; | 132 | }; |
133 | |||
134 | platform-pll: platform-pll@c00 { | ||
135 | #clock-cells = <1>; | ||
136 | reg = <0xc00 0x4>; | ||
137 | compatible = "fsl,qoriq-platform-pll-1.0"; | ||
138 | clocks = <&sysclk>; | ||
139 | clock-output-names = "platform-pll", "platform-pll-div2"; | ||
140 | }; | ||
131 | }; | 141 | }; |
132 | } | 142 | }; |
133 | 143 | ||
134 | Example for clock consumer: | 144 | Example for clock consumer: |
135 | 145 | ||
@@ -139,4 +149,4 @@ Example for clock consumer: | |||
139 | clocks = <&mux0>; | 149 | clocks = <&mux0>; |
140 | ... | 150 | ... |
141 | }; | 151 | }; |
142 | } | 152 | }; |
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/fman.txt b/Documentation/devicetree/bindings/powerpc/fsl/fman.txt new file mode 100644 index 000000000000..edeea160ca39 --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/fman.txt | |||
@@ -0,0 +1,534 @@ | |||
1 | ============================================================================= | ||
2 | Freescale Frame Manager Device Bindings | ||
3 | |||
4 | CONTENTS | ||
5 | - FMan Node | ||
6 | - FMan Port Node | ||
7 | - FMan MURAM Node | ||
8 | - FMan dTSEC/XGEC/mEMAC Node | ||
9 | - FMan IEEE 1588 Node | ||
10 | - Example | ||
11 | |||
12 | ============================================================================= | ||
13 | FMan Node | ||
14 | |||
15 | DESCRIPTION | ||
16 | |||
17 | Due to the fact that the FMan is an aggregation of sub-engines (ports, MACs, | ||
18 | etc.) the FMan node will have child nodes for each of them. | ||
19 | |||
20 | PROPERTIES | ||
21 | |||
22 | - compatible | ||
23 | Usage: required | ||
24 | Value type: <stringlist> | ||
25 | Definition: Must include "fsl,fman" | ||
26 | FMan version can be determined via FM_IP_REV_1 register in the | ||
27 | FMan block. The offset is 0xc4 from the beginning of the | ||
28 | Frame Processing Manager memory map (0xc3000 from the | ||
29 | beginning of the FMan node). | ||
30 | |||
31 | - cell-index | ||
32 | Usage: required | ||
33 | Value type: <u32> | ||
34 | Definition: Specifies the index of the FMan unit. | ||
35 | |||
36 | The cell-index value may be used by the SoC, to identify the | ||
37 | FMan unit in the SoC memory map. In the table bellow, | ||
38 | there's a description of the cell-index use in each SoC: | ||
39 | |||
40 | - P1023: | ||
41 | register[bit] FMan unit cell-index | ||
42 | ============================================================ | ||
43 | DEVDISR[1] 1 0 | ||
44 | |||
45 | - P2041, P3041, P4080 P5020, P5040: | ||
46 | register[bit] FMan unit cell-index | ||
47 | ============================================================ | ||
48 | DCFG_DEVDISR2[6] 1 0 | ||
49 | DCFG_DEVDISR2[14] 2 1 | ||
50 | (Second FM available only in P4080 and P5040) | ||
51 | |||
52 | - B4860, T1040, T2080, T4240: | ||
53 | register[bit] FMan unit cell-index | ||
54 | ============================================================ | ||
55 | DCFG_CCSR_DEVDISR2[24] 1 0 | ||
56 | DCFG_CCSR_DEVDISR2[25] 2 1 | ||
57 | (Second FM available only in T4240) | ||
58 | |||
59 | DEVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in | ||
60 | the specific SoC "Device Configuration/Pin Control" Memory | ||
61 | Map. | ||
62 | |||
63 | - reg | ||
64 | Usage: required | ||
65 | Value type: <prop-encoded-array> | ||
66 | Definition: A standard property. Specifies the offset of the | ||
67 | following configuration registers: | ||
68 | - BMI configuration registers. | ||
69 | - QMI configuration registers. | ||
70 | - DMA configuration registers. | ||
71 | - FPM configuration registers. | ||
72 | - FMan controller configuration registers. | ||
73 | |||
74 | - ranges | ||
75 | Usage: required | ||
76 | Value type: <prop-encoded-array> | ||
77 | Definition: A standard property. | ||
78 | |||
79 | - clocks | ||
80 | Usage: required | ||
81 | Value type: <prop-encoded-array> | ||
82 | Definition: phandle for the fman input clock. | ||
83 | |||
84 | - clock-names | ||
85 | usage: required | ||
86 | Value type: <stringlist> | ||
87 | Definition: "fmanclk" for the fman input clock. | ||
88 | |||
89 | - interrupts | ||
90 | Usage: required | ||
91 | Value type: <prop-encoded-array> | ||
92 | Definition: A pair of IRQs are specified in this property. | ||
93 | The first element is associated with the event interrupts and | ||
94 | the second element is associated with the error interrupts. | ||
95 | |||
96 | - fsl,qman-channel-range | ||
97 | Usage: required | ||
98 | Value type: <prop-encoded-array> | ||
99 | Definition: Specifies the range of the available dedicated | ||
100 | channels in the FMan. The first cell specifies the beginning | ||
101 | of the range and the second cell specifies the number of | ||
102 | channels. | ||
103 | Further information available at: | ||
104 | "Work Queue (WQ) Channel Assignments in the QMan" section | ||
105 | in DPAA Reference Manual. | ||
106 | |||
107 | - fsl,qman | ||
108 | - fsl,bman | ||
109 | Usage: required | ||
110 | Definition: See soc/fsl/qman.txt and soc/fsl/bman.txt | ||
111 | |||
112 | ============================================================================= | ||
113 | FMan MURAM Node | ||
114 | |||
115 | DESCRIPTION | ||
116 | |||
117 | FMan Internal memory - shared between all the FMan modules. | ||
118 | It contains data structures that are common and written to or read by | ||
119 | the modules. | ||
120 | FMan internal memory is split into the following parts: | ||
121 | Packet buffering (Tx/Rx FIFOs) | ||
122 | Frames internal context | ||
123 | |||
124 | PROPERTIES | ||
125 | |||
126 | - compatible | ||
127 | Usage: required | ||
128 | Value type: <stringlist> | ||
129 | Definition: Must include "fsl,fman-muram" | ||
130 | |||
131 | - ranges | ||
132 | Usage: required | ||
133 | Value type: <prop-encoded-array> | ||
134 | Definition: A standard property. | ||
135 | Specifies the multi-user memory offset and the size within | ||
136 | the FMan. | ||
137 | |||
138 | EXAMPLE | ||
139 | |||
140 | muram@0 { | ||
141 | compatible = "fsl,fman-muram"; | ||
142 | ranges = <0 0x000000 0x28000>; | ||
143 | }; | ||
144 | |||
145 | ============================================================================= | ||
146 | FMan Port Node | ||
147 | |||
148 | DESCRIPTION | ||
149 | |||
150 | The Frame Manager (FMan) supports several types of hardware ports: | ||
151 | Ethernet receiver (RX) | ||
152 | Ethernet transmitter (TX) | ||
153 | Offline/Host command (O/H) | ||
154 | |||
155 | PROPERTIES | ||
156 | |||
157 | - compatible | ||
158 | Usage: required | ||
159 | Value type: <stringlist> | ||
160 | Definition: A standard property. | ||
161 | Must include one of the following: | ||
162 | - "fsl,fman-v2-port-oh" for FManV2 OH ports | ||
163 | - "fsl,fman-v2-port-rx" for FManV2 RX ports | ||
164 | - "fsl,fman-v2-port-tx" for FManV2 TX ports | ||
165 | - "fsl,fman-v3-port-oh" for FManV3 OH ports | ||
166 | - "fsl,fman-v3-port-rx" for FManV3 RX ports | ||
167 | - "fsl,fman-v3-port-tx" for FManV3 TX ports | ||
168 | |||
169 | - cell-index | ||
170 | Usage: required | ||
171 | Value type: <u32> | ||
172 | Definition: Specifies the hardware port id. | ||
173 | Each hardware port on the FMan has its own hardware PortID. | ||
174 | Super set of all hardware Port IDs available at FMan Reference | ||
175 | Manual under "FMan Hardware Ports in Freescale Devices" table. | ||
176 | |||
177 | Each hardware port is assigned a 4KB, port-specific page in | ||
178 | the FMan hardware port memory region (which is part of the | ||
179 | FMan memory map). The first 4 KB in the FMan hardware ports | ||
180 | memory region is used for what are called common registers. | ||
181 | The subsequent 63 4KB pages are allocated to the hardware | ||
182 | ports. | ||
183 | The page of a specific port is determined by the cell-index. | ||
184 | |||
185 | - reg | ||
186 | Usage: required | ||
187 | Value type: <prop-encoded-array> | ||
188 | Definition: There is one reg region describing the port | ||
189 | configuration registers. | ||
190 | |||
191 | EXAMPLE | ||
192 | |||
193 | port@a8000 { | ||
194 | cell-index = <0x28>; | ||
195 | compatible = "fsl,fman-v2-port-tx"; | ||
196 | reg = <0xa8000 0x1000>; | ||
197 | }; | ||
198 | |||
199 | port@88000 { | ||
200 | cell-index = <0x8>; | ||
201 | compatible = "fsl,fman-v2-port-rx"; | ||
202 | reg = <0x88000 0x1000>; | ||
203 | }; | ||
204 | |||
205 | port@81000 { | ||
206 | cell-index = <0x1>; | ||
207 | compatible = "fsl,fman-v2-port-oh"; | ||
208 | reg = <0x81000 0x1000>; | ||
209 | }; | ||
210 | |||
211 | ============================================================================= | ||
212 | FMan dTSEC/XGEC/mEMAC Node | ||
213 | |||
214 | DESCRIPTION | ||
215 | |||
216 | mEMAC/dTSEC/XGEC are the Ethernet network interfaces | ||
217 | |||
218 | PROPERTIES | ||
219 | |||
220 | - compatible | ||
221 | Usage: required | ||
222 | Value type: <stringlist> | ||
223 | Definition: A standard property. | ||
224 | Must include one of the following: | ||
225 | - "fsl,fman-dtsec" for dTSEC MAC | ||
226 | - "fsl,fman-xgec" for XGEC MAC | ||
227 | - "fsl,fman-memac for mEMAC MAC | ||
228 | |||
229 | - cell-index | ||
230 | Usage: required | ||
231 | Value type: <u32> | ||
232 | Definition: Specifies the MAC id. | ||
233 | |||
234 | The cell-index value may be used by the FMan or the SoC, to | ||
235 | identify the MAC unit in the FMan (or SoC) memory map. | ||
236 | In the tables bellow there's a description of the cell-index | ||
237 | use, there are two tables, one describes the use of cell-index | ||
238 | by the FMan, the second describes the use by the SoC: | ||
239 | |||
240 | 1. FMan Registers | ||
241 | |||
242 | FManV2: | ||
243 | register[bit] MAC cell-index | ||
244 | ============================================================ | ||
245 | FM_EPI[16] XGEC 8 | ||
246 | FM_EPI[16+n] dTSECn n-1 | ||
247 | FM_NPI[11+n] dTSECn n-1 | ||
248 | n = 1,..,5 | ||
249 | |||
250 | FManV3: | ||
251 | register[bit] MAC cell-index | ||
252 | ============================================================ | ||
253 | FM_EPI[16+n] mEMACn n-1 | ||
254 | FM_EPI[25] mEMAC10 9 | ||
255 | |||
256 | FM_NPI[11+n] mEMACn n-1 | ||
257 | FM_NPI[10] mEMAC10 9 | ||
258 | FM_NPI[11] mEMAC9 8 | ||
259 | n = 1,..8 | ||
260 | |||
261 | FM_EPI and FM_NPI are located in the FMan memory map. | ||
262 | |||
263 | 2. SoC registers: | ||
264 | |||
265 | - P2041, P3041, P4080 P5020, P5040: | ||
266 | register[bit] FMan MAC cell | ||
267 | Unit index | ||
268 | ============================================================ | ||
269 | DCFG_DEVDISR2[7] 1 XGEC 8 | ||
270 | DCFG_DEVDISR2[7+n] 1 dTSECn n-1 | ||
271 | DCFG_DEVDISR2[15] 2 XGEC 8 | ||
272 | DCFG_DEVDISR2[15+n] 2 dTSECn n-1 | ||
273 | n = 1,..5 | ||
274 | |||
275 | - T1040, T2080, T4240, B4860: | ||
276 | register[bit] FMan MAC cell | ||
277 | Unit index | ||
278 | ============================================================ | ||
279 | DCFG_CCSR_DEVDISR2[n-1] 1 mEMACn n-1 | ||
280 | DCFG_CCSR_DEVDISR2[11+n] 2 mEMACn n-1 | ||
281 | n = 1,..6,9,10 | ||
282 | |||
283 | EVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in | ||
284 | the specific SoC "Device Configuration/Pin Control" Memory | ||
285 | Map. | ||
286 | |||
287 | - reg | ||
288 | Usage: required | ||
289 | Value type: <prop-encoded-array> | ||
290 | Definition: A standard property. | ||
291 | |||
292 | - fsl,fman-ports | ||
293 | Usage: required | ||
294 | Value type: <prop-encoded-array> | ||
295 | Definition: An array of two phandles - the first references is | ||
296 | the FMan RX port and the second is the TX port used by this | ||
297 | MAC. | ||
298 | |||
299 | - ptp-timer | ||
300 | Usage required | ||
301 | Value type: <phandle> | ||
302 | Definition: A phandle for 1EEE1588 timer. | ||
303 | |||
304 | EXAMPLE | ||
305 | |||
306 | fman1_tx28: port@a8000 { | ||
307 | cell-index = <0x28>; | ||
308 | compatible = "fsl,fman-v2-port-tx"; | ||
309 | reg = <0xa8000 0x1000>; | ||
310 | }; | ||
311 | |||
312 | fman1_rx8: port@88000 { | ||
313 | cell-index = <0x8>; | ||
314 | compatible = "fsl,fman-v2-port-rx"; | ||
315 | reg = <0x88000 0x1000>; | ||
316 | }; | ||
317 | |||
318 | ptp-timer: ptp_timer@fe000 { | ||
319 | compatible = "fsl,fman-ptp-timer"; | ||
320 | reg = <0xfe000 0x1000>; | ||
321 | }; | ||
322 | |||
323 | ethernet@e0000 { | ||
324 | compatible = "fsl,fman-dtsec"; | ||
325 | cell-index = <0>; | ||
326 | reg = <0xe0000 0x1000>; | ||
327 | fsl,fman-ports = <&fman1_rx8 &fman1_tx28>; | ||
328 | ptp-timer = <&ptp-timer>; | ||
329 | }; | ||
330 | |||
331 | ============================================================================ | ||
332 | FMan IEEE 1588 Node | ||
333 | |||
334 | DESCRIPTION | ||
335 | |||
336 | The FMan interface to support IEEE 1588 | ||
337 | |||
338 | |||
339 | PROPERTIES | ||
340 | |||
341 | - compatible | ||
342 | Usage: required | ||
343 | Value type: <stringlist> | ||
344 | Definition: A standard property. | ||
345 | Must include "fsl,fman-ptp-timer". | ||
346 | |||
347 | - reg | ||
348 | Usage: required | ||
349 | Value type: <prop-encoded-array> | ||
350 | Definition: A standard property. | ||
351 | |||
352 | EXAMPLE | ||
353 | |||
354 | ptp-timer@fe000 { | ||
355 | compatible = "fsl,fman-ptp-timer"; | ||
356 | reg = <0xfe000 0x1000>; | ||
357 | }; | ||
358 | |||
359 | ============================================================================= | ||
360 | Example | ||
361 | |||
362 | fman@400000 { | ||
363 | #address-cells = <1>; | ||
364 | #size-cells = <1>; | ||
365 | cell-index = <1>; | ||
366 | compatible = "fsl,fman" | ||
367 | ranges = <0 0x400000 0x100000>; | ||
368 | reg = <0x400000 0x100000>; | ||
369 | clocks = <&fman_clk>; | ||
370 | clock-names = "fmanclk"; | ||
371 | interrupts = < | ||
372 | 96 2 0 0 | ||
373 | 16 2 1 1>; | ||
374 | fsl,qman-channel-range = <0x40 0xc>; | ||
375 | |||
376 | muram@0 { | ||
377 | compatible = "fsl,fman-muram"; | ||
378 | reg = <0x0 0x28000>; | ||
379 | }; | ||
380 | |||
381 | port@81000 { | ||
382 | cell-index = <1>; | ||
383 | compatible = "fsl,fman-v2-port-oh"; | ||
384 | reg = <0x81000 0x1000>; | ||
385 | }; | ||
386 | |||
387 | port@82000 { | ||
388 | cell-index = <2>; | ||
389 | compatible = "fsl,fman-v2-port-oh"; | ||
390 | reg = <0x82000 0x1000>; | ||
391 | }; | ||
392 | |||
393 | port@83000 { | ||
394 | cell-index = <3>; | ||
395 | compatible = "fsl,fman-v2-port-oh"; | ||
396 | reg = <0x83000 0x1000>; | ||
397 | }; | ||
398 | |||
399 | port@84000 { | ||
400 | cell-index = <4>; | ||
401 | compatible = "fsl,fman-v2-port-oh"; | ||
402 | reg = <0x84000 0x1000>; | ||
403 | }; | ||
404 | |||
405 | port@85000 { | ||
406 | cell-index = <5>; | ||
407 | compatible = "fsl,fman-v2-port-oh"; | ||
408 | reg = <0x85000 0x1000>; | ||
409 | }; | ||
410 | |||
411 | port@86000 { | ||
412 | cell-index = <6>; | ||
413 | compatible = "fsl,fman-v2-port-oh"; | ||
414 | reg = <0x86000 0x1000>; | ||
415 | }; | ||
416 | |||
417 | fman1_rx_0x8: port@88000 { | ||
418 | cell-index = <0x8>; | ||
419 | compatible = "fsl,fman-v2-port-rx"; | ||
420 | reg = <0x88000 0x1000>; | ||
421 | }; | ||
422 | |||
423 | fman1_rx_0x9: port@89000 { | ||
424 | cell-index = <0x9>; | ||
425 | compatible = "fsl,fman-v2-port-rx"; | ||
426 | reg = <0x89000 0x1000>; | ||
427 | }; | ||
428 | |||
429 | fman1_rx_0xa: port@8a000 { | ||
430 | cell-index = <0xa>; | ||
431 | compatible = "fsl,fman-v2-port-rx"; | ||
432 | reg = <0x8a000 0x1000>; | ||
433 | }; | ||
434 | |||
435 | fman1_rx_0xb: port@8b000 { | ||
436 | cell-index = <0xb>; | ||
437 | compatible = "fsl,fman-v2-port-rx"; | ||
438 | reg = <0x8b000 0x1000>; | ||
439 | }; | ||
440 | |||
441 | fman1_rx_0xc: port@8c000 { | ||
442 | cell-index = <0xc>; | ||
443 | compatible = "fsl,fman-v2-port-rx"; | ||
444 | reg = <0x8c000 0x1000>; | ||
445 | }; | ||
446 | |||
447 | fman1_rx_0x10: port@90000 { | ||
448 | cell-index = <0x10>; | ||
449 | compatible = "fsl,fman-v2-port-rx"; | ||
450 | reg = <0x90000 0x1000>; | ||
451 | }; | ||
452 | |||
453 | fman1_tx_0x28: port@a8000 { | ||
454 | cell-index = <0x28>; | ||
455 | compatible = "fsl,fman-v2-port-tx"; | ||
456 | reg = <0xa8000 0x1000>; | ||
457 | }; | ||
458 | |||
459 | fman1_tx_0x29: port@a9000 { | ||
460 | cell-index = <0x29>; | ||
461 | compatible = "fsl,fman-v2-port-tx"; | ||
462 | reg = <0xa9000 0x1000>; | ||
463 | }; | ||
464 | |||
465 | fman1_tx_0x2a: port@aa000 { | ||
466 | cell-index = <0x2a>; | ||
467 | compatible = "fsl,fman-v2-port-tx"; | ||
468 | reg = <0xaa000 0x1000>; | ||
469 | }; | ||
470 | |||
471 | fman1_tx_0x2b: port@ab000 { | ||
472 | cell-index = <0x2b>; | ||
473 | compatible = "fsl,fman-v2-port-tx"; | ||
474 | reg = <0xab000 0x1000>; | ||
475 | }; | ||
476 | |||
477 | fman1_tx_0x2c: port@ac0000 { | ||
478 | cell-index = <0x2c>; | ||
479 | compatible = "fsl,fman-v2-port-tx"; | ||
480 | reg = <0xac000 0x1000>; | ||
481 | }; | ||
482 | |||
483 | fman1_tx_0x30: port@b0000 { | ||
484 | cell-index = <0x30>; | ||
485 | compatible = "fsl,fman-v2-port-tx"; | ||
486 | reg = <0xb0000 0x1000>; | ||
487 | }; | ||
488 | |||
489 | ethernet@e0000 { | ||
490 | compatible = "fsl,fman-dtsec"; | ||
491 | cell-index = <0>; | ||
492 | reg = <0xe0000 0x1000>; | ||
493 | fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>; | ||
494 | }; | ||
495 | |||
496 | ethernet@e2000 { | ||
497 | compatible = "fsl,fman-dtsec"; | ||
498 | cell-index = <1>; | ||
499 | reg = <0xe2000 0x1000>; | ||
500 | fsl,fman-ports = <&fman1_rx_0x9 &fman1_tx_0x29>; | ||
501 | }; | ||
502 | |||
503 | ethernet@e4000 { | ||
504 | compatible = "fsl,fman-dtsec"; | ||
505 | cell-index = <2>; | ||
506 | reg = <0xe4000 0x1000>; | ||
507 | fsl,fman-ports = <&fman1_rx_0xa &fman1_tx_0x2a>; | ||
508 | }; | ||
509 | |||
510 | ethernet@e6000 { | ||
511 | compatible = "fsl,fman-dtsec"; | ||
512 | cell-index = <3>; | ||
513 | reg = <0xe6000 0x1000>; | ||
514 | fsl,fman-ports = <&fman1_rx_0xb &fman1_tx_0x2b>; | ||
515 | }; | ||
516 | |||
517 | ethernet@e8000 { | ||
518 | compatible = "fsl,fman-dtsec"; | ||
519 | cell-index = <4>; | ||
520 | reg = <0xf0000 0x1000>; | ||
521 | fsl,fman-ports = <&fman1_rx_0xc &fman1_tx_0x2c>; | ||
522 | |||
523 | ethernet@f0000 { | ||
524 | cell-index = <8>; | ||
525 | compatible = "fsl,fman-xgec"; | ||
526 | reg = <0xf0000 0x1000>; | ||
527 | fsl,fman-ports = <&fman1_rx_0x10 &fman1_tx_0x30>; | ||
528 | }; | ||
529 | |||
530 | ptp-timer@fe000 { | ||
531 | compatible = "fsl,fman-ptp-timer"; | ||
532 | reg = <0xfe000 0x1000>; | ||
533 | }; | ||
534 | }; | ||
diff --git a/Documentation/devicetree/bindings/soc/fsl/bman-portals.txt b/Documentation/devicetree/bindings/soc/fsl/bman-portals.txt new file mode 100644 index 000000000000..2a00e14e11e0 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/fsl/bman-portals.txt | |||
@@ -0,0 +1,56 @@ | |||
1 | QorIQ DPAA Buffer Manager Portals Device Tree Binding | ||
2 | |||
3 | Copyright (C) 2008 - 2014 Freescale Semiconductor Inc. | ||
4 | |||
5 | CONTENTS | ||
6 | |||
7 | - BMan Portal | ||
8 | - Example | ||
9 | |||
10 | BMan Portal Node | ||
11 | |||
12 | Portals are memory mapped interfaces to BMan that allow low-latency, lock-less | ||
13 | interaction by software running on processor cores, accelerators and network | ||
14 | interfaces with the BMan | ||
15 | |||
16 | PROPERTIES | ||
17 | |||
18 | - compatible | ||
19 | Usage: Required | ||
20 | Value type: <stringlist> | ||
21 | Definition: Must include "fsl,bman-portal-<hardware revision>" | ||
22 | May include "fsl,<SoC>-bman-portal" or "fsl,bman-portal" | ||
23 | |||
24 | - reg | ||
25 | Usage: Required | ||
26 | Value type: <prop-encoded-array> | ||
27 | Definition: Two regions. The first is the cache-enabled region of | ||
28 | the portal. The second is the cache-inhibited region of | ||
29 | the portal | ||
30 | |||
31 | - interrupts | ||
32 | Usage: Required | ||
33 | Value type: <prop-encoded-array> | ||
34 | Definition: Standard property | ||
35 | |||
36 | EXAMPLE | ||
37 | |||
38 | The example below shows a (P4080) BMan portals container/bus node with two portals | ||
39 | |||
40 | bman-portals@ff4000000 { | ||
41 | #address-cells = <1>; | ||
42 | #size-cells = <1>; | ||
43 | compatible = "simple-bus"; | ||
44 | ranges = <0 0xf 0xf4000000 0x200000>; | ||
45 | |||
46 | bman-portal@0 { | ||
47 | compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal"; | ||
48 | reg = <0x0 0x4000>, <0x100000 0x1000>; | ||
49 | interrupts = <105 2 0 0>; | ||
50 | }; | ||
51 | bman-portal@4000 { | ||
52 | compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal"; | ||
53 | reg = <0x4000 0x4000>, <0x101000 0x1000>; | ||
54 | interrupts = <107 2 0 0>; | ||
55 | }; | ||
56 | }; | ||
diff --git a/Documentation/devicetree/bindings/soc/fsl/bman.txt b/Documentation/devicetree/bindings/soc/fsl/bman.txt new file mode 100644 index 000000000000..9f80bf8709ac --- /dev/null +++ b/Documentation/devicetree/bindings/soc/fsl/bman.txt | |||
@@ -0,0 +1,125 @@ | |||
1 | QorIQ DPAA Buffer Manager Device Tree Bindings | ||
2 | |||
3 | Copyright (C) 2008 - 2014 Freescale Semiconductor Inc. | ||
4 | |||
5 | CONTENTS | ||
6 | |||
7 | - BMan Node | ||
8 | - BMan Private Memory Node | ||
9 | - Example | ||
10 | |||
11 | BMan Node | ||
12 | |||
13 | The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA). | ||
14 | BMan supports hardware allocation and deallocation of buffers belonging to pools | ||
15 | originally created by software with configurable depletion thresholds. This | ||
16 | binding covers the CCSR space programming model | ||
17 | |||
18 | PROPERTIES | ||
19 | |||
20 | - compatible | ||
21 | Usage: Required | ||
22 | Value type: <stringlist> | ||
23 | Definition: Must include "fsl,bman" | ||
24 | May include "fsl,<SoC>-bman" | ||
25 | |||
26 | - reg | ||
27 | Usage: Required | ||
28 | Value type: <prop-encoded-array> | ||
29 | Definition: Registers region within the CCSR address space | ||
30 | |||
31 | The BMan revision information is located in the BMAN_IP_REV_1/2 registers which | ||
32 | are located at offsets 0xbf8 and 0xbfc | ||
33 | |||
34 | - interrupts | ||
35 | Usage: Required | ||
36 | Value type: <prop-encoded-array> | ||
37 | Definition: Standard property. The error interrupt | ||
38 | |||
39 | - fsl,liodn | ||
40 | Usage: See pamu.txt | ||
41 | Value type: <prop-encoded-array> | ||
42 | Definition: PAMU property used for static LIODN assignment | ||
43 | |||
44 | - fsl,iommu-parent | ||
45 | Usage: See pamu.txt | ||
46 | Value type: <phandle> | ||
47 | Definition: PAMU property used for dynamic LIODN assignment | ||
48 | |||
49 | For additional details about the PAMU/LIODN binding(s) see pamu.txt | ||
50 | |||
51 | Devices connected to a BMan instance via Direct Connect Portals (DCP) must link | ||
52 | to the respective BMan instance | ||
53 | |||
54 | - fsl,bman | ||
55 | Usage: Required | ||
56 | Value type: <prop-encoded-array> | ||
57 | Description: List of phandle and DCP index pairs, to the BMan instance | ||
58 | to which this device is connected via the DCP | ||
59 | |||
60 | BMan Private Memory Node | ||
61 | |||
62 | BMan requires a contiguous range of physical memory used for the backing store | ||
63 | for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as a | ||
64 | node under the /reserved-memory node | ||
65 | |||
66 | The BMan FBPR memory node must be named "bman-fbpr" | ||
67 | |||
68 | PROPERTIES | ||
69 | |||
70 | - compatible | ||
71 | Usage: required | ||
72 | Value type: <stringlist> | ||
73 | Definition: Must inclide "fsl,bman-fbpr" | ||
74 | |||
75 | The following constraints are relevant to the FBPR private memory: | ||
76 | - The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to | ||
77 | 16 GiB | ||
78 | - The alignment must be a muliptle of the memory size | ||
79 | |||
80 | The size of the FBPR must be chosen by observing the hardware features configured | ||
81 | via the Reset Configuration Word (RCW) and that are relevant to a specific board | ||
82 | (e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports, | ||
83 | etc.). The size configured in the DT must reflect the hardware capabilities and | ||
84 | not the specific needs of an application | ||
85 | |||
86 | For additional details about reserved memory regions see reserved-memory.txt | ||
87 | |||
88 | EXAMPLE | ||
89 | |||
90 | The example below shows a BMan FBPR dynamic allocation memory node | ||
91 | |||
92 | reserved-memory { | ||
93 | #address-cells = <2>; | ||
94 | #size-cells = <2>; | ||
95 | ranges; | ||
96 | |||
97 | bman_fbpr: bman-fbpr { | ||
98 | compatible = "fsl,bman-fbpr"; | ||
99 | alloc-ranges = <0 0 0xf 0xffffffff>; | ||
100 | size = <0 0x1000000>; | ||
101 | alignment = <0 0x1000000>; | ||
102 | }; | ||
103 | }; | ||
104 | |||
105 | The example below shows a (P4080) BMan CCSR-space node | ||
106 | |||
107 | crypto@300000 { | ||
108 | ... | ||
109 | fsl,bman = <&bman, 2>; | ||
110 | ... | ||
111 | }; | ||
112 | |||
113 | bman: bman@31a000 { | ||
114 | compatible = "fsl,bman"; | ||
115 | reg = <0x31a000 0x1000>; | ||
116 | interrupts = <16 2 1 2>; | ||
117 | fsl,liodn = <0x17>; | ||
118 | memory-region = <&bman_fbpr>; | ||
119 | }; | ||
120 | |||
121 | fman@400000 { | ||
122 | ... | ||
123 | fsl,bman = <&bman, 0>; | ||
124 | ... | ||
125 | }; | ||
diff --git a/Documentation/devicetree/bindings/soc/fsl/qman-portals.txt b/Documentation/devicetree/bindings/soc/fsl/qman-portals.txt new file mode 100644 index 000000000000..48c4dae5d6f9 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/fsl/qman-portals.txt | |||
@@ -0,0 +1,154 @@ | |||
1 | QorIQ DPAA Queue Manager Portals Device Tree Binding | ||
2 | |||
3 | Copyright (C) 2008 - 2014 Freescale Semiconductor Inc. | ||
4 | |||
5 | CONTENTS | ||
6 | |||
7 | - QMan Portal | ||
8 | - QMan Pool Channel | ||
9 | - Example | ||
10 | |||
11 | QMan Portal Node | ||
12 | |||
13 | Portals are memory mapped interfaces to QMan that allow low-latency, lock-less | ||
14 | interaction by software running on processor cores, accelerators and network | ||
15 | interfaces with the QMan | ||
16 | |||
17 | PROPERTIES | ||
18 | |||
19 | - compatible | ||
20 | Usage: Required | ||
21 | Value type: <stringlist> | ||
22 | Definition: Must include "fsl,qman-portal-<hardware revision>" | ||
23 | May include "fsl,<SoC>-qman-portal" or "fsl,qman-portal" | ||
24 | |||
25 | - reg | ||
26 | Usage: Required | ||
27 | Value type: <prop-encoded-array> | ||
28 | Definition: Two regions. The first is the cache-enabled region of | ||
29 | the portal. The second is the cache-inhibited region of | ||
30 | the portal | ||
31 | |||
32 | - interrupts | ||
33 | Usage: Required | ||
34 | Value type: <prop-encoded-array> | ||
35 | Definition: Standard property | ||
36 | |||
37 | - fsl,liodn | ||
38 | Usage: See pamu.txt | ||
39 | Value type: <prop-encoded-array> | ||
40 | Definition: Two LIODN(s). DQRR LIODN (DLIODN) and Frame LIODN | ||
41 | (FLIODN) | ||
42 | |||
43 | - fsl,iommu-parent | ||
44 | Usage: See pamu.txt | ||
45 | Value type: <phandle> | ||
46 | Definition: PAMU property used for dynamic LIODN assignment | ||
47 | |||
48 | For additional details about the PAMU/LIODN binding(s) see pamu.txt | ||
49 | |||
50 | - fsl,qman-channel-id | ||
51 | Usage: Required | ||
52 | Value type: <u32> | ||
53 | Definition: The hardware index of the channel. This can also be | ||
54 | determined by dividing any of the channel's 8 work queue | ||
55 | IDs by 8 | ||
56 | |||
57 | In addition to these properties the qman-portals should have sub-nodes to | ||
58 | represent the HW devices/portals that are connected to the software portal | ||
59 | described here | ||
60 | |||
61 | The currently supported sub-nodes are: | ||
62 | * fman0 | ||
63 | * fman1 | ||
64 | * pme | ||
65 | * crypto | ||
66 | |||
67 | These subnodes should have the following properties: | ||
68 | |||
69 | - fsl,liodn | ||
70 | Usage: See pamu.txt | ||
71 | Value type: <prop-encoded-array> | ||
72 | Definition: PAMU property used for static LIODN assignment | ||
73 | |||
74 | - fsl,iommu-parent | ||
75 | Usage: See pamu.txt | ||
76 | Value type: <phandle> | ||
77 | Definition: PAMU property used for dynamic LIODN assignment | ||
78 | |||
79 | - dev-handle | ||
80 | Usage: Required | ||
81 | Value type: <phandle> | ||
82 | Definition: The phandle to the particular hardware device that this | ||
83 | portal is connected to. | ||
84 | |||
85 | DPAA QMan Pool Channel Nodes | ||
86 | |||
87 | Pool Channels are defined with the following properties. | ||
88 | |||
89 | PROPERTIES | ||
90 | |||
91 | - compatible | ||
92 | Usage: Required | ||
93 | Value type: <stringlist> | ||
94 | Definition: Must include "fsl,qman-pool-channel" | ||
95 | May include "fsl,<SoC>-qman-pool-channel" | ||
96 | |||
97 | - fsl,qman-channel-id | ||
98 | Usage: Required | ||
99 | Value type: <u32> | ||
100 | Definition: The hardware index of the channel. This can also be | ||
101 | determined by dividing any of the channel's 8 work queue | ||
102 | IDs by 8 | ||
103 | |||
104 | EXAMPLE | ||
105 | |||
106 | The example below shows a (P4080) QMan portals container/bus node with two portals | ||
107 | |||
108 | qman-portals@ff4200000 { | ||
109 | #address-cells = <1>; | ||
110 | #size-cells = <1>; | ||
111 | compatible = "simple-bus"; | ||
112 | ranges = <0 0xf 0xf4200000 0x200000>; | ||
113 | |||
114 | qman-portal@0 { | ||
115 | compatible = "fsl,qman-portal-1.2.0", "fsl,qman-portal"; | ||
116 | reg = <0 0x4000>, <0x100000 0x1000>; | ||
117 | interrupts = <104 2 0 0>; | ||
118 | fsl,liodn = <1 2>; | ||
119 | fsl,qman-channel-id = <0>; | ||
120 | |||
121 | fman0 { | ||
122 | fsl,liodn = <0x21>; | ||
123 | dev-handle = <&fman0>; | ||
124 | }; | ||
125 | fman1 { | ||
126 | fsl,liodn = <0xa1>; | ||
127 | dev-handle = <&fman1>; | ||
128 | }; | ||
129 | crypto { | ||
130 | fsl,liodn = <0x41 0x66>; | ||
131 | dev-handle = <&crypto>; | ||
132 | }; | ||
133 | }; | ||
134 | qman-portal@4000 { | ||
135 | compatible = "fsl,qman-portal-1.2.0", "fsl,qman-portal"; | ||
136 | reg = <0x4000 0x4000>, <0x101000 0x1000>; | ||
137 | interrupts = <106 2 0 0>; | ||
138 | fsl,liodn = <3 4>; | ||
139 | fsl,qman-channel-id = <1>; | ||
140 | |||
141 | fman0 { | ||
142 | fsl,liodn = <0x22>; | ||
143 | dev-handle = <&fman0>; | ||
144 | }; | ||
145 | fman1 { | ||
146 | fsl,liodn = <0xa2>; | ||
147 | dev-handle = <&fman1>; | ||
148 | }; | ||
149 | crypto { | ||
150 | fsl,liodn = <0x42 0x67>; | ||
151 | dev-handle = <&crypto>; | ||
152 | }; | ||
153 | }; | ||
154 | }; | ||
diff --git a/Documentation/devicetree/bindings/soc/fsl/qman.txt b/Documentation/devicetree/bindings/soc/fsl/qman.txt new file mode 100644 index 000000000000..063e3a0b9d04 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/fsl/qman.txt | |||
@@ -0,0 +1,165 @@ | |||
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 | }; | ||