bcm4908: Refresh kernel patches
[openwrt/staging/hauke.git] / target / linux / bcm4908 / patches-5.10 / 038-v6.1-0005-arm64-dts-Move-BCM4908-dts-to-bcmbca-folder.patch
1 From ded8f22945899f4e87dd6d952bbc4abce6e64b7e Mon Sep 17 00:00:00 2001
2 From: William Zhang <william.zhang@broadcom.com>
3 Date: Wed, 3 Aug 2022 10:54:50 -0700
4 Subject: [PATCH] arm64: dts: Move BCM4908 dts to bcmbca folder
5
6 As part of ARCH_BCM4908 to ARCH_BCMBCA migration, move the BCM4908 dts
7 files to bcmbca folder and use CONFIG_ARCH_BCMBCA to build all the
8 BCM4908 board dts. Delete bcm4908 folder and its makefile as well.
9
10 Signed-off-by: William Zhang <william.zhang@broadcom.com>
11 Link: https://lore.kernel.org/r/20220803175455.47638-5-william.zhang@broadcom.com
12 Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
13 ---
14 arch/arm64/boot/dts/broadcom/Makefile | 1 -
15 arch/arm64/boot/dts/broadcom/bcm4908/Makefile | 5 -----
16 arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 4 ++++
17 .../broadcom/{bcm4908 => bcmbca}/bcm4906-netgear-r8000p.dts | 0
18 .../{bcm4908 => bcmbca}/bcm4906-tplink-archer-c2300-v1.dts | 0
19 .../arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906.dtsi | 0
20 .../broadcom/{bcm4908 => bcmbca}/bcm4908-asus-gt-ac5300.dts | 0
21 .../broadcom/{bcm4908 => bcmbca}/bcm4908-netgear-raxe500.dts | 0
22 .../arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908.dtsi | 0
23 9 files changed, 4 insertions(+), 6 deletions(-)
24 delete mode 100644 arch/arm64/boot/dts/broadcom/bcm4908/Makefile
25 rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906-netgear-r8000p.dts (100%)
26 rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906-tplink-archer-c2300-v1.dts (100%)
27 rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906.dtsi (100%)
28 rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908-asus-gt-ac5300.dts (100%)
29 rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908-netgear-raxe500.dts (100%)
30 rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908.dtsi (100%)
31
32 --- a/arch/arm64/boot/dts/broadcom/Makefile
33 +++ b/arch/arm64/boot/dts/broadcom/Makefile
34 @@ -5,7 +5,6 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rp
35 bcm2837-rpi-3-b-plus.dtb \
36 bcm2837-rpi-cm3-io3.dtb
37
38 -subdir-y += bcm4908
39 subdir-y += bcmbca
40 subdir-y += northstar2
41 subdir-y += stingray
42 --- a/arch/arm64/boot/dts/broadcom/bcm4908/Makefile
43 +++ /dev/null
44 @@ -1,5 +0,0 @@
45 -# SPDX-License-Identifier: GPL-2.0
46 -dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
47 -dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
48 -dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb
49 -dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-netgear-raxe500.dtb
50 --- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
51 +++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
52 @@ -1,5 +1,9 @@
53 # SPDX-License-Identifier: GPL-2.0
54 dtb-$(CONFIG_ARCH_BCMBCA) += \
55 + bcm4906-netgear-r8000p.dtb \
56 + bcm4906-tplink-archer-c2300-v1.dtb \
57 + bcm4908-asus-gt-ac5300.dtb \
58 + bcm4908-netgear-raxe500.dtb \
59 bcm4912-asus-gt-ax6000.dtb \
60 bcm94912.dtb \
61 bcm963158.dtb \
62 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
63 +++ /dev/null
64 @@ -1,157 +0,0 @@
65 -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
66 -
67 -#include <dt-bindings/gpio/gpio.h>
68 -#include <dt-bindings/input/input.h>
69 -#include <dt-bindings/leds/common.h>
70 -
71 -#include "bcm4906.dtsi"
72 -
73 -/ {
74 - compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
75 - model = "Netgear R8000P";
76 -
77 - memory@0 {
78 - device_type = "memory";
79 - reg = <0x00 0x00 0x00 0x20000000>;
80 - };
81 -
82 - leds {
83 - compatible = "gpio-leds";
84 -
85 - led-power-white {
86 - function = LED_FUNCTION_POWER;
87 - color = <LED_COLOR_ID_WHITE>;
88 - gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
89 - };
90 -
91 - led-power-amber {
92 - function = LED_FUNCTION_POWER;
93 - color = <LED_COLOR_ID_AMBER>;
94 - gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
95 - };
96 -
97 - led-wps {
98 - function = LED_FUNCTION_WPS;
99 - color = <LED_COLOR_ID_WHITE>;
100 - gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
101 - };
102 -
103 - led-2ghz {
104 - function = "2ghz";
105 - color = <LED_COLOR_ID_WHITE>;
106 - gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
107 - };
108 -
109 - led-5ghz-1 {
110 - function = "5ghz-1";
111 - color = <LED_COLOR_ID_WHITE>;
112 - gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
113 - };
114 -
115 - led-5ghz-2 {
116 - function = "5ghz-2";
117 - color = <LED_COLOR_ID_WHITE>;
118 - gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
119 - };
120 -
121 - led-usb2 {
122 - function = "usb2";
123 - color = <LED_COLOR_ID_WHITE>;
124 - gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
125 - };
126 -
127 - led-usb3 {
128 - function = "usb3";
129 - color = <LED_COLOR_ID_WHITE>;
130 - gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
131 - };
132 -
133 - led-wifi {
134 - function = "wifi";
135 - color = <LED_COLOR_ID_WHITE>;
136 - gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
137 - };
138 - };
139 -};
140 -
141 -&enet {
142 - nvmem-cells = <&base_mac_addr>;
143 - nvmem-cell-names = "mac-address";
144 -};
145 -
146 -&usb_phy {
147 - brcm,ioc = <1>;
148 - status = "okay";
149 -};
150 -
151 -&ehci {
152 - status = "okay";
153 -};
154 -
155 -&ohci {
156 - status = "okay";
157 -};
158 -
159 -&xhci {
160 - status = "okay";
161 -};
162 -
163 -&ports {
164 - port@0 {
165 - label = "lan4";
166 - };
167 -
168 - port@1 {
169 - label = "lan3";
170 - };
171 -
172 - port@2 {
173 - label = "lan2";
174 - };
175 -
176 - port@3 {
177 - label = "lan1";
178 - };
179 -
180 - port@7 {
181 - reg = <7>;
182 - phy-mode = "internal";
183 - phy-handle = <&phy12>;
184 - label = "wan";
185 - };
186 -};
187 -
188 -&nandcs {
189 - nand-ecc-strength = <4>;
190 - nand-ecc-step-size = <512>;
191 - nand-on-flash-bbt;
192 -
193 - #address-cells = <1>;
194 - #size-cells = <0>;
195 -
196 - partitions {
197 - compatible = "fixed-partitions";
198 - #address-cells = <1>;
199 - #size-cells = <1>;
200 -
201 - partition@0 {
202 - compatible = "nvmem-cells";
203 - label = "cferom";
204 - reg = <0x0 0x100000>;
205 -
206 - #address-cells = <1>;
207 - #size-cells = <1>;
208 - ranges = <0 0x0 0x100000>;
209 -
210 - base_mac_addr: mac@106a0 {
211 - reg = <0x106a0 0x6>;
212 - };
213 - };
214 -
215 - partition@100000 {
216 - compatible = "brcm,bcm4908-firmware";
217 - label = "firmware";
218 - reg = <0x100000 0x4400000>;
219 - };
220 - };
221 -};
222 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
223 +++ /dev/null
224 @@ -1,182 +0,0 @@
225 -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
226 -
227 -#include <dt-bindings/gpio/gpio.h>
228 -#include <dt-bindings/input/input.h>
229 -#include <dt-bindings/leds/common.h>
230 -
231 -#include "bcm4906.dtsi"
232 -
233 -/ {
234 - compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
235 - model = "TP-Link Archer C2300 V1";
236 -
237 - memory@0 {
238 - device_type = "memory";
239 - reg = <0x00 0x00 0x00 0x20000000>;
240 - };
241 -
242 - leds {
243 - compatible = "gpio-leds";
244 -
245 - led-power {
246 - function = LED_FUNCTION_POWER;
247 - color = <LED_COLOR_ID_BLUE>;
248 - gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
249 - };
250 -
251 - led-2ghz {
252 - function = "2ghz";
253 - color = <LED_COLOR_ID_BLUE>;
254 - gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
255 - };
256 -
257 - led-5ghz {
258 - function = "5ghz";
259 - color = <LED_COLOR_ID_BLUE>;
260 - gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
261 - };
262 -
263 - led-wan-amber {
264 - function = LED_FUNCTION_WAN;
265 - color = <LED_COLOR_ID_AMBER>;
266 - gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
267 - };
268 -
269 - led-wan-blue {
270 - function = LED_FUNCTION_WAN;
271 - color = <LED_COLOR_ID_BLUE>;
272 - gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
273 - };
274 -
275 - led-lan {
276 - function = LED_FUNCTION_LAN;
277 - color = <LED_COLOR_ID_BLUE>;
278 - gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
279 - };
280 -
281 - led-wps {
282 - function = LED_FUNCTION_WPS;
283 - color = <LED_COLOR_ID_BLUE>;
284 - gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
285 - };
286 -
287 - led-usb2 {
288 - function = "usb2";
289 - color = <LED_COLOR_ID_BLUE>;
290 - gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
291 - };
292 -
293 - led-usb3 {
294 - function = "usbd3";
295 - color = <LED_COLOR_ID_BLUE>;
296 - gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
297 - };
298 -
299 - led-brightness {
300 - function = LED_FUNCTION_BACKLIGHT;
301 - color = <LED_COLOR_ID_WHITE>;
302 - gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
303 - };
304 - };
305 -
306 - gpio-keys-polled {
307 - compatible = "gpio-keys-polled";
308 - poll-interval = <100>;
309 -
310 - key-brightness {
311 - label = "LEDs";
312 - linux,code = <KEY_BRIGHTNESS_ZERO>;
313 - gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
314 - };
315 -
316 - key-wps {
317 - label = "WPS";
318 - linux,code = <KEY_WPS_BUTTON>;
319 - gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
320 - };
321 -
322 - key-wifi {
323 - label = "WiFi";
324 - linux,code = <KEY_RFKILL>;
325 - gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
326 - };
327 -
328 - key-restart {
329 - label = "Reset";
330 - linux,code = <KEY_RESTART>;
331 - gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
332 - };
333 - };
334 -};
335 -
336 -&usb_phy {
337 - brcm,ioc = <1>;
338 - status = "okay";
339 -};
340 -
341 -&ehci {
342 - status = "okay";
343 -};
344 -
345 -&ohci {
346 - status = "okay";
347 -};
348 -
349 -&xhci {
350 - status = "okay";
351 -};
352 -
353 -&ports {
354 - port@0 {
355 - label = "lan4";
356 - };
357 -
358 - port@1 {
359 - label = "lan3";
360 - };
361 -
362 - port@2 {
363 - label = "lan2";
364 - };
365 -
366 - port@3 {
367 - label = "lan1";
368 - };
369 -
370 - port@7 {
371 - reg = <7>;
372 - phy-mode = "internal";
373 - phy-handle = <&phy12>;
374 - label = "wan";
375 - };
376 -};
377 -
378 -&nandcs {
379 - nand-ecc-strength = <4>;
380 - nand-ecc-step-size = <512>;
381 - nand-on-flash-bbt;
382 -
383 - #address-cells = <1>;
384 - #size-cells = <0>;
385 -
386 - partitions {
387 - compatible = "brcm,bcm4908-partitions";
388 - #address-cells = <1>;
389 - #size-cells = <1>;
390 -
391 - partition@0 {
392 - label = "cferom";
393 - reg = <0x0 0x100000>;
394 - };
395 -
396 - partition@100000 {
397 - compatible = "brcm,bcm4908-firmware";
398 - reg = <0x100000 0x3900000>;
399 - };
400 -
401 - partition@5800000 {
402 - compatible = "brcm,bcm4908-firmware";
403 - reg = <0x3a00000 0x3900000>;
404 - };
405 - };
406 -};
407 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi
408 +++ /dev/null
409 @@ -1,26 +0,0 @@
410 -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
411 -
412 -#include "bcm4908.dtsi"
413 -
414 -/ {
415 - cpus {
416 - /delete-node/ cpu@2;
417 -
418 - /delete-node/ cpu@3;
419 - };
420 -
421 - timer {
422 - compatible = "arm,armv8-timer";
423 - interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
424 - <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
425 - <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
426 - <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
427 - };
428 -
429 - pmu {
430 - compatible = "arm,cortex-a53-pmu";
431 - interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
432 - <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
433 - interrupt-affinity = <&cpu0>, <&cpu1>;
434 - };
435 -};
436 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
437 +++ /dev/null
438 @@ -1,207 +0,0 @@
439 -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
440 -
441 -#include <dt-bindings/gpio/gpio.h>
442 -#include <dt-bindings/input/input.h>
443 -#include <dt-bindings/leds/common.h>
444 -
445 -#include "bcm4908.dtsi"
446 -
447 -/ {
448 - compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca";
449 - model = "Asus GT-AC5300";
450 -
451 - memory@0 {
452 - device_type = "memory";
453 - reg = <0x00 0x00 0x00 0x40000000>;
454 - };
455 -
456 - gpio-keys-polled {
457 - compatible = "gpio-keys-polled";
458 - poll-interval = <100>;
459 -
460 - key-wifi {
461 - label = "WiFi";
462 - linux,code = <KEY_RFKILL>;
463 - gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
464 - };
465 -
466 - key-wps {
467 - label = "WPS";
468 - linux,code = <KEY_WPS_BUTTON>;
469 - gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
470 - };
471 -
472 - key-restart {
473 - label = "Reset";
474 - linux,code = <KEY_RESTART>;
475 - gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
476 - };
477 -
478 - key-brightness {
479 - label = "LEDs";
480 - linux,code = <KEY_BRIGHTNESS_ZERO>;
481 - gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
482 - };
483 - };
484 -};
485 -
486 -&enet {
487 - nvmem-cells = <&base_mac_addr>;
488 - nvmem-cell-names = "mac-address";
489 -};
490 -
491 -&usb_phy {
492 - brcm,ioc = <1>;
493 - status = "okay";
494 -};
495 -
496 -&ehci {
497 - status = "okay";
498 -};
499 -
500 -&ohci {
501 - status = "okay";
502 -};
503 -
504 -&xhci {
505 - status = "okay";
506 -};
507 -
508 -&ports {
509 - port@0 {
510 - label = "lan2";
511 - };
512 -
513 - port@1 {
514 - label = "lan1";
515 - };
516 -
517 - port@2 {
518 - label = "lan6";
519 - };
520 -
521 - port@3 {
522 - label = "lan5";
523 - };
524 -
525 - /* External BCM53134S switch */
526 - port@7 {
527 - label = "sw";
528 - reg = <7>;
529 - phy-mode = "rgmii";
530 -
531 - fixed-link {
532 - speed = <1000>;
533 - full-duplex;
534 - };
535 - };
536 -};
537 -
538 -&mdio {
539 - /* lan8 */
540 - ethernet-phy@0 {
541 - reg = <0>;
542 - };
543 -
544 - /* lan7 */
545 - ethernet-phy@1 {
546 - reg = <1>;
547 - };
548 -
549 - /* lan4 */
550 - ethernet-phy@2 {
551 - reg = <2>;
552 - };
553 -
554 - /* lan3 */
555 - ethernet-phy@3 {
556 - reg = <3>;
557 - };
558 -};
559 -
560 -&leds {
561 - led-power@11 {
562 - reg = <0x11>;
563 - function = LED_FUNCTION_POWER;
564 - color = <LED_COLOR_ID_WHITE>;
565 - default-state = "on";
566 - active-low;
567 - pinctrl-names = "default";
568 - pinctrl-0 = <&pins_led_17_a>;
569 - };
570 -
571 - led-wan-red@12 {
572 - reg = <0x12>;
573 - function = LED_FUNCTION_WAN;
574 - color = <LED_COLOR_ID_RED>;
575 - active-low;
576 - pinctrl-names = "default";
577 - pinctrl-0 = <&pins_led_18_a>;
578 - };
579 -
580 - led-wps@14 {
581 - reg = <0x14>;
582 - function = LED_FUNCTION_WPS;
583 - color = <LED_COLOR_ID_WHITE>;
584 - active-low;
585 - pinctrl-names = "default";
586 - pinctrl-0 = <&pins_led_20_a>;
587 - };
588 -
589 - led-wan-white@15 {
590 - reg = <0x15>;
591 - function = LED_FUNCTION_WAN;
592 - color = <LED_COLOR_ID_WHITE>;
593 - active-low;
594 - pinctrl-names = "default";
595 - pinctrl-0 = <&pins_led_21_a>;
596 - };
597 -
598 - led-lan@19 {
599 - reg = <0x19>;
600 - function = LED_FUNCTION_LAN;
601 - color = <LED_COLOR_ID_WHITE>;
602 - pinctrl-names = "default";
603 - pinctrl-0 = <&pins_led_25_a>;
604 - };
605 -};
606 -
607 -&nandcs {
608 - nand-ecc-strength = <4>;
609 - nand-ecc-step-size = <512>;
610 - nand-on-flash-bbt;
611 - brcm,nand-has-wp;
612 -
613 - #address-cells = <1>;
614 - #size-cells = <0>;
615 -
616 - partitions {
617 - compatible = "brcm,bcm4908-partitions";
618 - #address-cells = <1>;
619 - #size-cells = <1>;
620 -
621 - partition@0 {
622 - compatible = "nvmem-cells";
623 - label = "cferom";
624 - reg = <0x0 0x100000>;
625 -
626 - #address-cells = <1>;
627 - #size-cells = <1>;
628 - ranges = <0 0x0 0x100000>;
629 -
630 - base_mac_addr: mac@106a0 {
631 - reg = <0x106a0 0x6>;
632 - };
633 - };
634 -
635 - partition@100000 {
636 - compatible = "brcm,bcm4908-firmware";
637 - reg = <0x100000 0x5700000>;
638 - };
639 -
640 - partition@5800000 {
641 - compatible = "brcm,bcm4908-firmware";
642 - reg = <0x5800000 0x5700000>;
643 - };
644 - };
645 -};
646 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
647 +++ /dev/null
648 @@ -1,50 +0,0 @@
649 -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
650 -
651 -#include "bcm4908.dtsi"
652 -
653 -/ {
654 - compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca";
655 - model = "Netgear RAXE500";
656 -
657 - memory@0 {
658 - device_type = "memory";
659 - reg = <0x00 0x00 0x00 0x40000000>;
660 - };
661 -};
662 -
663 -&ehci {
664 - status = "okay";
665 -};
666 -
667 -&ohci {
668 - status = "okay";
669 -};
670 -
671 -&xhci {
672 - status = "okay";
673 -};
674 -
675 -&ports {
676 - port@0 {
677 - label = "lan4";
678 - };
679 -
680 - port@1 {
681 - label = "lan3";
682 - };
683 -
684 - port@2 {
685 - label = "lan2";
686 - };
687 -
688 - port@3 {
689 - label = "lan1";
690 - };
691 -
692 - port@7 {
693 - reg = <7>;
694 - phy-mode = "internal";
695 - phy-handle = <&phy12>;
696 - label = "wan";
697 - };
698 -};
699 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
700 +++ /dev/null
701 @@ -1,575 +0,0 @@
702 -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
703 -
704 -#include <dt-bindings/interrupt-controller/irq.h>
705 -#include <dt-bindings/interrupt-controller/arm-gic.h>
706 -#include <dt-bindings/phy/phy.h>
707 -#include <dt-bindings/soc/bcm-pmb.h>
708 -
709 -/dts-v1/;
710 -
711 -/ {
712 - interrupt-parent = <&gic>;
713 -
714 - #address-cells = <2>;
715 - #size-cells = <2>;
716 -
717 - aliases {
718 - serial0 = &uart0;
719 - };
720 -
721 - chosen {
722 - stdout-path = "serial0:115200n8";
723 - };
724 -
725 - cpus {
726 - #address-cells = <1>;
727 - #size-cells = <0>;
728 -
729 - cpu0: cpu@0 {
730 - device_type = "cpu";
731 - compatible = "brcm,brahma-b53";
732 - reg = <0x0>;
733 - enable-method = "spin-table";
734 - cpu-release-addr = <0x0 0xfff8>;
735 - next-level-cache = <&l2>;
736 - };
737 -
738 - cpu1: cpu@1 {
739 - device_type = "cpu";
740 - compatible = "brcm,brahma-b53";
741 - reg = <0x1>;
742 - enable-method = "spin-table";
743 - cpu-release-addr = <0x0 0xfff8>;
744 - next-level-cache = <&l2>;
745 - };
746 -
747 - cpu2: cpu@2 {
748 - device_type = "cpu";
749 - compatible = "brcm,brahma-b53";
750 - reg = <0x2>;
751 - enable-method = "spin-table";
752 - cpu-release-addr = <0x0 0xfff8>;
753 - next-level-cache = <&l2>;
754 - };
755 -
756 - cpu3: cpu@3 {
757 - device_type = "cpu";
758 - compatible = "brcm,brahma-b53";
759 - reg = <0x3>;
760 - enable-method = "spin-table";
761 - cpu-release-addr = <0x0 0xfff8>;
762 - next-level-cache = <&l2>;
763 - };
764 -
765 - l2: l2-cache0 {
766 - compatible = "cache";
767 - };
768 - };
769 -
770 - axi@81000000 {
771 - compatible = "simple-bus";
772 - #address-cells = <1>;
773 - #size-cells = <1>;
774 - ranges = <0x00 0x00 0x81000000 0x4000>;
775 -
776 - gic: interrupt-controller@1000 {
777 - compatible = "arm,gic-400";
778 - #interrupt-cells = <3>;
779 - #address-cells = <0>;
780 - interrupt-controller;
781 - reg = <0x1000 0x1000>,
782 - <0x2000 0x2000>;
783 - };
784 - };
785 -
786 - timer {
787 - compatible = "arm,armv8-timer";
788 - interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
789 - <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
790 - <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
791 - <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
792 - };
793 -
794 - pmu {
795 - compatible = "arm,cortex-a53-pmu";
796 - interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
797 - <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
798 - <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
799 - <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
800 - interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
801 - };
802 -
803 - clocks {
804 - periph_clk: periph_clk {
805 - compatible = "fixed-clock";
806 - #clock-cells = <0>;
807 - clock-frequency = <50000000>;
808 - clock-output-names = "periph";
809 - };
810 - };
811 -
812 - soc {
813 - compatible = "simple-bus";
814 - #address-cells = <1>;
815 - #size-cells = <1>;
816 - ranges = <0x00 0x00 0x80000000 0x281000>;
817 -
818 - enet: ethernet@2000 {
819 - compatible = "brcm,bcm4908-enet";
820 - reg = <0x2000 0x1000>;
821 -
822 - interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
823 - <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
824 - interrupt-names = "rx", "tx";
825 - };
826 -
827 - usb_phy: usb-phy@c200 {
828 - compatible = "brcm,bcm4908-usb-phy";
829 - reg = <0xc200 0x100>;
830 - reg-names = "ctrl";
831 - power-domains = <&pmb BCM_PMB_HOST_USB>;
832 - dr_mode = "host";
833 - brcm,has-xhci;
834 - brcm,has-eohci;
835 - #phy-cells = <1>;
836 - status = "disabled";
837 - };
838 -
839 - ehci: usb@c300 {
840 - compatible = "generic-ehci";
841 - reg = <0xc300 0x100>;
842 - interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
843 - phys = <&usb_phy PHY_TYPE_USB2>;
844 - status = "disabled";
845 - };
846 -
847 - ohci: usb@c400 {
848 - compatible = "generic-ohci";
849 - reg = <0xc400 0x100>;
850 - interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
851 - phys = <&usb_phy PHY_TYPE_USB2>;
852 - status = "disabled";
853 - };
854 -
855 - xhci: usb@d000 {
856 - compatible = "generic-xhci";
857 - reg = <0xd000 0x8c8>;
858 - interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
859 - phys = <&usb_phy PHY_TYPE_USB3>;
860 - status = "disabled";
861 - };
862 -
863 - bus@80000 {
864 - compatible = "simple-bus";
865 - #size-cells = <1>;
866 - #address-cells = <1>;
867 - ranges = <0 0x80000 0x50000>;
868 -
869 - ethernet-switch@0 {
870 - compatible = "brcm,bcm4908-switch";
871 - reg = <0x0 0x40000>,
872 - <0x40000 0x110>,
873 - <0x40340 0x30>,
874 - <0x40380 0x30>,
875 - <0x40600 0x34>,
876 - <0x40800 0x208>;
877 - reg-names = "core", "reg", "intrl2_0",
878 - "intrl2_1", "fcb", "acb";
879 - interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
880 - <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
881 - brcm,num-gphy = <5>;
882 - brcm,num-rgmii-ports = <2>;
883 -
884 - #address-cells = <1>;
885 - #size-cells = <0>;
886 -
887 - ports: ports {
888 - #address-cells = <1>;
889 - #size-cells = <0>;
890 -
891 - port@0 {
892 - reg = <0>;
893 - phy-mode = "internal";
894 - phy-handle = <&phy8>;
895 - };
896 -
897 - port@1 {
898 - reg = <1>;
899 - phy-mode = "internal";
900 - phy-handle = <&phy9>;
901 - };
902 -
903 - port@2 {
904 - reg = <2>;
905 - phy-mode = "internal";
906 - phy-handle = <&phy10>;
907 - };
908 -
909 - port@3 {
910 - reg = <3>;
911 - phy-mode = "internal";
912 - phy-handle = <&phy11>;
913 - };
914 -
915 - port@8 {
916 - reg = <8>;
917 - phy-mode = "internal";
918 - ethernet = <&enet>;
919 -
920 - fixed-link {
921 - speed = <1000>;
922 - full-duplex;
923 - };
924 - };
925 - };
926 - };
927 -
928 - mdio: mdio@405c0 {
929 - compatible = "brcm,unimac-mdio";
930 - reg = <0x405c0 0x8>;
931 - reg-names = "mdio";
932 - #size-cells = <0>;
933 - #address-cells = <1>;
934 -
935 - phy8: ethernet-phy@8 {
936 - reg = <8>;
937 - };
938 -
939 - phy9: ethernet-phy@9 {
940 - reg = <9>;
941 - };
942 -
943 - phy10: ethernet-phy@a {
944 - reg = <10>;
945 - };
946 -
947 - phy11: ethernet-phy@b {
948 - reg = <11>;
949 - };
950 -
951 - phy12: ethernet-phy@c {
952 - reg = <12>;
953 - };
954 - };
955 - };
956 -
957 - procmon: syscon@280000 {
958 - compatible = "simple-bus";
959 - reg = <0x280000 0x1000>;
960 - ranges;
961 -
962 - #address-cells = <1>;
963 - #size-cells = <1>;
964 -
965 - pmb: power-controller@2800c0 {
966 - compatible = "brcm,bcm4908-pmb";
967 - reg = <0x2800c0 0x40>;
968 - #power-domain-cells = <1>;
969 - };
970 - };
971 - };
972 -
973 - bus@ff800000 {
974 - compatible = "simple-bus";
975 - #address-cells = <1>;
976 - #size-cells = <1>;
977 - ranges = <0x00 0x00 0xff800000 0x3000>;
978 -
979 - twd: timer-mfd@400 {
980 - compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
981 - reg = <0x400 0x4c>;
982 - ranges = <0x0 0x400 0x4c>;
983 -
984 - #address-cells = <1>;
985 - #size-cells = <1>;
986 -
987 - watchdog@28 {
988 - compatible = "brcm,bcm6345-wdt";
989 - reg = <0x28 0x8>;
990 - };
991 - };
992 -
993 - gpio0: gpio-controller@500 {
994 - compatible = "brcm,bcm6345-gpio";
995 - reg-names = "dirout", "dat";
996 - reg = <0x500 0x28>, <0x528 0x28>;
997 -
998 - #gpio-cells = <2>;
999 - gpio-controller;
1000 - };
1001 -
1002 - pinctrl@560 {
1003 - compatible = "brcm,bcm4908-pinctrl";
1004 - reg = <0x560 0x10>;
1005 -
1006 - pins_led_0_a: led_0-a-pins {
1007 - function = "led_0";
1008 - groups = "led_0_grp_a";
1009 - };
1010 -
1011 - pins_led_1_a: led_1-a-pins {
1012 - function = "led_1";
1013 - groups = "led_1_grp_a";
1014 - };
1015 -
1016 - pins_led_2_a: led_2-a-pins {
1017 - function = "led_2";
1018 - groups = "led_2_grp_a";
1019 - };
1020 -
1021 - pins_led_3_a: led_3-a-pins {
1022 - function = "led_3";
1023 - groups = "led_3_grp_a";
1024 - };
1025 -
1026 - pins_led_4_a: led_4-a-pins {
1027 - function = "led_4";
1028 - groups = "led_4_grp_a";
1029 - };
1030 -
1031 - pins_led_5_a: led_5-a-pins {
1032 - function = "led_5";
1033 - groups = "led_5_grp_a";
1034 - };
1035 -
1036 - pins_led_6_a: led_6-a-pins {
1037 - function = "led_6";
1038 - groups = "led_6_grp_a";
1039 - };
1040 -
1041 - pins_led_7_a: led_7-a-pins {
1042 - function = "led_7";
1043 - groups = "led_7_grp_a";
1044 - };
1045 -
1046 - pins_led_8_a: led_8-a-pins {
1047 - function = "led_8";
1048 - groups = "led_8_grp_a";
1049 - };
1050 -
1051 - pins_led_9_a: led_9-a-pins {
1052 - function = "led_9";
1053 - groups = "led_9_grp_a";
1054 - };
1055 -
1056 - pins_led_10_a: led_10-a-pins {
1057 - function = "led_10";
1058 - groups = "led_10_grp_a";
1059 - };
1060 -
1061 - pins_led_11_a: led_11-a-pins {
1062 - function = "led_11";
1063 - groups = "led_11_grp_a";
1064 - };
1065 -
1066 - pins_led_12_a: led_12-a-pins {
1067 - function = "led_12";
1068 - groups = "led_12_grp_a";
1069 - };
1070 -
1071 - pins_led_13_a: led_13-a-pins {
1072 - function = "led_13";
1073 - groups = "led_13_grp_a";
1074 - };
1075 -
1076 - pins_led_14_a: led_14-a-pins {
1077 - function = "led_14";
1078 - groups = "led_14_grp_a";
1079 - };
1080 -
1081 - pins_led_15_a: led_15-a-pins {
1082 - function = "led_15";
1083 - groups = "led_15_grp_a";
1084 - };
1085 -
1086 - pins_led_16_a: led_16-a-pins {
1087 - function = "led_16";
1088 - groups = "led_16_grp_a";
1089 - };
1090 -
1091 - pins_led_17_a: led_17-a-pins {
1092 - function = "led_17";
1093 - groups = "led_17_grp_a";
1094 - };
1095 -
1096 - pins_led_18_a: led_18-a-pins {
1097 - function = "led_18";
1098 - groups = "led_18_grp_a";
1099 - };
1100 -
1101 - pins_led_19_a: led_19-a-pins {
1102 - function = "led_19";
1103 - groups = "led_19_grp_a";
1104 - };
1105 -
1106 - pins_led_20_a: led_20-a-pins {
1107 - function = "led_20";
1108 - groups = "led_20_grp_a";
1109 - };
1110 -
1111 - pins_led_21_a: led_21-a-pins {
1112 - function = "led_21";
1113 - groups = "led_21_grp_a";
1114 - };
1115 -
1116 - pins_led_22_a: led_22-a-pins {
1117 - function = "led_22";
1118 - groups = "led_22_grp_a";
1119 - };
1120 -
1121 - pins_led_23_a: led_23-a-pins {
1122 - function = "led_23";
1123 - groups = "led_23_grp_a";
1124 - };
1125 -
1126 - pins_led_24_a: led_24-a-pins {
1127 - function = "led_24";
1128 - groups = "led_24_grp_a";
1129 - };
1130 -
1131 - pins_led_25_a: led_25-a-pins {
1132 - function = "led_25";
1133 - groups = "led_25_grp_a";
1134 - };
1135 -
1136 - pins_led_26_a: led_26-a-pins {
1137 - function = "led_26";
1138 - groups = "led_26_grp_a";
1139 - };
1140 -
1141 - pins_led_27_a: led_27-a-pins {
1142 - function = "led_27";
1143 - groups = "led_27_grp_a";
1144 - };
1145 -
1146 - pins_led_28_a: led_28-a-pins {
1147 - function = "led_28";
1148 - groups = "led_28_grp_a";
1149 - };
1150 -
1151 - pins_led_29_a: led_29-a-pins {
1152 - function = "led_29";
1153 - groups = "led_29_grp_a";
1154 - };
1155 -
1156 - pins_led_30_a: led_30-a-pins {
1157 - function = "led_30";
1158 - groups = "led_30_grp_a";
1159 - };
1160 -
1161 - pins_led_31_a: led_31-a-pins {
1162 - function = "led_31";
1163 - groups = "led_31_grp_a";
1164 - };
1165 -
1166 - pins_hs_uart: hs_uart-pins {
1167 - function = "hs_uart";
1168 - groups = "hs_uart_grp";
1169 - };
1170 -
1171 - pins_i2c_a: i2c-a-pins {
1172 - function = "i2c";
1173 - groups = "i2c_grp_a";
1174 - };
1175 -
1176 - pins_i2c_b: i2c-b-pins {
1177 - function = "i2c";
1178 - groups = "i2c_grp_b";
1179 - };
1180 -
1181 - pins_i2s: i2s-pins {
1182 - function = "i2s";
1183 - groups = "i2s_grp";
1184 - };
1185 -
1186 - pins_nand_ctrl: nand_ctrl-pins {
1187 - function = "nand_ctrl";
1188 - groups = "nand_ctrl_grp";
1189 - };
1190 -
1191 - pins_nand_data: nand_data-pins {
1192 - function = "nand_data";
1193 - groups = "nand_data_grp";
1194 - };
1195 -
1196 - pins_emmc_ctrl: emmc_ctrl-pins {
1197 - function = "emmc_ctrl";
1198 - groups = "emmc_ctrl_grp";
1199 - };
1200 -
1201 - pins_usb0_pwr: usb0_pwr-pins {
1202 - function = "usb0_pwr";
1203 - groups = "usb0_pwr_grp";
1204 - };
1205 -
1206 - pins_usb1_pwr: usb1_pwr-pins {
1207 - function = "usb1_pwr";
1208 - groups = "usb1_pwr_grp";
1209 - };
1210 - };
1211 -
1212 - uart0: serial@640 {
1213 - compatible = "brcm,bcm6345-uart";
1214 - reg = <0x640 0x18>;
1215 - interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1216 - clocks = <&periph_clk>;
1217 - clock-names = "refclk";
1218 - status = "okay";
1219 - };
1220 -
1221 - leds: leds@800 {
1222 - compatible = "brcm,bcm4908-leds", "brcm,bcm63138-leds";
1223 - reg = <0x800 0xdc>;
1224 -
1225 - #address-cells = <1>;
1226 - #size-cells = <0>;
1227 - };
1228 -
1229 - nand-controller@1800 {
1230 - #address-cells = <1>;
1231 - #size-cells = <0>;
1232 - compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
1233 - reg = <0x1800 0x600>, <0x2000 0x10>;
1234 - reg-names = "nand", "nand-int-base";
1235 - interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1236 - interrupt-names = "nand";
1237 - status = "okay";
1238 -
1239 - nandcs: nand@0 {
1240 - compatible = "brcm,nandcs";
1241 - reg = <0>;
1242 - };
1243 - };
1244 -
1245 - i2c@2100 {
1246 - compatible = "brcm,brcmper-i2c";
1247 - reg = <0x2100 0x58>;
1248 - clock-frequency = <97500>;
1249 - pinctrl-names = "default";
1250 - pinctrl-0 = <&pins_i2c_a>;
1251 - status = "disabled";
1252 - };
1253 -
1254 - misc@2600 {
1255 - compatible = "brcm,misc", "simple-mfd";
1256 - reg = <0x2600 0xe4>;
1257 -
1258 - #address-cells = <1>;
1259 - #size-cells = <1>;
1260 - ranges = <0x00 0x2600 0xe4>;
1261 -
1262 - reset-controller@2644 {
1263 - compatible = "brcm,bcm4908-misc-pcie-reset";
1264 - reg = <0x44 0x04>;
1265 - #reset-cells = <1>;
1266 - };
1267 - };
1268 - };
1269 -
1270 - reboot {
1271 - compatible = "syscon-reboot";
1272 - regmap = <&twd>;
1273 - offset = <0x34>;
1274 - mask = <1>;
1275 - };
1276 -};
1277 --- /dev/null
1278 +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
1279 @@ -0,0 +1,157 @@
1280 +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
1281 +
1282 +#include <dt-bindings/gpio/gpio.h>
1283 +#include <dt-bindings/input/input.h>
1284 +#include <dt-bindings/leds/common.h>
1285 +
1286 +#include "bcm4906.dtsi"
1287 +
1288 +/ {
1289 + compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
1290 + model = "Netgear R8000P";
1291 +
1292 + memory@0 {
1293 + device_type = "memory";
1294 + reg = <0x00 0x00 0x00 0x20000000>;
1295 + };
1296 +
1297 + leds {
1298 + compatible = "gpio-leds";
1299 +
1300 + led-power-white {
1301 + function = LED_FUNCTION_POWER;
1302 + color = <LED_COLOR_ID_WHITE>;
1303 + gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
1304 + };
1305 +
1306 + led-power-amber {
1307 + function = LED_FUNCTION_POWER;
1308 + color = <LED_COLOR_ID_AMBER>;
1309 + gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
1310 + };
1311 +
1312 + led-wps {
1313 + function = LED_FUNCTION_WPS;
1314 + color = <LED_COLOR_ID_WHITE>;
1315 + gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
1316 + };
1317 +
1318 + led-2ghz {
1319 + function = "2ghz";
1320 + color = <LED_COLOR_ID_WHITE>;
1321 + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
1322 + };
1323 +
1324 + led-5ghz-1 {
1325 + function = "5ghz-1";
1326 + color = <LED_COLOR_ID_WHITE>;
1327 + gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
1328 + };
1329 +
1330 + led-5ghz-2 {
1331 + function = "5ghz-2";
1332 + color = <LED_COLOR_ID_WHITE>;
1333 + gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
1334 + };
1335 +
1336 + led-usb2 {
1337 + function = "usb2";
1338 + color = <LED_COLOR_ID_WHITE>;
1339 + gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
1340 + };
1341 +
1342 + led-usb3 {
1343 + function = "usb3";
1344 + color = <LED_COLOR_ID_WHITE>;
1345 + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
1346 + };
1347 +
1348 + led-wifi {
1349 + function = "wifi";
1350 + color = <LED_COLOR_ID_WHITE>;
1351 + gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
1352 + };
1353 + };
1354 +};
1355 +
1356 +&enet {
1357 + nvmem-cells = <&base_mac_addr>;
1358 + nvmem-cell-names = "mac-address";
1359 +};
1360 +
1361 +&usb_phy {
1362 + brcm,ioc = <1>;
1363 + status = "okay";
1364 +};
1365 +
1366 +&ehci {
1367 + status = "okay";
1368 +};
1369 +
1370 +&ohci {
1371 + status = "okay";
1372 +};
1373 +
1374 +&xhci {
1375 + status = "okay";
1376 +};
1377 +
1378 +&ports {
1379 + port@0 {
1380 + label = "lan4";
1381 + };
1382 +
1383 + port@1 {
1384 + label = "lan3";
1385 + };
1386 +
1387 + port@2 {
1388 + label = "lan2";
1389 + };
1390 +
1391 + port@3 {
1392 + label = "lan1";
1393 + };
1394 +
1395 + port@7 {
1396 + reg = <7>;
1397 + phy-mode = "internal";
1398 + phy-handle = <&phy12>;
1399 + label = "wan";
1400 + };
1401 +};
1402 +
1403 +&nandcs {
1404 + nand-ecc-strength = <4>;
1405 + nand-ecc-step-size = <512>;
1406 + nand-on-flash-bbt;
1407 +
1408 + #address-cells = <1>;
1409 + #size-cells = <0>;
1410 +
1411 + partitions {
1412 + compatible = "fixed-partitions";
1413 + #address-cells = <1>;
1414 + #size-cells = <1>;
1415 +
1416 + partition@0 {
1417 + compatible = "nvmem-cells";
1418 + label = "cferom";
1419 + reg = <0x0 0x100000>;
1420 +
1421 + #address-cells = <1>;
1422 + #size-cells = <1>;
1423 + ranges = <0 0x0 0x100000>;
1424 +
1425 + base_mac_addr: mac@106a0 {
1426 + reg = <0x106a0 0x6>;
1427 + };
1428 + };
1429 +
1430 + partition@100000 {
1431 + compatible = "brcm,bcm4908-firmware";
1432 + label = "firmware";
1433 + reg = <0x100000 0x4400000>;
1434 + };
1435 + };
1436 +};
1437 --- /dev/null
1438 +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
1439 @@ -0,0 +1,182 @@
1440 +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
1441 +
1442 +#include <dt-bindings/gpio/gpio.h>
1443 +#include <dt-bindings/input/input.h>
1444 +#include <dt-bindings/leds/common.h>
1445 +
1446 +#include "bcm4906.dtsi"
1447 +
1448 +/ {
1449 + compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
1450 + model = "TP-Link Archer C2300 V1";
1451 +
1452 + memory@0 {
1453 + device_type = "memory";
1454 + reg = <0x00 0x00 0x00 0x20000000>;
1455 + };
1456 +
1457 + leds {
1458 + compatible = "gpio-leds";
1459 +
1460 + led-power {
1461 + function = LED_FUNCTION_POWER;
1462 + color = <LED_COLOR_ID_BLUE>;
1463 + gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
1464 + };
1465 +
1466 + led-2ghz {
1467 + function = "2ghz";
1468 + color = <LED_COLOR_ID_BLUE>;
1469 + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
1470 + };
1471 +
1472 + led-5ghz {
1473 + function = "5ghz";
1474 + color = <LED_COLOR_ID_BLUE>;
1475 + gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
1476 + };
1477 +
1478 + led-wan-amber {
1479 + function = LED_FUNCTION_WAN;
1480 + color = <LED_COLOR_ID_AMBER>;
1481 + gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
1482 + };
1483 +
1484 + led-wan-blue {
1485 + function = LED_FUNCTION_WAN;
1486 + color = <LED_COLOR_ID_BLUE>;
1487 + gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
1488 + };
1489 +
1490 + led-lan {
1491 + function = LED_FUNCTION_LAN;
1492 + color = <LED_COLOR_ID_BLUE>;
1493 + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
1494 + };
1495 +
1496 + led-wps {
1497 + function = LED_FUNCTION_WPS;
1498 + color = <LED_COLOR_ID_BLUE>;
1499 + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
1500 + };
1501 +
1502 + led-usb2 {
1503 + function = "usb2";
1504 + color = <LED_COLOR_ID_BLUE>;
1505 + gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
1506 + };
1507 +
1508 + led-usb3 {
1509 + function = "usbd3";
1510 + color = <LED_COLOR_ID_BLUE>;
1511 + gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
1512 + };
1513 +
1514 + led-brightness {
1515 + function = LED_FUNCTION_BACKLIGHT;
1516 + color = <LED_COLOR_ID_WHITE>;
1517 + gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
1518 + };
1519 + };
1520 +
1521 + gpio-keys-polled {
1522 + compatible = "gpio-keys-polled";
1523 + poll-interval = <100>;
1524 +
1525 + key-brightness {
1526 + label = "LEDs";
1527 + linux,code = <KEY_BRIGHTNESS_ZERO>;
1528 + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
1529 + };
1530 +
1531 + key-wps {
1532 + label = "WPS";
1533 + linux,code = <KEY_WPS_BUTTON>;
1534 + gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
1535 + };
1536 +
1537 + key-wifi {
1538 + label = "WiFi";
1539 + linux,code = <KEY_RFKILL>;
1540 + gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
1541 + };
1542 +
1543 + key-restart {
1544 + label = "Reset";
1545 + linux,code = <KEY_RESTART>;
1546 + gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
1547 + };
1548 + };
1549 +};
1550 +
1551 +&usb_phy {
1552 + brcm,ioc = <1>;
1553 + status = "okay";
1554 +};
1555 +
1556 +&ehci {
1557 + status = "okay";
1558 +};
1559 +
1560 +&ohci {
1561 + status = "okay";
1562 +};
1563 +
1564 +&xhci {
1565 + status = "okay";
1566 +};
1567 +
1568 +&ports {
1569 + port@0 {
1570 + label = "lan4";
1571 + };
1572 +
1573 + port@1 {
1574 + label = "lan3";
1575 + };
1576 +
1577 + port@2 {
1578 + label = "lan2";
1579 + };
1580 +
1581 + port@3 {
1582 + label = "lan1";
1583 + };
1584 +
1585 + port@7 {
1586 + reg = <7>;
1587 + phy-mode = "internal";
1588 + phy-handle = <&phy12>;
1589 + label = "wan";
1590 + };
1591 +};
1592 +
1593 +&nandcs {
1594 + nand-ecc-strength = <4>;
1595 + nand-ecc-step-size = <512>;
1596 + nand-on-flash-bbt;
1597 +
1598 + #address-cells = <1>;
1599 + #size-cells = <0>;
1600 +
1601 + partitions {
1602 + compatible = "brcm,bcm4908-partitions";
1603 + #address-cells = <1>;
1604 + #size-cells = <1>;
1605 +
1606 + partition@0 {
1607 + label = "cferom";
1608 + reg = <0x0 0x100000>;
1609 + };
1610 +
1611 + partition@100000 {
1612 + compatible = "brcm,bcm4908-firmware";
1613 + reg = <0x100000 0x3900000>;
1614 + };
1615 +
1616 + partition@5800000 {
1617 + compatible = "brcm,bcm4908-firmware";
1618 + reg = <0x3a00000 0x3900000>;
1619 + };
1620 + };
1621 +};
1622 --- /dev/null
1623 +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi
1624 @@ -0,0 +1,26 @@
1625 +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
1626 +
1627 +#include "bcm4908.dtsi"
1628 +
1629 +/ {
1630 + cpus {
1631 + /delete-node/ cpu@2;
1632 +
1633 + /delete-node/ cpu@3;
1634 + };
1635 +
1636 + timer {
1637 + compatible = "arm,armv8-timer";
1638 + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
1639 + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
1640 + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
1641 + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
1642 + };
1643 +
1644 + pmu {
1645 + compatible = "arm,cortex-a53-pmu";
1646 + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
1647 + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1648 + interrupt-affinity = <&cpu0>, <&cpu1>;
1649 + };
1650 +};
1651 --- /dev/null
1652 +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
1653 @@ -0,0 +1,207 @@
1654 +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
1655 +
1656 +#include <dt-bindings/gpio/gpio.h>
1657 +#include <dt-bindings/input/input.h>
1658 +#include <dt-bindings/leds/common.h>
1659 +
1660 +#include "bcm4908.dtsi"
1661 +
1662 +/ {
1663 + compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca";
1664 + model = "Asus GT-AC5300";
1665 +
1666 + memory@0 {
1667 + device_type = "memory";
1668 + reg = <0x00 0x00 0x00 0x40000000>;
1669 + };
1670 +
1671 + gpio-keys-polled {
1672 + compatible = "gpio-keys-polled";
1673 + poll-interval = <100>;
1674 +
1675 + key-wifi {
1676 + label = "WiFi";
1677 + linux,code = <KEY_RFKILL>;
1678 + gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
1679 + };
1680 +
1681 + key-wps {
1682 + label = "WPS";
1683 + linux,code = <KEY_WPS_BUTTON>;
1684 + gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
1685 + };
1686 +
1687 + key-restart {
1688 + label = "Reset";
1689 + linux,code = <KEY_RESTART>;
1690 + gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
1691 + };
1692 +
1693 + key-brightness {
1694 + label = "LEDs";
1695 + linux,code = <KEY_BRIGHTNESS_ZERO>;
1696 + gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
1697 + };
1698 + };
1699 +};
1700 +
1701 +&enet {
1702 + nvmem-cells = <&base_mac_addr>;
1703 + nvmem-cell-names = "mac-address";
1704 +};
1705 +
1706 +&usb_phy {
1707 + brcm,ioc = <1>;
1708 + status = "okay";
1709 +};
1710 +
1711 +&ehci {
1712 + status = "okay";
1713 +};
1714 +
1715 +&ohci {
1716 + status = "okay";
1717 +};
1718 +
1719 +&xhci {
1720 + status = "okay";
1721 +};
1722 +
1723 +&ports {
1724 + port@0 {
1725 + label = "lan2";
1726 + };
1727 +
1728 + port@1 {
1729 + label = "lan1";
1730 + };
1731 +
1732 + port@2 {
1733 + label = "lan6";
1734 + };
1735 +
1736 + port@3 {
1737 + label = "lan5";
1738 + };
1739 +
1740 + /* External BCM53134S switch */
1741 + port@7 {
1742 + label = "sw";
1743 + reg = <7>;
1744 + phy-mode = "rgmii";
1745 +
1746 + fixed-link {
1747 + speed = <1000>;
1748 + full-duplex;
1749 + };
1750 + };
1751 +};
1752 +
1753 +&mdio {
1754 + /* lan8 */
1755 + ethernet-phy@0 {
1756 + reg = <0>;
1757 + };
1758 +
1759 + /* lan7 */
1760 + ethernet-phy@1 {
1761 + reg = <1>;
1762 + };
1763 +
1764 + /* lan4 */
1765 + ethernet-phy@2 {
1766 + reg = <2>;
1767 + };
1768 +
1769 + /* lan3 */
1770 + ethernet-phy@3 {
1771 + reg = <3>;
1772 + };
1773 +};
1774 +
1775 +&leds {
1776 + led-power@11 {
1777 + reg = <0x11>;
1778 + function = LED_FUNCTION_POWER;
1779 + color = <LED_COLOR_ID_WHITE>;
1780 + default-state = "on";
1781 + active-low;
1782 + pinctrl-names = "default";
1783 + pinctrl-0 = <&pins_led_17_a>;
1784 + };
1785 +
1786 + led-wan-red@12 {
1787 + reg = <0x12>;
1788 + function = LED_FUNCTION_WAN;
1789 + color = <LED_COLOR_ID_RED>;
1790 + active-low;
1791 + pinctrl-names = "default";
1792 + pinctrl-0 = <&pins_led_18_a>;
1793 + };
1794 +
1795 + led-wps@14 {
1796 + reg = <0x14>;
1797 + function = LED_FUNCTION_WPS;
1798 + color = <LED_COLOR_ID_WHITE>;
1799 + active-low;
1800 + pinctrl-names = "default";
1801 + pinctrl-0 = <&pins_led_20_a>;
1802 + };
1803 +
1804 + led-wan-white@15 {
1805 + reg = <0x15>;
1806 + function = LED_FUNCTION_WAN;
1807 + color = <LED_COLOR_ID_WHITE>;
1808 + active-low;
1809 + pinctrl-names = "default";
1810 + pinctrl-0 = <&pins_led_21_a>;
1811 + };
1812 +
1813 + led-lan@19 {
1814 + reg = <0x19>;
1815 + function = LED_FUNCTION_LAN;
1816 + color = <LED_COLOR_ID_WHITE>;
1817 + pinctrl-names = "default";
1818 + pinctrl-0 = <&pins_led_25_a>;
1819 + };
1820 +};
1821 +
1822 +&nandcs {
1823 + nand-ecc-strength = <4>;
1824 + nand-ecc-step-size = <512>;
1825 + nand-on-flash-bbt;
1826 + brcm,nand-has-wp;
1827 +
1828 + #address-cells = <1>;
1829 + #size-cells = <0>;
1830 +
1831 + partitions {
1832 + compatible = "brcm,bcm4908-partitions";
1833 + #address-cells = <1>;
1834 + #size-cells = <1>;
1835 +
1836 + partition@0 {
1837 + compatible = "nvmem-cells";
1838 + label = "cferom";
1839 + reg = <0x0 0x100000>;
1840 +
1841 + #address-cells = <1>;
1842 + #size-cells = <1>;
1843 + ranges = <0 0x0 0x100000>;
1844 +
1845 + base_mac_addr: mac@106a0 {
1846 + reg = <0x106a0 0x6>;
1847 + };
1848 + };
1849 +
1850 + partition@100000 {
1851 + compatible = "brcm,bcm4908-firmware";
1852 + reg = <0x100000 0x5700000>;
1853 + };
1854 +
1855 + partition@5800000 {
1856 + compatible = "brcm,bcm4908-firmware";
1857 + reg = <0x5800000 0x5700000>;
1858 + };
1859 + };
1860 +};
1861 --- /dev/null
1862 +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts
1863 @@ -0,0 +1,50 @@
1864 +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
1865 +
1866 +#include "bcm4908.dtsi"
1867 +
1868 +/ {
1869 + compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca";
1870 + model = "Netgear RAXE500";
1871 +
1872 + memory@0 {
1873 + device_type = "memory";
1874 + reg = <0x00 0x00 0x00 0x40000000>;
1875 + };
1876 +};
1877 +
1878 +&ehci {
1879 + status = "okay";
1880 +};
1881 +
1882 +&ohci {
1883 + status = "okay";
1884 +};
1885 +
1886 +&xhci {
1887 + status = "okay";
1888 +};
1889 +
1890 +&ports {
1891 + port@0 {
1892 + label = "lan4";
1893 + };
1894 +
1895 + port@1 {
1896 + label = "lan3";
1897 + };
1898 +
1899 + port@2 {
1900 + label = "lan2";
1901 + };
1902 +
1903 + port@3 {
1904 + label = "lan1";
1905 + };
1906 +
1907 + port@7 {
1908 + reg = <7>;
1909 + phy-mode = "internal";
1910 + phy-handle = <&phy12>;
1911 + label = "wan";
1912 + };
1913 +};
1914 --- /dev/null
1915 +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
1916 @@ -0,0 +1,575 @@
1917 +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
1918 +
1919 +#include <dt-bindings/interrupt-controller/irq.h>
1920 +#include <dt-bindings/interrupt-controller/arm-gic.h>
1921 +#include <dt-bindings/phy/phy.h>
1922 +#include <dt-bindings/soc/bcm-pmb.h>
1923 +
1924 +/dts-v1/;
1925 +
1926 +/ {
1927 + interrupt-parent = <&gic>;
1928 +
1929 + #address-cells = <2>;
1930 + #size-cells = <2>;
1931 +
1932 + aliases {
1933 + serial0 = &uart0;
1934 + };
1935 +
1936 + chosen {
1937 + stdout-path = "serial0:115200n8";
1938 + };
1939 +
1940 + cpus {
1941 + #address-cells = <1>;
1942 + #size-cells = <0>;
1943 +
1944 + cpu0: cpu@0 {
1945 + device_type = "cpu";
1946 + compatible = "brcm,brahma-b53";
1947 + reg = <0x0>;
1948 + enable-method = "spin-table";
1949 + cpu-release-addr = <0x0 0xfff8>;
1950 + next-level-cache = <&l2>;
1951 + };
1952 +
1953 + cpu1: cpu@1 {
1954 + device_type = "cpu";
1955 + compatible = "brcm,brahma-b53";
1956 + reg = <0x1>;
1957 + enable-method = "spin-table";
1958 + cpu-release-addr = <0x0 0xfff8>;
1959 + next-level-cache = <&l2>;
1960 + };
1961 +
1962 + cpu2: cpu@2 {
1963 + device_type = "cpu";
1964 + compatible = "brcm,brahma-b53";
1965 + reg = <0x2>;
1966 + enable-method = "spin-table";
1967 + cpu-release-addr = <0x0 0xfff8>;
1968 + next-level-cache = <&l2>;
1969 + };
1970 +
1971 + cpu3: cpu@3 {
1972 + device_type = "cpu";
1973 + compatible = "brcm,brahma-b53";
1974 + reg = <0x3>;
1975 + enable-method = "spin-table";
1976 + cpu-release-addr = <0x0 0xfff8>;
1977 + next-level-cache = <&l2>;
1978 + };
1979 +
1980 + l2: l2-cache0 {
1981 + compatible = "cache";
1982 + };
1983 + };
1984 +
1985 + axi@81000000 {
1986 + compatible = "simple-bus";
1987 + #address-cells = <1>;
1988 + #size-cells = <1>;
1989 + ranges = <0x00 0x00 0x81000000 0x4000>;
1990 +
1991 + gic: interrupt-controller@1000 {
1992 + compatible = "arm,gic-400";
1993 + #interrupt-cells = <3>;
1994 + #address-cells = <0>;
1995 + interrupt-controller;
1996 + reg = <0x1000 0x1000>,
1997 + <0x2000 0x2000>;
1998 + };
1999 + };
2000 +
2001 + timer {
2002 + compatible = "arm,armv8-timer";
2003 + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2004 + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2005 + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2006 + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
2007 + };
2008 +
2009 + pmu {
2010 + compatible = "arm,cortex-a53-pmu";
2011 + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
2012 + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
2013 + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
2014 + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
2015 + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
2016 + };
2017 +
2018 + clocks {
2019 + periph_clk: periph_clk {
2020 + compatible = "fixed-clock";
2021 + #clock-cells = <0>;
2022 + clock-frequency = <50000000>;
2023 + clock-output-names = "periph";
2024 + };
2025 + };
2026 +
2027 + soc {
2028 + compatible = "simple-bus";
2029 + #address-cells = <1>;
2030 + #size-cells = <1>;
2031 + ranges = <0x00 0x00 0x80000000 0x281000>;
2032 +
2033 + enet: ethernet@2000 {
2034 + compatible = "brcm,bcm4908-enet";
2035 + reg = <0x2000 0x1000>;
2036 +
2037 + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
2038 + <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
2039 + interrupt-names = "rx", "tx";
2040 + };
2041 +
2042 + usb_phy: usb-phy@c200 {
2043 + compatible = "brcm,bcm4908-usb-phy";
2044 + reg = <0xc200 0x100>;
2045 + reg-names = "ctrl";
2046 + power-domains = <&pmb BCM_PMB_HOST_USB>;
2047 + dr_mode = "host";
2048 + brcm,has-xhci;
2049 + brcm,has-eohci;
2050 + #phy-cells = <1>;
2051 + status = "disabled";
2052 + };
2053 +
2054 + ehci: usb@c300 {
2055 + compatible = "generic-ehci";
2056 + reg = <0xc300 0x100>;
2057 + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
2058 + phys = <&usb_phy PHY_TYPE_USB2>;
2059 + status = "disabled";
2060 + };
2061 +
2062 + ohci: usb@c400 {
2063 + compatible = "generic-ohci";
2064 + reg = <0xc400 0x100>;
2065 + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
2066 + phys = <&usb_phy PHY_TYPE_USB2>;
2067 + status = "disabled";
2068 + };
2069 +
2070 + xhci: usb@d000 {
2071 + compatible = "generic-xhci";
2072 + reg = <0xd000 0x8c8>;
2073 + interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
2074 + phys = <&usb_phy PHY_TYPE_USB3>;
2075 + status = "disabled";
2076 + };
2077 +
2078 + bus@80000 {
2079 + compatible = "simple-bus";
2080 + #size-cells = <1>;
2081 + #address-cells = <1>;
2082 + ranges = <0 0x80000 0x50000>;
2083 +
2084 + ethernet-switch@0 {
2085 + compatible = "brcm,bcm4908-switch";
2086 + reg = <0x0 0x40000>,
2087 + <0x40000 0x110>,
2088 + <0x40340 0x30>,
2089 + <0x40380 0x30>,
2090 + <0x40600 0x34>,
2091 + <0x40800 0x208>;
2092 + reg-names = "core", "reg", "intrl2_0",
2093 + "intrl2_1", "fcb", "acb";
2094 + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
2095 + <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
2096 + brcm,num-gphy = <5>;
2097 + brcm,num-rgmii-ports = <2>;
2098 +
2099 + #address-cells = <1>;
2100 + #size-cells = <0>;
2101 +
2102 + ports: ports {
2103 + #address-cells = <1>;
2104 + #size-cells = <0>;
2105 +
2106 + port@0 {
2107 + reg = <0>;
2108 + phy-mode = "internal";
2109 + phy-handle = <&phy8>;
2110 + };
2111 +
2112 + port@1 {
2113 + reg = <1>;
2114 + phy-mode = "internal";
2115 + phy-handle = <&phy9>;
2116 + };
2117 +
2118 + port@2 {
2119 + reg = <2>;
2120 + phy-mode = "internal";
2121 + phy-handle = <&phy10>;
2122 + };
2123 +
2124 + port@3 {
2125 + reg = <3>;
2126 + phy-mode = "internal";
2127 + phy-handle = <&phy11>;
2128 + };
2129 +
2130 + port@8 {
2131 + reg = <8>;
2132 + phy-mode = "internal";
2133 + ethernet = <&enet>;
2134 +
2135 + fixed-link {
2136 + speed = <1000>;
2137 + full-duplex;
2138 + };
2139 + };
2140 + };
2141 + };
2142 +
2143 + mdio: mdio@405c0 {
2144 + compatible = "brcm,unimac-mdio";
2145 + reg = <0x405c0 0x8>;
2146 + reg-names = "mdio";
2147 + #size-cells = <0>;
2148 + #address-cells = <1>;
2149 +
2150 + phy8: ethernet-phy@8 {
2151 + reg = <8>;
2152 + };
2153 +
2154 + phy9: ethernet-phy@9 {
2155 + reg = <9>;
2156 + };
2157 +
2158 + phy10: ethernet-phy@a {
2159 + reg = <10>;
2160 + };
2161 +
2162 + phy11: ethernet-phy@b {
2163 + reg = <11>;
2164 + };
2165 +
2166 + phy12: ethernet-phy@c {
2167 + reg = <12>;
2168 + };
2169 + };
2170 + };
2171 +
2172 + procmon: syscon@280000 {
2173 + compatible = "simple-bus";
2174 + reg = <0x280000 0x1000>;
2175 + ranges;
2176 +
2177 + #address-cells = <1>;
2178 + #size-cells = <1>;
2179 +
2180 + pmb: power-controller@2800c0 {
2181 + compatible = "brcm,bcm4908-pmb";
2182 + reg = <0x2800c0 0x40>;
2183 + #power-domain-cells = <1>;
2184 + };
2185 + };
2186 + };
2187 +
2188 + bus@ff800000 {
2189 + compatible = "simple-bus";
2190 + #address-cells = <1>;
2191 + #size-cells = <1>;
2192 + ranges = <0x00 0x00 0xff800000 0x3000>;
2193 +
2194 + twd: timer-mfd@400 {
2195 + compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
2196 + reg = <0x400 0x4c>;
2197 + ranges = <0x0 0x400 0x4c>;
2198 +
2199 + #address-cells = <1>;
2200 + #size-cells = <1>;
2201 +
2202 + watchdog@28 {
2203 + compatible = "brcm,bcm6345-wdt";
2204 + reg = <0x28 0x8>;
2205 + };
2206 + };
2207 +
2208 + gpio0: gpio-controller@500 {
2209 + compatible = "brcm,bcm6345-gpio";
2210 + reg-names = "dirout", "dat";
2211 + reg = <0x500 0x28>, <0x528 0x28>;
2212 +
2213 + #gpio-cells = <2>;
2214 + gpio-controller;
2215 + };
2216 +
2217 + pinctrl@560 {
2218 + compatible = "brcm,bcm4908-pinctrl";
2219 + reg = <0x560 0x10>;
2220 +
2221 + pins_led_0_a: led_0-a-pins {
2222 + function = "led_0";
2223 + groups = "led_0_grp_a";
2224 + };
2225 +
2226 + pins_led_1_a: led_1-a-pins {
2227 + function = "led_1";
2228 + groups = "led_1_grp_a";
2229 + };
2230 +
2231 + pins_led_2_a: led_2-a-pins {
2232 + function = "led_2";
2233 + groups = "led_2_grp_a";
2234 + };
2235 +
2236 + pins_led_3_a: led_3-a-pins {
2237 + function = "led_3";
2238 + groups = "led_3_grp_a";
2239 + };
2240 +
2241 + pins_led_4_a: led_4-a-pins {
2242 + function = "led_4";
2243 + groups = "led_4_grp_a";
2244 + };
2245 +
2246 + pins_led_5_a: led_5-a-pins {
2247 + function = "led_5";
2248 + groups = "led_5_grp_a";
2249 + };
2250 +
2251 + pins_led_6_a: led_6-a-pins {
2252 + function = "led_6";
2253 + groups = "led_6_grp_a";
2254 + };
2255 +
2256 + pins_led_7_a: led_7-a-pins {
2257 + function = "led_7";
2258 + groups = "led_7_grp_a";
2259 + };
2260 +
2261 + pins_led_8_a: led_8-a-pins {
2262 + function = "led_8";
2263 + groups = "led_8_grp_a";
2264 + };
2265 +
2266 + pins_led_9_a: led_9-a-pins {
2267 + function = "led_9";
2268 + groups = "led_9_grp_a";
2269 + };
2270 +
2271 + pins_led_10_a: led_10-a-pins {
2272 + function = "led_10";
2273 + groups = "led_10_grp_a";
2274 + };
2275 +
2276 + pins_led_11_a: led_11-a-pins {
2277 + function = "led_11";
2278 + groups = "led_11_grp_a";
2279 + };
2280 +
2281 + pins_led_12_a: led_12-a-pins {
2282 + function = "led_12";
2283 + groups = "led_12_grp_a";
2284 + };
2285 +
2286 + pins_led_13_a: led_13-a-pins {
2287 + function = "led_13";
2288 + groups = "led_13_grp_a";
2289 + };
2290 +
2291 + pins_led_14_a: led_14-a-pins {
2292 + function = "led_14";
2293 + groups = "led_14_grp_a";
2294 + };
2295 +
2296 + pins_led_15_a: led_15-a-pins {
2297 + function = "led_15";
2298 + groups = "led_15_grp_a";
2299 + };
2300 +
2301 + pins_led_16_a: led_16-a-pins {
2302 + function = "led_16";
2303 + groups = "led_16_grp_a";
2304 + };
2305 +
2306 + pins_led_17_a: led_17-a-pins {
2307 + function = "led_17";
2308 + groups = "led_17_grp_a";
2309 + };
2310 +
2311 + pins_led_18_a: led_18-a-pins {
2312 + function = "led_18";
2313 + groups = "led_18_grp_a";
2314 + };
2315 +
2316 + pins_led_19_a: led_19-a-pins {
2317 + function = "led_19";
2318 + groups = "led_19_grp_a";
2319 + };
2320 +
2321 + pins_led_20_a: led_20-a-pins {
2322 + function = "led_20";
2323 + groups = "led_20_grp_a";
2324 + };
2325 +
2326 + pins_led_21_a: led_21-a-pins {
2327 + function = "led_21";
2328 + groups = "led_21_grp_a";
2329 + };
2330 +
2331 + pins_led_22_a: led_22-a-pins {
2332 + function = "led_22";
2333 + groups = "led_22_grp_a";
2334 + };
2335 +
2336 + pins_led_23_a: led_23-a-pins {
2337 + function = "led_23";
2338 + groups = "led_23_grp_a";
2339 + };
2340 +
2341 + pins_led_24_a: led_24-a-pins {
2342 + function = "led_24";
2343 + groups = "led_24_grp_a";
2344 + };
2345 +
2346 + pins_led_25_a: led_25-a-pins {
2347 + function = "led_25";
2348 + groups = "led_25_grp_a";
2349 + };
2350 +
2351 + pins_led_26_a: led_26-a-pins {
2352 + function = "led_26";
2353 + groups = "led_26_grp_a";
2354 + };
2355 +
2356 + pins_led_27_a: led_27-a-pins {
2357 + function = "led_27";
2358 + groups = "led_27_grp_a";
2359 + };
2360 +
2361 + pins_led_28_a: led_28-a-pins {
2362 + function = "led_28";
2363 + groups = "led_28_grp_a";
2364 + };
2365 +
2366 + pins_led_29_a: led_29-a-pins {
2367 + function = "led_29";
2368 + groups = "led_29_grp_a";
2369 + };
2370 +
2371 + pins_led_30_a: led_30-a-pins {
2372 + function = "led_30";
2373 + groups = "led_30_grp_a";
2374 + };
2375 +
2376 + pins_led_31_a: led_31-a-pins {
2377 + function = "led_31";
2378 + groups = "led_31_grp_a";
2379 + };
2380 +
2381 + pins_hs_uart: hs_uart-pins {
2382 + function = "hs_uart";
2383 + groups = "hs_uart_grp";
2384 + };
2385 +
2386 + pins_i2c_a: i2c-a-pins {
2387 + function = "i2c";
2388 + groups = "i2c_grp_a";
2389 + };
2390 +
2391 + pins_i2c_b: i2c-b-pins {
2392 + function = "i2c";
2393 + groups = "i2c_grp_b";
2394 + };
2395 +
2396 + pins_i2s: i2s-pins {
2397 + function = "i2s";
2398 + groups = "i2s_grp";
2399 + };
2400 +
2401 + pins_nand_ctrl: nand_ctrl-pins {
2402 + function = "nand_ctrl";
2403 + groups = "nand_ctrl_grp";
2404 + };
2405 +
2406 + pins_nand_data: nand_data-pins {
2407 + function = "nand_data";
2408 + groups = "nand_data_grp";
2409 + };
2410 +
2411 + pins_emmc_ctrl: emmc_ctrl-pins {
2412 + function = "emmc_ctrl";
2413 + groups = "emmc_ctrl_grp";
2414 + };
2415 +
2416 + pins_usb0_pwr: usb0_pwr-pins {
2417 + function = "usb0_pwr";
2418 + groups = "usb0_pwr_grp";
2419 + };
2420 +
2421 + pins_usb1_pwr: usb1_pwr-pins {
2422 + function = "usb1_pwr";
2423 + groups = "usb1_pwr_grp";
2424 + };
2425 + };
2426 +
2427 + uart0: serial@640 {
2428 + compatible = "brcm,bcm6345-uart";
2429 + reg = <0x640 0x18>;
2430 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
2431 + clocks = <&periph_clk>;
2432 + clock-names = "refclk";
2433 + status = "okay";
2434 + };
2435 +
2436 + leds: leds@800 {
2437 + compatible = "brcm,bcm4908-leds", "brcm,bcm63138-leds";
2438 + reg = <0x800 0xdc>;
2439 +
2440 + #address-cells = <1>;
2441 + #size-cells = <0>;
2442 + };
2443 +
2444 + nand-controller@1800 {
2445 + #address-cells = <1>;
2446 + #size-cells = <0>;
2447 + compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
2448 + reg = <0x1800 0x600>, <0x2000 0x10>;
2449 + reg-names = "nand", "nand-int-base";
2450 + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
2451 + interrupt-names = "nand";
2452 + status = "okay";
2453 +
2454 + nandcs: nand@0 {
2455 + compatible = "brcm,nandcs";
2456 + reg = <0>;
2457 + };
2458 + };
2459 +
2460 + i2c@2100 {
2461 + compatible = "brcm,brcmper-i2c";
2462 + reg = <0x2100 0x58>;
2463 + clock-frequency = <97500>;
2464 + pinctrl-names = "default";
2465 + pinctrl-0 = <&pins_i2c_a>;
2466 + status = "disabled";
2467 + };
2468 +
2469 + misc@2600 {
2470 + compatible = "brcm,misc", "simple-mfd";
2471 + reg = <0x2600 0xe4>;
2472 +
2473 + #address-cells = <1>;
2474 + #size-cells = <1>;
2475 + ranges = <0x00 0x2600 0xe4>;
2476 +
2477 + reset-controller@2644 {
2478 + compatible = "brcm,bcm4908-misc-pcie-reset";
2479 + reg = <0x44 0x04>;
2480 + #reset-cells = <1>;
2481 + };
2482 + };
2483 + };
2484 +
2485 + reboot {
2486 + compatible = "syscon-reboot";
2487 + regmap = <&twd>;
2488 + offset = <0x34>;
2489 + mask = <1>;
2490 + };
2491 +};