--- /dev/null
+From 2900083269f7c0f0ff430bffc6ced2038aed9b6b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <arinc.unal@arinc9.com>
+Date: Thu, 3 Aug 2023 10:14:54 +0300
+Subject: [PATCH] ARM: dts: BCM5301X: Add DT for ASUS RT-AC3100
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ASUS RT-AC3100 is ASUS RT-AC88U without the external switch. Move the
+shared bindings to bcm47094-asus-rt-ac3100.dtsi.
+
+Remove the fixed-link node on port@7 as commit ba4aebce23b2 ("ARM: dts:
+BCM5301X: Describe switch ports in the main DTS") states it's not
+necessary.
+
+Replace the copyright notice with an author notice.
+
+Rename the model name from Asus to ASUS on bcm47094-asus-rt-ac88u.dts.
+
+Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20230803071454.5902-2-arinc.unal@arinc9.com
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ .../dts/bcm47094-asus-rt-ac3100.dts | 23 +++
+ .../dts/bcm47094-asus-rt-ac3100.dtsi | 163 ++++++++++++++++++
+ .../dts/bcm47094-asus-rt-ac88u.dts | 155 +----------------
+ 4 files changed, 190 insertions(+), 152 deletions(-)
+ create mode 100644 arch/arm/boot/dts/bcm47094-asus-rt-ac3100.dts
+ create mode 100644 arch/arm/boot/dts/bcm47094-asus-rt-ac3100.dtsi
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -120,6 +120,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+ bcm4709-netgear-r7000.dtb \
+ bcm4709-netgear-r8000.dtb \
+ bcm4709-tplink-archer-c9-v1.dtb \
++ bcm47094-asus-rt-ac3100.dtb \
+ bcm47094-asus-rt-ac88u.dtb \
+ bcm47094-dlink-dir-885l.dtb \
+ bcm47094-dlink-dir-890l.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm47094-asus-rt-ac3100.dts
+@@ -0,0 +1,23 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++/*
++ * Author: Arınç ÜNAL <arinc.unal@arinc9.com>
++ */
++
++/dts-v1/;
++
++#include "bcm47094-asus-rt-ac3100.dtsi"
++
++/ {
++ compatible = "asus,rt-ac3100", "brcm,bcm47094", "brcm,bcm4708";
++ model = "ASUS RT-AC3100";
++
++ nvram@1c080000 {
++ et0macaddr: et0macaddr {
++ };
++ };
++};
++
++&gmac0 {
++ nvmem-cells = <&et0macaddr>;
++ nvmem-cell-names = "mac-address";
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm47094-asus-rt-ac3100.dtsi
+@@ -0,0 +1,163 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++/*
++ * Author: Arınç ÜNAL <arinc.unal@arinc9.com>
++ */
++
++#include "bcm47094.dtsi"
++#include "bcm5301x-nand-cs0-bch8.dtsi"
++
++/ {
++ chosen {
++ bootargs = "earlycon";
++ };
++
++ memory@0 {
++ device_type = "memory";
++ reg = <0x00000000 0x08000000>,
++ <0x88000000 0x18000000>;
++ };
++
++ nvram@1c080000 {
++ compatible = "brcm,nvram";
++ reg = <0x1c080000 0x00180000>;
++ };
++
++ leds {
++ compatible = "gpio-leds";
++
++ led-power {
++ label = "white:power";
++ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "default-on";
++ };
++
++ led-wan-red {
++ label = "red:wan";
++ gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
++ };
++
++ led-lan {
++ label = "white:lan";
++ gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
++ };
++
++ led-usb2 {
++ label = "white:usb2";
++ gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
++ trigger-sources = <&ehci_port2>;
++ linux,default-trigger = "usbport";
++ };
++
++ led-usb3 {
++ label = "white:usb3";
++ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
++ trigger-sources = <&ehci_port1>, <&xhci_port1>;
++ linux,default-trigger = "usbport";
++ };
++
++ led-wps {
++ label = "white:wps";
++ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio-keys {
++ compatible = "gpio-keys";
++
++ button-wps {
++ label = "WPS";
++ linux,code = <KEY_WPS_BUTTON>;
++ gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
++ };
++
++ button-reset {
++ label = "Reset";
++ linux,code = <KEY_RESTART>;
++ gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
++ };
++
++ button-wifi {
++ label = "Wi-Fi";
++ linux,code = <KEY_RFKILL>;
++ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
++ };
++
++ button-led {
++ label = "Backlight";
++ linux,code = <KEY_BRIGHTNESS_ZERO>;
++ gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
++ };
++ };
++};
++
++&srab {
++ compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
++ status = "okay";
++
++ ports {
++ port@0 {
++ label = "lan4";
++ };
++
++ port@1 {
++ label = "lan3";
++ };
++
++ port@2 {
++ label = "lan2";
++ };
++
++ port@3 {
++ label = "lan1";
++ };
++
++ port@4 {
++ label = "wan";
++ };
++
++ port@5 {
++ label = "cpu";
++ };
++
++ port@7 {
++ label = "cpu";
++ };
++
++ port@8 {
++ label = "cpu";
++ };
++ };
++};
++
++&usb2 {
++ vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
++};
++
++&usb3_phy {
++ status = "okay";
++};
++
++&nandcs {
++ partitions {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ partition@0 {
++ label = "boot";
++ reg = <0x00000000 0x00080000>;
++ read-only;
++ };
++
++ partition@80000 {
++ label = "nvram";
++ reg = <0x00080000 0x00180000>;
++ };
++
++ partition@200000 {
++ label = "firmware";
++ reg = <0x00200000 0x07e00000>;
++ compatible = "brcm,trx";
++ };
++ };
++};
+--- a/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
++++ b/arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
+@@ -1,102 +1,21 @@
+ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+ /*
+- * Copyright (C) 2021-2022 Arınç ÜNAL <arinc.unal@arinc9.com>
++ * Author: Arınç ÜNAL <arinc.unal@arinc9.com>
+ */
+
+ /dts-v1/;
+
+-#include "bcm47094.dtsi"
+-#include "bcm5301x-nand-cs0-bch8.dtsi"
++#include "bcm47094-asus-rt-ac3100.dtsi"
+
+ / {
+ compatible = "asus,rt-ac88u", "brcm,bcm47094", "brcm,bcm4708";
+- model = "Asus RT-AC88U";
+-
+- chosen {
+- bootargs = "earlycon";
+- };
+-
+- memory@0 {
+- device_type = "memory";
+- reg = <0x00000000 0x08000000>,
+- <0x88000000 0x18000000>;
+- };
++ model = "ASUS RT-AC88U";
+
+ nvram@1c080000 {
+- compatible = "brcm,nvram";
+- reg = <0x1c080000 0x00180000>;
+-
+ et1macaddr: et1macaddr {
+ };
+ };
+
+- leds {
+- compatible = "gpio-leds";
+-
+- led-power {
+- label = "white:power";
+- gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+- linux,default-trigger = "default-on";
+- };
+-
+- led-wan-red {
+- label = "red:wan";
+- gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led-lan {
+- label = "white:lan";
+- gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
+- };
+-
+- led-usb2 {
+- label = "white:usb2";
+- gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
+- trigger-sources = <&ehci_port2>;
+- linux,default-trigger = "usbport";
+- };
+-
+- led-usb3 {
+- label = "white:usb3";
+- gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+- trigger-sources = <&ehci_port1>, <&xhci_port1>;
+- linux,default-trigger = "usbport";
+- };
+-
+- led-wps {
+- label = "white:wps";
+- gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+- };
+- };
+-
+- gpio-keys {
+- compatible = "gpio-keys";
+-
+- button-wps {
+- label = "WPS";
+- linux,code = <KEY_WPS_BUTTON>;
+- gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+- };
+-
+- button-reset {
+- label = "Reset";
+- linux,code = <KEY_RESTART>;
+- gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+- };
+-
+- button-wifi {
+- label = "Wi-Fi";
+- linux,code = <KEY_RFKILL>;
+- gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+- };
+-
+- button-led {
+- label = "Backlight";
+- linux,code = <KEY_BRIGHTNESS_ZERO>;
+- gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+- };
+- };
+-
+ switch {
+ compatible = "realtek,rtl8365mb";
+ /* 7 = MDIO (has input reads), 6 = MDC (clock, output only) */
+@@ -175,31 +94,9 @@
+ };
+
+ &srab {
+- compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
+- status = "okay";
+ dsa,member = <0 0>;
+
+ ports {
+- port@0 {
+- label = "lan4";
+- };
+-
+- port@1 {
+- label = "lan3";
+- };
+-
+- port@2 {
+- label = "lan2";
+- };
+-
+- port@3 {
+- label = "lan1";
+- };
+-
+- port@4 {
+- label = "wan";
+- };
+-
+ sw0_p5: port@5 {
+ /delete-property/ethernet;
+
+@@ -212,19 +109,6 @@
+ pause;
+ };
+ };
+-
+- port@7 {
+- label = "cpu";
+-
+- fixed-link {
+- speed = <1000>;
+- full-duplex;
+- };
+- };
+-
+- port@8 {
+- label = "cpu";
+- };
+ };
+ };
+
+@@ -236,36 +120,3 @@
+ nvmem-cells = <&et1macaddr>;
+ nvmem-cell-names = "mac-address";
+ };
+-
+-&usb2 {
+- vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+-};
+-
+-&usb3_phy {
+- status = "okay";
+-};
+-
+-&nandcs {
+- partitions {
+- compatible = "fixed-partitions";
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+- partition@0 {
+- label = "boot";
+- reg = <0x00000000 0x00080000>;
+- read-only;
+- };
+-
+- partition@80000 {
+- label = "nvram";
+- reg = <0x00080000 0x00180000>;
+- };
+-
+- partition@200000 {
+- label = "firmware";
+- reg = <0x00200000 0x07e00000>;
+- compatible = "brcm,trx";
+- };
+- };
+-};