-From 3482a3f37240826c825d05fceebbfe5877f587d4 Mon Sep 17 00:00:00 2001
+From 93214f2574126ee55494b4390ced5cd3f0e42aa9 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
-Date: Tue, 17 Feb 2026 20:20:16 -0800
+Date: Wed, 25 Feb 2026 15:08:24 -0800
Subject: [PATCH] ARM: dts: BCM5301X: EA9200: set WAN MAC from nvram
-The MAC address from the stock firmare is offset by 1. Define it
+The MAC address from the stock firmware is offset by 1. Define it
properly to avoid having to override it in userspace.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260225230827.21715-2-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 7 +++++++
1 file changed, 7 insertions(+)
-From cbbaa1f69301755409bc3ddbf2401c8b87a73658 Mon Sep 17 00:00:00 2001
+From 649a62e1855b25c482670304ac473ed34b3621b4 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
-Date: Tue, 17 Feb 2026 20:30:02 -0800
+Date: Wed, 25 Feb 2026 15:08:25 -0800
Subject: [PATCH] ARM: dts: BCM5301X: panamera: set WAN MAC from nvram
-The MAC address from the stock firmare is offset by 1. Define it
+The MAC address from the stock firmware is offset by 1. Define it
properly to avoid having to override it in userspace.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260225230827.21715-3-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
arch/arm/boot/dts/broadcom/bcm47094-linksys-panamera.dts | 7 +++++++
1 file changed, 7 insertions(+)
--- /dev/null
+From 977707168d5444947f4f0ff21dffa5645a6d80bd Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:19 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add WiFi button
+
+Adds ability to configure the WiFi button.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-2-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -40,6 +40,12 @@
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
++ button-rfkill {
++ label = "WiFi";
++ linux,code = <KEY_RFKILL>;
++ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
++ };
++
+ button-restart {
+ label = "Reset";
+ linux,code = <KEY_RESTART>;
--- /dev/null
+From a4311aede88e8f1a5d606ce239aea9314813786f Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:20 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add USB GPIOs
+
+Allows at least halt to turn the USB ports off.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-3-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -58,6 +58,14 @@
+ status = "okay";
+ };
+
++&usb2 {
++ vcc-gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
++};
++
++&usb3 {
++ vcc-gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
++};
++
+ &srab {
+ status = "okay";
+
--- /dev/null
+From 6b0cb7b34ba68425abb6b3174cca4a7ee031da6d Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:21 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add LEDs
+
+Allows control and configuration of device LEDs.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-4-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ .../dts/broadcom/bcm4709-linksys-ea9200.dts | 39 +++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -5,6 +5,8 @@
+
+ /dts-v1/;
+
++#include <dt-bindings/leds/common.h>
++
+ #include "bcm4709.dtsi"
+ #include "bcm5301x-nand-cs0-bch8.dtsi"
+
+@@ -52,6 +54,43 @@
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+ };
++
++ leds {
++ compatible = "gpio-leds";
++
++ led-0 {
++ color = <LED_COLOR_ID_AMBER>;
++ function = LED_FUNCTION_WLAN;
++ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "rfkill-none";
++ };
++
++ led-1 {
++ color = <LED_COLOR_ID_GREEN>;
++ function = LED_FUNCTION_USB;
++ function-enumerator = <2>;
++ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "usbport";
++ trigger-sources = <&ohci_port2>, <&ehci_port2>;
++ };
++
++ led-2 {
++ color = <LED_COLOR_ID_GREEN>;
++ function = LED_FUNCTION_USB;
++ function-enumerator = <3>;
++ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "usbport";
++ trigger-sources = <&ohci_port1>, <&ehci_port1>,
++ <&xhci_port1>;
++ };
++
++ led-3 {
++ color = <LED_COLOR_ID_WHITE>;
++ function = LED_FUNCTION_POWER;
++ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "default-on";
++ };
++ };
+ };
+
+ &usb3_phy {
--- /dev/null
+From 220bdfcb4b4788f57faa2c28454d8b2dd3bcab6c Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:23 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: specify partitions
+
+Some are needed to be specified so that linksys,ns-firmware works
+properly.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-6-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ .../dts/broadcom/bcm4709-linksys-ea9200.dts | 40 +++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -145,3 +145,43 @@
+ };
+ };
+ };
++
++&nandcs {
++ partitions {
++ compatible = "linksys,ns-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ partition@0 {
++ label = "boot";
++ reg = <0x0000000 0x0080000>;
++ read-only;
++ };
++
++ partition@80000 {
++ label = "nvram";
++ reg = <0x080000 0x0100000>;
++ };
++
++ partition@180000 {
++ label = "devinfo";
++ reg = <0x0180000 0x080000>;
++ read-only;
++ };
++
++ partition@200000 {
++ reg = <0x0200000 0x02800000>;
++ compatible = "linksys,ns-firmware", "brcm,trx";
++ };
++
++ partition@2a00000 {
++ reg = <0x02a00000 0x02800000>;
++ compatible = "linksys,ns-firmware", "brcm,trx";
++ };
++
++ partition@5200000 {
++ label = "system";
++ reg = <0x05200000 0x02e00000>;
++ };
++ };
++};
--- /dev/null
+From e66c19e892bedccfb460137f709b00227a94a62d Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Sun, 1 Mar 2026 21:51:23 -0800
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add wifi definitions
+
+brcm,ccode-map and ieee80211-freq-limit are needed to be specified on
+some of them for proper operation.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ .../dts/broadcom/bcm4709-linksys-ea9200.dts | 57 +++++++++++++++++++
+ 1 file changed, 57 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -93,6 +93,57 @@
+ };
+ };
+
++&pcie_bridge0 {
++ pcie@0,0 {
++ device_type = "pci";
++ reg = <0x0000 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++ ranges;
++
++ pcie@1,0 {
++ device_type = "pci";
++ reg = <0x800 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++ ranges;
++
++ wifi@0,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
++ reg = <0x0000 0 0 0 0>;
++ ieee80211-freq-limit = <5170000 5250000>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ };
++ };
++
++ pcie@2,0 {
++ device_type = "pci";
++ reg = <0x1000 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++ ranges;
++
++ 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";
++ };
++ };
++ };
++};
++
++&pcie_bridge1 {
++ wifi@0,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";
++ };
++};
++
+ &usb3_phy {
+ status = "okay";
+ };
--- /dev/null
+From 956b0015a778d0b425f760335a744fc48022ccc5 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 17 Feb 2026 20:20:16 -0800
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: set MAC from nvram
+
+Especially needed for the WAN port, which is part of the switch and
+inherits the MAC from GMAC2. Added extra definitions for the wifi
+interfaces to make everything clear.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -115,6 +115,8 @@
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5170000 5250000>;
+ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ nvmem-cells = <&et2macaddr 2>;
++ nvmem-cell-names = "mac-address";
+ };
+ };
+
+@@ -130,6 +132,8 @@
+ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
+ reg = <0x0000 0 0 0 0>;
+ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ nvmem-cells = <&et2macaddr 3>;
++ nvmem-cell-names = "mac-address";
+ };
+ };
+ };
+@@ -141,6 +145,8 @@
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5735000 5835000>;
+ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ nvmem-cells = <&et2macaddr 4>;
++ nvmem-cell-names = "mac-address";
+ };
+ };
+
+@@ -156,6 +162,11 @@
+ vcc-gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac2 {
++ nvmem-cells = <&et2macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &srab {
+ status = "okay";
+
-From 9f60f2d9e1920245acbb9b0493d0c073905c3976 Mon Sep 17 00:00:00 2001
+From 76701239797698b620f2b7ec713fe08ef50ee664 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Thu, 8 Jan 2026 23:40:26 +0100
Subject: [PATCH] ARM: dts: BCM5301X: Describe PCIe controllers fully
-From 14022b103616ec01417e6c707095d57d61162450 Mon Sep 17 00:00:00 2001
+From 893faf67438cb7642d8c2da7650a436716155416 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
-Date: Sun, 1 Mar 2026 16:01:04 -0800
+Date: Sun, 1 Mar 2026 16:07:36 -0800
Subject: [PATCH] ARM: dts: BCM5301X: add root pcie bridges
They are always required and instead of duplicating a definition in each
Fixed bridge numbers as a result.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260302000736.592422-1-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
arch/arm/boot/dts/broadcom/bcm-ns.dtsi | 30 ++++++++
.../dts/broadcom/bcm4709-netgear-r8000.dts | 73 ++++++++-----------
--- /dev/null
+From 10610c5605390fddafca424618679e6007bbae8f Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Thu, 18 Jun 2026 16:30:00 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: fix nvram size
+
+Fixes:
+
+[ 0.182121] WARNING: CPU: 0 PID: 1 at drivers/nvmem/brcm_nvram.c:85 brcm_nvram_probe+0x400/0x480
+[ 0.182159] Unexpected (big) NVRAM size: 1056112 B
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -26,7 +26,7 @@
+
+ nvram@1c080000 {
+ compatible = "brcm,nvram";
+- reg = <0x1c080000 0x180000>;
++ reg = <0x1c080000 0x100000>;
+
+ et2macaddr: et2macaddr {
+ #nvmem-cell-cells = <1>;
--- /dev/null
+From 66cb59e3669be17d8b7db37d022600332b66a3f2 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Thu, 18 Jun 2026 17:04:30 -0700
+Subject: [PATCH] ARM: dts: bcm-ns: fix PCIe controller 2 second interrupt
+
+PCIe controller 2 has interrupts 0-4 mapping to GIC SPI 138-142. The
+mapping for interrupt 1 was incorrectly set to 138 due to a copy-paste
+error. Fix it to 139.
+
+Assisted-by: opencode:big-pickle
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ arch/arm/boot/dts/broadcom/bcm-ns.dtsi | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/broadcom/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/broadcom/bcm-ns.dtsi
+@@ -141,7 +141,7 @@
+
+ /* PCIe Controller 2 */
+ <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 1 &gic GIC_SPI 139 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>,
--- /dev/null
+From 1dd3a357b8c1b51b26422b742223f10db648118b Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Mon, 6 Apr 2026 15:04:53 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: R6300v2: fix USB3
+
+USB3 needs GPIO to be pulled HIGH in order to function. Add vcc-gpio to
+do so.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260406220453.101185-1-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4708-netgear-r6300-v2.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4708-netgear-r6300-v2.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4708-netgear-r6300-v2.dts
+@@ -124,3 +124,7 @@
+ };
+ };
+ };
++
++&usb3 {
++ vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
++};
--- /dev/null
+From f6c6b4d1c833bf18a8ba929576736f7dbd34a8a1 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Mon, 6 Apr 2026 15:05:28 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA6500v2: fix USB3
+
+USB3 needs to have a GPIO pulled HIGH in order to function. Add vcc-gpio
+to do so.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260406220528.101340-1-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4708-linksys-ea6500-v2.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4708-linksys-ea6500-v2.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4708-linksys-ea6500-v2.dts
+@@ -81,3 +81,7 @@
+ };
+ };
+ };
++
++&usb3 {
++ vcc-gpio = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
++};
-From 3482a3f37240826c825d05fceebbfe5877f587d4 Mon Sep 17 00:00:00 2001
+From 93214f2574126ee55494b4390ced5cd3f0e42aa9 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
-Date: Tue, 17 Feb 2026 20:20:16 -0800
+Date: Wed, 25 Feb 2026 15:08:24 -0800
Subject: [PATCH] ARM: dts: BCM5301X: EA9200: set WAN MAC from nvram
-The MAC address from the stock firmare is offset by 1. Define it
+The MAC address from the stock firmware is offset by 1. Define it
properly to avoid having to override it in userspace.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260225230827.21715-2-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 7 +++++++
1 file changed, 7 insertions(+)
-From cbbaa1f69301755409bc3ddbf2401c8b87a73658 Mon Sep 17 00:00:00 2001
+From 649a62e1855b25c482670304ac473ed34b3621b4 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
-Date: Tue, 17 Feb 2026 20:30:02 -0800
+Date: Wed, 25 Feb 2026 15:08:25 -0800
Subject: [PATCH] ARM: dts: BCM5301X: panamera: set WAN MAC from nvram
-The MAC address from the stock firmare is offset by 1. Define it
+The MAC address from the stock firmware is offset by 1. Define it
properly to avoid having to override it in userspace.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260225230827.21715-3-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
arch/arm/boot/dts/broadcom/bcm47094-linksys-panamera.dts | 7 +++++++
1 file changed, 7 insertions(+)
--- /dev/null
+From 977707168d5444947f4f0ff21dffa5645a6d80bd Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:19 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add WiFi button
+
+Adds ability to configure the WiFi button.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-2-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -40,6 +40,12 @@
+ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+ };
+
++ button-rfkill {
++ label = "WiFi";
++ linux,code = <KEY_RFKILL>;
++ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
++ };
++
+ button-restart {
+ label = "Reset";
+ linux,code = <KEY_RESTART>;
--- /dev/null
+From a4311aede88e8f1a5d606ce239aea9314813786f Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:20 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add USB GPIOs
+
+Allows at least halt to turn the USB ports off.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-3-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -58,6 +58,14 @@
+ status = "okay";
+ };
+
++&usb2 {
++ vcc-gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
++};
++
++&usb3 {
++ vcc-gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
++};
++
+ &srab {
+ status = "okay";
+
--- /dev/null
+From 6b0cb7b34ba68425abb6b3174cca4a7ee031da6d Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:21 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add LEDs
+
+Allows control and configuration of device LEDs.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-4-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ .../dts/broadcom/bcm4709-linksys-ea9200.dts | 39 +++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -5,6 +5,8 @@
+
+ /dts-v1/;
+
++#include <dt-bindings/leds/common.h>
++
+ #include "bcm4709.dtsi"
+ #include "bcm5301x-nand-cs0-bch8.dtsi"
+
+@@ -52,6 +54,43 @@
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+ };
++
++ leds {
++ compatible = "gpio-leds";
++
++ led-0 {
++ color = <LED_COLOR_ID_AMBER>;
++ function = LED_FUNCTION_WLAN;
++ gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "rfkill-none";
++ };
++
++ led-1 {
++ color = <LED_COLOR_ID_GREEN>;
++ function = LED_FUNCTION_USB;
++ function-enumerator = <2>;
++ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "usbport";
++ trigger-sources = <&ohci_port2>, <&ehci_port2>;
++ };
++
++ led-2 {
++ color = <LED_COLOR_ID_GREEN>;
++ function = LED_FUNCTION_USB;
++ function-enumerator = <3>;
++ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "usbport";
++ trigger-sources = <&ohci_port1>, <&ehci_port1>,
++ <&xhci_port1>;
++ };
++
++ led-3 {
++ color = <LED_COLOR_ID_WHITE>;
++ function = LED_FUNCTION_POWER;
++ gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "default-on";
++ };
++ };
+ };
+
+ &usb3_phy {
--- /dev/null
+From 220bdfcb4b4788f57faa2c28454d8b2dd3bcab6c Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Wed, 18 Mar 2026 20:53:23 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: specify partitions
+
+Some are needed to be specified so that linksys,ns-firmware works
+properly.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260319035324.269905-6-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ .../dts/broadcom/bcm4709-linksys-ea9200.dts | 40 +++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -145,3 +145,43 @@
+ };
+ };
+ };
++
++&nandcs {
++ partitions {
++ compatible = "linksys,ns-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ partition@0 {
++ label = "boot";
++ reg = <0x0000000 0x0080000>;
++ read-only;
++ };
++
++ partition@80000 {
++ label = "nvram";
++ reg = <0x080000 0x0100000>;
++ };
++
++ partition@180000 {
++ label = "devinfo";
++ reg = <0x0180000 0x080000>;
++ read-only;
++ };
++
++ partition@200000 {
++ reg = <0x0200000 0x02800000>;
++ compatible = "linksys,ns-firmware", "brcm,trx";
++ };
++
++ partition@2a00000 {
++ reg = <0x02a00000 0x02800000>;
++ compatible = "linksys,ns-firmware", "brcm,trx";
++ };
++
++ partition@5200000 {
++ label = "system";
++ reg = <0x05200000 0x02e00000>;
++ };
++ };
++};
--- /dev/null
+From e66c19e892bedccfb460137f709b00227a94a62d Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Sun, 1 Mar 2026 21:51:23 -0800
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: add wifi definitions
+
+brcm,ccode-map and ieee80211-freq-limit are needed to be specified on
+some of them for proper operation.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ .../dts/broadcom/bcm4709-linksys-ea9200.dts | 57 +++++++++++++++++++
+ 1 file changed, 57 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -93,6 +93,57 @@
+ };
+ };
+
++&pcie_bridge0 {
++ pcie@0,0 {
++ device_type = "pci";
++ reg = <0x0000 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++ ranges;
++
++ pcie@1,0 {
++ device_type = "pci";
++ reg = <0x800 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++ ranges;
++
++ wifi@0,0 {
++ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
++ reg = <0x0000 0 0 0 0>;
++ ieee80211-freq-limit = <5170000 5250000>;
++ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ };
++ };
++
++ pcie@2,0 {
++ device_type = "pci";
++ reg = <0x1000 0 0 0 0>;
++
++ #address-cells = <3>;
++ #size-cells = <2>;
++ ranges;
++
++ 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";
++ };
++ };
++ };
++};
++
++&pcie_bridge1 {
++ wifi@0,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";
++ };
++};
++
+ &usb3_phy {
+ status = "okay";
+ };
--- /dev/null
+From 956b0015a778d0b425f760335a744fc48022ccc5 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 17 Feb 2026 20:20:16 -0800
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: set MAC from nvram
+
+Especially needed for the WAN port, which is part of the switch and
+inherits the MAC from GMAC2. Added extra definitions for the wifi
+interfaces to make everything clear.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -115,6 +115,8 @@
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5170000 5250000>;
+ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ nvmem-cells = <&et2macaddr 2>;
++ nvmem-cell-names = "mac-address";
+ };
+ };
+
+@@ -130,6 +132,8 @@
+ compatible = "brcm,bcm4366-fmac", "brcm,bcm4329-fmac";
+ reg = <0x0000 0 0 0 0>;
+ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ nvmem-cells = <&et2macaddr 3>;
++ nvmem-cell-names = "mac-address";
+ };
+ };
+ };
+@@ -141,6 +145,8 @@
+ reg = <0x0000 0 0 0 0>;
+ ieee80211-freq-limit = <5735000 5835000>;
+ brcm,ccode-map = "JP-JP-78", "US-Q2-86";
++ nvmem-cells = <&et2macaddr 4>;
++ nvmem-cell-names = "mac-address";
+ };
+ };
+
+@@ -156,6 +162,11 @@
+ vcc-gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+ };
+
++&gmac2 {
++ nvmem-cells = <&et2macaddr 0>;
++ nvmem-cell-names = "mac-address";
++};
++
+ &srab {
+ status = "okay";
+
-From 9f60f2d9e1920245acbb9b0493d0c073905c3976 Mon Sep 17 00:00:00 2001
+From 76701239797698b620f2b7ec713fe08ef50ee664 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Thu, 8 Jan 2026 23:40:26 +0100
Subject: [PATCH] ARM: dts: BCM5301X: Describe PCIe controllers fully
-From 14022b103616ec01417e6c707095d57d61162450 Mon Sep 17 00:00:00 2001
+From 893faf67438cb7642d8c2da7650a436716155416 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
-Date: Sun, 1 Mar 2026 16:01:04 -0800
+Date: Sun, 1 Mar 2026 16:07:36 -0800
Subject: [PATCH] ARM: dts: BCM5301X: add root pcie bridges
They are always required and instead of duplicating a definition in each
Fixed bridge numbers as a result.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260302000736.592422-1-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
arch/arm/boot/dts/broadcom/bcm-ns.dtsi | 30 ++++++++
.../dts/broadcom/bcm4709-netgear-r8000.dts | 73 ++++++++-----------
--- /dev/null
+From 10610c5605390fddafca424618679e6007bbae8f Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Thu, 18 Jun 2026 16:30:00 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA9200: fix nvram size
+
+Fixes:
+
+[ 0.182121] WARNING: CPU: 0 PID: 1 at drivers/nvmem/brcm_nvram.c:85 brcm_nvram_probe+0x400/0x480
+[ 0.182159] Unexpected (big) NVRAM size: 1056112 B
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4709-linksys-ea9200.dts
+@@ -26,7 +26,7 @@
+
+ nvram@1c080000 {
+ compatible = "brcm,nvram";
+- reg = <0x1c080000 0x180000>;
++ reg = <0x1c080000 0x100000>;
+
+ et2macaddr: et2macaddr {
+ #nvmem-cell-cells = <1>;
--- /dev/null
+From 66cb59e3669be17d8b7db37d022600332b66a3f2 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Thu, 18 Jun 2026 17:04:30 -0700
+Subject: [PATCH] ARM: dts: bcm-ns: fix PCIe controller 2 second interrupt
+
+PCIe controller 2 has interrupts 0-4 mapping to GIC SPI 138-142. The
+mapping for interrupt 1 was incorrectly set to 138 due to a copy-paste
+error. Fix it to 139.
+
+Assisted-by: opencode:big-pickle
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+---
+ arch/arm/boot/dts/broadcom/bcm-ns.dtsi | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/broadcom/bcm-ns.dtsi
++++ b/arch/arm/boot/dts/broadcom/bcm-ns.dtsi
+@@ -141,7 +141,7 @@
+
+ /* PCIe Controller 2 */
+ <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+- <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
++ <0x00014000 1 &gic GIC_SPI 139 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>,
--- /dev/null
+From 1dd3a357b8c1b51b26422b742223f10db648118b Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Mon, 6 Apr 2026 15:04:53 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: R6300v2: fix USB3
+
+USB3 needs GPIO to be pulled HIGH in order to function. Add vcc-gpio to
+do so.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260406220453.101185-1-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4708-netgear-r6300-v2.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4708-netgear-r6300-v2.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4708-netgear-r6300-v2.dts
+@@ -124,3 +124,7 @@
+ };
+ };
+ };
++
++&usb3 {
++ vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
++};
--- /dev/null
+From f6c6b4d1c833bf18a8ba929576736f7dbd34a8a1 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Mon, 6 Apr 2026 15:05:28 -0700
+Subject: [PATCH] ARM: dts: BCM5301X: EA6500v2: fix USB3
+
+USB3 needs to have a GPIO pulled HIGH in order to function. Add vcc-gpio
+to do so.
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Link: https://lore.kernel.org/r/20260406220528.101340-1-rosenp@gmail.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/broadcom/bcm4708-linksys-ea6500-v2.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/arch/arm/boot/dts/broadcom/bcm4708-linksys-ea6500-v2.dts
++++ b/arch/arm/boot/dts/broadcom/bcm4708-linksys-ea6500-v2.dts
+@@ -81,3 +81,7 @@
+ };
+ };
+ };
++
++&usb3 {
++ vcc-gpio = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
++};