1 // SPDX-License-Identifier: GPL-2.0
4 * OCTEON 68XX device tree skeleton.
6 * This device tree is pruned and patched by early boot code before
7 * use. Because of this, it contains a super-set of the available
8 * devices and properties.
11 compatible = "cavium,octeon-6880";
14 interrupt-parent = <&ciu2>;
17 compatible = "simple-bus";
20 ranges; /* Direct mapping */
22 ciu2: interrupt-controller@1070100000000 {
23 compatible = "cavium,octeon-6880-ciu2";
25 /* Interrupts are specified by two parts:
26 * 1) Controller register (0 or 7)
27 * 2) Bit within the register (0..63)
30 #interrupt-cells = <2>;
31 reg = <0x10701 0x00000000 0x0 0x4000000>;
34 gpio: gpio-controller@1070000000800 {
36 compatible = "cavium,octeon-3860-gpio";
37 reg = <0x10700 0x00000800 0x0 0x100>;
39 /* Interrupts are specified by two parts:
40 * 1) GPIO pin number (0..15)
41 * 2) Triggering (1 - edge rising
43 * 4 - level active high
44 * 8 - level active low)
47 #interrupt-cells = <2>;
48 /* The GPIO pins connect to 16 consecutive CUI bits */
49 interrupts = <7 0>, <7 1>, <7 2>, <7 3>,
50 <7 4>, <7 5>, <7 6>, <7 7>,
51 <7 8>, <7 9>, <7 10>, <7 11>,
52 <7 12>, <7 13>, <7 14>, <7 15>;
55 smi0: mdio@1180000003800 {
56 compatible = "cavium,octeon-3860-mdio";
59 reg = <0x11800 0x00003800 0x0 0x40>;
61 phy0: ethernet-phy@6 {
62 compatible = "marvell,88e1118";
64 /* Fix rx and tx clock transition timing */
65 <2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
66 /* Adjust LED drive. */
67 <3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
68 /* irq, blink-activity, blink-link */
69 <3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
73 phy1: ethernet-phy@1 {
74 cavium,qlm-trim = "4,sgmii";
76 compatible = "marvell,88e1149r";
77 marvell,reg-init = <3 0x10 0 0x5777>,
82 phy2: ethernet-phy@2 {
83 cavium,qlm-trim = "4,sgmii";
85 compatible = "marvell,88e1149r";
86 marvell,reg-init = <3 0x10 0 0x5777>,
91 phy3: ethernet-phy@3 {
92 cavium,qlm-trim = "4,sgmii";
94 compatible = "marvell,88e1149r";
95 marvell,reg-init = <3 0x10 0 0x5777>,
100 phy4: ethernet-phy@4 {
101 cavium,qlm-trim = "4,sgmii";
103 compatible = "marvell,88e1149r";
104 marvell,reg-init = <3 0x10 0 0x5777>,
111 smi1: mdio@1180000003880 {
112 compatible = "cavium,octeon-3860-mdio";
113 #address-cells = <1>;
115 reg = <0x11800 0x00003880 0x0 0x40>;
117 phy41: ethernet-phy@1 {
118 cavium,qlm-trim = "0,sgmii";
120 compatible = "marvell,88e1149r";
121 marvell,reg-init = <3 0x10 0 0x5777>,
126 phy42: ethernet-phy@2 {
127 cavium,qlm-trim = "0,sgmii";
129 compatible = "marvell,88e1149r";
130 marvell,reg-init = <3 0x10 0 0x5777>,
135 phy43: ethernet-phy@3 {
136 cavium,qlm-trim = "0,sgmii";
138 compatible = "marvell,88e1149r";
139 marvell,reg-init = <3 0x10 0 0x5777>,
144 phy44: ethernet-phy@4 {
145 cavium,qlm-trim = "0,sgmii";
147 compatible = "marvell,88e1149r";
148 marvell,reg-init = <3 0x10 0 0x5777>,
155 smi2: mdio@1180000003900 {
156 compatible = "cavium,octeon-3860-mdio";
157 #address-cells = <1>;
159 reg = <0x11800 0x00003900 0x0 0x40>;
161 phy21: ethernet-phy@1 {
162 cavium,qlm-trim = "2,sgmii";
164 compatible = "marvell,88e1149r";
165 marvell,reg-init = <3 0x10 0 0x5777>,
170 phy22: ethernet-phy@2 {
171 cavium,qlm-trim = "2,sgmii";
173 compatible = "marvell,88e1149r";
174 marvell,reg-init = <3 0x10 0 0x5777>,
179 phy23: ethernet-phy@3 {
180 cavium,qlm-trim = "2,sgmii";
182 compatible = "marvell,88e1149r";
183 marvell,reg-init = <3 0x10 0 0x5777>,
188 phy24: ethernet-phy@4 {
189 cavium,qlm-trim = "2,sgmii";
191 compatible = "marvell,88e1149r";
192 marvell,reg-init = <3 0x10 0 0x5777>,
199 smi3: mdio@1180000003980 {
200 compatible = "cavium,octeon-3860-mdio";
201 #address-cells = <1>;
203 reg = <0x11800 0x00003980 0x0 0x40>;
205 phy11: ethernet-phy@1 {
206 cavium,qlm-trim = "3,sgmii";
208 compatible = "marvell,88e1149r";
209 marvell,reg-init = <3 0x10 0 0x5777>,
214 phy12: ethernet-phy@2 {
215 cavium,qlm-trim = "3,sgmii";
217 compatible = "marvell,88e1149r";
218 marvell,reg-init = <3 0x10 0 0x5777>,
223 phy13: ethernet-phy@3 {
224 cavium,qlm-trim = "3,sgmii";
226 compatible = "marvell,88e1149r";
227 marvell,reg-init = <3 0x10 0 0x5777>,
232 phy14: ethernet-phy@4 {
233 cavium,qlm-trim = "3,sgmii";
235 compatible = "marvell,88e1149r";
236 marvell,reg-init = <3 0x10 0 0x5777>,
243 mix0: ethernet@1070000100000 {
244 compatible = "cavium,octeon-5750-mix";
245 reg = <0x10700 0x00100000 0x0 0x100>, /* MIX */
246 <0x11800 0xE0000000 0x0 0x300>, /* AGL */
247 <0x11800 0xE0000400 0x0 0x400>, /* AGL_SHARED */
248 <0x11800 0xE0002000 0x0 0x8>; /* AGL_PRT_CTL */
250 interrupts = <6 40>, <6 32>;
251 local-mac-address = [ 00 00 00 00 00 00 ];
252 phy-handle = <&phy0>;
255 pip: pip@11800a0000000 {
256 compatible = "cavium,octeon-3860-pip";
257 #address-cells = <1>;
259 reg = <0x11800 0xa0000000 0x0 0x2000>;
262 compatible = "cavium,octeon-3860-pip-interface";
263 #address-cells = <1>;
265 reg = <0x4>; /* interface */
268 compatible = "cavium,octeon-3860-pip-port";
269 reg = <0x0>; /* Port */
270 local-mac-address = [ 00 00 00 00 00 00 ];
271 phy-handle = <&phy1>;
274 compatible = "cavium,octeon-3860-pip-port";
275 reg = <0x1>; /* Port */
276 local-mac-address = [ 00 00 00 00 00 00 ];
277 phy-handle = <&phy2>;
280 compatible = "cavium,octeon-3860-pip-port";
281 reg = <0x2>; /* Port */
282 local-mac-address = [ 00 00 00 00 00 00 ];
283 phy-handle = <&phy3>;
286 compatible = "cavium,octeon-3860-pip-port";
287 reg = <0x3>; /* Port */
288 local-mac-address = [ 00 00 00 00 00 00 ];
289 phy-handle = <&phy4>;
294 compatible = "cavium,octeon-3860-pip-interface";
295 #address-cells = <1>;
297 reg = <0x3>; /* interface */
300 compatible = "cavium,octeon-3860-pip-port";
301 reg = <0x0>; /* Port */
302 local-mac-address = [ 00 00 00 00 00 00 ];
303 phy-handle = <&phy11>;
306 compatible = "cavium,octeon-3860-pip-port";
307 reg = <0x1>; /* Port */
308 local-mac-address = [ 00 00 00 00 00 00 ];
309 phy-handle = <&phy12>;
312 compatible = "cavium,octeon-3860-pip-port";
313 reg = <0x2>; /* Port */
314 local-mac-address = [ 00 00 00 00 00 00 ];
315 phy-handle = <&phy13>;
318 compatible = "cavium,octeon-3860-pip-port";
319 reg = <0x3>; /* Port */
320 local-mac-address = [ 00 00 00 00 00 00 ];
321 phy-handle = <&phy14>;
326 compatible = "cavium,octeon-3860-pip-interface";
327 #address-cells = <1>;
329 reg = <0x2>; /* interface */
332 compatible = "cavium,octeon-3860-pip-port";
333 reg = <0x0>; /* Port */
334 local-mac-address = [ 00 00 00 00 00 00 ];
335 phy-handle = <&phy21>;
338 compatible = "cavium,octeon-3860-pip-port";
339 reg = <0x1>; /* Port */
340 local-mac-address = [ 00 00 00 00 00 00 ];
341 phy-handle = <&phy22>;
344 compatible = "cavium,octeon-3860-pip-port";
345 reg = <0x2>; /* Port */
346 local-mac-address = [ 00 00 00 00 00 00 ];
347 phy-handle = <&phy23>;
350 compatible = "cavium,octeon-3860-pip-port";
351 reg = <0x3>; /* Port */
352 local-mac-address = [ 00 00 00 00 00 00 ];
353 phy-handle = <&phy24>;
358 compatible = "cavium,octeon-3860-pip-interface";
359 #address-cells = <1>;
361 reg = <0x1>; /* interface */
364 compatible = "cavium,octeon-3860-pip-port";
365 reg = <0x0>; /* Port */
366 local-mac-address = [ 00 00 00 00 00 00 ];
371 compatible = "cavium,octeon-3860-pip-interface";
372 #address-cells = <1>;
374 reg = <0x0>; /* interface */
377 compatible = "cavium,octeon-3860-pip-port";
378 reg = <0x0>; /* Port */
379 local-mac-address = [ 00 00 00 00 00 00 ];
380 phy-handle = <&phy41>;
383 compatible = "cavium,octeon-3860-pip-port";
384 reg = <0x1>; /* Port */
385 local-mac-address = [ 00 00 00 00 00 00 ];
386 phy-handle = <&phy42>;
389 compatible = "cavium,octeon-3860-pip-port";
390 reg = <0x2>; /* Port */
391 local-mac-address = [ 00 00 00 00 00 00 ];
392 phy-handle = <&phy43>;
395 compatible = "cavium,octeon-3860-pip-port";
396 reg = <0x3>; /* Port */
397 local-mac-address = [ 00 00 00 00 00 00 ];
398 phy-handle = <&phy44>;
403 twsi0: i2c@1180000001000 {
404 #address-cells = <1>;
406 compatible = "cavium,octeon-3860-twsi";
407 reg = <0x11800 0x00001000 0x0 0x200>;
409 clock-frequency = <100000>;
412 compatible = "dallas,ds1337";
416 compatible = "ti,tmp421";
421 twsi1: i2c@1180000001200 {
422 #address-cells = <1>;
424 compatible = "cavium,octeon-3860-twsi";
425 reg = <0x11800 0x00001200 0x0 0x200>;
427 clock-frequency = <100000>;
430 uart0: serial@1180000000800 {
431 compatible = "cavium,octeon-3860-uart","ns16550";
432 reg = <0x11800 0x00000800 0x0 0x400>;
433 clock-frequency = <0>;
434 current-speed = <115200>;
439 uart1: serial@1180000000c00 {
440 compatible = "cavium,octeon-3860-uart","ns16550";
441 reg = <0x11800 0x00000c00 0x0 0x400>;
442 clock-frequency = <0>;
443 current-speed = <115200>;
448 bootbus: bootbus@1180000000000 {
449 compatible = "cavium,octeon-3860-bootbus";
450 reg = <0x11800 0x00000000 0x0 0x200>;
451 /* The chip select number and offset */
452 #address-cells = <2>;
453 /* The size of the chip select region */
455 ranges = <0 0 0 0x1f400000 0xc00000>,
456 <1 0 0x10000 0x30000000 0>,
457 <2 0 0x10000 0x40000000 0>,
458 <3 0 0x10000 0x50000000 0>,
459 <4 0 0 0x1d020000 0x10000>,
460 <5 0 0 0x1d040000 0x10000>,
461 <6 0 0 0x1d050000 0x10000>,
462 <7 0 0x10000 0x90000000 0>;
465 compatible = "cavium,octeon-3860-bootbus-config";
466 cavium,cs-index = <0>;
471 cavium,t-rd-hld = <25>;
472 cavium,t-wr-hld = <35>;
473 cavium,t-pause = <0>;
474 cavium,t-wait = <300>;
475 cavium,t-page = <25>;
476 cavium,t-rd-dly = <0>;
479 cavium,bus-width = <8>;
482 compatible = "cavium,octeon-3860-bootbus-config";
483 cavium,cs-index = <4>;
484 cavium,t-adr = <320>;
488 cavium,t-rd-hld = <320>;
489 cavium,t-wr-hld = <320>;
490 cavium,t-pause = <320>;
491 cavium,t-wait = <320>;
492 cavium,t-page = <320>;
493 cavium,t-rd-dly = <0>;
496 cavium,bus-width = <8>;
499 compatible = "cavium,octeon-3860-bootbus-config";
500 cavium,cs-index = <5>;
505 cavium,t-rd-hld = <100>;
506 cavium,t-wr-hld = <300>;
507 cavium,t-pause = <0>;
508 cavium,t-wait = <300>;
509 cavium,t-page = <310>;
510 cavium,t-rd-dly = <0>;
513 cavium,bus-width = <16>;
516 compatible = "cavium,octeon-3860-bootbus-config";
517 cavium,cs-index = <6>;
522 cavium,t-rd-hld = <100>;
523 cavium,t-wr-hld = <30>;
524 cavium,t-pause = <0>;
525 cavium,t-wait = <30>;
526 cavium,t-page = <310>;
527 cavium,t-rd-dly = <0>;
531 cavium,bus-width = <16>;
535 compatible = "cfi-flash";
536 reg = <0 0 0x800000>;
537 #address-cells = <1>;
541 label = "bootloader";
547 reg = <0x200000 0x200000>;
551 reg = <0x400000 0x3fe000>;
554 label = "environment";
555 reg = <0x7fe000 0x2000>;
560 led0: led-display@4,0 {
561 compatible = "avago,hdsp-253x";
562 reg = <4 0x20 0x20>, <4 0 0x20>;
566 compatible = "cavium,ebt3000-compact-flash";
567 reg = <5 0 0x10000>, <6 0 0x10000>;
568 cavium,bus-width = <16>;
570 cavium,dma-engine-handle = <&dma0>;
574 dma0: dma-engine@1180000000100 {
575 compatible = "cavium,octeon-5750-bootbus-dma";
576 reg = <0x11800 0x00000100 0x0 0x8>;
579 dma1: dma-engine@1180000000108 {
580 compatible = "cavium,octeon-5750-bootbus-dma";
581 reg = <0x11800 0x00000108 0x0 0x8>;
585 uctl: uctl@118006f000000 {
586 compatible = "cavium,octeon-6335-uctl";
587 reg = <0x11800 0x6f000000 0x0 0x100>;
588 ranges; /* Direct mapping */
589 #address-cells = <2>;
591 /* 12MHz, 24MHz and 48MHz allowed */
592 refclk-frequency = <12000000>;
593 /* Either "crystal" or "external" */
594 refclk-type = "crystal";
597 compatible = "cavium,octeon-6335-ehci","usb-ehci";
598 reg = <0x16f00 0x00000000 0x0 0x100>;
603 compatible = "cavium,octeon-6335-ohci","usb-ohci";
604 reg = <0x16f00 0x00000400 0x0 0x100>;