etXmacaddr=$(nvram get et2macaddr)
offset=1
;;
- luxul,xwr-3100v1 | \
+ luxul,xwr-3100-v1 | \
luxul,xwr-3150-v1)
etXmacaddr=$(nvram get et0macaddr)
offset=5
"dlink,dir-885l") echo "seamaseal wrgac42_dlink.2015_dir885l"; return;;
"luxul,abr-4500-v1") echo "lxl ABR-4500"; return;;
"luxul,xap-810-v1") echo "lxl XAP-810"; return;;
- "luxul,xap-1410v1") echo "lxl XAP-1410"; return;;
+ "luxul,xap-1410-v1") echo "lxl XAP-1410"; return;;
"luxul,xap-1440-v1") echo "lxl XAP-1440"; return;;
- "luxul,xap-1510v1") echo "lxl XAP-1510"; return;;
+ "luxul,xap-1510-v1") echo "lxl XAP-1510"; return;;
"luxul,xap-1610-v1") echo "lxl XAP-1610"; return;;
"luxul,xbr-4500-v1") echo "lxl XBR-4500"; return;;
"luxul,xwc-1000") echo "lxl XWC-1000"; return;;
"luxul,xwc-2000-v1") echo "lxl XWC-2000"; return;;
- "luxul,xwr-1200v1") echo "lxl XWR-1200"; return;;
- "luxul,xwr-3100v1") echo "lxl XWR-3100"; return;;
+ "luxul,xwr-1200-v1") echo "lxl XWR-1200"; return;;
+ "luxul,xwr-3100-v1") echo "lxl XWR-3100"; return;;
"luxul,xwr-3150-v1") echo "lxl XWR-3150"; return;;
- "netgear,r6250v1") echo "chk U12H245T00_NETGEAR"; return;;
- "netgear,r6300v2") echo "chk U12H240T00_NETGEAR"; return;;
+ "netgear,r6250-v1") echo "chk U12H245T00_NETGEAR"; return;;
+ "netgear,r6300-v2") echo "chk U12H240T00_NETGEAR"; return;;
"netgear,r7000") echo "chk U12H270T00_NETGEAR"; return;;
"netgear,r7900") echo "chk U12H315T30_NETGEAR"; return;;
"netgear,r8000") echo "chk U12H315T00_NETGEAR"; return;;
+++ /dev/null
-From c8ee9f119bfb4244f76c9971c341ec06b49332cd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Tue, 8 Nov 2022 12:07:08 +0100
-Subject: [PATCH] ARM: dts: BCM5301X: Correct description of TP-Link partitions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-TP-Link routers have flash space partitioned according to the partitions
-table. It may look like fixed partitioning but those partitions can be
-actually reorganized. New can be added (or some removed), offsets and
-sizes may change.
-
-Fix DT to use binding for the TP-Link SafeLoader partitioning method.
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Link: https://lore.kernel.org/r/20221108110708.13693-1-zajec5@gmail.com
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- .../boot/dts/bcm47081-tplink-archer-c5-v2.dts | 25 ++++---------------
- .../boot/dts/bcm4709-tplink-archer-c9-v1.dts | 25 ++++---------------
- 2 files changed, 10 insertions(+), 40 deletions(-)
-
---- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
-+++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
-@@ -95,30 +95,15 @@
- status = "okay";
-
- partitions {
-- compatible = "fixed-partitions";
-- #address-cells = <1>;
-- #size-cells = <1>;
-+ compatible = "tplink,safeloader-partitions";
-+ partitions-table-offset = <0xe50000>;
-
-- boot@0 {
-- label = "boot";
-- reg = <0x000000 0x040000>;
-- read-only;
-- };
--
-- os-image@100000 {
-- label = "os-image";
-- reg = <0x040000 0x200000>;
-+ partition-os-image {
- compatible = "brcm,trx";
- };
-
-- rootfs@240000 {
-- label = "rootfs";
-- reg = <0x240000 0xc00000>;
-- };
--
-- nvram@ff0000 {
-- label = "nvram";
-- reg = <0xff0000 0x010000>;
-+ partition-file-system {
-+ linux,rootfs;
- };
- };
- };
---- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
-+++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
-@@ -104,30 +104,15 @@
- status = "okay";
-
- partitions {
-- compatible = "fixed-partitions";
-- #address-cells = <1>;
-- #size-cells = <1>;
-+ compatible = "tplink,safeloader-partitions";
-+ partitions-table-offset = <0xe50000>;
-
-- boot@0 {
-- label = "boot";
-- reg = <0x000000 0x040000>;
-- read-only;
-- };
--
-- os-image@100000 {
-- label = "os-image";
-- reg = <0x040000 0x200000>;
-+ partition-os-image {
- compatible = "brcm,trx";
- };
-
-- rootfs@240000 {
-- label = "rootfs";
-- reg = <0x240000 0xc00000>;
-- };
--
-- nvram@ff0000 {
-- label = "nvram";
-- reg = <0xff0000 0x010000>;
-+ partition-file-system {
-+ linux,rootfs;
- };
- };
- };
+++ /dev/null
-From b1ba87897ceda8e49a47aa92832dd7bff8583e21 Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Mon, 7 Nov 2022 14:41:04 +0100
-Subject: [PATCH] ARM: dts: bcm47094: Add devicetree for D-Link DIR-890L
-
-This adds a device tree for the D-Link DIR-890L. This device
-is very similar to D-Link DIR-885L, the differences are detailed
-as a comment in the DTS file.
-
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Link: https://lore.kernel.org/r/20221107134104.1422169-2-linus.walleij@linaro.org
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm/boot/dts/Makefile | 1 +
- arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 211 ++++++++++++++++++
- 2 files changed, 212 insertions(+)
- create mode 100644 arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
-
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -121,6 +121,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
- bcm4709-tplink-archer-c9-v1.dtb \
- bcm47094-asus-rt-ac88u.dtb \
- bcm47094-dlink-dir-885l.dtb \
-+ bcm47094-dlink-dir-890l.dtb \
- bcm47094-linksys-panamera.dtb \
- bcm47094-luxul-abr-4500.dtb \
- bcm47094-luxul-xap-1610.dtb \
---- /dev/null
-+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
-@@ -0,0 +1,211 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/*
-+ * Device tree for D-Link DIR-890L
-+ * D-Link calls this board "WRGAC36"
-+ * this router has the same looks and form factor as D-Link DIR-885L.
-+ *
-+ * Some differences from DIR-885L include a separate USB2 port, separate LEDs
-+ * for USB2 and USB3, a separate VCC supply for the USB2 slot and no
-+ * router/extender switch is mounted (there is an empty mount point on the
-+ * PCB) so this device is a pure router. Also the LAN ports are in the right
-+ * order.
-+ *
-+ * Based on the device tree for DIR-885L
-+ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
-+ * Copyright (C) 2022 Linus Walleij
-+ */
-+
-+/dts-v1/;
-+
-+#include "bcm47094.dtsi"
-+#include "bcm5301x-nand-cs0-bch1.dtsi"
-+
-+/ {
-+ compatible = "dlink,dir-890l", "brcm,bcm47094", "brcm,bcm4708";
-+ model = "D-Link DIR-890L";
-+
-+ chosen {
-+ bootargs = "console=ttyS0,115200 earlycon";
-+ };
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00000000 0x08000000>,
-+ <0x88000000 0x08000000>;
-+ };
-+
-+ leds {
-+ /*
-+ * LED information is derived from the boot log which
-+ * conveniently lists all the LEDs.
-+ */
-+ compatible = "gpio-leds";
-+
-+ power-white {
-+ label = "bcm53xx:white:power";
-+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "default-on";
-+ };
-+
-+ wan-white {
-+ label = "bcm53xx:white:wan";
-+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ power-amber {
-+ label = "bcm53xx:amber:power";
-+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ wan-amber {
-+ label = "bcm53xx:amber:wan";
-+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ usb3-white {
-+ label = "bcm53xx:white:usb3";
-+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
-+ trigger-sources = <&xhci_port1>;
-+ linux,default-trigger = "usbport";
-+ };
-+
-+ usb2-white {
-+ label = "bcm53xx:white:usb2";
-+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
-+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
-+ linux,default-trigger = "usbport";
-+ };
-+
-+ 2ghz {
-+ label = "bcm53xx:white:2ghz";
-+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ 5ghz {
-+ label = "bcm53xx:white:5ghz";
-+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ gpio-keys {
-+ compatible = "gpio-keys";
-+
-+ button-wps {
-+ label = "WPS";
-+ linux,code = <KEY_WPS_BUTTON>;
-+ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ /* Called "factory reset" in the vendor dmesg */
-+ button-restart {
-+ label = "Reset";
-+ linux,code = <KEY_RESTART>;
-+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ /*
-+ * The flash memory is memory mapped at 0x1e000000-0x1fffffff
-+ * 64KB blocks; total size 2MB, same that can be
-+ * found attached to the spi_nor SPI controller.
-+ */
-+ nvram@1e1f0000 {
-+ compatible = "brcm,nvram";
-+ reg = <0x1e1f0000 0x00010000>;
-+
-+ et0macaddr: et0macaddr {
-+ };
-+ };
-+};
-+
-+&gmac2 {
-+ /*
-+ * The NVRAM curiously does not contain a MAC address
-+ * for et2 so since that is the only ethernet interface
-+ * actually in use on the platform, we use this et0 MAC
-+ * address for et2.
-+ */
-+ nvmem-cells = <&et0macaddr>;
-+ nvmem-cell-names = "mac-address";
-+};
-+
-+&spi_nor {
-+ status = "okay";
-+};
-+
-+&nandcs {
-+ /* Spansion S34ML01G2, 128MB with 128KB erase blocks */
-+ partitions {
-+ compatible = "fixed-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ /*
-+ * This is called "nflash" in the vendor kernel with
-+ * "upgrade" and "rootfs" (probably using OpenWrt
-+ * splitpart). We call it "firmware" like standard tools
-+ * assume. The CFE loader contains incorrect information
-+ * about TRX partitions, ignore this, there are no TRX
-+ * partitions: this device uses SEAMA.
-+ */
-+ firmware@0 {
-+ label = "firmware";
-+ reg = <0x00000000 0x08000000>;
-+ };
-+ };
-+};
-+
-+&usb2 {
-+ vcc-gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
-+};
-+
-+&usb3 {
-+ vcc-gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
-+};
-+
-+&usb3_phy {
-+ status = "okay";
-+};
-+
-+&srab {
-+ status = "okay";
-+
-+ ports {
-+ port@0 {
-+ reg = <0>;
-+ label = "lan1";
-+ };
-+
-+ port@1 {
-+ reg = <1>;
-+ label = "lan2";
-+ };
-+
-+ port@2 {
-+ reg = <2>;
-+ label = "lan3";
-+ };
-+
-+ port@3 {
-+ reg = <3>;
-+ label = "lan4";
-+ };
-+
-+ port@4 {
-+ reg = <4>;
-+ label = "wan";
-+ };
-+
-+ port@8 {
-+ reg = <8>;
-+ label = "cpu";
-+ ethernet = <&gmac2>;
-+ phy-mode = "rgmii";
-+
-+ fixed-link {
-+ speed = <1000>;
-+ full-duplex;
-+ };
-+ };
-+ };
-+};
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -132,6 +132,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+@@ -131,6 +131,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47094-netgear-r8500.dtb \
bcm47094-phicomm-k3.dtb \
bcm53015-meraki-mr26.dtb \
--- /dev/null
+From b1ba87897ceda8e49a47aa92832dd7bff8583e21 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Mon, 7 Nov 2022 14:41:04 +0100
+Subject: [PATCH] ARM: dts: bcm47094: Add devicetree for D-Link DIR-890L
+
+This adds a device tree for the D-Link DIR-890L. This device
+is very similar to D-Link DIR-885L, the differences are detailed
+as a comment in the DTS file.
+
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20221107134104.1422169-2-linus.walleij@linaro.org
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 211 ++++++++++++++++++
+ 2 files changed, 212 insertions(+)
+ create mode 100644 arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -121,6 +121,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+ bcm4709-tplink-archer-c9-v1.dtb \
+ bcm47094-asus-rt-ac88u.dtb \
+ bcm47094-dlink-dir-885l.dtb \
++ bcm47094-dlink-dir-890l.dtb \
+ bcm47094-linksys-panamera.dtb \
+ bcm47094-luxul-abr-4500.dtb \
+ bcm47094-luxul-xap-1610.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+@@ -0,0 +1,211 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++/*
++ * Device tree for D-Link DIR-890L
++ * D-Link calls this board "WRGAC36"
++ * this router has the same looks and form factor as D-Link DIR-885L.
++ *
++ * Some differences from DIR-885L include a separate USB2 port, separate LEDs
++ * for USB2 and USB3, a separate VCC supply for the USB2 slot and no
++ * router/extender switch is mounted (there is an empty mount point on the
++ * PCB) so this device is a pure router. Also the LAN ports are in the right
++ * order.
++ *
++ * Based on the device tree for DIR-885L
++ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
++ * Copyright (C) 2022 Linus Walleij
++ */
++
++/dts-v1/;
++
++#include "bcm47094.dtsi"
++#include "bcm5301x-nand-cs0-bch1.dtsi"
++
++/ {
++ compatible = "dlink,dir-890l", "brcm,bcm47094", "brcm,bcm4708";
++ model = "D-Link DIR-890L";
++
++ chosen {
++ bootargs = "console=ttyS0,115200 earlycon";
++ };
++
++ memory@0 {
++ device_type = "memory";
++ reg = <0x00000000 0x08000000>,
++ <0x88000000 0x08000000>;
++ };
++
++ leds {
++ /*
++ * LED information is derived from the boot log which
++ * conveniently lists all the LEDs.
++ */
++ compatible = "gpio-leds";
++
++ power-white {
++ label = "bcm53xx:white:power";
++ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "default-on";
++ };
++
++ wan-white {
++ label = "bcm53xx:white:wan";
++ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
++ };
++
++ power-amber {
++ label = "bcm53xx:amber:power";
++ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
++ };
++
++ wan-amber {
++ label = "bcm53xx:amber:wan";
++ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
++ };
++
++ usb3-white {
++ label = "bcm53xx:white:usb3";
++ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
++ trigger-sources = <&xhci_port1>;
++ linux,default-trigger = "usbport";
++ };
++
++ usb2-white {
++ label = "bcm53xx:white:usb2";
++ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
++ trigger-sources = <&ohci_port1>, <&ehci_port1>;
++ linux,default-trigger = "usbport";
++ };
++
++ 2ghz {
++ label = "bcm53xx:white:2ghz";
++ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
++ };
++
++ 5ghz {
++ label = "bcm53xx:white:5ghz";
++ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio-keys {
++ compatible = "gpio-keys";
++
++ button-wps {
++ label = "WPS";
++ linux,code = <KEY_WPS_BUTTON>;
++ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
++ };
++
++ /* Called "factory reset" in the vendor dmesg */
++ button-restart {
++ label = "Reset";
++ linux,code = <KEY_RESTART>;
++ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ /*
++ * The flash memory is memory mapped at 0x1e000000-0x1fffffff
++ * 64KB blocks; total size 2MB, same that can be
++ * found attached to the spi_nor SPI controller.
++ */
++ nvram@1e1f0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1e1f0000 0x00010000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++};
++
++&gmac2 {
++ /*
++ * The NVRAM curiously does not contain a MAC address
++ * for et2 so since that is the only ethernet interface
++ * actually in use on the platform, we use this et0 MAC
++ * address for et2.
++ */
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
++&spi_nor {
++ status = "okay";
++};
++
++&nandcs {
++ /* Spansion S34ML01G2, 128MB with 128KB erase blocks */
++ partitions {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ /*
++ * This is called "nflash" in the vendor kernel with
++ * "upgrade" and "rootfs" (probably using OpenWrt
++ * splitpart). We call it "firmware" like standard tools
++ * assume. The CFE loader contains incorrect information
++ * about TRX partitions, ignore this, there are no TRX
++ * partitions: this device uses SEAMA.
++ */
++ firmware@0 {
++ label = "firmware";
++ reg = <0x00000000 0x08000000>;
++ };
++ };
++};
++
++&usb2 {
++ vcc-gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
++};
++
++&usb3 {
++ vcc-gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
++};
++
++&usb3_phy {
++ status = "okay";
++};
++
++&srab {
++ status = "okay";
++
++ ports {
++ port@0 {
++ reg = <0>;
++ label = "lan1";
++ };
++
++ port@1 {
++ reg = <1>;
++ label = "lan2";
++ };
++
++ port@2 {
++ reg = <2>;
++ label = "lan3";
++ };
++
++ port@3 {
++ reg = <3>;
++ label = "lan4";
++ };
++
++ port@4 {
++ reg = <4>;
++ label = "wan";
++ };
++
++ port@8 {
++ reg = <8>;
++ label = "cpu";
++ ethernet = <&gmac2>;
++ phy-mode = "rgmii";
++
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
++ };
++};
--- /dev/null
+From c8ee9f119bfb4244f76c9971c341ec06b49332cd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Tue, 8 Nov 2022 12:07:08 +0100
+Subject: [PATCH] ARM: dts: BCM5301X: Correct description of TP-Link partitions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+TP-Link routers have flash space partitioned according to the partitions
+table. It may look like fixed partitioning but those partitions can be
+actually reorganized. New can be added (or some removed), offsets and
+sizes may change.
+
+Fix DT to use binding for the TP-Link SafeLoader partitioning method.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20221108110708.13693-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ .../boot/dts/bcm47081-tplink-archer-c5-v2.dts | 25 ++++---------------
+ .../boot/dts/bcm4709-tplink-archer-c9-v1.dts | 25 ++++---------------
+ 2 files changed, 10 insertions(+), 40 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
++++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
+@@ -95,30 +95,15 @@
+ status = "okay";
+
+ partitions {
+- compatible = "fixed-partitions";
+- #address-cells = <1>;
+- #size-cells = <1>;
++ compatible = "tplink,safeloader-partitions";
++ partitions-table-offset = <0xe50000>;
+
+- boot@0 {
+- label = "boot";
+- reg = <0x000000 0x040000>;
+- read-only;
+- };
+-
+- os-image@100000 {
+- label = "os-image";
+- reg = <0x040000 0x200000>;
++ partition-os-image {
+ compatible = "brcm,trx";
+ };
+
+- rootfs@240000 {
+- label = "rootfs";
+- reg = <0x240000 0xc00000>;
+- };
+-
+- nvram@ff0000 {
+- label = "nvram";
+- reg = <0xff0000 0x010000>;
++ partition-file-system {
++ linux,rootfs;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
++++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
+@@ -104,30 +104,15 @@
+ status = "okay";
+
+ partitions {
+- compatible = "fixed-partitions";
+- #address-cells = <1>;
+- #size-cells = <1>;
++ compatible = "tplink,safeloader-partitions";
++ partitions-table-offset = <0xe50000>;
+
+- boot@0 {
+- label = "boot";
+- reg = <0x000000 0x040000>;
+- read-only;
+- };
+-
+- os-image@100000 {
+- label = "os-image";
+- reg = <0x040000 0x200000>;
++ partition-os-image {
+ compatible = "brcm,trx";
+ };
+
+- rootfs@240000 {
+- label = "rootfs";
+- reg = <0x240000 0xc00000>;
+- };
+-
+- nvram@ff0000 {
+- label = "nvram";
+- reg = <0xff0000 0x010000>;
++ partition-file-system {
++ linux,rootfs;
+ };
+ };
+ };
--- /dev/null
+From af84101e3f2258a303fa2461ebec0878ce23ea10 Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+Date: Fri, 25 Nov 2022 15:41:27 +0100
+Subject: [PATCH] ARM: dts: broadcom: align LED node names with dtschema
+
+The node names should be generic and DT schema expects certain pattern:
+
+ bcm4708-asus-rt-ac68u.dtb: leds: 'logo', 'power', 'usb2', 'usb3' do not match any of the regexes: '(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+'
+
+Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+Link: https://lore.kernel.org/r/20221125144128.477059-1-krzysztof.kozlowski@linaro.org
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 15 +++++-----
+ arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 8 +++---
+ .../bcm4708-buffalo-wzr-1166dhp-common.dtsi | 16 +++++------
+ .../boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 16 +++++------
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 6 ++--
+ arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 2 +-
+ arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 10 +++----
+ .../arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 10 +++----
+ arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 22 +++++++--------
+ arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 10 +++----
+ .../boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 14 +++++-----
+ .../boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 16 +++++------
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 6 ++--
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 20 ++++++-------
+ .../boot/dts/bcm47081-tplink-archer-c5-v2.dts | 18 ++++++------
+ arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 6 ++--
+ .../boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 18 ++++++------
+ arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 16 +++++------
+ arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 22 +++++++--------
+ .../boot/dts/bcm4709-tplink-archer-c9-v1.dts | 18 ++++++------
+ arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 12 ++++----
+ arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 14 +++++-----
+ arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 16 +++++------
+ .../boot/dts/bcm47094-linksys-panamera.dts | 28 +++++++++----------
+ arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 4 +--
+ arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 6 ++--
+ arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 4 +--
+ arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 2 +-
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 20 ++++++-------
+ .../boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 10 +++----
+ arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 14 +++++-----
+ arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | 4 +--
+ arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | 10 +++----
+ arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 14 +++++-----
+ .../boot/dts/bcm53016-dlink-dwl-8610ap.dts | 8 +++---
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 6 ++--
+ arch/arm/boot/dts/bcm947189acdbmr.dts | 6 ++--
+ 37 files changed, 223 insertions(+), 224 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
++++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
+@@ -28,40 +28,39 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:blue:wan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- lan {
++ led-lan {
+ label = "bcm53xx:blue:lan";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- all {
++ led-all {
+ label = "bcm53xx:blue:all";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ };
+
+-
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
++++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
+@@ -28,24 +28,24 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- logo {
++ led-logo {
+ label = "bcm53xx:white:logo";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
+@@ -37,7 +37,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ /* label = "bcm53xx:blue:usb"; */
+ function = LED_FUNCTION_USB;
+ color = <LED_COLOR_ID_BLUE>;
+@@ -48,14 +48,14 @@
+ linux,default-trigger = "usbport";
+ };
+
+- power0 {
++ led-power0 {
+ /* label = "bcm53xx:red:power"; */
+ function = LED_FUNCTION_FAULT;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- power1 {
++ led-power1 {
+ /* label = "bcm53xx:white:power"; */
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_WHITE>;
+@@ -63,7 +63,7 @@
+ linux,default-trigger = "default-on";
+ };
+
+- router0 {
++ led-router0 {
+ /* label = "bcm53xx:blue:router"; */
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_BLUE>;
+@@ -71,14 +71,14 @@
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ /* label = "bcm53xx:amber:router"; */
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_AMBER>;
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ /* label = "bcm53xx:blue:wan"; */
+ function = LED_FUNCTION_WAN;
+ color = <LED_COLOR_ID_BLUE>;
+@@ -86,14 +86,14 @@
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ /* label = "bcm53xx:blue:wireless"; */
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ /* label = "bcm53xx:amber:wireless"; */
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_AMBER>;
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+@@ -49,7 +49,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -58,40 +58,40 @@
+ linux,default-trigger = "usbport";
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:red:power";
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:white:power";
+ gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router0 {
++ led-router0 {
+ label = "bcm53xx:blue:router";
+ gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ label = "bcm53xx:amber:router";
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:blue:wan";
+ gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ label = "bcm53xx:blue:wireless";
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -23,19 +23,19 @@
+ leds {
+ compatible = "gpio-leds";
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+@@ -42,7 +42,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+@@ -29,24 +29,24 @@
+ leds {
+ compatible = "gpio-leds";
+
+- logo {
++ led-logo {
+ label = "bcm53xx:white:logo";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -54,7 +54,7 @@
+ linux,default-trigger = "usbport";
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:blue:wireless";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+@@ -28,29 +28,29 @@
+ leds {
+ compatible = "gpio-leds";
+
+- logo {
++ led-logo {
+ label = "bcm53xx:white:logo";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:blue:wireless";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
++++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+@@ -28,64 +28,64 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3-white {
++ led-usb3-white {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&xhci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3-green {
++ led-usb3-green {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- status-red {
++ led-status-red {
+ label = "bcm53xx:red:status";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+
+- status-green {
++ led-status-green {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
+- status-blue {
++ led-status-blue {
+ label = "bcm53xx:blue:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-red {
++ led-wan-red {
+ label = "bcm53xx:red:wan";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
++++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
+@@ -28,30 +28,30 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:blue:wan";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- lan {
++ led-lan {
+ label = "bcm53xx:blue:lan";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+@@ -49,40 +49,40 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:red:power";
+ gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- router0 {
++ led-router0 {
+ label = "bcm53xx:green:router";
+ gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ label = "bcm53xx:amber:router";
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ label = "bcm53xx:green:wireless";
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
+@@ -49,45 +49,45 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:green:usb";
+ gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:red:power";
+ gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- router0 {
++ led-router0 {
+ label = "bcm53xx:green:router";
+ gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ label = "bcm53xx:amber:router";
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ label = "bcm53xx:green:wireless";
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -23,19 +23,19 @@
+ leds {
+ compatible = "gpio-leds";
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -29,62 +29,62 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- lan3 {
++ led-lan3 {
+ label = "bcm53xx:green:lan3";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- lan4 {
++ led-lan4 {
+ label = "bcm53xx:green:lan4";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- lan2 {
++ led-lan2 {
+ label = "bcm53xx:green:lan2";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- usb {
++ led-usb {
+ label = "bcm53xx:green:usb";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- lan1 {
++ led-lan1 {
+ label = "bcm53xx:green:lan1";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
++++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
+@@ -23,50 +23,50 @@
+ leds {
+ compatible = "gpio-leds";
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
+ };
+
+- lan {
++ led-lan {
+ label = "bcm53xx:green:lan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb2-port1 {
++ led-usb2-port1 {
+ label = "bcm53xx:green:usb2-port1";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-green {
++ led-wan-green {
+ label = "bcm53xx:green:wan";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:green:wps";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb2-port2 {
++ led-usb2-port2 {
+ label = "bcm53xx:green:usb2-port2";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
++++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
+@@ -28,18 +28,18 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:red:wan";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
++++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
+@@ -28,48 +28,48 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:green:usb";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router-amber {
++ led-router-amber {
+ label = "bcm53xx:amber:router";
+ gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
+ };
+
+- router-white {
++ led-router-white {
+ label = "bcm53xx:white:router";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless-amber {
++ led-wireless-amber {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless-white {
++ led-wireless-white {
+ label = "bcm53xx:white:wireless";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
+@@ -28,43 +28,43 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:white:5ghz";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:white:wireless";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+@@ -39,59 +39,59 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz-1 {
++ led-5ghz-1 {
+ label = "bcm53xx:white:5ghz-1";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:white:wireless";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz-2 {
++ led-5ghz-2 {
+ label = "bcm53xx:white:5ghz-2";
+ gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
++++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
+@@ -23,27 +23,27 @@
+ leds {
+ compatible = "gpio-leds";
+
+- lan {
++ led-lan {
+ label = "bcm53xx:blue:lan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -51,24 +51,24 @@
+ linux,default-trigger = "usbport";
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- wan-blue {
++ led-wan-blue {
+ label = "bcm53xx:blue:wan";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+--- a/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
++++ b/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
+@@ -33,37 +33,37 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "white:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-red {
++ led-wan-red {
+ label = "red:wan";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- lan {
++ led-lan {
+ label = "white:lan";
+ gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "white:usb2";
+ gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "white:usb3";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ehci_port1>, <&xhci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- wps {
++ led-wps {
+ label = "white:wps";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+@@ -43,28 +43,28 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3-white {
++ led-usb3-white {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -72,12 +72,12 @@
+ linux,default-trigger = "usbport";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:white:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+@@ -41,47 +41,47 @@
+ */
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3-white {
++ led-usb3-white {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&xhci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb2-white {
++ led-usb2-white {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:white:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
++++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
+@@ -52,19 +52,19 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:green:usb2";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -72,58 +72,58 @@
+ linux,default-trigger = "usbport";
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wifi-disabled {
++ led-wifi-disabled {
+ label = "bcm53xx:amber:wifi-disabled";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ };
+
+- wifi-enabled {
++ led-wifi-enabled {
+ label = "bcm53xx:white:wifi-enabled";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar1 {
++ led-bluebar1 {
+ label = "bcm53xx:white:bluebar1";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar2 {
++ led-bluebar2 {
+ label = "bcm53xx:white:bluebar2";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar3 {
++ led-bluebar3 {
+ label = "bcm53xx:white:bluebar3";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ };
+
+- bluebar4 {
++ led-bluebar4 {
+ label = "bcm53xx:white:bluebar4";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar5 {
++ led-bluebar5 {
+ label = "bcm53xx:white:bluebar5";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar6 {
++ led-bluebar6 {
+ label = "bcm53xx:white:bluebar6";
+ gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar7 {
++ led-bluebar7 {
+ label = "bcm53xx:white:bluebar7";
+ gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar8 {
++ led-bluebar8 {
+ label = "bcm53xx:white:bluebar8";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
+@@ -30,13 +30,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
+@@ -23,18 +23,18 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
+@@ -30,13 +30,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
+@@ -25,7 +25,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -30,38 +30,38 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- lan3 {
++ led-lan3 {
+ label = "bcm53xx:green:lan3";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- lan4 {
++ led-lan4 {
+ label = "bcm53xx:green:lan4";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- lan1 {
++ led-lan1 {
+ label = "bcm53xx:green:lan1";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+ };
+
+- lan2 {
++ led-lan2 {
+ label = "bcm53xx:green:lan2";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -69,18 +69,18 @@
+ linux,default-trigger = "usbport";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
+@@ -33,13 +33,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -47,18 +47,18 @@
+ linux,default-trigger = "usbport";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
++++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
+@@ -25,38 +25,38 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz-1 {
++ led-5ghz-1 {
+ label = "bcm53xx:white:5ghz-1";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz-2 {
++ led-5ghz-2 {
+ label = "bcm53xx:white:5ghz-2";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
++++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
+@@ -23,13 +23,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wlan {
++ led-wlan {
+ label = "bcm53xx:blue:wlan";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-off";
+ };
+
+- system {
++ led-system {
+ label = "bcm53xx:green:system";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
++++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
+@@ -20,26 +20,26 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
+- leds {
++ leds-0 {
+ compatible = "gpio-leds";
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-off";
+ };
+
+- system {
++ led-system {
+ label = "bcm53xx:green:system";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+ };
+ };
+
+- pcie0_leds {
++ leds-1 {
+ compatible = "gpio-leds";
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-off";
+--- a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
++++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
+@@ -20,37 +20,37 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
+- leds {
++ leds-0 {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- system {
++ led-system {
+ label = "bcm53xx:blue:system";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+ };
+ };
+
+- pcie0_leds {
++ leds-1 {
+ compatible = "gpio-leds";
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
++++ b/arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
+@@ -20,14 +20,14 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+- diag {
++ led-diag {
+ /* Actually "diag" unclear what this means */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+@@ -36,13 +36,13 @@
+ linux,default-trigger = "heartbeat";
+ };
+
+- wlan-2g {
++ led-wlan-2g {
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
+ };
+
+- wlan-5g {
++ led-wlan-5g {
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -58,7 +58,7 @@
+ pwm-leds {
+ compatible = "pwm-leds";
+
+- red {
++ led-0 {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+@@ -66,7 +66,7 @@
+ max-brightness = <255>;
+ };
+
+- green {
++ led-1 {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_GREEN>;
+@@ -74,7 +74,7 @@
+ max-brightness = <255>;
+ };
+
+- blue {
++ led-2 {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+--- a/arch/arm/boot/dts/bcm947189acdbmr.dts
++++ b/arch/arm/boot/dts/bcm947189acdbmr.dts
+@@ -25,17 +25,17 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+++ /dev/null
-From b9457a04eb89645049fdf427c13e6a18d5501895 Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Tue, 11 Oct 2022 14:24:40 +0200
-Subject: [PATCH] bcma: support SPROM rev 11
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Rev 11 works fine for me to set the MAC address of gmac0 and
-gmac1 in the D-Link DWL-8610AP.
-
-Cc: Rafał Miłecki <zajec5@gmail.com>
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
----
- drivers/bcma/sprom.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/bcma/sprom.c
-+++ b/drivers/bcma/sprom.c
-@@ -170,7 +170,7 @@ static int bcma_sprom_valid(struct bcma_
- return err;
-
- revision = sprom[words - 1] & SSB_SPROM_REVISION_REV;
-- if (revision != 8 && revision != 9 && revision != 10) {
-+ if (revision < 8 || revision > 11) {
- pr_err("Unsupported SPROM revision: %d\n", revision);
- return -ENOENT;
- }
--- /dev/null
+From 915fac07f053418d0ab9075af64da2872ca8a7f8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Wed, 3 May 2023 14:16:10 +0200
+Subject: [PATCH] =?UTF-8?q?ARM:=20dts:=20BCM5301X:=20Relicense=20Rafa?=
+ =?UTF-8?q?=C5=82's=20code=20to=20the=20GPL=202.0+=20/=20MIT?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All BCM5301X device DTS files use dual licensing. Try the same for SoC.
+Introduce a new .dtsi file with a proper SPDX tag.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230503121611.1629-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ MAINTAINERS | 1 +
+ arch/arm/boot/dts/bcm-ns.dtsi | 202 ++++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 192 +-----------------------------
+ 3 files changed, 205 insertions(+), 190 deletions(-)
+ create mode 100644 arch/arm/boot/dts/bcm-ns.dtsi
+
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -3579,6 +3579,7 @@ M: Rafał Miłecki <zajec5@gmail.com>
+ M: bcm-kernel-feedback-list@broadcom.com
+ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S: Maintained
++F: arch/arm/boot/dts/bcm-ns.dtsi
+ F: arch/arm/boot/dts/bcm470*
+ F: arch/arm/boot/dts/bcm5301*
+ F: arch/arm/boot/dts/bcm953012*
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -0,0 +1,202 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++
++#include <dt-bindings/clock/bcm-nsp.h>
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/input.h>
++#include <dt-bindings/interrupt-controller/irq.h>
++#include <dt-bindings/interrupt-controller/arm-gic.h>
++
++/ {
++ axi@18000000 {
++ compatible = "brcm,bus-axi";
++ reg = <0x18000000 0x1000>;
++ ranges = <0x00000000 0x18000000 0x00100000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ chipcommon: chipcommon@0 {
++ reg = <0x00000000 0x1000>;
++
++ gpio-controller;
++ #gpio-cells = <2>;
++ };
++
++ pcie0: pcie@12000 {
++ reg = <0x00012000 0x1000>;
++ };
++
++ pcie1: pcie@13000 {
++ reg = <0x00013000 0x1000>;
++ };
++
++ usb2: usb2@21000 {
++ reg = <0x00021000 0x1000>;
++
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ interrupt-parent = <&gic>;
++
++ ehci: usb@21000 {
++ #usb-cells = <0>;
++
++ compatible = "generic-ehci";
++ reg = <0x00021000 0x1000>;
++ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
++ phys = <&usb2_phy>;
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ ehci_port1: port@1 {
++ reg = <1>;
++ #trigger-source-cells = <0>;
++ };
++
++ ehci_port2: port@2 {
++ reg = <2>;
++ #trigger-source-cells = <0>;
++ };
++ };
++
++ ohci: usb@22000 {
++ #usb-cells = <0>;
++
++ compatible = "generic-ohci";
++ reg = <0x00022000 0x1000>;
++ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ ohci_port1: port@1 {
++ reg = <1>;
++ #trigger-source-cells = <0>;
++ };
++
++ ohci_port2: port@2 {
++ reg = <2>;
++ #trigger-source-cells = <0>;
++ };
++ };
++ };
++
++ usb3: usb3@23000 {
++ reg = <0x00023000 0x1000>;
++
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ interrupt-parent = <&gic>;
++
++ xhci: usb@23000 {
++ #usb-cells = <0>;
++
++ compatible = "generic-xhci";
++ reg = <0x00023000 0x1000>;
++ interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
++ phys = <&usb3_phy>;
++ phy-names = "usb";
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ xhci_port1: port@1 {
++ reg = <1>;
++ #trigger-source-cells = <0>;
++ };
++ };
++ };
++ };
++
++ mdio: mdio@18003000 {
++ compatible = "brcm,iproc-mdio";
++ reg = <0x18003000 0x8>;
++ #size-cells = <0>;
++ #address-cells = <1>;
++ };
++
++ dmu-bus@1800c000 {
++ compatible = "simple-bus";
++ ranges = <0 0x1800c000 0x1000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ cru-bus@100 {
++ compatible = "brcm,ns-cru", "simple-mfd";
++ reg = <0x100 0x1a4>;
++ ranges;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ usb2_phy: phy@164 {
++ compatible = "brcm,ns-usb2-phy";
++ reg = <0x164 0x4>;
++ brcm,syscon-clkset = <&cru_clkset>;
++ clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
++ clock-names = "phy-ref-clk";
++ #phy-cells = <0>;
++ };
++
++ cru_clkset: syscon@180 {
++ compatible = "brcm,cru-clkset", "syscon";
++ reg = <0x180 0x4>;
++ };
++
++ pinctrl: pinctrl@1c0 {
++ compatible = "brcm,bcm4708-pinmux";
++ reg = <0x1c0 0x24>;
++ reg-names = "cru_gpio_control";
++
++ spi-pins {
++ groups = "spi_grp";
++ function = "spi";
++ };
++
++ pinmux_i2c: i2c-pins {
++ groups = "i2c_grp";
++ function = "i2c";
++ };
++
++ pinmux_pwm: pwm-pins {
++ groups = "pwm0_grp", "pwm1_grp",
++ "pwm2_grp", "pwm3_grp";
++ function = "pwm";
++ };
++
++ pinmux_uart1: uart1-pins {
++ groups = "uart1_grp";
++ function = "uart1";
++ };
++ };
++
++ thermal: thermal@2c0 {
++ compatible = "brcm,ns-thermal";
++ reg = <0x2c0 0x10>;
++ #thermal-sensor-cells = <0>;
++ };
++ };
++ };
++
++ thermal-zones {
++ cpu_thermal: cpu-thermal {
++ polling-delay-passive = <0>;
++ polling-delay = <1000>;
++ coefficients = <(-556) 418000>;
++ thermal-sensors = <&thermal>;
++
++ trips {
++ cpu-crit {
++ temperature = <125000>;
++ hysteresis = <0>;
++ type = "critical";
++ };
++ };
++
++ cooling-maps {
++ };
++ };
++ };
++};
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -8,11 +8,7 @@
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+-#include <dt-bindings/clock/bcm-nsp.h>
+-#include <dt-bindings/gpio/gpio.h>
+-#include <dt-bindings/input/input.h>
+-#include <dt-bindings/interrupt-controller/irq.h>
+-#include <dt-bindings/interrupt-controller/arm-gic.h>
++#include "bcm-ns.dtsi"
+
+ / {
+ #address-cells = <1>;
+@@ -149,12 +145,6 @@
+ };
+
+ axi@18000000 {
+- compatible = "brcm,bus-axi";
+- reg = <0x18000000 0x1000>;
+- ranges = <0x00000000 0x18000000 0x00100000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0x000fffff 0xffff>;
+ interrupt-map =
+@@ -228,108 +218,15 @@
+ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+
+- chipcommon: chipcommon@0 {
+- reg = <0x00000000 0x1000>;
+-
+- gpio-controller;
+- #gpio-cells = <2>;
++ chipcommon@0 {
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+- pcie0: pcie@12000 {
+- reg = <0x00012000 0x1000>;
+- };
+-
+- pcie1: pcie@13000 {
+- reg = <0x00013000 0x1000>;
+- };
+-
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
+ };
+
+- usb2: usb2@21000 {
+- reg = <0x00021000 0x1000>;
+-
+- #address-cells = <1>;
+- #size-cells = <1>;
+- ranges;
+-
+- interrupt-parent = <&gic>;
+-
+- ehci: usb@21000 {
+- #usb-cells = <0>;
+-
+- compatible = "generic-ehci";
+- reg = <0x00021000 0x1000>;
+- interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+- phys = <&usb2_phy>;
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- ehci_port1: port@1 {
+- reg = <1>;
+- #trigger-source-cells = <0>;
+- };
+-
+- ehci_port2: port@2 {
+- reg = <2>;
+- #trigger-source-cells = <0>;
+- };
+- };
+-
+- ohci: usb@22000 {
+- #usb-cells = <0>;
+-
+- compatible = "generic-ohci";
+- reg = <0x00022000 0x1000>;
+- interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- ohci_port1: port@1 {
+- reg = <1>;
+- #trigger-source-cells = <0>;
+- };
+-
+- ohci_port2: port@2 {
+- reg = <2>;
+- #trigger-source-cells = <0>;
+- };
+- };
+- };
+-
+- usb3: usb3@23000 {
+- reg = <0x00023000 0x1000>;
+-
+- #address-cells = <1>;
+- #size-cells = <1>;
+- ranges;
+-
+- interrupt-parent = <&gic>;
+-
+- xhci: usb@23000 {
+- #usb-cells = <0>;
+-
+- compatible = "generic-xhci";
+- reg = <0x00023000 0x1000>;
+- interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+- phys = <&usb3_phy>;
+- phy-names = "usb";
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- xhci_port1: port@1 {
+- reg = <1>;
+- #trigger-source-cells = <0>;
+- };
+- };
+- };
+-
+ gmac0: ethernet@24000 {
+ reg = <0x24000 0x800>;
+ };
+@@ -355,13 +252,6 @@
+ status = "disabled";
+ };
+
+- mdio: mdio@18003000 {
+- compatible = "brcm,iproc-mdio";
+- reg = <0x18003000 0x8>;
+- #size-cells = <0>;
+- #address-cells = <1>;
+- };
+-
+ mdio-mux@18003000 {
+ compatible = "mdio-mux-mmioreg", "mdio-mux";
+ mdio-parent-bus = <&mdio>;
+@@ -409,18 +299,7 @@
+ };
+
+ dmu-bus@1800c000 {
+- compatible = "simple-bus";
+- ranges = <0 0x1800c000 0x1000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ cru-bus@100 {
+- compatible = "brcm,ns-cru", "simple-mfd";
+- reg = <0x100 0x1a4>;
+- ranges;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ lcpll0: clock-controller@100 {
+ #clock-cells = <1>;
+ compatible = "brcm,nsp-lcpll0";
+@@ -440,53 +319,6 @@
+ "usbclk", "iprocfast",
+ "sata1", "sata2";
+ };
+-
+- usb2_phy: phy@164 {
+- compatible = "brcm,ns-usb2-phy";
+- reg = <0x164 0x4>;
+- brcm,syscon-clkset = <&cru_clkset>;
+- clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
+- clock-names = "phy-ref-clk";
+- #phy-cells = <0>;
+- };
+-
+- cru_clkset: syscon@180 {
+- compatible = "brcm,cru-clkset", "syscon";
+- reg = <0x180 0x4>;
+- };
+-
+- pinctrl: pinctrl@1c0 {
+- compatible = "brcm,bcm4708-pinmux";
+- reg = <0x1c0 0x24>;
+- reg-names = "cru_gpio_control";
+-
+- spi-pins {
+- groups = "spi_grp";
+- function = "spi";
+- };
+-
+- pinmux_i2c: i2c-pins {
+- groups = "i2c_grp";
+- function = "i2c";
+- };
+-
+- pinmux_pwm: pwm-pins {
+- groups = "pwm0_grp", "pwm1_grp",
+- "pwm2_grp", "pwm3_grp";
+- function = "pwm";
+- };
+-
+- pinmux_uart1: uart1-pins {
+- groups = "uart1_grp";
+- function = "uart1";
+- };
+- };
+-
+- thermal: thermal@2c0 {
+- compatible = "brcm,ns-thermal";
+- reg = <0x2c0 0x10>;
+- #thermal-sensor-cells = <0>;
+- };
+ };
+ };
+
+@@ -558,24 +390,4 @@
+ };
+ };
+ };
+-
+- thermal-zones {
+- cpu_thermal: cpu-thermal {
+- polling-delay-passive = <0>;
+- polling-delay = <1000>;
+- coefficients = <(-556) 418000>;
+- thermal-sensors = <&thermal>;
+-
+- trips {
+- cpu-crit {
+- temperature = <125000>;
+- hysteresis = <0>;
+- type = "critical";
+- };
+- };
+-
+- cooling-maps {
+- };
+- };
+- };
+ };
--- /dev/null
+From 916553449561c4f0b61c71b751b7bb583f5dddd4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Wed, 3 May 2023 14:16:11 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense Florian's code to the GPL 2.0+
+ / MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All BCM5301X device DTS files use dual licensing. Try the same for SoC.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230503121611.1629-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 36 ++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 39 ---------------------------------
+ 2 files changed, 36 insertions(+), 39 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -19,6 +19,8 @@
+
+ gpio-controller;
+ #gpio-cells = <2>;
++ interrupt-controller;
++ #interrupt-cells = <2>;
+ };
+
+ pcie0: pcie@12000 {
+@@ -109,6 +111,22 @@
+ };
+ };
+ };
++
++ gmac0: ethernet@24000 {
++ reg = <0x24000 0x800>;
++ };
++
++ gmac1: ethernet@25000 {
++ reg = <0x25000 0x800>;
++ };
++
++ gmac2: ethernet@26000 {
++ reg = <0x26000 0x800>;
++ };
++
++ gmac3: ethernet@27000 {
++ reg = <0x27000 0x800>;
++ };
+ };
+
+ mdio: mdio@18003000 {
+@@ -118,6 +136,24 @@
+ #address-cells = <1>;
+ };
+
++ rng: rng@18004000 {
++ compatible = "brcm,bcm5301x-rng";
++ reg = <0x18004000 0x14>;
++ };
++
++ srab: ethernet-switch@18007000 {
++ compatible = "brcm,bcm53011-srab", "brcm,bcm5301x-srab";
++ reg = <0x18007000 0x1000>;
++
++ status = "disabled";
++
++ /* ports are defined in board DTS */
++ ports {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ };
++ };
++
+ dmu-bus@1800c000 {
+ compatible = "simple-bus";
+ ranges = <0 0x1800c000 0x1000>;
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -218,30 +218,9 @@
+ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+
+- chipcommon@0 {
+- interrupt-controller;
+- #interrupt-cells = <2>;
+- };
+-
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
+ };
+-
+- gmac0: ethernet@24000 {
+- reg = <0x24000 0x800>;
+- };
+-
+- gmac1: ethernet@25000 {
+- reg = <0x25000 0x800>;
+- };
+-
+- gmac2: ethernet@26000 {
+- reg = <0x26000 0x800>;
+- };
+-
+- gmac3: ethernet@27000 {
+- reg = <0x27000 0x800>;
+- };
+ };
+
+ pwm: pwm@18002000 {
+@@ -322,24 +301,6 @@
+ };
+ };
+
+- srab: ethernet-switch@18007000 {
+- compatible = "brcm,bcm53011-srab", "brcm,bcm5301x-srab";
+- reg = <0x18007000 0x1000>;
+-
+- status = "disabled";
+-
+- /* ports are defined in board DTS */
+- ports {
+- #address-cells = <1>;
+- #size-cells = <0>;
+- };
+- };
+-
+- rng: rng@18004000 {
+- compatible = "brcm,bcm5301x-rng";
+- reg = <0x18004000 0x14>;
+- };
+-
+ nand_controller: nand-controller@18028000 {
+ compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
+ reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
--- /dev/null
+From d3c8e2c5757153bbfad70019ec1decbca86f3def Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Wed, 3 May 2023 14:28:30 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+There is no such property in the SPI controller binding documentation.
+Also Linux driver doesn't look for it.
+
+This fixes:
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: spi@18029200: Unevaluated properties are not allowed ('clock-names' was unexpected)
+ From schema: Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230503122830.3200-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm5301x.dtsi | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -335,7 +335,6 @@
+ "spi_lr_session_done",
+ "spi_lr_overread";
+ clocks = <&iprocmed>;
+- clock-names = "iprocmed";
+ num-cs = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
--- /dev/null
+From b3b3cd885ed39cb4b38319a1c4fa4e41db6fee72 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 15 May 2023 17:19:20 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense Hauke's code to the GPL 2.0+ /
+ MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Move code added by Hauke to the bcm-ns.dtsi which uses dual licensing.
+That syncs more Northstar code to be based on the same licensing schema.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Cc: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
+Link: https://lore.kernel.org/r/20230515151921.25021-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 90 +++++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 85 -------------------------------
+ 2 files changed, 90 insertions(+), 85 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -1,4 +1,7 @@
+ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++/*
++ * Copyright 2013-2014 Hauke Mehrtens <hauke@hauke-m.de>
++ */
+
+ #include <dt-bindings/clock/bcm-nsp.h>
+ #include <dt-bindings/gpio/gpio.h>
+@@ -7,6 +10,81 @@
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ / {
++ interrupt-parent = <&gic>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ chipcommon-a-bus@18000000 {
++ compatible = "simple-bus";
++ ranges = <0x00000000 0x18000000 0x00001000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ uart0: serial@300 {
++ compatible = "ns16550";
++ reg = <0x0300 0x100>;
++ interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++ clocks = <&iprocslow>;
++ status = "disabled";
++ };
++
++ uart1: serial@400 {
++ compatible = "ns16550";
++ reg = <0x0400 0x100>;
++ interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++ clocks = <&iprocslow>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinmux_uart1>;
++ status = "disabled";
++ };
++ };
++
++ mpcore-bus@19000000 {
++ compatible = "simple-bus";
++ ranges = <0x00000000 0x19000000 0x00023000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ scu@20000 {
++ compatible = "arm,cortex-a9-scu";
++ reg = <0x20000 0x100>;
++ };
++
++ timer@20200 {
++ compatible = "arm,cortex-a9-global-timer";
++ reg = <0x20200 0x100>;
++ interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
++ clocks = <&periph_clk>;
++ };
++
++ timer@20600 {
++ compatible = "arm,cortex-a9-twd-timer";
++ reg = <0x20600 0x20>;
++ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
++ IRQ_TYPE_EDGE_RISING)>;
++ clocks = <&periph_clk>;
++ };
++
++ gic: interrupt-controller@21000 {
++ compatible = "arm,cortex-a9-gic";
++ #interrupt-cells = <3>;
++ #address-cells = <0>;
++ interrupt-controller;
++ reg = <0x21000 0x1000>,
++ <0x20100 0x100>;
++ };
++
++ L2: cache-controller@22000 {
++ compatible = "arm,pl310-cache";
++ reg = <0x22000 0x1000>;
++ cache-unified;
++ arm,shared-override;
++ prefetch-data = <1>;
++ prefetch-instr = <1>;
++ cache-level = <2>;
++ };
++ };
++
+ axi@18000000 {
+ compatible = "brcm,bus-axi";
+ reg = <0x18000000 0x1000>;
+@@ -216,6 +294,18 @@
+ };
+ };
+
++ nand_controller: nand-controller@18028000 {
++ compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
++ reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
++ reg-names = "nand", "iproc-idm", "iproc-ext";
++ interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ brcm,nand-has-wp;
++ };
++
+ thermal-zones {
+ cpu_thermal: cpu-thermal {
+ polling-delay-passive = <0>;
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -11,41 +11,7 @@
+ #include "bcm-ns.dtsi"
+
+ / {
+- #address-cells = <1>;
+- #size-cells = <1>;
+- interrupt-parent = <&gic>;
+-
+- chipcommon-a-bus@18000000 {
+- compatible = "simple-bus";
+- ranges = <0x00000000 0x18000000 0x00001000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+- uart0: serial@300 {
+- compatible = "ns16550";
+- reg = <0x0300 0x100>;
+- interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+- clocks = <&iprocslow>;
+- status = "disabled";
+- };
+-
+- uart1: serial@400 {
+- compatible = "ns16550";
+- reg = <0x0400 0x100>;
+- interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+- clocks = <&iprocslow>;
+- pinctrl-names = "default";
+- pinctrl-0 = <&pinmux_uart1>;
+- status = "disabled";
+- };
+- };
+-
+ mpcore-bus@19000000 {
+- compatible = "simple-bus";
+- ranges = <0x00000000 0x19000000 0x00023000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ a9pll: arm_clk@0 {
+ #clock-cells = <0>;
+ compatible = "brcm,nsp-armpll";
+@@ -53,26 +19,6 @@
+ reg = <0x00000 0x1000>;
+ };
+
+- scu@20000 {
+- compatible = "arm,cortex-a9-scu";
+- reg = <0x20000 0x100>;
+- };
+-
+- timer@20200 {
+- compatible = "arm,cortex-a9-global-timer";
+- reg = <0x20200 0x100>;
+- interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
+- clocks = <&periph_clk>;
+- };
+-
+- timer@20600 {
+- compatible = "arm,cortex-a9-twd-timer";
+- reg = <0x20600 0x20>;
+- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
+- IRQ_TYPE_EDGE_RISING)>;
+- clocks = <&periph_clk>;
+- };
+-
+ watchdog@20620 {
+ compatible = "arm,cortex-a9-twd-wdt";
+ reg = <0x20620 0x20>;
+@@ -80,25 +26,6 @@
+ IRQ_TYPE_EDGE_RISING)>;
+ clocks = <&periph_clk>;
+ };
+-
+- gic: interrupt-controller@21000 {
+- compatible = "arm,cortex-a9-gic";
+- #interrupt-cells = <3>;
+- #address-cells = <0>;
+- interrupt-controller;
+- reg = <0x21000 0x1000>,
+- <0x20100 0x100>;
+- };
+-
+- L2: cache-controller@22000 {
+- compatible = "arm,pl310-cache";
+- reg = <0x22000 0x1000>;
+- cache-unified;
+- arm,shared-override;
+- prefetch-data = <1>;
+- prefetch-instr = <1>;
+- cache-level = <2>;
+- };
+ };
+
+ pmu {
+@@ -301,18 +228,6 @@
+ };
+ };
+
+- nand_controller: nand-controller@18028000 {
+- compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
+- reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
+- reg-names = "nand", "iproc-idm", "iproc-ext";
+- interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- brcm,nand-has-wp;
+- };
+-
+ spi@18029200 {
+ compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
+ reg = <0x18029200 0x184>,
--- /dev/null
+From 3b3e35b279bee5e51580c648399e20323467f58c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 15 May 2023 17:19:21 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense AXI interrupts code to the GPL
+ 2.0+ / MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Those entries were added by:
+1. Hauke in commits dec378827c4a ("ARM: BCM5301X: Add IRQs to Broadcom's
+ bus-axi in DTS file") and 1f80de6863ca ("ARM: BCM5301X: add IRQ
+ numbers for PCIe controller")
+2. Florian in the commit 2cd0c0202f13 ("ARM: dts: BCM5301X: Add SRAB
+ interrupts")
+
+Move them to the bcm-ns.dtsi which uses dual licensing. That syncs more
+Northstar code to be based on the same licensing schema.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Cc: Hauke Mehrtens <hauke@hauke-m.de>
+Cc: Florian Fainelli <f.fainelli@gmail.com>
+Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
+Link: https://lore.kernel.org/r/20230515151921.25021-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 73 ++++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 75 ---------------------------------
+ 2 files changed, 73 insertions(+), 75 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -92,6 +92,79 @@
+ #address-cells = <1>;
+ #size-cells = <1>;
+
++ #interrupt-cells = <1>;
++ interrupt-map-mask = <0x000fffff 0xffff>;
++ interrupt-map =
++ /* ChipCommon */
++ <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Switch Register Access Block */
++ <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* PCIe Controller 0 */
++ <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 2 &gic GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 3 &gic GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 4 &gic GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 5 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* PCIe Controller 1 */
++ <0x00013000 0 &gic GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 1 &gic GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 2 &gic GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 3 &gic GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 4 &gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 5 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* PCIe Controller 2 */
++ <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 2 &gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 3 &gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 4 &gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 5 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* USB 2.0 Controller */
++ <0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* USB 3.0 Controller */
++ <0x00023000 0 &gic GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 0 */
++ <0x00024000 0 &gic GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 1 */
++ <0x00025000 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 2 */
++ <0x00026000 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 3 */
++ <0x00027000 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* NAND Controller */
++ <0x00028000 0 &gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 1 &gic GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 2 &gic GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 3 &gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 4 &gic GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 5 &gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
++
+ chipcommon: chipcommon@0 {
+ reg = <0x00000000 0x1000>;
+
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -3,8 +3,6 @@
+ * Generic DTS part for all BCM53010, BCM53011, BCM53012, BCM53014, BCM53015,
+ * BCM53016, BCM53017, BCM53018, BCM4707, BCM4708 and BCM4709 SoCs
+ *
+- * Copyright 2013-2014 Hauke Mehrtens <hauke@hauke-m.de>
+- *
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+@@ -72,79 +70,6 @@
+ };
+
+ axi@18000000 {
+- #interrupt-cells = <1>;
+- interrupt-map-mask = <0x000fffff 0xffff>;
+- interrupt-map =
+- /* ChipCommon */
+- <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Switch Register Access Block */
+- <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* PCIe Controller 0 */
+- <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 2 &gic GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 3 &gic GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 4 &gic GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 5 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* PCIe Controller 1 */
+- <0x00013000 0 &gic GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 1 &gic GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 2 &gic GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 3 &gic GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 4 &gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 5 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* PCIe Controller 2 */
+- <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 2 &gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 3 &gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 4 &gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 5 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* USB 2.0 Controller */
+- <0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* USB 3.0 Controller */
+- <0x00023000 0 &gic GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 0 */
+- <0x00024000 0 &gic GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 1 */
+- <0x00025000 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 2 */
+- <0x00026000 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 3 */
+- <0x00027000 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* NAND Controller */
+- <0x00028000 0 &gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 1 &gic GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 2 &gic GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 3 &gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 4 &gic GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 5 &gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+-
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
+ };
--- /dev/null
+From dfa6570eb5ce2f24059caadbe2ed70034b5337bc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 15 May 2023 10:33:08 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Specify MAC addresses on Luxul devices
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use NRAM (NVMEM device) and its "et0macaddr" variable (NVMEM cell) to
+point Ethernet devices to their MAC addresses.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230515083308.7612-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 5 ++++-
+ 10 files changed, 113 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -20,6 +20,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -53,6 +61,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+@@ -24,6 +24,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ nand_controller: nand-controller@18028000 {
+ nand@0 {
+ partitions {
+@@ -60,6 +68,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -20,6 +20,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -53,6 +61,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -24,6 +24,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -106,6 +110,11 @@
+ vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -137,6 +146,8 @@
+ port@4 {
+ reg = <4>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 5>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
+@@ -25,6 +25,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -61,6 +65,11 @@
+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -76,6 +85,8 @@
+ port@0 {
+ reg = <0>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 1>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
+@@ -20,6 +20,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -51,6 +59,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
+@@ -25,6 +25,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -61,6 +65,11 @@
+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -76,6 +85,8 @@
+ port@0 {
+ reg = <0>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 1>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
+@@ -22,6 +22,14 @@
+ <0x88000000 0x18000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -47,6 +55,11 @@
+ status = "okay";
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -25,6 +25,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -101,6 +105,11 @@
+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -136,6 +145,8 @@
+ port@4 {
+ reg = <4>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 5>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
+@@ -27,6 +27,7 @@
+ reg = <0x1eff0000 0x10000>;
+
+ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
+ };
+ };
+
+@@ -76,7 +77,7 @@
+ };
+
+ &gmac0 {
+- nvmem-cells = <&et0macaddr>;
++ nvmem-cells = <&et0macaddr 0>;
+ nvmem-cell-names = "mac-address";
+ };
+
+@@ -119,6 +120,8 @@
+ port@4 {
+ reg = <4>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 5>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
--- /dev/null
+From 9d7121f1d2faa0b50bf5b462adcd2dd91970c45e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Sat, 20 May 2023 13:26:01 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Use updated device "compatible" strings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Northstar binding was updated to use minus/hyphen char between model and
+version for all devices.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20230520112601.11821-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 2 +-
+ arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 2 +-
+ arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 2 +-
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 2 +-
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 2 +-
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -8,7 +8,7 @@
+ #include "bcm4708.dtsi"
+
+ / {
+- compatible = "luxul,xap-1510v1", "brcm,bcm4708";
++ compatible = "luxul,xap-1510-v1", "brcm,bcm4708";
+ model = "Luxul XAP-1510 V1";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+@@ -13,7 +13,7 @@
+ #include "bcm5301x-nand-cs0-bch8.dtsi"
+
+ / {
+- compatible = "netgear,r6250v1", "brcm,bcm4708";
++ compatible = "netgear,r6250-v1", "brcm,bcm4708";
+ model = "Netgear R6250 V1 (BCM4708)";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+@@ -12,7 +12,7 @@
+ #include "bcm5301x-nand-cs0-bch8.dtsi"
+
+ / {
+- compatible = "netgear,r6300v2", "brcm,bcm4708";
++ compatible = "netgear,r6300-v2", "brcm,bcm4708";
+ model = "Netgear R6300 V2 (BCM4708)";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -8,7 +8,7 @@
+ #include "bcm47081.dtsi"
+
+ / {
+- compatible = "luxul,xap-1410v1", "brcm,bcm47081", "brcm,bcm4708";
++ compatible = "luxul,xap-1410-v1", "brcm,bcm47081", "brcm,bcm4708";
+ model = "Luxul XAP-1410 V1";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -9,7 +9,7 @@
+ #include "bcm5301x-nand-cs0-bch4.dtsi"
+
+ / {
+- compatible = "luxul,xwr-1200v1", "brcm,bcm47081", "brcm,bcm4708";
++ compatible = "luxul,xwr-1200-v1", "brcm,bcm47081", "brcm,bcm4708";
+ model = "Luxul XWR-1200 V1";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -9,7 +9,7 @@
+ #include "bcm5301x-nand-cs0-bch4.dtsi"
+
+ / {
+- compatible = "luxul,xwr-3100v1", "brcm,bcm47094", "brcm,bcm4708";
++ compatible = "luxul,xwr-3100-v1", "brcm,bcm47094", "brcm,bcm4708";
+ model = "Luxul XWR-3100 V1";
+
+ chosen {
--- /dev/null
+From 04afb51c1dce90051487d3c7b70a1b1b246ce29a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 17:10:23 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Use updated "spi-gpio" binding properties
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Switch away from deprecated properties.
+
+This fixes:
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: gpio-sck: False schema does not allow [[6, 7, 0]]
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: gpio-mosi: False schema does not allow [[6, 4, 0]]
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: 'sck-gpios' is a required property
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: Unevaluated properties are not allowed ('gpio-mosi', 'gpio-sck' were unexpected)
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602151023.8607-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 4 ++--
+ arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 4 ++--
+ arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 4 ++--
+ arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 4 ++--
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
+@@ -16,8 +16,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+@@ -28,8 +28,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+@@ -28,8 +28,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
+@@ -28,8 +28,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
--- /dev/null
+From c3acdd4901192bc69dc577012663d5abae21661e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 15:34:54 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Drop invalid #usb-cells
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Such property simply doesn't exist (is not documented or used anywhere).
+
+This fixes:
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: Unevaluated properties are not allowed ('#usb-cells' was unexpected)
+ From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: Unevaluated properties are not allowed ('#usb-cells' was unexpected)
+ From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@23000: Unevaluated properties are not allowed ('#usb-cells' was unexpected)
+ From schema: Documentation/devicetree/bindings/usb/generic-xhci.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602133455.7441-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -192,8 +192,6 @@
+ interrupt-parent = <&gic>;
+
+ ehci: usb@21000 {
+- #usb-cells = <0>;
+-
+ compatible = "generic-ehci";
+ reg = <0x00021000 0x1000>;
+ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+@@ -214,8 +212,6 @@
+ };
+
+ ohci: usb@22000 {
+- #usb-cells = <0>;
+-
+ compatible = "generic-ohci";
+ reg = <0x00022000 0x1000>;
+ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+@@ -245,8 +241,6 @@
+ interrupt-parent = <&gic>;
+
+ xhci: usb@23000 {
+- #usb-cells = <0>;
+-
+ compatible = "generic-xhci";
+ reg = <0x00023000 0x1000>;
+ interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
--- /dev/null
+From 676bf7d062c14191c3fc12f1e36e1f3809041483 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 15:34:55 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Drop invalid properties from Meraki MR32
+ keys
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes:
+arch/arm/boot/dts/bcm53015-meraki-mr26.dtb: keys: '#address-cells', '#size-cells' do not match any of the regexes: '^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$', 'pinctrl-[0-9]+'
+ From schema: Documentation/devicetree/bindings/input/gpio-keys.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602133455.7441-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -39,8 +39,6 @@
+
+ keys {
+ compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+
+ key-restart {
+ label = "Reset";
--- /dev/null
+From 1d5682ccc7d6088179b6cfd50a3e3bb6d2b0527e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 5 Jun 2023 08:10:49 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense Christian's code to the GPL
+ 2.0+ / MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Move code added by Christian to the bcm-ns.dtsi which uses dual
+licensing. That syncs more Northstar code to be based on the same
+licensing schema.
+
+Cc: Christian Lamparter <chunkeey@gmail.com>
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Acked-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/20230605061049.16136-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 21 +++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 23 -----------------------
+ 2 files changed, 21 insertions(+), 23 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -182,6 +182,10 @@
+ reg = <0x00013000 0x1000>;
+ };
+
++ pcie2: pcie@14000 {
++ reg = <0x00014000 0x1000>;
++ };
++
+ usb2: usb2@21000 {
+ reg = <0x00021000 0x1000>;
+
+@@ -274,6 +278,14 @@
+ };
+ };
+
++ pwm: pwm@18002000 {
++ compatible = "brcm,iproc-pwm";
++ reg = <0x18002000 0x28>;
++ clocks = <&osc>;
++ #pwm-cells = <3>;
++ status = "disabled";
++ };
++
+ mdio: mdio@18003000 {
+ compatible = "brcm,iproc-mdio";
+ reg = <0x18003000 0x8>;
+@@ -299,6 +311,15 @@
+ };
+ };
+
++ uart2: serial@18008000 {
++ compatible = "ns16550a";
++ reg = <0x18008000 0x20>;
++ clocks = <&iprocslow>;
++ interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
++ reg-shift = <2>;
++ status = "disabled";
++ };
++
+ dmu-bus@1800c000 {
+ compatible = "simple-bus";
+ ranges = <0 0x1800c000 0x1000>;
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -69,20 +69,6 @@
+ };
+ };
+
+- axi@18000000 {
+- pcie2: pcie@14000 {
+- reg = <0x00014000 0x1000>;
+- };
+- };
+-
+- pwm: pwm@18002000 {
+- compatible = "brcm,iproc-pwm";
+- reg = <0x18002000 0x28>;
+- clocks = <&osc>;
+- #pwm-cells = <3>;
+- status = "disabled";
+- };
+-
+ mdio-mux@18003000 {
+ compatible = "mdio-mux-mmioreg", "mdio-mux";
+ mdio-parent-bus = <&mdio>;
+@@ -110,15 +96,6 @@
+ reg = <0x18105000 0x1000>;
+ };
+
+- uart2: serial@18008000 {
+- compatible = "ns16550a";
+- reg = <0x18008000 0x20>;
+- clocks = <&iprocslow>;
+- interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+- reg-shift = <2>;
+- status = "disabled";
+- };
+-
+ i2c0: i2c@18009000 {
+ compatible = "brcm,iproc-i2c";
+ reg = <0x18009000 0x50>;
--- /dev/null
+From ba4aebce23b2affb810b8a60eae853674d2cded2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 5 Jun 2023 15:21:09 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Describe switch ports in the main DTS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All Northstar SoCs have BCM5301x switches (BCM53011, BCM53012) with 8
+ports (0-8 without 6). By design 3 switch ports (5, 7 and 8) are
+hardwired to 3 on-SoC Ethernet interfaces. Switch port 8 requires
+forcing link state.
+
+It seems that global Northstar .dtsi file is the best place to describe
+those hw details. Only device specific bits (like labels) should go to
+device .dts files.
+
+This seems to fit well with a tiny exception of Asus RT-AC88U which
+somehow was designed to have switch 5 connected to an extra switch. This
+case was simply handled with a /delete-property/.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Reviewed-by: Christian Lamparter <chunkeey@gmail.com> (MR32+MR26)
+Link: https://lore.kernel.org/r/20230605132109.7933-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 41 ++++++++++++++++++-
+ .../bcm4708-buffalo-wzr-1166dhp-common.dtsi | 7 ----
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 4 --
+ arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 3 --
+ arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 7 ----
+ arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 7 ----
+ .../boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 7 ----
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 3 --
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 7 ----
+ arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 12 ------
+ arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 17 +-------
+ arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 12 ------
+ arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 12 ------
+ .../boot/dts/bcm47094-linksys-panamera.dts | 34 ++++-----------
+ arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 7 ----
+ arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 4 --
+ arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 7 ----
+ arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 3 --
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 7 ----
+ .../boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 7 ----
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 3 --
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 3 --
+ 22 files changed, 51 insertions(+), 163 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -304,10 +304,49 @@
+
+ status = "disabled";
+
+- /* ports are defined in board DTS */
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
++
++ port@0 {
++ reg = <0>;
++ };
++
++ port@1 {
++ reg = <1>;
++ };
++
++ port@2 {
++ reg = <2>;
++ };
++
++ port@3 {
++ reg = <3>;
++ };
++
++ port@4 {
++ reg = <4>;
++ };
++
++ port@5 {
++ reg = <5>;
++ ethernet = <&gmac0>;
++ };
++
++ port@7 {
++ reg = <7>;
++ ethernet = <&gmac1>;
++ };
++
++ port@8 {
++ reg = <8>;
++ ethernet = <&gmac2>;
++
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
+ };
+ };
+
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
+@@ -159,34 +159,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -75,19 +75,15 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+@@ -82,14 +82,11 @@
+
+ ports {
+ port@4 {
+- reg = <4>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+@@ -100,34 +100,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
++++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+@@ -123,34 +123,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+@@ -123,34 +123,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -75,14 +75,11 @@
+
+ ports {
+ port@4 {
+- reg = <4>;
+ label = "poe";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -124,36 +124,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+@@ -191,39 +191,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@8 {
+- reg = <8>;
+ label = "cpu";
+- ethernet = <&gmac2>;
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
++++ b/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
+@@ -181,32 +181,28 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ sw0_p5: port@5 {
+- reg = <5>;
++ /delete-property/ethernet;
++
+ label = "extsw";
+ phy-mode = "rgmii";
+
+@@ -218,8 +214,6 @@
+ };
+
+ port@7 {
+- reg = <7>;
+- ethernet = <&gmac1>;
+ label = "cpu";
+
+ fixed-link {
+@@ -229,14 +223,7 @@
+ };
+
+ port@8 {
+- reg = <8>;
+- ethernet = <&gmac2>;
+ label = "cpu";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+@@ -124,39 +124,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@8 {
+- reg = <8>;
+ label = "cpu";
+- ethernet = <&gmac2>;
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+@@ -172,40 +172,28 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@8 {
+- reg = <8>;
+ label = "cpu";
+- ethernet = <&gmac2>;
+ phy-mode = "rgmii";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
++++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
+@@ -207,29 +207,32 @@
+ dsa,member = <0 0>;
+
+ ports {
++ sw0_p0: port@0 {
++ label = "extsw";
++
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
++
+ port@1 {
+- reg = <1>;
+ label = "lan7";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan4";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan8";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+- ethernet = <&gmac0>;
+ label = "cpu";
+ status = "disabled";
+
+@@ -240,8 +243,6 @@
+ };
+
+ port@7 {
+- reg = <7>;
+- ethernet = <&gmac1>;
+ label = "cpu";
+ status = "disabled";
+
+@@ -252,24 +253,7 @@
+ };
+
+ port@8 {
+- reg = <8>;
+- ethernet = <&gmac2>;
+ label = "cpu";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+- };
+-
+- sw0_p0: port@0 {
+- reg = <0>;
+- label = "extsw";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
+@@ -83,36 +83,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 1>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan4";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan2";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "lan1";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
+@@ -73,19 +73,15 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
+@@ -83,36 +83,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 1>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan4";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan2";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "lan1";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
+@@ -69,14 +69,11 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -123,36 +123,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
+@@ -98,36 +98,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -115,14 +115,11 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+
+ fixed-link {
+ speed = <1000>;
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -176,14 +176,11 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+
+ fixed-link {
+ speed = <1000>;
--- /dev/null
+From a6a1a156f5debaebf9f61850d111b966e9be9ee9 Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Thu, 8 Jun 2023 17:36:27 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: MR26: MR32: remove bogus nand-ecc-algo
+ property
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| bcm53015-meraki-mr26.dtb: nand-controller@18028000:
+| nand@0:nand-ecc-algo:0: 'hw' is not one of ['hamming', 'bch', 'rs']
+| From schema: Documentation/[...]/nand-controller.yaml
+| bcm53016-meraki-mr32.dtb: nand-controller@18028000:
+| nand@0:nand-ecc-algo:0: 'hw' is not one of ['hamming', 'bch', 'rs']
+| From schema: Documentation/[...]/nand-controller.yaml
+
+original ECC values for these old Merakis are sadly not
+provided by the vendor. It looks like Meraki just stuck
+with what Broadcom's SDK was doing... which left this
+up to the proprietary nand driver.
+
+Note: The invalid setting was and is handled by brcmnand. It
+falls back to "bch" in brcmnand_setup_dev() when ecc.algo is
+set to NAND_ECC_ALGO_UNKNOWN (since "hw" is not in the list
+above).
+
+A correct nand-ecc-algo = "bch"; is already specified in the
+included "bcm5301x-nand-cs0-bch8.dtsi". So this line can be
+dropped.
+
+Reported-by: Rafał Miłecki <zajec5@gmail.com> (per Mail)
+Fixes: 935327a73553 ("ARM: dts: BCM5301X: Add DT for Meraki MR26")
+Fixes: ec88a9c344d9 ("ARM: BCM5301X: Add DT for Meraki MR32")
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/2c4d00dd40124c2ddc0b139cbce7531b108f9052.1686238550.git.chunkeey@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 2 --
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 --
+ 2 files changed, 4 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -72,8 +72,6 @@
+ };
+
+ &nandcs {
+- nand-ecc-algo = "hw";
+-
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <0x1>;
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -125,8 +125,6 @@
+ };
+
+ &nandcs {
+- nand-ecc-algo = "hw";
+-
+ partitions {
+ /*
+ * The partition autodetection does not work for this device.
--- /dev/null
+From d68b2f7d7d06872450d4f39d84d5926d7e7ae88c Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Thu, 8 Jun 2023 17:36:28 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: MR32: remove partition index numbers
+
+removes the partition indexes in the node names under.
+This brings the device tree source in line with others.
+
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/627f57d568030a56499361790524b4d4f3381619.1686238550.git.chunkeey@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -138,31 +138,31 @@
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+
+- partition0@0 {
++ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x100000>;
+ read-only;
+ };
+
+- partition1@100000 {
++ partition@100000 {
+ label = "bootkernel1";
+ reg = <0x100000 0x300000>;
+ read-only;
+ };
+
+- partition2@400000 {
++ partition@400000 {
+ label = "nvram";
+ reg = <0x400000 0x100000>;
+ read-only;
+ };
+
+- partition3@500000 {
++ partition@500000 {
+ label = "bootkernel2";
+ reg = <0x500000 0x300000>;
+ read-only;
+ };
+
+- partition4@800000 {
++ partition@800000 {
+ label = "ubi";
+ reg = <0x800000 0x7780000>;
+ };
--- /dev/null
+From fd274b733bfdde3ca72f0fa2a37f032f3a8c402c Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Thu, 8 Jun 2023 17:36:29 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: fix duplex-full => full-duplex
+
+this typo was found by the dtbs_check
+| ports:port@5:fixed-link: 'oneOf' conditional failed,
+| {'speed': [[1000]], 'duplex-full': True} is not of type 'array'
+| 'duplex-full' does not match any of the regexes: 'pinctrl-[0-]..."
+
+this should have been full-duplex;
+
+Fixes: 935327a73553 ("ARM: dts: BCM5301X: Add DT for Meraki MR26")
+Fixes: ec88a9c344d9 ("ARM: BCM5301X: Add DT for Meraki MR32")
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/50522f45566951a9eabd22820647924cc6b4a264.1686238550.git.chunkeey@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 2 +-
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -121,7 +121,7 @@
+
+ fixed-link {
+ speed = <1000>;
+- duplex-full;
++ full-duplex;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -182,7 +182,7 @@
+
+ fixed-link {
+ speed = <1000>;
+- duplex-full;
++ full-duplex;
+ };
+ };
+ };
--- /dev/null
+From 752a63b8dbe6cc6900efd1035bea427a778a4b55 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 15:59:25 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Add Netgear R8000 WiFi regulator mappings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This allows setting FullMAC firmware regulatory domain.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602135925.14143-3-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+@@ -137,8 +137,10 @@
+ #size-cells = <2>;
+
+ wifi@0,1,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5735000 5835000>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
+ };
+ };
+ };
+@@ -159,6 +161,19 @@
+ #address-cells = <3>;
+ #size-cells = <2>;
+
++ bridge@1,0 {
++ reg = <0x800 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++
++ wifi@0,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
++ reg = <0x0000 0 0 0 0>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ };
++ };
++
+ bridge@1,2,2 {
+ reg = <0x1000 0 0 0 0>;
+
+@@ -166,8 +181,10 @@
+ #size-cells = <2>;
+
+ wifi@1,4,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5170000 5730000>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
+ };
+ };
+ };
--- /dev/null
+From b67cad33176e472df6d16a24ee7624299bdcd5d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 16 Jun 2023 12:58:27 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Add cells sizes to PCIe nodes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes:
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@12000: '#address-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@12000: '#size-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@13000: '#address-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@13000: '#size-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@14000: '#address-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@14000: '#size-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+
+Two properties that need to be added later are "device_type" and
+"ranges". Adding "device_type" on its own causes a new warning and the
+value of "ranges" needs to be determined yet.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230616105827.21656-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -176,14 +176,23 @@
+
+ pcie0: pcie@12000 {
+ reg = <0x00012000 0x1000>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
+ };
+
+ pcie1: pcie@13000 {
+ reg = <0x00013000 0x1000>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
+ };
+
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
+ };
+
+ usb2: usb2@21000 {
--- /dev/null
+From b9457a04eb89645049fdf427c13e6a18d5501895 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Tue, 11 Oct 2022 14:24:40 +0200
+Subject: [PATCH] bcma: support SPROM rev 11
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Rev 11 works fine for me to set the MAC address of gmac0 and
+gmac1 in the D-Link DWL-8610AP.
+
+Cc: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ drivers/bcma/sprom.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/bcma/sprom.c
++++ b/drivers/bcma/sprom.c
+@@ -170,7 +170,7 @@ static int bcma_sprom_valid(struct bcma_
+ return err;
+
+ revision = sprom[words - 1] & SSB_SPROM_REVISION_REV;
+- if (revision != 8 && revision != 9 && revision != 10) {
++ if (revision < 8 || revision > 11) {
+ pr_err("Unsupported SPROM revision: %d\n", revision);
+ return -ENOENT;
+ }
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
-@@ -93,3 +93,40 @@
+@@ -92,3 +92,40 @@
&usb3_phy {
status = "okay";
};
--- /dev/null
+From 9f66e1dd82e3186aee95282657512ca2aef1afe0 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Wed, 19 Oct 2022 21:34:49 +0200
+Subject: [PATCH] ARM: dts: bcm53016: Add devicetree for D-Link DWL-8610AP
+
+This adds a device tree for the BCM53016-based D-Link DWL-8610AP
+access point wireless router.
+
+The TRX-format partitions had to be named "firmware" due to
+an OpenWrt patch that only accepts parting such nodes if they
+are named "firmware".
+
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20221019193449.3036010-2-linus.walleij@linaro.org
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ .../boot/dts/bcm53016-dlink-dwl-8610ap.dts | 131 ++++++++++++++++++
+ 2 files changed, 132 insertions(+)
+ create mode 100644 arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -139,6 +139,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+ bcm47094-netgear-r8500.dtb \
+ bcm47094-phicomm-k3.dtb \
+ bcm53015-meraki-mr26.dtb \
++ bcm53016-dlink-dwl-8610ap.dtb \
+ bcm53016-meraki-mr32.dtb \
+ bcm94708.dtb \
+ bcm94709.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
+@@ -0,0 +1,131 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++/dts-v1/;
++
++#include "bcm4709.dtsi"
++#include "bcm5301x-nand-cs0-bch8.dtsi"
++#include <dt-bindings/leds/common.h>
++#include <dt-bindings/input/input.h>
++
++/ {
++ model = "D-Link DWL-8610AP";
++ compatible = "dlink,dwl-8610ap", "brcm,bcm53016", "brcm,bcm4708";
++
++ memory@0 {
++ device_type = "memory";
++ /* 512 MB RAM in 2 x Macronix D9PSH chips */
++ reg = <0x00000000 0x08000000>,
++ <0x88000000 0x08000000>;
++ };
++
++ leds {
++ compatible = "gpio-leds";
++
++ power {
++ function = LED_FUNCTION_POWER;
++ color = <LED_COLOR_ID_GREEN>;
++ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
++ default-state = "on";
++ };
++
++ diag {
++ /* Actually "diag" unclear what this means */
++ function = LED_FUNCTION_INDICATOR;
++ color = <LED_COLOR_ID_RED>;
++ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
++ default-state = "on";
++ linux,default-trigger = "heartbeat";
++ };
++
++ wlan-2g {
++ function = LED_FUNCTION_WLAN;
++ color = <LED_COLOR_ID_GREEN>;
++ gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
++ };
++
++ wlan-5g {
++ function = LED_FUNCTION_WLAN;
++ color = <LED_COLOR_ID_GREEN>;
++ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio_keys {
++ compatible = "gpio-keys";
++
++ button-reset {
++ debounce-interval = <100>;
++ wakeup-source;
++ linux,code = <KEY_RESTART>;
++ label = "reset";
++ /* This GPIO is actually stored in NVRAM, but it's not gonna change */
++ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ /*
++ * Flash memory at 0x1e000000-0x1fffffff
++ * Macronix 32 64KB blocks; total size 2MB, same that can be
++ * found attached to the spi_nor SPI controller.
++ */
++ nvram@1e080000 {
++ compatible = "brcm,nvram";
++ reg = <0x1e080000 0x00020000>;
++
++ et0macaddr: et0macaddr {
++ };
++
++ et1macaddr: et1macaddr {
++ };
++ };
++};
++
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
++&gmac1 {
++ nvmem-cells = <&et1macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
++&spi_nor {
++ /* Serial SPI NOR Flash MX 25L1606E */
++ status = "okay";
++};
++
++&nandcs {
++ /*
++ * Spansion S34ML01G100TFI00 128 MB NAND Flash memory
++ *
++ * This ECC is a bit unorthodox but it is what the stock firmware
++ * is using, so to be able to mount the original partitions
++ * this is necessary.
++ */
++ nand-ecc-strength = <5>;
++ partitions {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ /* This is named nflash1.trx in CFE */
++ trx@0 {
++ label = "firmware";
++ reg = <0x00000000 0x02800000>;
++ compatible = "brcm,trx";
++ };
++
++ /* This is named nflash1.trx2 in CFE */
++ trx2@2800000 {
++ label = "firmware2";
++ reg = <0x02800000 0x02800000>;
++ compatible = "brcm,trx";
++ };
++
++ /* This is named nflash1.rwfs in CFE */
++ free@5000000 {
++ label = "free";
++ reg = <0x05000000 0x03000000>;
++ };
++ };
++};
--- /dev/null
+From b1ba87897ceda8e49a47aa92832dd7bff8583e21 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Mon, 7 Nov 2022 14:41:04 +0100
+Subject: [PATCH] ARM: dts: bcm47094: Add devicetree for D-Link DIR-890L
+
+This adds a device tree for the D-Link DIR-890L. This device
+is very similar to D-Link DIR-885L, the differences are detailed
+as a comment in the DTS file.
+
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20221107134104.1422169-2-linus.walleij@linaro.org
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 211 ++++++++++++++++++
+ 2 files changed, 212 insertions(+)
+ create mode 100644 arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -129,6 +129,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+ bcm4709-tplink-archer-c9-v1.dtb \
+ bcm47094-asus-rt-ac88u.dtb \
+ bcm47094-dlink-dir-885l.dtb \
++ bcm47094-dlink-dir-890l.dtb \
+ bcm47094-linksys-panamera.dtb \
+ bcm47094-luxul-abr-4500.dtb \
+ bcm47094-luxul-xap-1610.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+@@ -0,0 +1,211 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++/*
++ * Device tree for D-Link DIR-890L
++ * D-Link calls this board "WRGAC36"
++ * this router has the same looks and form factor as D-Link DIR-885L.
++ *
++ * Some differences from DIR-885L include a separate USB2 port, separate LEDs
++ * for USB2 and USB3, a separate VCC supply for the USB2 slot and no
++ * router/extender switch is mounted (there is an empty mount point on the
++ * PCB) so this device is a pure router. Also the LAN ports are in the right
++ * order.
++ *
++ * Based on the device tree for DIR-885L
++ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
++ * Copyright (C) 2022 Linus Walleij
++ */
++
++/dts-v1/;
++
++#include "bcm47094.dtsi"
++#include "bcm5301x-nand-cs0-bch1.dtsi"
++
++/ {
++ compatible = "dlink,dir-890l", "brcm,bcm47094", "brcm,bcm4708";
++ model = "D-Link DIR-890L";
++
++ chosen {
++ bootargs = "console=ttyS0,115200 earlycon";
++ };
++
++ memory@0 {
++ device_type = "memory";
++ reg = <0x00000000 0x08000000>,
++ <0x88000000 0x08000000>;
++ };
++
++ leds {
++ /*
++ * LED information is derived from the boot log which
++ * conveniently lists all the LEDs.
++ */
++ compatible = "gpio-leds";
++
++ power-white {
++ label = "bcm53xx:white:power";
++ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "default-on";
++ };
++
++ wan-white {
++ label = "bcm53xx:white:wan";
++ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
++ };
++
++ power-amber {
++ label = "bcm53xx:amber:power";
++ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
++ };
++
++ wan-amber {
++ label = "bcm53xx:amber:wan";
++ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
++ };
++
++ usb3-white {
++ label = "bcm53xx:white:usb3";
++ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
++ trigger-sources = <&xhci_port1>;
++ linux,default-trigger = "usbport";
++ };
++
++ usb2-white {
++ label = "bcm53xx:white:usb2";
++ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
++ trigger-sources = <&ohci_port1>, <&ehci_port1>;
++ linux,default-trigger = "usbport";
++ };
++
++ 2ghz {
++ label = "bcm53xx:white:2ghz";
++ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
++ };
++
++ 5ghz {
++ label = "bcm53xx:white:5ghz";
++ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio-keys {
++ compatible = "gpio-keys";
++
++ button-wps {
++ label = "WPS";
++ linux,code = <KEY_WPS_BUTTON>;
++ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
++ };
++
++ /* Called "factory reset" in the vendor dmesg */
++ button-restart {
++ label = "Reset";
++ linux,code = <KEY_RESTART>;
++ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ /*
++ * The flash memory is memory mapped at 0x1e000000-0x1fffffff
++ * 64KB blocks; total size 2MB, same that can be
++ * found attached to the spi_nor SPI controller.
++ */
++ nvram@1e1f0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1e1f0000 0x00010000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++};
++
++&gmac2 {
++ /*
++ * The NVRAM curiously does not contain a MAC address
++ * for et2 so since that is the only ethernet interface
++ * actually in use on the platform, we use this et0 MAC
++ * address for et2.
++ */
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
++&spi_nor {
++ status = "okay";
++};
++
++&nandcs {
++ /* Spansion S34ML01G2, 128MB with 128KB erase blocks */
++ partitions {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ /*
++ * This is called "nflash" in the vendor kernel with
++ * "upgrade" and "rootfs" (probably using OpenWrt
++ * splitpart). We call it "firmware" like standard tools
++ * assume. The CFE loader contains incorrect information
++ * about TRX partitions, ignore this, there are no TRX
++ * partitions: this device uses SEAMA.
++ */
++ firmware@0 {
++ label = "firmware";
++ reg = <0x00000000 0x08000000>;
++ };
++ };
++};
++
++&usb2 {
++ vcc-gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
++};
++
++&usb3 {
++ vcc-gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
++};
++
++&usb3_phy {
++ status = "okay";
++};
++
++&srab {
++ status = "okay";
++
++ ports {
++ port@0 {
++ reg = <0>;
++ label = "lan1";
++ };
++
++ port@1 {
++ reg = <1>;
++ label = "lan2";
++ };
++
++ port@2 {
++ reg = <2>;
++ label = "lan3";
++ };
++
++ port@3 {
++ reg = <3>;
++ label = "lan4";
++ };
++
++ port@4 {
++ reg = <4>;
++ label = "wan";
++ };
++
++ port@8 {
++ reg = <8>;
++ label = "cpu";
++ ethernet = <&gmac2>;
++ phy-mode = "rgmii";
++
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
++ };
++};
--- /dev/null
+From c8ee9f119bfb4244f76c9971c341ec06b49332cd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Tue, 8 Nov 2022 12:07:08 +0100
+Subject: [PATCH] ARM: dts: BCM5301X: Correct description of TP-Link partitions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+TP-Link routers have flash space partitioned according to the partitions
+table. It may look like fixed partitioning but those partitions can be
+actually reorganized. New can be added (or some removed), offsets and
+sizes may change.
+
+Fix DT to use binding for the TP-Link SafeLoader partitioning method.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20221108110708.13693-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ .../boot/dts/bcm47081-tplink-archer-c5-v2.dts | 25 ++++---------------
+ .../boot/dts/bcm4709-tplink-archer-c9-v1.dts | 25 ++++---------------
+ 2 files changed, 10 insertions(+), 40 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
++++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
+@@ -95,30 +95,15 @@
+ status = "okay";
+
+ partitions {
+- compatible = "fixed-partitions";
+- #address-cells = <1>;
+- #size-cells = <1>;
++ compatible = "tplink,safeloader-partitions";
++ partitions-table-offset = <0xe50000>;
+
+- boot@0 {
+- label = "boot";
+- reg = <0x000000 0x040000>;
+- read-only;
+- };
+-
+- os-image@100000 {
+- label = "os-image";
+- reg = <0x040000 0x200000>;
++ partition-os-image {
+ compatible = "brcm,trx";
+ };
+
+- rootfs@240000 {
+- label = "rootfs";
+- reg = <0x240000 0xc00000>;
+- };
+-
+- nvram@ff0000 {
+- label = "nvram";
+- reg = <0xff0000 0x010000>;
++ partition-file-system {
++ linux,rootfs;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
++++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
+@@ -104,30 +104,15 @@
+ status = "okay";
+
+ partitions {
+- compatible = "fixed-partitions";
+- #address-cells = <1>;
+- #size-cells = <1>;
++ compatible = "tplink,safeloader-partitions";
++ partitions-table-offset = <0xe50000>;
+
+- boot@0 {
+- label = "boot";
+- reg = <0x000000 0x040000>;
+- read-only;
+- };
+-
+- os-image@100000 {
+- label = "os-image";
+- reg = <0x040000 0x200000>;
++ partition-os-image {
+ compatible = "brcm,trx";
+ };
+
+- rootfs@240000 {
+- label = "rootfs";
+- reg = <0x240000 0xc00000>;
+- };
+-
+- nvram@ff0000 {
+- label = "nvram";
+- reg = <0xff0000 0x010000>;
++ partition-file-system {
++ linux,rootfs;
+ };
+ };
+ };
--- /dev/null
+From af84101e3f2258a303fa2461ebec0878ce23ea10 Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+Date: Fri, 25 Nov 2022 15:41:27 +0100
+Subject: [PATCH] ARM: dts: broadcom: align LED node names with dtschema
+
+The node names should be generic and DT schema expects certain pattern:
+
+ bcm4708-asus-rt-ac68u.dtb: leds: 'logo', 'power', 'usb2', 'usb3' do not match any of the regexes: '(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+'
+
+Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+Link: https://lore.kernel.org/r/20221125144128.477059-1-krzysztof.kozlowski@linaro.org
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 15 +++++-----
+ arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 8 +++---
+ .../bcm4708-buffalo-wzr-1166dhp-common.dtsi | 16 +++++------
+ .../boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 16 +++++------
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 6 ++--
+ arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 2 +-
+ arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 10 +++----
+ .../arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 10 +++----
+ arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 22 +++++++--------
+ arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 10 +++----
+ .../boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 14 +++++-----
+ .../boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 16 +++++------
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 6 ++--
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 20 ++++++-------
+ .../boot/dts/bcm47081-tplink-archer-c5-v2.dts | 18 ++++++------
+ arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 6 ++--
+ .../boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 18 ++++++------
+ arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 16 +++++------
+ arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 22 +++++++--------
+ .../boot/dts/bcm4709-tplink-archer-c9-v1.dts | 18 ++++++------
+ arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 12 ++++----
+ arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 14 +++++-----
+ arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 16 +++++------
+ .../boot/dts/bcm47094-linksys-panamera.dts | 28 +++++++++----------
+ arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 4 +--
+ arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 6 ++--
+ arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 4 +--
+ arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 2 +-
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 20 ++++++-------
+ .../boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 10 +++----
+ arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 14 +++++-----
+ arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | 4 +--
+ arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | 10 +++----
+ arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 14 +++++-----
+ .../boot/dts/bcm53016-dlink-dwl-8610ap.dts | 8 +++---
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 6 ++--
+ arch/arm/boot/dts/bcm947189acdbmr.dts | 6 ++--
+ 37 files changed, 223 insertions(+), 224 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
++++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
+@@ -28,40 +28,39 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:blue:wan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- lan {
++ led-lan {
+ label = "bcm53xx:blue:lan";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- all {
++ led-all {
+ label = "bcm53xx:blue:all";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ };
+
+-
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
++++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
+@@ -28,24 +28,24 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- logo {
++ led-logo {
+ label = "bcm53xx:white:logo";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
+@@ -37,7 +37,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ /* label = "bcm53xx:blue:usb"; */
+ function = LED_FUNCTION_USB;
+ color = <LED_COLOR_ID_BLUE>;
+@@ -48,14 +48,14 @@
+ linux,default-trigger = "usbport";
+ };
+
+- power0 {
++ led-power0 {
+ /* label = "bcm53xx:red:power"; */
+ function = LED_FUNCTION_FAULT;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- power1 {
++ led-power1 {
+ /* label = "bcm53xx:white:power"; */
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_WHITE>;
+@@ -63,7 +63,7 @@
+ linux,default-trigger = "default-on";
+ };
+
+- router0 {
++ led-router0 {
+ /* label = "bcm53xx:blue:router"; */
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_BLUE>;
+@@ -71,14 +71,14 @@
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ /* label = "bcm53xx:amber:router"; */
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_AMBER>;
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ /* label = "bcm53xx:blue:wan"; */
+ function = LED_FUNCTION_WAN;
+ color = <LED_COLOR_ID_BLUE>;
+@@ -86,14 +86,14 @@
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ /* label = "bcm53xx:blue:wireless"; */
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ /* label = "bcm53xx:amber:wireless"; */
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_AMBER>;
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+@@ -49,7 +49,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -58,40 +58,40 @@
+ linux,default-trigger = "usbport";
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:red:power";
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:white:power";
+ gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router0 {
++ led-router0 {
+ label = "bcm53xx:blue:router";
+ gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ label = "bcm53xx:amber:router";
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:blue:wan";
+ gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ label = "bcm53xx:blue:wireless";
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -23,19 +23,19 @@
+ leds {
+ compatible = "gpio-leds";
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+@@ -42,7 +42,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+@@ -29,24 +29,24 @@
+ leds {
+ compatible = "gpio-leds";
+
+- logo {
++ led-logo {
+ label = "bcm53xx:white:logo";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -54,7 +54,7 @@
+ linux,default-trigger = "usbport";
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:blue:wireless";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+@@ -28,29 +28,29 @@
+ leds {
+ compatible = "gpio-leds";
+
+- logo {
++ led-logo {
+ label = "bcm53xx:white:logo";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:blue:wireless";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
++++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+@@ -28,64 +28,64 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3-white {
++ led-usb3-white {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&xhci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3-green {
++ led-usb3-green {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- status-red {
++ led-status-red {
+ label = "bcm53xx:red:status";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+
+- status-green {
++ led-status-green {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
+- status-blue {
++ led-status-blue {
+ label = "bcm53xx:blue:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-red {
++ led-wan-red {
+ label = "bcm53xx:red:wan";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
++++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
+@@ -28,30 +28,30 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:blue:wan";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- lan {
++ led-lan {
+ label = "bcm53xx:blue:lan";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+@@ -49,40 +49,40 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:red:power";
+ gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- router0 {
++ led-router0 {
+ label = "bcm53xx:green:router";
+ gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ label = "bcm53xx:amber:router";
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ label = "bcm53xx:green:wireless";
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
+@@ -49,45 +49,45 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:green:usb";
+ gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
+ };
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:green:power";
+ gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:red:power";
+ gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- router0 {
++ led-router0 {
+ label = "bcm53xx:green:router";
+ gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router1 {
++ led-router1 {
+ label = "bcm53xx:amber:router";
+ gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wireless0 {
++ led-wireless0 {
+ label = "bcm53xx:green:wireless";
+ gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless1 {
++ led-wireless1 {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -23,19 +23,19 @@
+ leds {
+ compatible = "gpio-leds";
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -29,62 +29,62 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- lan3 {
++ led-lan3 {
+ label = "bcm53xx:green:lan3";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- lan4 {
++ led-lan4 {
+ label = "bcm53xx:green:lan4";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- lan2 {
++ led-lan2 {
+ label = "bcm53xx:green:lan2";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- usb {
++ led-usb {
+ label = "bcm53xx:green:usb";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ };
+
+- lan1 {
++ led-lan1 {
+ label = "bcm53xx:green:lan1";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
++++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
+@@ -23,50 +23,50 @@
+ leds {
+ compatible = "gpio-leds";
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
+ };
+
+- lan {
++ led-lan {
+ label = "bcm53xx:green:lan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb2-port1 {
++ led-usb2-port1 {
+ label = "bcm53xx:green:usb2-port1";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-green {
++ led-wan-green {
+ label = "bcm53xx:green:wan";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:green:wps";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb2-port2 {
++ led-usb2-port2 {
+ label = "bcm53xx:green:usb2-port2";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
++++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
+@@ -28,18 +28,18 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:red:wan";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
++++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
+@@ -28,48 +28,48 @@
+ leds {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:green:usb";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- router-amber {
++ led-router-amber {
+ label = "bcm53xx:amber:router";
+ gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
+ };
+
+- router-white {
++ led-router-white {
+ label = "bcm53xx:white:router";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless-amber {
++ led-wireless-amber {
+ label = "bcm53xx:amber:wireless";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless-white {
++ led-wireless-white {
+ label = "bcm53xx:white:wireless";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
+@@ -28,43 +28,43 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:white:5ghz";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:white:wireless";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+@@ -39,59 +39,59 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz-1 {
++ led-5ghz-1 {
+ label = "bcm53xx:white:5ghz-1";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- wireless {
++ led-wireless {
+ label = "bcm53xx:white:wireless";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz-2 {
++ led-5ghz-2 {
+ label = "bcm53xx:white:5ghz-2";
+ gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
++++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
+@@ -23,27 +23,27 @@
+ leds {
+ compatible = "gpio-leds";
+
+- lan {
++ led-lan {
+ label = "bcm53xx:blue:lan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:blue:usb3";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -51,24 +51,24 @@
+ linux,default-trigger = "usbport";
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:blue:usb2";
+ gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- wan-blue {
++ led-wan-blue {
+ label = "bcm53xx:blue:wan";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:blue:power";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+--- a/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
++++ b/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
+@@ -33,37 +33,37 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "white:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-red {
++ led-wan-red {
+ label = "red:wan";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- lan {
++ led-lan {
+ label = "white:lan";
+ gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "white:usb2";
+ gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "white:usb3";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ehci_port1>, <&xhci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- wps {
++ led-wps {
+ label = "white:wps";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+@@ -43,28 +43,28 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3-white {
++ led-usb3-white {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -72,12 +72,12 @@
+ linux,default-trigger = "usbport";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:white:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+@@ -41,47 +41,47 @@
+ */
+ compatible = "gpio-leds";
+
+- power-white {
++ led-power-white {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- wan-white {
++ led-wan-white {
+ label = "bcm53xx:white:wan";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- power-amber {
++ led-power-amber {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- wan-amber {
++ led-wan-amber {
+ label = "bcm53xx:amber:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3-white {
++ led-usb3-white {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&xhci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb2-white {
++ led-usb2-white {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:white:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
++++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
+@@ -52,19 +52,19 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wps {
++ led-wps {
+ label = "bcm53xx:white:wps";
+ gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:green:usb2";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port2>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -72,58 +72,58 @@
+ linux,default-trigger = "usbport";
+ };
+
+- power {
++ led-power {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+
+- wifi-disabled {
++ led-wifi-disabled {
+ label = "bcm53xx:amber:wifi-disabled";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ };
+
+- wifi-enabled {
++ led-wifi-enabled {
+ label = "bcm53xx:white:wifi-enabled";
+ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar1 {
++ led-bluebar1 {
+ label = "bcm53xx:white:bluebar1";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar2 {
++ led-bluebar2 {
+ label = "bcm53xx:white:bluebar2";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar3 {
++ led-bluebar3 {
+ label = "bcm53xx:white:bluebar3";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+ };
+
+- bluebar4 {
++ led-bluebar4 {
+ label = "bcm53xx:white:bluebar4";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar5 {
++ led-bluebar5 {
+ label = "bcm53xx:white:bluebar5";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar6 {
++ led-bluebar6 {
+ label = "bcm53xx:white:bluebar6";
+ gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar7 {
++ led-bluebar7 {
+ label = "bcm53xx:white:bluebar7";
+ gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
+ };
+
+- bluebar8 {
++ led-bluebar8 {
+ label = "bcm53xx:white:bluebar8";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
+@@ -30,13 +30,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
+@@ -23,18 +23,18 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
+@@ -30,13 +30,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
+@@ -25,7 +25,7 @@
+ leds {
+ compatible = "gpio-leds";
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -30,38 +30,38 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- lan3 {
++ led-lan3 {
+ label = "bcm53xx:green:lan3";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+ };
+
+- lan4 {
++ led-lan4 {
+ label = "bcm53xx:green:lan4";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ };
+
+- wan {
++ led-wan {
+ label = "bcm53xx:green:wan";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- lan1 {
++ led-lan1 {
+ label = "bcm53xx:green:lan1";
+ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+ };
+
+- lan2 {
++ led-lan2 {
+ label = "bcm53xx:green:lan2";
+ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -69,18 +69,18 @@
+ linux,default-trigger = "usbport";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
+@@ -33,13 +33,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ label = "bcm53xx:green:power";
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:green:usb3";
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>,
+@@ -47,18 +47,18 @@
+ linux,default-trigger = "usbport";
+ };
+
+- status {
++ led-status {
+ label = "bcm53xx:green:status";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:green:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:green:5ghz";
+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
++++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
+@@ -25,38 +25,38 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power0 {
++ led-power0 {
+ label = "bcm53xx:white:power";
+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-on";
+ };
+
+- power1 {
++ led-power1 {
+ label = "bcm53xx:amber:power";
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz-1 {
++ led-5ghz-1 {
+ label = "bcm53xx:white:5ghz-1";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ };
+
+- 5ghz-2 {
++ led-5ghz-2 {
+ label = "bcm53xx:white:5ghz-2";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:white:2ghz";
+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+ };
+
+- usb2 {
++ led-usb2 {
+ label = "bcm53xx:white:usb2";
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+
+- usb3 {
++ led-usb3 {
+ label = "bcm53xx:white:usb3";
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ };
+--- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
++++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
+@@ -23,13 +23,13 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wlan {
++ led-wlan {
+ label = "bcm53xx:blue:wlan";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "default-off";
+ };
+
+- system {
++ led-system {
+ label = "bcm53xx:green:system";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "timer";
+--- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
++++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
+@@ -20,26 +20,26 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
+- leds {
++ leds-0 {
+ compatible = "gpio-leds";
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-off";
+ };
+
+- system {
++ led-system {
+ label = "bcm53xx:green:system";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+ };
+ };
+
+- pcie0_leds {
++ leds-1 {
+ compatible = "gpio-leds";
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-off";
+--- a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
++++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
+@@ -20,37 +20,37 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
+- leds {
++ leds-0 {
+ compatible = "gpio-leds";
+
+- usb {
++ led-usb {
+ label = "bcm53xx:blue:usb";
+ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- system {
++ led-system {
+ label = "bcm53xx:blue:system";
+ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "timer";
+ };
+ };
+
+- pcie0_leds {
++ leds-1 {
+ compatible = "gpio-leds";
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
+ };
+--- a/arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
++++ b/arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
+@@ -20,14 +20,14 @@
+ leds {
+ compatible = "gpio-leds";
+
+- power {
++ led-power {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+- diag {
++ led-diag {
+ /* Actually "diag" unclear what this means */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+@@ -36,13 +36,13 @@
+ linux,default-trigger = "heartbeat";
+ };
+
+- wlan-2g {
++ led-wlan-2g {
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
+ };
+
+- wlan-5g {
++ led-wlan-5g {
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -58,7 +58,7 @@
+ pwm-leds {
+ compatible = "pwm-leds";
+
+- red {
++ led-0 {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+@@ -66,7 +66,7 @@
+ max-brightness = <255>;
+ };
+
+- green {
++ led-1 {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_GREEN>;
+@@ -74,7 +74,7 @@
+ max-brightness = <255>;
+ };
+
+- blue {
++ led-2 {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+--- a/arch/arm/boot/dts/bcm947189acdbmr.dts
++++ b/arch/arm/boot/dts/bcm947189acdbmr.dts
+@@ -25,17 +25,17 @@
+ leds {
+ compatible = "gpio-leds";
+
+- wps {
++ led-wps {
+ label = "bcm53xx:blue:wps";
+ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+ };
+
+- 5ghz {
++ led-5ghz {
+ label = "bcm53xx:blue:5ghz";
+ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+ };
+
+- 2ghz {
++ led-2ghz {
+ label = "bcm53xx:blue:2ghz";
+ gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+ };
--- /dev/null
+From 915fac07f053418d0ab9075af64da2872ca8a7f8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Wed, 3 May 2023 14:16:10 +0200
+Subject: [PATCH] =?UTF-8?q?ARM:=20dts:=20BCM5301X:=20Relicense=20Rafa?=
+ =?UTF-8?q?=C5=82's=20code=20to=20the=20GPL=202.0+=20/=20MIT?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All BCM5301X device DTS files use dual licensing. Try the same for SoC.
+Introduce a new .dtsi file with a proper SPDX tag.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230503121611.1629-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ MAINTAINERS | 1 +
+ arch/arm/boot/dts/bcm-ns.dtsi | 202 ++++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 192 +-----------------------------
+ 3 files changed, 205 insertions(+), 190 deletions(-)
+ create mode 100644 arch/arm/boot/dts/bcm-ns.dtsi
+
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -4063,6 +4063,7 @@ M: Rafał Miłecki <zajec5@gmail.com>
+ R: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
+ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+ S: Maintained
++F: arch/arm/boot/dts/bcm-ns.dtsi
+ F: arch/arm/boot/dts/bcm470*
+ F: arch/arm/boot/dts/bcm5301*
+ F: arch/arm/boot/dts/bcm953012*
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -0,0 +1,202 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++
++#include <dt-bindings/clock/bcm-nsp.h>
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/input/input.h>
++#include <dt-bindings/interrupt-controller/irq.h>
++#include <dt-bindings/interrupt-controller/arm-gic.h>
++
++/ {
++ axi@18000000 {
++ compatible = "brcm,bus-axi";
++ reg = <0x18000000 0x1000>;
++ ranges = <0x00000000 0x18000000 0x00100000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ chipcommon: chipcommon@0 {
++ reg = <0x00000000 0x1000>;
++
++ gpio-controller;
++ #gpio-cells = <2>;
++ };
++
++ pcie0: pcie@12000 {
++ reg = <0x00012000 0x1000>;
++ };
++
++ pcie1: pcie@13000 {
++ reg = <0x00013000 0x1000>;
++ };
++
++ usb2: usb2@21000 {
++ reg = <0x00021000 0x1000>;
++
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ interrupt-parent = <&gic>;
++
++ ehci: usb@21000 {
++ #usb-cells = <0>;
++
++ compatible = "generic-ehci";
++ reg = <0x00021000 0x1000>;
++ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
++ phys = <&usb2_phy>;
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ ehci_port1: port@1 {
++ reg = <1>;
++ #trigger-source-cells = <0>;
++ };
++
++ ehci_port2: port@2 {
++ reg = <2>;
++ #trigger-source-cells = <0>;
++ };
++ };
++
++ ohci: usb@22000 {
++ #usb-cells = <0>;
++
++ compatible = "generic-ohci";
++ reg = <0x00022000 0x1000>;
++ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ ohci_port1: port@1 {
++ reg = <1>;
++ #trigger-source-cells = <0>;
++ };
++
++ ohci_port2: port@2 {
++ reg = <2>;
++ #trigger-source-cells = <0>;
++ };
++ };
++ };
++
++ usb3: usb3@23000 {
++ reg = <0x00023000 0x1000>;
++
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ interrupt-parent = <&gic>;
++
++ xhci: usb@23000 {
++ #usb-cells = <0>;
++
++ compatible = "generic-xhci";
++ reg = <0x00023000 0x1000>;
++ interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
++ phys = <&usb3_phy>;
++ phy-names = "usb";
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ xhci_port1: port@1 {
++ reg = <1>;
++ #trigger-source-cells = <0>;
++ };
++ };
++ };
++ };
++
++ mdio: mdio@18003000 {
++ compatible = "brcm,iproc-mdio";
++ reg = <0x18003000 0x8>;
++ #size-cells = <0>;
++ #address-cells = <1>;
++ };
++
++ dmu-bus@1800c000 {
++ compatible = "simple-bus";
++ ranges = <0 0x1800c000 0x1000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ cru-bus@100 {
++ compatible = "brcm,ns-cru", "simple-mfd";
++ reg = <0x100 0x1a4>;
++ ranges;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ usb2_phy: phy@164 {
++ compatible = "brcm,ns-usb2-phy";
++ reg = <0x164 0x4>;
++ brcm,syscon-clkset = <&cru_clkset>;
++ clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
++ clock-names = "phy-ref-clk";
++ #phy-cells = <0>;
++ };
++
++ cru_clkset: syscon@180 {
++ compatible = "brcm,cru-clkset", "syscon";
++ reg = <0x180 0x4>;
++ };
++
++ pinctrl: pinctrl@1c0 {
++ compatible = "brcm,bcm4708-pinmux";
++ reg = <0x1c0 0x24>;
++ reg-names = "cru_gpio_control";
++
++ spi-pins {
++ groups = "spi_grp";
++ function = "spi";
++ };
++
++ pinmux_i2c: i2c-pins {
++ groups = "i2c_grp";
++ function = "i2c";
++ };
++
++ pinmux_pwm: pwm-pins {
++ groups = "pwm0_grp", "pwm1_grp",
++ "pwm2_grp", "pwm3_grp";
++ function = "pwm";
++ };
++
++ pinmux_uart1: uart1-pins {
++ groups = "uart1_grp";
++ function = "uart1";
++ };
++ };
++
++ thermal: thermal@2c0 {
++ compatible = "brcm,ns-thermal";
++ reg = <0x2c0 0x10>;
++ #thermal-sensor-cells = <0>;
++ };
++ };
++ };
++
++ thermal-zones {
++ cpu_thermal: cpu-thermal {
++ polling-delay-passive = <0>;
++ polling-delay = <1000>;
++ coefficients = <(-556) 418000>;
++ thermal-sensors = <&thermal>;
++
++ trips {
++ cpu-crit {
++ temperature = <125000>;
++ hysteresis = <0>;
++ type = "critical";
++ };
++ };
++
++ cooling-maps {
++ };
++ };
++ };
++};
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -8,11 +8,7 @@
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+-#include <dt-bindings/clock/bcm-nsp.h>
+-#include <dt-bindings/gpio/gpio.h>
+-#include <dt-bindings/input/input.h>
+-#include <dt-bindings/interrupt-controller/irq.h>
+-#include <dt-bindings/interrupt-controller/arm-gic.h>
++#include "bcm-ns.dtsi"
+
+ / {
+ #address-cells = <1>;
+@@ -149,12 +145,6 @@
+ };
+
+ axi@18000000 {
+- compatible = "brcm,bus-axi";
+- reg = <0x18000000 0x1000>;
+- ranges = <0x00000000 0x18000000 0x00100000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0x000fffff 0xffff>;
+ interrupt-map =
+@@ -228,108 +218,15 @@
+ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+
+- chipcommon: chipcommon@0 {
+- reg = <0x00000000 0x1000>;
+-
+- gpio-controller;
+- #gpio-cells = <2>;
++ chipcommon@0 {
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+- pcie0: pcie@12000 {
+- reg = <0x00012000 0x1000>;
+- };
+-
+- pcie1: pcie@13000 {
+- reg = <0x00013000 0x1000>;
+- };
+-
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
+ };
+
+- usb2: usb2@21000 {
+- reg = <0x00021000 0x1000>;
+-
+- #address-cells = <1>;
+- #size-cells = <1>;
+- ranges;
+-
+- interrupt-parent = <&gic>;
+-
+- ehci: usb@21000 {
+- #usb-cells = <0>;
+-
+- compatible = "generic-ehci";
+- reg = <0x00021000 0x1000>;
+- interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+- phys = <&usb2_phy>;
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- ehci_port1: port@1 {
+- reg = <1>;
+- #trigger-source-cells = <0>;
+- };
+-
+- ehci_port2: port@2 {
+- reg = <2>;
+- #trigger-source-cells = <0>;
+- };
+- };
+-
+- ohci: usb@22000 {
+- #usb-cells = <0>;
+-
+- compatible = "generic-ohci";
+- reg = <0x00022000 0x1000>;
+- interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- ohci_port1: port@1 {
+- reg = <1>;
+- #trigger-source-cells = <0>;
+- };
+-
+- ohci_port2: port@2 {
+- reg = <2>;
+- #trigger-source-cells = <0>;
+- };
+- };
+- };
+-
+- usb3: usb3@23000 {
+- reg = <0x00023000 0x1000>;
+-
+- #address-cells = <1>;
+- #size-cells = <1>;
+- ranges;
+-
+- interrupt-parent = <&gic>;
+-
+- xhci: usb@23000 {
+- #usb-cells = <0>;
+-
+- compatible = "generic-xhci";
+- reg = <0x00023000 0x1000>;
+- interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+- phys = <&usb3_phy>;
+- phy-names = "usb";
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- xhci_port1: port@1 {
+- reg = <1>;
+- #trigger-source-cells = <0>;
+- };
+- };
+- };
+-
+ gmac0: ethernet@24000 {
+ reg = <0x24000 0x800>;
+ };
+@@ -355,13 +252,6 @@
+ status = "disabled";
+ };
+
+- mdio: mdio@18003000 {
+- compatible = "brcm,iproc-mdio";
+- reg = <0x18003000 0x8>;
+- #size-cells = <0>;
+- #address-cells = <1>;
+- };
+-
+ mdio-mux@18003000 {
+ compatible = "mdio-mux-mmioreg", "mdio-mux";
+ mdio-parent-bus = <&mdio>;
+@@ -409,18 +299,7 @@
+ };
+
+ dmu-bus@1800c000 {
+- compatible = "simple-bus";
+- ranges = <0 0x1800c000 0x1000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ cru-bus@100 {
+- compatible = "brcm,ns-cru", "simple-mfd";
+- reg = <0x100 0x1a4>;
+- ranges;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ lcpll0: clock-controller@100 {
+ #clock-cells = <1>;
+ compatible = "brcm,nsp-lcpll0";
+@@ -440,53 +319,6 @@
+ "usbclk", "iprocfast",
+ "sata1", "sata2";
+ };
+-
+- usb2_phy: phy@164 {
+- compatible = "brcm,ns-usb2-phy";
+- reg = <0x164 0x4>;
+- brcm,syscon-clkset = <&cru_clkset>;
+- clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
+- clock-names = "phy-ref-clk";
+- #phy-cells = <0>;
+- };
+-
+- cru_clkset: syscon@180 {
+- compatible = "brcm,cru-clkset", "syscon";
+- reg = <0x180 0x4>;
+- };
+-
+- pinctrl: pinctrl@1c0 {
+- compatible = "brcm,bcm4708-pinmux";
+- reg = <0x1c0 0x24>;
+- reg-names = "cru_gpio_control";
+-
+- spi-pins {
+- groups = "spi_grp";
+- function = "spi";
+- };
+-
+- pinmux_i2c: i2c-pins {
+- groups = "i2c_grp";
+- function = "i2c";
+- };
+-
+- pinmux_pwm: pwm-pins {
+- groups = "pwm0_grp", "pwm1_grp",
+- "pwm2_grp", "pwm3_grp";
+- function = "pwm";
+- };
+-
+- pinmux_uart1: uart1-pins {
+- groups = "uart1_grp";
+- function = "uart1";
+- };
+- };
+-
+- thermal: thermal@2c0 {
+- compatible = "brcm,ns-thermal";
+- reg = <0x2c0 0x10>;
+- #thermal-sensor-cells = <0>;
+- };
+ };
+ };
+
+@@ -558,24 +390,4 @@
+ };
+ };
+ };
+-
+- thermal-zones {
+- cpu_thermal: cpu-thermal {
+- polling-delay-passive = <0>;
+- polling-delay = <1000>;
+- coefficients = <(-556) 418000>;
+- thermal-sensors = <&thermal>;
+-
+- trips {
+- cpu-crit {
+- temperature = <125000>;
+- hysteresis = <0>;
+- type = "critical";
+- };
+- };
+-
+- cooling-maps {
+- };
+- };
+- };
+ };
--- /dev/null
+From 916553449561c4f0b61c71b751b7bb583f5dddd4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Wed, 3 May 2023 14:16:11 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense Florian's code to the GPL 2.0+
+ / MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All BCM5301X device DTS files use dual licensing. Try the same for SoC.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230503121611.1629-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 36 ++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 39 ---------------------------------
+ 2 files changed, 36 insertions(+), 39 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -19,6 +19,8 @@
+
+ gpio-controller;
+ #gpio-cells = <2>;
++ interrupt-controller;
++ #interrupt-cells = <2>;
+ };
+
+ pcie0: pcie@12000 {
+@@ -109,6 +111,22 @@
+ };
+ };
+ };
++
++ gmac0: ethernet@24000 {
++ reg = <0x24000 0x800>;
++ };
++
++ gmac1: ethernet@25000 {
++ reg = <0x25000 0x800>;
++ };
++
++ gmac2: ethernet@26000 {
++ reg = <0x26000 0x800>;
++ };
++
++ gmac3: ethernet@27000 {
++ reg = <0x27000 0x800>;
++ };
+ };
+
+ mdio: mdio@18003000 {
+@@ -118,6 +136,24 @@
+ #address-cells = <1>;
+ };
+
++ rng: rng@18004000 {
++ compatible = "brcm,bcm5301x-rng";
++ reg = <0x18004000 0x14>;
++ };
++
++ srab: ethernet-switch@18007000 {
++ compatible = "brcm,bcm53011-srab", "brcm,bcm5301x-srab";
++ reg = <0x18007000 0x1000>;
++
++ status = "disabled";
++
++ /* ports are defined in board DTS */
++ ports {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ };
++ };
++
+ dmu-bus@1800c000 {
+ compatible = "simple-bus";
+ ranges = <0 0x1800c000 0x1000>;
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -218,30 +218,9 @@
+ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+
+- chipcommon@0 {
+- interrupt-controller;
+- #interrupt-cells = <2>;
+- };
+-
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
+ };
+-
+- gmac0: ethernet@24000 {
+- reg = <0x24000 0x800>;
+- };
+-
+- gmac1: ethernet@25000 {
+- reg = <0x25000 0x800>;
+- };
+-
+- gmac2: ethernet@26000 {
+- reg = <0x26000 0x800>;
+- };
+-
+- gmac3: ethernet@27000 {
+- reg = <0x27000 0x800>;
+- };
+ };
+
+ pwm: pwm@18002000 {
+@@ -322,24 +301,6 @@
+ };
+ };
+
+- srab: ethernet-switch@18007000 {
+- compatible = "brcm,bcm53011-srab", "brcm,bcm5301x-srab";
+- reg = <0x18007000 0x1000>;
+-
+- status = "disabled";
+-
+- /* ports are defined in board DTS */
+- ports {
+- #address-cells = <1>;
+- #size-cells = <0>;
+- };
+- };
+-
+- rng: rng@18004000 {
+- compatible = "brcm,bcm5301x-rng";
+- reg = <0x18004000 0x14>;
+- };
+-
+ nand_controller: nand-controller@18028000 {
+ compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
+ reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
--- /dev/null
+From d3c8e2c5757153bbfad70019ec1decbca86f3def Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Wed, 3 May 2023 14:28:30 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+There is no such property in the SPI controller binding documentation.
+Also Linux driver doesn't look for it.
+
+This fixes:
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: spi@18029200: Unevaluated properties are not allowed ('clock-names' was unexpected)
+ From schema: Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230503122830.3200-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm5301x.dtsi | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -335,7 +335,6 @@
+ "spi_lr_session_done",
+ "spi_lr_overread";
+ clocks = <&iprocmed>;
+- clock-names = "iprocmed";
+ num-cs = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
--- /dev/null
+From b3b3cd885ed39cb4b38319a1c4fa4e41db6fee72 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 15 May 2023 17:19:20 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense Hauke's code to the GPL 2.0+ /
+ MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Move code added by Hauke to the bcm-ns.dtsi which uses dual licensing.
+That syncs more Northstar code to be based on the same licensing schema.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Cc: Hauke Mehrtens <hauke@hauke-m.de>
+Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
+Link: https://lore.kernel.org/r/20230515151921.25021-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 90 +++++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 85 -------------------------------
+ 2 files changed, 90 insertions(+), 85 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -1,4 +1,7 @@
+ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++/*
++ * Copyright 2013-2014 Hauke Mehrtens <hauke@hauke-m.de>
++ */
+
+ #include <dt-bindings/clock/bcm-nsp.h>
+ #include <dt-bindings/gpio/gpio.h>
+@@ -7,6 +10,81 @@
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ / {
++ interrupt-parent = <&gic>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ chipcommon-a-bus@18000000 {
++ compatible = "simple-bus";
++ ranges = <0x00000000 0x18000000 0x00001000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ uart0: serial@300 {
++ compatible = "ns16550";
++ reg = <0x0300 0x100>;
++ interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++ clocks = <&iprocslow>;
++ status = "disabled";
++ };
++
++ uart1: serial@400 {
++ compatible = "ns16550";
++ reg = <0x0400 0x100>;
++ interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
++ clocks = <&iprocslow>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinmux_uart1>;
++ status = "disabled";
++ };
++ };
++
++ mpcore-bus@19000000 {
++ compatible = "simple-bus";
++ ranges = <0x00000000 0x19000000 0x00023000>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ scu@20000 {
++ compatible = "arm,cortex-a9-scu";
++ reg = <0x20000 0x100>;
++ };
++
++ timer@20200 {
++ compatible = "arm,cortex-a9-global-timer";
++ reg = <0x20200 0x100>;
++ interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
++ clocks = <&periph_clk>;
++ };
++
++ timer@20600 {
++ compatible = "arm,cortex-a9-twd-timer";
++ reg = <0x20600 0x20>;
++ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
++ IRQ_TYPE_EDGE_RISING)>;
++ clocks = <&periph_clk>;
++ };
++
++ gic: interrupt-controller@21000 {
++ compatible = "arm,cortex-a9-gic";
++ #interrupt-cells = <3>;
++ #address-cells = <0>;
++ interrupt-controller;
++ reg = <0x21000 0x1000>,
++ <0x20100 0x100>;
++ };
++
++ L2: cache-controller@22000 {
++ compatible = "arm,pl310-cache";
++ reg = <0x22000 0x1000>;
++ cache-unified;
++ arm,shared-override;
++ prefetch-data = <1>;
++ prefetch-instr = <1>;
++ cache-level = <2>;
++ };
++ };
++
+ axi@18000000 {
+ compatible = "brcm,bus-axi";
+ reg = <0x18000000 0x1000>;
+@@ -216,6 +294,18 @@
+ };
+ };
+
++ nand_controller: nand-controller@18028000 {
++ compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
++ reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
++ reg-names = "nand", "iproc-idm", "iproc-ext";
++ interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
++
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ brcm,nand-has-wp;
++ };
++
+ thermal-zones {
+ cpu_thermal: cpu-thermal {
+ polling-delay-passive = <0>;
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -11,41 +11,7 @@
+ #include "bcm-ns.dtsi"
+
+ / {
+- #address-cells = <1>;
+- #size-cells = <1>;
+- interrupt-parent = <&gic>;
+-
+- chipcommon-a-bus@18000000 {
+- compatible = "simple-bus";
+- ranges = <0x00000000 0x18000000 0x00001000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+- uart0: serial@300 {
+- compatible = "ns16550";
+- reg = <0x0300 0x100>;
+- interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+- clocks = <&iprocslow>;
+- status = "disabled";
+- };
+-
+- uart1: serial@400 {
+- compatible = "ns16550";
+- reg = <0x0400 0x100>;
+- interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+- clocks = <&iprocslow>;
+- pinctrl-names = "default";
+- pinctrl-0 = <&pinmux_uart1>;
+- status = "disabled";
+- };
+- };
+-
+ mpcore-bus@19000000 {
+- compatible = "simple-bus";
+- ranges = <0x00000000 0x19000000 0x00023000>;
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+ a9pll: arm_clk@0 {
+ #clock-cells = <0>;
+ compatible = "brcm,nsp-armpll";
+@@ -53,26 +19,6 @@
+ reg = <0x00000 0x1000>;
+ };
+
+- scu@20000 {
+- compatible = "arm,cortex-a9-scu";
+- reg = <0x20000 0x100>;
+- };
+-
+- timer@20200 {
+- compatible = "arm,cortex-a9-global-timer";
+- reg = <0x20200 0x100>;
+- interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
+- clocks = <&periph_clk>;
+- };
+-
+- timer@20600 {
+- compatible = "arm,cortex-a9-twd-timer";
+- reg = <0x20600 0x20>;
+- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
+- IRQ_TYPE_EDGE_RISING)>;
+- clocks = <&periph_clk>;
+- };
+-
+ watchdog@20620 {
+ compatible = "arm,cortex-a9-twd-wdt";
+ reg = <0x20620 0x20>;
+@@ -80,25 +26,6 @@
+ IRQ_TYPE_EDGE_RISING)>;
+ clocks = <&periph_clk>;
+ };
+-
+- gic: interrupt-controller@21000 {
+- compatible = "arm,cortex-a9-gic";
+- #interrupt-cells = <3>;
+- #address-cells = <0>;
+- interrupt-controller;
+- reg = <0x21000 0x1000>,
+- <0x20100 0x100>;
+- };
+-
+- L2: cache-controller@22000 {
+- compatible = "arm,pl310-cache";
+- reg = <0x22000 0x1000>;
+- cache-unified;
+- arm,shared-override;
+- prefetch-data = <1>;
+- prefetch-instr = <1>;
+- cache-level = <2>;
+- };
+ };
+
+ pmu {
+@@ -301,18 +228,6 @@
+ };
+ };
+
+- nand_controller: nand-controller@18028000 {
+- compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
+- reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
+- reg-names = "nand", "iproc-idm", "iproc-ext";
+- interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+-
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- brcm,nand-has-wp;
+- };
+-
+ spi@18029200 {
+ compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
+ reg = <0x18029200 0x184>,
--- /dev/null
+From 3b3e35b279bee5e51580c648399e20323467f58c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 15 May 2023 17:19:21 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense AXI interrupts code to the GPL
+ 2.0+ / MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Those entries were added by:
+1. Hauke in commits dec378827c4a ("ARM: BCM5301X: Add IRQs to Broadcom's
+ bus-axi in DTS file") and 1f80de6863ca ("ARM: BCM5301X: add IRQ
+ numbers for PCIe controller")
+2. Florian in the commit 2cd0c0202f13 ("ARM: dts: BCM5301X: Add SRAB
+ interrupts")
+
+Move them to the bcm-ns.dtsi which uses dual licensing. That syncs more
+Northstar code to be based on the same licensing schema.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Cc: Hauke Mehrtens <hauke@hauke-m.de>
+Cc: Florian Fainelli <f.fainelli@gmail.com>
+Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
+Link: https://lore.kernel.org/r/20230515151921.25021-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 73 ++++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 75 ---------------------------------
+ 2 files changed, 73 insertions(+), 75 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -92,6 +92,79 @@
+ #address-cells = <1>;
+ #size-cells = <1>;
+
++ #interrupt-cells = <1>;
++ interrupt-map-mask = <0x000fffff 0xffff>;
++ interrupt-map =
++ /* ChipCommon */
++ <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Switch Register Access Block */
++ <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* PCIe Controller 0 */
++ <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 2 &gic GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 3 &gic GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 4 &gic GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00012000 5 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* PCIe Controller 1 */
++ <0x00013000 0 &gic GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 1 &gic GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 2 &gic GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 3 &gic GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 4 &gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00013000 5 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* PCIe Controller 2 */
++ <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 2 &gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 3 &gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 4 &gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 5 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* USB 2.0 Controller */
++ <0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* USB 3.0 Controller */
++ <0x00023000 0 &gic GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 0 */
++ <0x00024000 0 &gic GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 1 */
++ <0x00025000 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 2 */
++ <0x00026000 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* Ethernet Controller 3 */
++ <0x00027000 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
++
++ /* NAND Controller */
++ <0x00028000 0 &gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 1 &gic GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 2 &gic GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 3 &gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 4 &gic GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 5 &gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
++
+ chipcommon: chipcommon@0 {
+ reg = <0x00000000 0x1000>;
+
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -3,8 +3,6 @@
+ * Generic DTS part for all BCM53010, BCM53011, BCM53012, BCM53014, BCM53015,
+ * BCM53016, BCM53017, BCM53018, BCM4707, BCM4708 and BCM4709 SoCs
+ *
+- * Copyright 2013-2014 Hauke Mehrtens <hauke@hauke-m.de>
+- *
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+@@ -72,79 +70,6 @@
+ };
+
+ axi@18000000 {
+- #interrupt-cells = <1>;
+- interrupt-map-mask = <0x000fffff 0xffff>;
+- interrupt-map =
+- /* ChipCommon */
+- <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Switch Register Access Block */
+- <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* PCIe Controller 0 */
+- <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 2 &gic GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 3 &gic GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 4 &gic GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00012000 5 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* PCIe Controller 1 */
+- <0x00013000 0 &gic GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 1 &gic GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 2 &gic GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 3 &gic GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 4 &gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00013000 5 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* PCIe Controller 2 */
+- <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 2 &gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 3 &gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 4 &gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 5 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* USB 2.0 Controller */
+- <0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* USB 3.0 Controller */
+- <0x00023000 0 &gic GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 0 */
+- <0x00024000 0 &gic GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 1 */
+- <0x00025000 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 2 */
+- <0x00026000 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* Ethernet Controller 3 */
+- <0x00027000 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+-
+- /* NAND Controller */
+- <0x00028000 0 &gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 1 &gic GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 2 &gic GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 3 &gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 4 &gic GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 5 &gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+-
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
+ };
--- /dev/null
+From dfa6570eb5ce2f24059caadbe2ed70034b5337bc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 15 May 2023 10:33:08 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Specify MAC addresses on Luxul devices
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use NRAM (NVMEM device) and its "et0macaddr" variable (NVMEM cell) to
+point Ethernet devices to their MAC addresses.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230515083308.7612-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 13 +++++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 11 +++++++++++
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 5 ++++-
+ 10 files changed, 113 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -20,6 +20,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -53,6 +61,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+@@ -24,6 +24,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ nand_controller: nand-controller@18028000 {
+ nand@0 {
+ partitions {
+@@ -60,6 +68,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -20,6 +20,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -53,6 +61,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -24,6 +24,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -106,6 +110,11 @@
+ vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -137,6 +146,8 @@
+ port@4 {
+ reg = <4>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 5>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
+@@ -25,6 +25,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -61,6 +65,11 @@
+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -76,6 +85,8 @@
+ port@0 {
+ reg = <0>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 1>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
+@@ -20,6 +20,14 @@
+ reg = <0x00000000 0x08000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -51,6 +59,11 @@
+ };
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
+@@ -25,6 +25,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -61,6 +65,11 @@
+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -76,6 +85,8 @@
+ port@0 {
+ reg = <0>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 1>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
+@@ -22,6 +22,14 @@
+ <0x88000000 0x18000000>;
+ };
+
++ nvram@1eff0000 {
++ compatible = "brcm,nvram";
++ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ };
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -47,6 +55,11 @@
+ status = "okay";
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -25,6 +25,10 @@
+ nvram@1eff0000 {
+ compatible = "brcm,nvram";
+ reg = <0x1eff0000 0x10000>;
++
++ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
++ };
+ };
+
+ leds {
+@@ -101,6 +105,11 @@
+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac0 {
++ nvmem-cells = <&et0macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &spi_nor {
+ status = "okay";
+ };
+@@ -136,6 +145,8 @@
+ port@4 {
+ reg = <4>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 5>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
+@@ -27,6 +27,7 @@
+ reg = <0x1eff0000 0x10000>;
+
+ et0macaddr: et0macaddr {
++ #nvmem-cell-cells = <1>;
+ };
+ };
+
+@@ -76,7 +77,7 @@
+ };
+
+ &gmac0 {
+- nvmem-cells = <&et0macaddr>;
++ nvmem-cells = <&et0macaddr 0>;
+ nvmem-cell-names = "mac-address";
+ };
+
+@@ -119,6 +120,8 @@
+ port@4 {
+ reg = <4>;
+ label = "wan";
++ nvmem-cells = <&et0macaddr 5>;
++ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
--- /dev/null
+From 9d7121f1d2faa0b50bf5b462adcd2dd91970c45e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Sat, 20 May 2023 13:26:01 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Use updated device "compatible" strings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Northstar binding was updated to use minus/hyphen char between model and
+version for all devices.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20230520112601.11821-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 2 +-
+ arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 2 +-
+ arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 2 +-
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 2 +-
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 2 +-
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -8,7 +8,7 @@
+ #include "bcm4708.dtsi"
+
+ / {
+- compatible = "luxul,xap-1510v1", "brcm,bcm4708";
++ compatible = "luxul,xap-1510-v1", "brcm,bcm4708";
+ model = "Luxul XAP-1510 V1";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+@@ -13,7 +13,7 @@
+ #include "bcm5301x-nand-cs0-bch8.dtsi"
+
+ / {
+- compatible = "netgear,r6250v1", "brcm,bcm4708";
++ compatible = "netgear,r6250-v1", "brcm,bcm4708";
+ model = "Netgear R6250 V1 (BCM4708)";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+@@ -12,7 +12,7 @@
+ #include "bcm5301x-nand-cs0-bch8.dtsi"
+
+ / {
+- compatible = "netgear,r6300v2", "brcm,bcm4708";
++ compatible = "netgear,r6300-v2", "brcm,bcm4708";
+ model = "Netgear R6300 V2 (BCM4708)";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -8,7 +8,7 @@
+ #include "bcm47081.dtsi"
+
+ / {
+- compatible = "luxul,xap-1410v1", "brcm,bcm47081", "brcm,bcm4708";
++ compatible = "luxul,xap-1410-v1", "brcm,bcm47081", "brcm,bcm4708";
+ model = "Luxul XAP-1410 V1";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -9,7 +9,7 @@
+ #include "bcm5301x-nand-cs0-bch4.dtsi"
+
+ / {
+- compatible = "luxul,xwr-1200v1", "brcm,bcm47081", "brcm,bcm4708";
++ compatible = "luxul,xwr-1200-v1", "brcm,bcm47081", "brcm,bcm4708";
+ model = "Luxul XWR-1200 V1";
+
+ chosen {
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -9,7 +9,7 @@
+ #include "bcm5301x-nand-cs0-bch4.dtsi"
+
+ / {
+- compatible = "luxul,xwr-3100v1", "brcm,bcm47094", "brcm,bcm4708";
++ compatible = "luxul,xwr-3100-v1", "brcm,bcm47094", "brcm,bcm4708";
+ model = "Luxul XWR-3100 V1";
+
+ chosen {
--- /dev/null
+From 04afb51c1dce90051487d3c7b70a1b1b246ce29a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 17:10:23 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Use updated "spi-gpio" binding properties
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Switch away from deprecated properties.
+
+This fixes:
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: gpio-sck: False schema does not allow [[6, 7, 0]]
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: gpio-mosi: False schema does not allow [[6, 4, 0]]
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: 'sck-gpios' is a required property
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dtb: spi: Unevaluated properties are not allowed ('gpio-mosi', 'gpio-sck' were unexpected)
+ From schema: Documentation/devicetree/bindings/spi/spi-gpio.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602151023.8607-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 4 ++--
+ arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 4 ++--
+ arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 4 ++--
+ arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 4 ++--
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
+@@ -16,8 +16,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+@@ -28,8 +28,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+@@ -28,8 +28,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
+@@ -28,8 +28,8 @@
+ spi {
+ compatible = "spi-gpio";
+ num-chipselects = <1>;
+- gpio-sck = <&chipcommon 7 0>;
+- gpio-mosi = <&chipcommon 4 0>;
++ sck-gpios = <&chipcommon 7 0>;
++ mosi-gpios = <&chipcommon 4 0>;
+ cs-gpios = <&chipcommon 6 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
--- /dev/null
+From c3acdd4901192bc69dc577012663d5abae21661e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 15:34:54 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Drop invalid #usb-cells
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Such property simply doesn't exist (is not documented or used anywhere).
+
+This fixes:
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: Unevaluated properties are not allowed ('#usb-cells' was unexpected)
+ From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: Unevaluated properties are not allowed ('#usb-cells' was unexpected)
+ From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@23000: Unevaluated properties are not allowed ('#usb-cells' was unexpected)
+ From schema: Documentation/devicetree/bindings/usb/generic-xhci.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602133455.7441-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -192,8 +192,6 @@
+ interrupt-parent = <&gic>;
+
+ ehci: usb@21000 {
+- #usb-cells = <0>;
+-
+ compatible = "generic-ehci";
+ reg = <0x00021000 0x1000>;
+ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+@@ -214,8 +212,6 @@
+ };
+
+ ohci: usb@22000 {
+- #usb-cells = <0>;
+-
+ compatible = "generic-ohci";
+ reg = <0x00022000 0x1000>;
+ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+@@ -245,8 +241,6 @@
+ interrupt-parent = <&gic>;
+
+ xhci: usb@23000 {
+- #usb-cells = <0>;
+-
+ compatible = "generic-xhci";
+ reg = <0x00023000 0x1000>;
+ interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
--- /dev/null
+From 676bf7d062c14191c3fc12f1e36e1f3809041483 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 15:34:55 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Drop invalid properties from Meraki MR32
+ keys
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes:
+arch/arm/boot/dts/bcm53015-meraki-mr26.dtb: keys: '#address-cells', '#size-cells' do not match any of the regexes: '^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$', 'pinctrl-[0-9]+'
+ From schema: Documentation/devicetree/bindings/input/gpio-keys.yaml
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602133455.7441-2-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -39,8 +39,6 @@
+
+ keys {
+ compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+
+ key-restart {
+ label = "Reset";
--- /dev/null
+From 1d5682ccc7d6088179b6cfd50a3e3bb6d2b0527e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 5 Jun 2023 08:10:49 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Relicense Christian's code to the GPL
+ 2.0+ / MIT
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Move code added by Christian to the bcm-ns.dtsi which uses dual
+licensing. That syncs more Northstar code to be based on the same
+licensing schema.
+
+Cc: Christian Lamparter <chunkeey@gmail.com>
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Acked-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/20230605061049.16136-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 21 +++++++++++++++++++++
+ arch/arm/boot/dts/bcm5301x.dtsi | 23 -----------------------
+ 2 files changed, 21 insertions(+), 23 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -182,6 +182,10 @@
+ reg = <0x00013000 0x1000>;
+ };
+
++ pcie2: pcie@14000 {
++ reg = <0x00014000 0x1000>;
++ };
++
+ usb2: usb2@21000 {
+ reg = <0x00021000 0x1000>;
+
+@@ -274,6 +278,14 @@
+ };
+ };
+
++ pwm: pwm@18002000 {
++ compatible = "brcm,iproc-pwm";
++ reg = <0x18002000 0x28>;
++ clocks = <&osc>;
++ #pwm-cells = <3>;
++ status = "disabled";
++ };
++
+ mdio: mdio@18003000 {
+ compatible = "brcm,iproc-mdio";
+ reg = <0x18003000 0x8>;
+@@ -299,6 +311,15 @@
+ };
+ };
+
++ uart2: serial@18008000 {
++ compatible = "ns16550a";
++ reg = <0x18008000 0x20>;
++ clocks = <&iprocslow>;
++ interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
++ reg-shift = <2>;
++ status = "disabled";
++ };
++
+ dmu-bus@1800c000 {
+ compatible = "simple-bus";
+ ranges = <0 0x1800c000 0x1000>;
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -69,20 +69,6 @@
+ };
+ };
+
+- axi@18000000 {
+- pcie2: pcie@14000 {
+- reg = <0x00014000 0x1000>;
+- };
+- };
+-
+- pwm: pwm@18002000 {
+- compatible = "brcm,iproc-pwm";
+- reg = <0x18002000 0x28>;
+- clocks = <&osc>;
+- #pwm-cells = <3>;
+- status = "disabled";
+- };
+-
+ mdio-mux@18003000 {
+ compatible = "mdio-mux-mmioreg", "mdio-mux";
+ mdio-parent-bus = <&mdio>;
+@@ -110,15 +96,6 @@
+ reg = <0x18105000 0x1000>;
+ };
+
+- uart2: serial@18008000 {
+- compatible = "ns16550a";
+- reg = <0x18008000 0x20>;
+- clocks = <&iprocslow>;
+- interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+- reg-shift = <2>;
+- status = "disabled";
+- };
+-
+ i2c0: i2c@18009000 {
+ compatible = "brcm,iproc-i2c";
+ reg = <0x18009000 0x50>;
--- /dev/null
+From ba4aebce23b2affb810b8a60eae853674d2cded2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Mon, 5 Jun 2023 15:21:09 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Describe switch ports in the main DTS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+All Northstar SoCs have BCM5301x switches (BCM53011, BCM53012) with 8
+ports (0-8 without 6). By design 3 switch ports (5, 7 and 8) are
+hardwired to 3 on-SoC Ethernet interfaces. Switch port 8 requires
+forcing link state.
+
+It seems that global Northstar .dtsi file is the best place to describe
+those hw details. Only device specific bits (like labels) should go to
+device .dts files.
+
+This seems to fit well with a tiny exception of Asus RT-AC88U which
+somehow was designed to have switch 5 connected to an extra switch. This
+case was simply handled with a /delete-property/.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Reviewed-by: Christian Lamparter <chunkeey@gmail.com> (MR32+MR26)
+Link: https://lore.kernel.org/r/20230605132109.7933-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 41 ++++++++++++++++++-
+ .../bcm4708-buffalo-wzr-1166dhp-common.dtsi | 7 ----
+ arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 4 --
+ arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 3 --
+ arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 7 ----
+ arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 7 ----
+ .../boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 7 ----
+ arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 3 --
+ arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 7 ----
+ arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 12 ------
+ arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 17 +-------
+ arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 12 ------
+ arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 12 ------
+ .../boot/dts/bcm47094-linksys-panamera.dts | 34 ++++-----------
+ arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 7 ----
+ arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 4 --
+ arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 7 ----
+ arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 3 --
+ arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 7 ----
+ .../boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 7 ----
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 3 --
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 3 --
+ 22 files changed, 51 insertions(+), 163 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -304,10 +304,49 @@
+
+ status = "disabled";
+
+- /* ports are defined in board DTS */
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
++
++ port@0 {
++ reg = <0>;
++ };
++
++ port@1 {
++ reg = <1>;
++ };
++
++ port@2 {
++ reg = <2>;
++ };
++
++ port@3 {
++ reg = <3>;
++ };
++
++ port@4 {
++ reg = <4>;
++ };
++
++ port@5 {
++ reg = <5>;
++ ethernet = <&gmac0>;
++ };
++
++ port@7 {
++ reg = <7>;
++ ethernet = <&gmac1>;
++ };
++
++ port@8 {
++ reg = <8>;
++ ethernet = <&gmac2>;
++
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
+ };
+ };
+
+--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
++++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
+@@ -159,34 +159,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+@@ -75,19 +75,15 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+@@ -82,14 +82,11 @@
+
+ ports {
+ port@4 {
+- reg = <4>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
++++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+@@ -100,34 +100,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
++++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+@@ -123,34 +123,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+@@ -123,34 +123,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
+@@ -75,14 +75,11 @@
+
+ ports {
+ port@4 {
+- reg = <4>;
+ label = "poe";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+@@ -124,36 +124,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+@@ -191,39 +191,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@8 {
+- reg = <8>;
+ label = "cpu";
+- ethernet = <&gmac2>;
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
++++ b/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
+@@ -181,32 +181,28 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ sw0_p5: port@5 {
+- reg = <5>;
++ /delete-property/ethernet;
++
+ label = "extsw";
+ phy-mode = "rgmii";
+
+@@ -218,8 +214,6 @@
+ };
+
+ port@7 {
+- reg = <7>;
+- ethernet = <&gmac1>;
+ label = "cpu";
+
+ fixed-link {
+@@ -229,14 +223,7 @@
+ };
+
+ port@8 {
+- reg = <8>;
+- ethernet = <&gmac2>;
+ label = "cpu";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+@@ -124,39 +124,27 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@8 {
+- reg = <8>;
+ label = "cpu";
+- ethernet = <&gmac2>;
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
+@@ -172,40 +172,28 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan1";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan2";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan4";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@8 {
+- reg = <8>;
+ label = "cpu";
+- ethernet = <&gmac2>;
+ phy-mode = "rgmii";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
++++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
+@@ -207,29 +207,32 @@
+ dsa,member = <0 0>;
+
+ ports {
++ sw0_p0: port@0 {
++ label = "extsw";
++
++ fixed-link {
++ speed = <1000>;
++ full-duplex;
++ };
++ };
++
+ port@1 {
+- reg = <1>;
+ label = "lan7";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan4";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan8";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ };
+
+ port@5 {
+- reg = <5>;
+- ethernet = <&gmac0>;
+ label = "cpu";
+ status = "disabled";
+
+@@ -240,8 +243,6 @@
+ };
+
+ port@7 {
+- reg = <7>;
+- ethernet = <&gmac1>;
+ label = "cpu";
+ status = "disabled";
+
+@@ -252,24 +253,7 @@
+ };
+
+ port@8 {
+- reg = <8>;
+- ethernet = <&gmac2>;
+ label = "cpu";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+- };
+-
+- sw0_p0: port@0 {
+- reg = <0>;
+- label = "extsw";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
+@@ -83,36 +83,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 1>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan4";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan2";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "lan1";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
+@@ -73,19 +73,15 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
+@@ -83,36 +83,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 1>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan4";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan3";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan2";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "lan1";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
+@@ -69,14 +69,11 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+@@ -123,36 +123,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
+@@ -98,36 +98,29 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "lan4";
+ };
+
+ port@1 {
+- reg = <1>;
+ label = "lan3";
+ };
+
+ port@2 {
+- reg = <2>;
+ label = "lan2";
+ };
+
+ port@3 {
+- reg = <3>;
+ label = "lan1";
+ };
+
+ port@4 {
+- reg = <4>;
+ label = "wan";
+ nvmem-cells = <&et0macaddr 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -115,14 +115,11 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+
+ fixed-link {
+ speed = <1000>;
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -176,14 +176,11 @@
+
+ ports {
+ port@0 {
+- reg = <0>;
+ label = "poe";
+ };
+
+ port@5 {
+- reg = <5>;
+ label = "cpu";
+- ethernet = <&gmac0>;
+
+ fixed-link {
+ speed = <1000>;
--- /dev/null
+From a6a1a156f5debaebf9f61850d111b966e9be9ee9 Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Thu, 8 Jun 2023 17:36:27 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: MR26: MR32: remove bogus nand-ecc-algo
+ property
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| bcm53015-meraki-mr26.dtb: nand-controller@18028000:
+| nand@0:nand-ecc-algo:0: 'hw' is not one of ['hamming', 'bch', 'rs']
+| From schema: Documentation/[...]/nand-controller.yaml
+| bcm53016-meraki-mr32.dtb: nand-controller@18028000:
+| nand@0:nand-ecc-algo:0: 'hw' is not one of ['hamming', 'bch', 'rs']
+| From schema: Documentation/[...]/nand-controller.yaml
+
+original ECC values for these old Merakis are sadly not
+provided by the vendor. It looks like Meraki just stuck
+with what Broadcom's SDK was doing... which left this
+up to the proprietary nand driver.
+
+Note: The invalid setting was and is handled by brcmnand. It
+falls back to "bch" in brcmnand_setup_dev() when ecc.algo is
+set to NAND_ECC_ALGO_UNKNOWN (since "hw" is not in the list
+above).
+
+A correct nand-ecc-algo = "bch"; is already specified in the
+included "bcm5301x-nand-cs0-bch8.dtsi". So this line can be
+dropped.
+
+Reported-by: Rafał Miłecki <zajec5@gmail.com> (per Mail)
+Fixes: 935327a73553 ("ARM: dts: BCM5301X: Add DT for Meraki MR26")
+Fixes: ec88a9c344d9 ("ARM: BCM5301X: Add DT for Meraki MR32")
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/2c4d00dd40124c2ddc0b139cbce7531b108f9052.1686238550.git.chunkeey@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 2 --
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 --
+ 2 files changed, 4 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -72,8 +72,6 @@
+ };
+
+ &nandcs {
+- nand-ecc-algo = "hw";
+-
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <0x1>;
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -125,8 +125,6 @@
+ };
+
+ &nandcs {
+- nand-ecc-algo = "hw";
+-
+ partitions {
+ /*
+ * The partition autodetection does not work for this device.
--- /dev/null
+From d68b2f7d7d06872450d4f39d84d5926d7e7ae88c Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Thu, 8 Jun 2023 17:36:28 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: MR32: remove partition index numbers
+
+removes the partition indexes in the node names under.
+This brings the device tree source in line with others.
+
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/627f57d568030a56499361790524b4d4f3381619.1686238550.git.chunkeey@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -138,31 +138,31 @@
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+
+- partition0@0 {
++ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x100000>;
+ read-only;
+ };
+
+- partition1@100000 {
++ partition@100000 {
+ label = "bootkernel1";
+ reg = <0x100000 0x300000>;
+ read-only;
+ };
+
+- partition2@400000 {
++ partition@400000 {
+ label = "nvram";
+ reg = <0x400000 0x100000>;
+ read-only;
+ };
+
+- partition3@500000 {
++ partition@500000 {
+ label = "bootkernel2";
+ reg = <0x500000 0x300000>;
+ read-only;
+ };
+
+- partition4@800000 {
++ partition@800000 {
+ label = "ubi";
+ reg = <0x800000 0x7780000>;
+ };
--- /dev/null
+From fd274b733bfdde3ca72f0fa2a37f032f3a8c402c Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Thu, 8 Jun 2023 17:36:29 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: fix duplex-full => full-duplex
+
+this typo was found by the dtbs_check
+| ports:port@5:fixed-link: 'oneOf' conditional failed,
+| {'speed': [[1000]], 'duplex-full': True} is not of type 'array'
+| 'duplex-full' does not match any of the regexes: 'pinctrl-[0-]..."
+
+this should have been full-duplex;
+
+Fixes: 935327a73553 ("ARM: dts: BCM5301X: Add DT for Meraki MR26")
+Fixes: ec88a9c344d9 ("ARM: BCM5301X: Add DT for Meraki MR32")
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Link: https://lore.kernel.org/r/50522f45566951a9eabd22820647924cc6b4a264.1686238550.git.chunkeey@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 2 +-
+ arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
++++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
+@@ -121,7 +121,7 @@
+
+ fixed-link {
+ speed = <1000>;
+- duplex-full;
++ full-duplex;
+ };
+ };
+ };
+--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts
+@@ -182,7 +182,7 @@
+
+ fixed-link {
+ speed = <1000>;
+- duplex-full;
++ full-duplex;
+ };
+ };
+ };
--- /dev/null
+From 752a63b8dbe6cc6900efd1035bea427a778a4b55 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 2 Jun 2023 15:59:25 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Add Netgear R8000 WiFi regulator mappings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This allows setting FullMAC firmware regulatory domain.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230602135925.14143-3-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
++++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+@@ -137,8 +137,10 @@
+ #size-cells = <2>;
+
+ wifi@0,1,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5735000 5835000>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
+ };
+ };
+ };
+@@ -159,6 +161,19 @@
+ #address-cells = <3>;
+ #size-cells = <2>;
+
++ bridge@1,0 {
++ reg = <0x800 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++
++ wifi@0,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
++ reg = <0x0000 0 0 0 0>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ };
++ };
++
+ bridge@1,2,2 {
+ reg = <0x1000 0 0 0 0>;
+
+@@ -166,8 +181,10 @@
+ #size-cells = <2>;
+
+ wifi@1,4,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5170000 5730000>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
+ };
+ };
+ };
--- /dev/null
+From b67cad33176e472df6d16a24ee7624299bdcd5d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Fri, 16 Jun 2023 12:58:27 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Add cells sizes to PCIe nodes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes:
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@12000: '#address-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@12000: '#size-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@13000: '#address-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@13000: '#size-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@14000: '#address-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: pcie@14000: '#size-cells' is a required property
+ From schema: /lib/python3.10/site-packages/dtschema/schemas/pci/pci-bus.yaml
+
+Two properties that need to be added later are "device_type" and
+"ranges". Adding "device_type" on its own causes a new warning and the
+value of "ranges" needs to be determined yet.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Link: https://lore.kernel.org/r/20230616105827.21656-1-zajec5@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/bcm-ns.dtsi | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/bcm-ns.dtsi
+@@ -176,14 +176,23 @@
+
+ pcie0: pcie@12000 {
+ reg = <0x00012000 0x1000>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
+ };
+
+ pcie1: pcie@13000 {
+ reg = <0x00013000 0x1000>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
+ };
+
+ pcie2: pcie@14000 {
+ reg = <0x00014000 0x1000>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
+ };
+
+ usb2: usb2@21000 {
+++ /dev/null
-From c8ee9f119bfb4244f76c9971c341ec06b49332cd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Tue, 8 Nov 2022 12:07:08 +0100
-Subject: [PATCH] ARM: dts: BCM5301X: Correct description of TP-Link partitions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-TP-Link routers have flash space partitioned according to the partitions
-table. It may look like fixed partitioning but those partitions can be
-actually reorganized. New can be added (or some removed), offsets and
-sizes may change.
-
-Fix DT to use binding for the TP-Link SafeLoader partitioning method.
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Link: https://lore.kernel.org/r/20221108110708.13693-1-zajec5@gmail.com
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- .../boot/dts/bcm47081-tplink-archer-c5-v2.dts | 25 ++++---------------
- .../boot/dts/bcm4709-tplink-archer-c9-v1.dts | 25 ++++---------------
- 2 files changed, 10 insertions(+), 40 deletions(-)
-
---- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
-+++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
-@@ -95,30 +95,15 @@
- status = "okay";
-
- partitions {
-- compatible = "fixed-partitions";
-- #address-cells = <1>;
-- #size-cells = <1>;
-+ compatible = "tplink,safeloader-partitions";
-+ partitions-table-offset = <0xe50000>;
-
-- boot@0 {
-- label = "boot";
-- reg = <0x000000 0x040000>;
-- read-only;
-- };
--
-- os-image@100000 {
-- label = "os-image";
-- reg = <0x040000 0x200000>;
-+ partition-os-image {
- compatible = "brcm,trx";
- };
-
-- rootfs@240000 {
-- label = "rootfs";
-- reg = <0x240000 0xc00000>;
-- };
--
-- nvram@ff0000 {
-- label = "nvram";
-- reg = <0xff0000 0x010000>;
-+ partition-file-system {
-+ linux,rootfs;
- };
- };
- };
---- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
-+++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
-@@ -104,30 +104,15 @@
- status = "okay";
-
- partitions {
-- compatible = "fixed-partitions";
-- #address-cells = <1>;
-- #size-cells = <1>;
-+ compatible = "tplink,safeloader-partitions";
-+ partitions-table-offset = <0xe50000>;
-
-- boot@0 {
-- label = "boot";
-- reg = <0x000000 0x040000>;
-- read-only;
-- };
--
-- os-image@100000 {
-- label = "os-image";
-- reg = <0x040000 0x200000>;
-+ partition-os-image {
- compatible = "brcm,trx";
- };
-
-- rootfs@240000 {
-- label = "rootfs";
-- reg = <0x240000 0xc00000>;
-- };
--
-- nvram@ff0000 {
-- label = "nvram";
-- reg = <0xff0000 0x010000>;
-+ partition-file-system {
-+ linux,rootfs;
- };
- };
- };
+++ /dev/null
-From b1ba87897ceda8e49a47aa92832dd7bff8583e21 Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Mon, 7 Nov 2022 14:41:04 +0100
-Subject: [PATCH] ARM: dts: bcm47094: Add devicetree for D-Link DIR-890L
-
-This adds a device tree for the D-Link DIR-890L. This device
-is very similar to D-Link DIR-885L, the differences are detailed
-as a comment in the DTS file.
-
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Link: https://lore.kernel.org/r/20221107134104.1422169-2-linus.walleij@linaro.org
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm/boot/dts/Makefile | 1 +
- arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 211 ++++++++++++++++++
- 2 files changed, 212 insertions(+)
- create mode 100644 arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
-
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -129,6 +129,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
- bcm4709-tplink-archer-c9-v1.dtb \
- bcm47094-asus-rt-ac88u.dtb \
- bcm47094-dlink-dir-885l.dtb \
-+ bcm47094-dlink-dir-890l.dtb \
- bcm47094-linksys-panamera.dtb \
- bcm47094-luxul-abr-4500.dtb \
- bcm47094-luxul-xap-1610.dtb \
---- /dev/null
-+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
-@@ -0,0 +1,211 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/*
-+ * Device tree for D-Link DIR-890L
-+ * D-Link calls this board "WRGAC36"
-+ * this router has the same looks and form factor as D-Link DIR-885L.
-+ *
-+ * Some differences from DIR-885L include a separate USB2 port, separate LEDs
-+ * for USB2 and USB3, a separate VCC supply for the USB2 slot and no
-+ * router/extender switch is mounted (there is an empty mount point on the
-+ * PCB) so this device is a pure router. Also the LAN ports are in the right
-+ * order.
-+ *
-+ * Based on the device tree for DIR-885L
-+ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
-+ * Copyright (C) 2022 Linus Walleij
-+ */
-+
-+/dts-v1/;
-+
-+#include "bcm47094.dtsi"
-+#include "bcm5301x-nand-cs0-bch1.dtsi"
-+
-+/ {
-+ compatible = "dlink,dir-890l", "brcm,bcm47094", "brcm,bcm4708";
-+ model = "D-Link DIR-890L";
-+
-+ chosen {
-+ bootargs = "console=ttyS0,115200 earlycon";
-+ };
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00000000 0x08000000>,
-+ <0x88000000 0x08000000>;
-+ };
-+
-+ leds {
-+ /*
-+ * LED information is derived from the boot log which
-+ * conveniently lists all the LEDs.
-+ */
-+ compatible = "gpio-leds";
-+
-+ power-white {
-+ label = "bcm53xx:white:power";
-+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "default-on";
-+ };
-+
-+ wan-white {
-+ label = "bcm53xx:white:wan";
-+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ power-amber {
-+ label = "bcm53xx:amber:power";
-+ gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ wan-amber {
-+ label = "bcm53xx:amber:wan";
-+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ usb3-white {
-+ label = "bcm53xx:white:usb3";
-+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
-+ trigger-sources = <&xhci_port1>;
-+ linux,default-trigger = "usbport";
-+ };
-+
-+ usb2-white {
-+ label = "bcm53xx:white:usb2";
-+ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
-+ trigger-sources = <&ohci_port1>, <&ehci_port1>;
-+ linux,default-trigger = "usbport";
-+ };
-+
-+ 2ghz {
-+ label = "bcm53xx:white:2ghz";
-+ gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ 5ghz {
-+ label = "bcm53xx:white:5ghz";
-+ gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ gpio-keys {
-+ compatible = "gpio-keys";
-+
-+ button-wps {
-+ label = "WPS";
-+ linux,code = <KEY_WPS_BUTTON>;
-+ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ /* Called "factory reset" in the vendor dmesg */
-+ button-restart {
-+ label = "Reset";
-+ linux,code = <KEY_RESTART>;
-+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ /*
-+ * The flash memory is memory mapped at 0x1e000000-0x1fffffff
-+ * 64KB blocks; total size 2MB, same that can be
-+ * found attached to the spi_nor SPI controller.
-+ */
-+ nvram@1e1f0000 {
-+ compatible = "brcm,nvram";
-+ reg = <0x1e1f0000 0x00010000>;
-+
-+ et0macaddr: et0macaddr {
-+ };
-+ };
-+};
-+
-+&gmac2 {
-+ /*
-+ * The NVRAM curiously does not contain a MAC address
-+ * for et2 so since that is the only ethernet interface
-+ * actually in use on the platform, we use this et0 MAC
-+ * address for et2.
-+ */
-+ nvmem-cells = <&et0macaddr>;
-+ nvmem-cell-names = "mac-address";
-+};
-+
-+&spi_nor {
-+ status = "okay";
-+};
-+
-+&nandcs {
-+ /* Spansion S34ML01G2, 128MB with 128KB erase blocks */
-+ partitions {
-+ compatible = "fixed-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ /*
-+ * This is called "nflash" in the vendor kernel with
-+ * "upgrade" and "rootfs" (probably using OpenWrt
-+ * splitpart). We call it "firmware" like standard tools
-+ * assume. The CFE loader contains incorrect information
-+ * about TRX partitions, ignore this, there are no TRX
-+ * partitions: this device uses SEAMA.
-+ */
-+ firmware@0 {
-+ label = "firmware";
-+ reg = <0x00000000 0x08000000>;
-+ };
-+ };
-+};
-+
-+&usb2 {
-+ vcc-gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
-+};
-+
-+&usb3 {
-+ vcc-gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
-+};
-+
-+&usb3_phy {
-+ status = "okay";
-+};
-+
-+&srab {
-+ status = "okay";
-+
-+ ports {
-+ port@0 {
-+ reg = <0>;
-+ label = "lan1";
-+ };
-+
-+ port@1 {
-+ reg = <1>;
-+ label = "lan2";
-+ };
-+
-+ port@2 {
-+ reg = <2>;
-+ label = "lan3";
-+ };
-+
-+ port@3 {
-+ reg = <3>;
-+ label = "lan4";
-+ };
-+
-+ port@4 {
-+ reg = <4>;
-+ label = "wan";
-+ };
-+
-+ port@8 {
-+ reg = <8>;
-+ label = "cpu";
-+ ethernet = <&gmac2>;
-+ phy-mode = "rgmii";
-+
-+ fixed-link {
-+ speed = <1000>;
-+ full-duplex;
-+ };
-+ };
-+ };
-+};
+++ /dev/null
-From 9f66e1dd82e3186aee95282657512ca2aef1afe0 Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Wed, 19 Oct 2022 21:34:49 +0200
-Subject: [PATCH] ARM: dts: bcm53016: Add devicetree for D-Link DWL-8610AP
-
-This adds a device tree for the BCM53016-based D-Link DWL-8610AP
-access point wireless router.
-
-The TRX-format partitions had to be named "firmware" due to
-an OpenWrt patch that only accepts parting such nodes if they
-are named "firmware".
-
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Link: https://lore.kernel.org/r/20221019193449.3036010-2-linus.walleij@linaro.org
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm/boot/dts/Makefile | 1 +
- .../boot/dts/bcm53016-dlink-dwl-8610ap.dts | 131 ++++++++++++++++++
- 2 files changed, 132 insertions(+)
- create mode 100644 arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
-
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -140,6 +140,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
- bcm47094-netgear-r8500.dtb \
- bcm47094-phicomm-k3.dtb \
- bcm53015-meraki-mr26.dtb \
-+ bcm53016-dlink-dwl-8610ap.dtb \
- bcm53016-meraki-mr32.dtb \
- bcm94708.dtb \
- bcm94709.dtb \
---- /dev/null
-+++ b/arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
-@@ -0,0 +1,131 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+/dts-v1/;
-+
-+#include "bcm4709.dtsi"
-+#include "bcm5301x-nand-cs0-bch8.dtsi"
-+#include <dt-bindings/leds/common.h>
-+#include <dt-bindings/input/input.h>
-+
-+/ {
-+ model = "D-Link DWL-8610AP";
-+ compatible = "dlink,dwl-8610ap", "brcm,bcm53016", "brcm,bcm4708";
-+
-+ memory@0 {
-+ device_type = "memory";
-+ /* 512 MB RAM in 2 x Macronix D9PSH chips */
-+ reg = <0x00000000 0x08000000>,
-+ <0x88000000 0x08000000>;
-+ };
-+
-+ leds {
-+ compatible = "gpio-leds";
-+
-+ power {
-+ function = LED_FUNCTION_POWER;
-+ color = <LED_COLOR_ID_GREEN>;
-+ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
-+ default-state = "on";
-+ };
-+
-+ diag {
-+ /* Actually "diag" unclear what this means */
-+ function = LED_FUNCTION_INDICATOR;
-+ color = <LED_COLOR_ID_RED>;
-+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
-+ default-state = "on";
-+ linux,default-trigger = "heartbeat";
-+ };
-+
-+ wlan-2g {
-+ function = LED_FUNCTION_WLAN;
-+ color = <LED_COLOR_ID_GREEN>;
-+ gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ wlan-5g {
-+ function = LED_FUNCTION_WLAN;
-+ color = <LED_COLOR_ID_GREEN>;
-+ gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ gpio_keys {
-+ compatible = "gpio-keys";
-+
-+ button-reset {
-+ debounce-interval = <100>;
-+ wakeup-source;
-+ linux,code = <KEY_RESTART>;
-+ label = "reset";
-+ /* This GPIO is actually stored in NVRAM, but it's not gonna change */
-+ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ /*
-+ * Flash memory at 0x1e000000-0x1fffffff
-+ * Macronix 32 64KB blocks; total size 2MB, same that can be
-+ * found attached to the spi_nor SPI controller.
-+ */
-+ nvram@1e080000 {
-+ compatible = "brcm,nvram";
-+ reg = <0x1e080000 0x00020000>;
-+
-+ et0macaddr: et0macaddr {
-+ };
-+
-+ et1macaddr: et1macaddr {
-+ };
-+ };
-+};
-+
-+&gmac0 {
-+ nvmem-cells = <&et0macaddr>;
-+ nvmem-cell-names = "mac-address";
-+};
-+
-+&gmac1 {
-+ nvmem-cells = <&et1macaddr>;
-+ nvmem-cell-names = "mac-address";
-+};
-+
-+&spi_nor {
-+ /* Serial SPI NOR Flash MX 25L1606E */
-+ status = "okay";
-+};
-+
-+&nandcs {
-+ /*
-+ * Spansion S34ML01G100TFI00 128 MB NAND Flash memory
-+ *
-+ * This ECC is a bit unorthodox but it is what the stock firmware
-+ * is using, so to be able to mount the original partitions
-+ * this is necessary.
-+ */
-+ nand-ecc-strength = <5>;
-+ partitions {
-+ compatible = "fixed-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ /* This is named nflash1.trx in CFE */
-+ trx@0 {
-+ label = "firmware";
-+ reg = <0x00000000 0x02800000>;
-+ compatible = "brcm,trx";
-+ };
-+
-+ /* This is named nflash1.trx2 in CFE */
-+ trx2@2800000 {
-+ label = "firmware2";
-+ reg = <0x02800000 0x02800000>;
-+ compatible = "brcm,trx";
-+ };
-+
-+ /* This is named nflash1.rwfs in CFE */
-+ free@5000000 {
-+ label = "free";
-+ reg = <0x05000000 0x03000000>;
-+ };
-+ };
-+};
+++ /dev/null
-From b9457a04eb89645049fdf427c13e6a18d5501895 Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Tue, 11 Oct 2022 14:24:40 +0200
-Subject: [PATCH] bcma: support SPROM rev 11
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Rev 11 works fine for me to set the MAC address of gmac0 and
-gmac1 in the D-Link DWL-8610AP.
-
-Cc: Rafał Miłecki <zajec5@gmail.com>
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
----
- drivers/bcma/sprom.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/bcma/sprom.c
-+++ b/drivers/bcma/sprom.c
-@@ -170,7 +170,7 @@ static int bcma_sprom_valid(struct bcma_
- return err;
-
- revision = sprom[words - 1] & SSB_SPROM_REVISION_REV;
-- if (revision != 8 && revision != 9 && revision != 10) {
-+ if (revision < 8 || revision > 11) {
- pr_err("Unsupported SPROM revision: %d\n", revision);
- return -ENOENT;
- }
--- /dev/null
+From b9457a04eb89645049fdf427c13e6a18d5501895 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Tue, 11 Oct 2022 14:24:40 +0200
+Subject: [PATCH] bcma: support SPROM rev 11
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Rev 11 works fine for me to set the MAC address of gmac0 and
+gmac1 in the D-Link DWL-8610AP.
+
+Cc: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ drivers/bcma/sprom.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/bcma/sprom.c
++++ b/drivers/bcma/sprom.c
+@@ -170,7 +170,7 @@ static int bcma_sprom_valid(struct bcma_
+ return err;
+
+ revision = sprom[words - 1] & SSB_SPROM_REVISION_REV;
+- if (revision != 8 && revision != 9 && revision != 10) {
++ if (revision < 8 || revision > 11) {
+ pr_err("Unsupported SPROM revision: %d\n", revision);
+ return -ENOENT;
+ }
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
-@@ -93,3 +93,40 @@
+@@ -92,3 +92,40 @@
&usb3_phy {
status = "okay";
};