-LINUX_VERSION-5.15 = .110
-LINUX_KERNEL_HASH-5.15.110 = 9829fcc77b9978dce97a26980dec445caf2410024696625dbb2314ead4830b5b
+LINUX_VERSION-5.15 = .111
+LINUX_KERNEL_HASH-5.15.111 = 77ceea259c0158dd624304871170d09b2e59ed612f3a4d436fe0f07362dcaec2
--- a/drivers/gpu/drm/drm_probe_helper.c
+++ b/drivers/gpu/drm/drm_probe_helper.c
-@@ -795,6 +795,86 @@ void drm_kms_helper_poll_fini(struct drm
+@@ -796,6 +796,86 @@ void drm_kms_helper_poll_fini(struct drm
}
EXPORT_SYMBOL(drm_kms_helper_poll_fini);
/**
* drm_helper_hpd_irq_event - hotplug processing
* @dev: drm_device
-@@ -808,9 +888,10 @@ EXPORT_SYMBOL(drm_kms_helper_poll_fini);
+@@ -809,9 +889,10 @@ EXPORT_SYMBOL(drm_kms_helper_poll_fini);
* interrupts for each connector.
*
* Drivers which support hotplug interrupts for each connector individually and
*
* This function must be called from process context with no mode
* setting locks held.
-@@ -822,9 +903,7 @@ bool drm_helper_hpd_irq_event(struct drm
+@@ -823,9 +904,7 @@ bool drm_helper_hpd_irq_event(struct drm
{
struct drm_connector *connector;
struct drm_connector_list_iter conn_iter;
if (!dev->mode_config.poll_enabled)
return false;
-@@ -832,37 +911,8 @@ bool drm_helper_hpd_irq_event(struct drm
+@@ -833,37 +912,8 @@ bool drm_helper_hpd_irq_event(struct drm
mutex_lock(&dev->mode_config.mutex);
drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {
+dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-cm3.dtb
+dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-cm4.dtb
- subdir-y += bcm4908
+ subdir-y += bcmbca
subdir-y += northstar2
subdir-y += stingray
+
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 2 +-
+ arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
@@ -298,7 +298,7 @@
status = "okay";
};
+++ /dev/null
-From d0e68d354f345873e15876a7b35be1baaf5e3ec9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Fri, 5 Nov 2021 11:14:13 +0100
-Subject: [PATCH] arm64: dts: broadcom: bcm4908: add DT for Netgear RAXE500
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It's a home router based on BCM4908 SoC. It has: 1 GiB of RAM, 512 MiB
-NAND flash, 6 Ethernet ports and 3 x BCM43684 (WiFi). One of Ethernet
-ports is "2.5 G Multi-Gig port" that isn't described yet (it isn't known
-how it's wired up).
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/bcm4908/Makefile | 1 +
- .../bcm4908/bcm4908-netgear-raxe500.dts | 50 +++++++++++++++++++
- 2 files changed, 51 insertions(+)
- create mode 100644 arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
-
---- a/arch/arm64/boot/dts/broadcom/bcm4908/Makefile
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/Makefile
-@@ -2,3 +2,4 @@
- dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
- dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
- dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb
-+dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-netgear-raxe500.dtb
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
-@@ -0,0 +1,50 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include "bcm4908.dtsi"
-+
-+/ {
-+ compatible = "netgear,raxe500", "brcm,bcm4908";
-+ model = "Netgear RAXE500";
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00 0x00 0x00 0x40000000>;
-+ };
-+};
-+
-+&ehci {
-+ status = "okay";
-+};
-+
-+&ohci {
-+ status = "okay";
-+};
-+
-+&xhci {
-+ status = "okay";
-+};
-+
-+&ports {
-+ port@0 {
-+ label = "lan4";
-+ };
-+
-+ port@1 {
-+ label = "lan3";
-+ };
-+
-+ port@2 {
-+ label = "lan2";
-+ };
-+
-+ port@3 {
-+ label = "lan1";
-+ };
-+
-+ port@7 {
-+ reg = <7>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy12>;
-+ label = "wan";
-+ };
-+};
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 135 ++++++++++++++++++
+ .../boot/dts/broadcom/bcmbca/bcm4908.dtsi | 135 ++++++++++++++++++
1 file changed, 135 insertions(+)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
@@ -289,6 +289,141 @@
gpio-controller;
};
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 9 +++++++++
+ arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
@@ -278,6 +278,15 @@
twd: timer-mfd@400 {
compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 9 +++++++++
+ arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
@@ -458,6 +458,15 @@
};
};
+++ /dev/null
-From 076dcedc6628c6bf92bd17bfcf8fb7b1af62bfb6 Mon Sep 17 00:00:00 2001
-From: William Zhang <william.zhang@broadcom.com>
-Date: Wed, 1 Jun 2022 15:56:51 -0700
-Subject: [PATCH] arm64: dts: Add DTS files for bcmbca SoC BCM63158
-
-Add DTS for ARMv8 based broadband SoC BCM63158. bcm63158.dtsi is the
-SoC description DTS header and bcm963158.dts is a simple DTS file for
-Broadcom BCM963158 Reference board that only enable the UART port.
-
-Signed-off-by: William Zhang <william.zhang@broadcom.com>
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/Makefile | 1 +
- arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 2 +
- .../boot/dts/broadcom/bcmbca/bcm63158.dtsi | 128 ++++++++++++++++++
- .../boot/dts/broadcom/bcmbca/bcm963158.dts | 30 ++++
- 4 files changed, 161 insertions(+)
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/Makefile
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts
-
---- a/arch/arm64/boot/dts/broadcom/Makefile
-+++ b/arch/arm64/boot/dts/broadcom/Makefile
-@@ -7,5 +7,6 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rp
- bcm2837-rpi-cm3-io3.dtb
-
- subdir-y += bcm4908
-+subdir-y += bcmbca
- subdir-y += northstar2
- subdir-y += stingray
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -0,0 +1,2 @@
-+# SPDX-License-Identifier: GPL-2.0
-+dtb-$(CONFIG_ARCH_BCMBCA) += bcm963158.dtb
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi
-@@ -0,0 +1,128 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright 2022 Broadcom Ltd.
-+ */
-+
-+#include <dt-bindings/interrupt-controller/irq.h>
-+#include <dt-bindings/interrupt-controller/arm-gic.h>
-+
-+/ {
-+ compatible = "brcm,bcm63158", "brcm,bcmbca";
-+ #address-cells = <2>;
-+ #size-cells = <2>;
-+
-+ interrupt-parent = <&gic>;
-+
-+ cpus {
-+ #address-cells = <2>;
-+ #size-cells = <0>;
-+
-+ B53_0: cpu@0 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x0>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_1: cpu@1 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x1>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_2: cpu@2 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x2>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_3: cpu@3 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x3>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ L2_0: l2-cache0 {
-+ compatible = "cache";
-+ };
-+ };
-+
-+ timer {
-+ compatible = "arm,armv8-timer";
-+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-+ };
-+
-+ pmu: pmu {
-+ compatible = "arm,cortex-a53-pmu";
-+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-affinity = <&B53_0>, <&B53_1>,
-+ <&B53_2>, <&B53_3>;
-+ };
-+
-+ clocks: clocks {
-+ periph_clk: periph-clk {
-+ compatible = "fixed-clock";
-+ #clock-cells = <0>;
-+ clock-frequency = <200000000>;
-+ };
-+ uart_clk: uart-clk {
-+ compatible = "fixed-factor-clock";
-+ #clock-cells = <0>;
-+ clocks = <&periph_clk>;
-+ clock-div = <4>;
-+ clock-mult = <1>;
-+ };
-+ };
-+
-+ psci {
-+ compatible = "arm,psci-0.2";
-+ method = "smc";
-+ };
-+
-+ axi@81000000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x0 0x0 0x81000000 0x8000>;
-+
-+ gic: interrupt-controller@1000 {
-+ compatible = "arm,gic-400";
-+ #interrupt-cells = <3>;
-+ interrupt-controller;
-+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
-+ reg = <0x1000 0x1000>,
-+ <0x2000 0x2000>,
-+ <0x4000 0x2000>,
-+ <0x6000 0x2000>;
-+ };
-+ };
-+
-+ bus@ff800000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x0 0x0 0xff800000 0x800000>;
-+
-+ uart0: serial@12000 {
-+ compatible = "arm,pl011", "arm,primecell";
-+ reg = <0x12000 0x1000>;
-+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-+ clocks = <&uart_clk>, <&uart_clk>;
-+ clock-names = "uartclk", "apb_pclk";
-+ status = "disabled";
-+ };
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts
-@@ -0,0 +1,30 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright 2022 Broadcom Ltd.
-+ */
-+
-+/dts-v1/;
-+
-+#include "bcm63158.dtsi"
-+
-+/ {
-+ model = "Broadcom BCM963158 Reference Board";
-+ compatible = "brcm,bcm963158", "brcm,bcm63158", "brcm,bcmbca";
-+
-+ aliases {
-+ serial0 = &uart0;
-+ };
-+
-+ chosen {
-+ stdout-path = "serial0:115200n8";
-+ };
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x0 0x0 0x0 0x08000000>;
-+ };
-+};
-+
-+&uart0 {
-+ status = "okay";
-+};
+++ /dev/null
-From 1ba56aeb391401c4cb2126c39f90b3cdbfabdb3f Mon Sep 17 00:00:00 2001
-From: William Zhang <william.zhang@broadcom.com>
-Date: Wed, 1 Jun 2022 13:17:34 -0700
-Subject: [PATCH] arm64: dts: Add DTS files for bcmbca SoC BCM4912
-
-Add DTS for ARMv8 based broadband SoC BCM4912. bcm4912.dtsi is the
-SoC description DTS header and bcm94912.dts is a simple DTS file for
-Broadcom BCM94912 Reference board that only enable the UART port.
-
-Signed-off-by: William Zhang <william.zhang@broadcom.com>
-Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 3 +-
- .../boot/dts/broadcom/bcmbca/bcm4912.dtsi | 128 ++++++++++++++++++
- .../boot/dts/broadcom/bcmbca/bcm94912.dts | 30 ++++
- 3 files changed, 160 insertions(+), 1 deletion(-)
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts
-
---- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -1,2 +1,3 @@
- # SPDX-License-Identifier: GPL-2.0
--dtb-$(CONFIG_ARCH_BCMBCA) += bcm963158.dtb
-+dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
-+ bcm963158.dtb
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi
-@@ -0,0 +1,128 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright 2022 Broadcom Ltd.
-+ */
-+
-+#include <dt-bindings/interrupt-controller/irq.h>
-+#include <dt-bindings/interrupt-controller/arm-gic.h>
-+
-+/ {
-+ compatible = "brcm,bcm4912", "brcm,bcmbca";
-+ #address-cells = <2>;
-+ #size-cells = <2>;
-+
-+ interrupt-parent = <&gic>;
-+
-+ cpus {
-+ #address-cells = <2>;
-+ #size-cells = <0>;
-+
-+ B53_0: cpu@0 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x0>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_1: cpu@1 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x1>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_2: cpu@2 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x2>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_3: cpu@3 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x3>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ L2_0: l2-cache0 {
-+ compatible = "cache";
-+ };
-+ };
-+
-+ timer {
-+ compatible = "arm,armv8-timer";
-+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-+ };
-+
-+ pmu: pmu {
-+ compatible = "arm,cortex-a53-pmu";
-+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-affinity = <&B53_0>, <&B53_1>,
-+ <&B53_2>, <&B53_3>;
-+ };
-+
-+ clocks: clocks {
-+ periph_clk: periph-clk {
-+ compatible = "fixed-clock";
-+ #clock-cells = <0>;
-+ clock-frequency = <200000000>;
-+ };
-+ uart_clk: uart-clk {
-+ compatible = "fixed-factor-clock";
-+ #clock-cells = <0>;
-+ clocks = <&periph_clk>;
-+ clock-div = <4>;
-+ clock-mult = <1>;
-+ };
-+ };
-+
-+ psci {
-+ compatible = "arm,psci-0.2";
-+ method = "smc";
-+ };
-+
-+ axi@81000000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x0 0x0 0x81000000 0x8000>;
-+
-+ gic: interrupt-controller@1000 {
-+ compatible = "arm,gic-400";
-+ #interrupt-cells = <3>;
-+ interrupt-controller;
-+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
-+ reg = <0x1000 0x1000>,
-+ <0x2000 0x2000>,
-+ <0x4000 0x2000>,
-+ <0x6000 0x2000>;
-+ };
-+ };
-+
-+ bus@ff800000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x0 0x0 0xff800000 0x800000>;
-+
-+ uart0: serial@12000 {
-+ compatible = "arm,pl011", "arm,primecell";
-+ reg = <0x12000 0x1000>;
-+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-+ clocks = <&uart_clk>, <&uart_clk>;
-+ clock-names = "uartclk", "apb_pclk";
-+ status = "disabled";
-+ };
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts
-@@ -0,0 +1,30 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright 2022 Broadcom Ltd.
-+ */
-+
-+/dts-v1/;
-+
-+#include "bcm4912.dtsi"
-+
-+/ {
-+ model = "Broadcom BCM94912 Reference Board";
-+ compatible = "brcm,bcm94912", "brcm,bcm4912", "brcm,bcmbca";
-+
-+ aliases {
-+ serial0 = &uart0;
-+ };
-+
-+ chosen {
-+ stdout-path = "serial0:115200n8";
-+ };
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x0 0x0 0x0 0x08000000>;
-+ };
-+};
-+
-+&uart0 {
-+ status = "okay";
-+};
+++ /dev/null
-From e663e06bd3f21e64bc2163910f626af68add6308 Mon Sep 17 00:00:00 2001
-From: Anand Gore <anand.gore@broadcom.com>
-Date: Wed, 1 Jun 2022 13:19:56 -0700
-Subject: [PATCH] ARM64: dts: Add DTS files for bcmbca SoC BCM6858
-
-Add DTS for ARMv8 based broadband SoC BCM6858. bcm6858.dtsi is the SoC
-description DTS header and bcm96858.dts is a simple DTS file for
-Broadcom BCM96858 Reference board that only enables the UART port.
-
-Signed-off-by: Anand Gore <anand.gore@broadcom.com>
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 3 +-
- .../boot/dts/broadcom/bcmbca/bcm6858.dtsi | 121 ++++++++++++++++++
- .../boot/dts/broadcom/bcmbca/bcm96858.dts | 30 +++++
- 3 files changed, 153 insertions(+), 1 deletion(-)
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts
-
---- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -1,3 +1,4 @@
- # SPDX-License-Identifier: GPL-2.0
- dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
-- bcm963158.dtb
-+ bcm963158.dtb \
-+ bcm96858.dtb
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi
-@@ -0,0 +1,121 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright 2022 Broadcom Ltd.
-+ */
-+
-+#include <dt-bindings/interrupt-controller/irq.h>
-+#include <dt-bindings/interrupt-controller/arm-gic.h>
-+
-+/ {
-+ compatible = "brcm,bcm6858", "brcm,bcmbca";
-+ #address-cells = <2>;
-+ #size-cells = <2>;
-+
-+ interrupt-parent = <&gic>;
-+
-+ cpus {
-+ #address-cells = <2>;
-+ #size-cells = <0>;
-+
-+ B53_0: cpu@0 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x0>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_1: cpu@1 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x1>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_2: cpu@2 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x2>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+
-+ B53_3: cpu@3 {
-+ compatible = "brcm,brahma-b53";
-+ device_type = "cpu";
-+ reg = <0x0 0x3>;
-+ next-level-cache = <&L2_0>;
-+ enable-method = "psci";
-+ };
-+ L2_0: l2-cache0 {
-+ compatible = "cache";
-+ };
-+ };
-+
-+ timer {
-+ compatible = "arm,armv8-timer";
-+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-+ };
-+
-+ pmu: pmu {
-+ compatible = "arm,armv8-pmuv3";
-+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-affinity = <&B53_0>, <&B53_1>,
-+ <&B53_2>, <&B53_3>;
-+ };
-+
-+ clocks: clocks {
-+ periph_clk:periph-clk {
-+ compatible = "fixed-clock";
-+ #clock-cells = <0>;
-+ clock-frequency = <200000000>;
-+ };
-+ };
-+
-+ psci {
-+ compatible = "arm,psci-0.2";
-+ method = "smc";
-+ };
-+
-+ axi@81000000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x0 0x0 0x81000000 0x8000>;
-+
-+ gic: interrupt-controller@1000 {
-+ compatible = "arm,gic-400";
-+ #interrupt-cells = <3>;
-+ interrupt-controller;
-+ reg = <0x1000 0x1000>, /* GICD */
-+ <0x2000 0x2000>, /* GICC */
-+ <0x4000 0x2000>, /* GICH */
-+ <0x6000 0x2000>; /* GICV */
-+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
-+ IRQ_TYPE_LEVEL_HIGH)>;
-+ };
-+ };
-+
-+ bus@ff800000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x0 0x0 0xff800000 0x62000>;
-+
-+ uart0: serial@640 {
-+ compatible = "brcm,bcm6345-uart";
-+ reg = <0x640 0x18>;
-+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-+ clocks = <&periph_clk>;
-+ clock-names = "refclk";
-+ status = "disabled";
-+ };
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts
-@@ -0,0 +1,30 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright 2022 Broadcom Ltd.
-+ */
-+
-+/dts-v1/;
-+
-+#include "bcm6858.dtsi"
-+
-+/ {
-+ model = "Broadcom BCM96858 Reference Board";
-+ compatible = "brcm,bcm96858", "brcm,bcm6858", "brcm,bcmbca";
-+
-+ aliases {
-+ serial0 = &uart0;
-+ };
-+
-+ chosen {
-+ stdout-path = "serial0:115200n8";
-+ };
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x0 0x0 0x0 0x08000000>;
-+ };
-+};
-+
-+&uart0 {
-+ status = "okay";
-+};
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -1,4 +1,5 @@
- # SPDX-License-Identifier: GPL-2.0
- dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
+@@ -7,4 +7,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += \
+ bcm4912-asus-gt-ax6000.dtb \
+ bcm94912.dtb \
bcm963158.dtb \
- bcm96858.dtb
+ bcm96858.dtb \
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -2,4 +2,5 @@
- dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
+@@ -8,4 +8,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += \
+ bcm94912.dtb \
bcm963158.dtb \
bcm96858.dtb \
- bcm963146.dtb
--- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -3,4 +3,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dt
+@@ -9,4 +9,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += \
bcm963158.dtb \
bcm96858.dtb \
bcm963146.dtb \
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220616005333.18491-6-krzysztof.kozlowski@linaro.org
---
- .../broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 8 ++++----
- .../boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 8 ++++----
+ .../broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts | 8 ++++----
+ .../boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
@@ -83,25 +83,25 @@
compatible = "gpio-keys-polled";
poll-interval = <100>;
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
@@ -18,25 +18,25 @@
compatible = "gpio-keys-polled";
poll-interval = <100>;
Signed-off-by: William Zhang <william.zhang@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi | 8 ++++++++
+ arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi
@@ -17,6 +17,14 @@
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
};
+++ /dev/null
-From f3f575c4bef95384e68de552c7b29938fd0d9201 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Wed, 13 Jul 2022 22:03:51 +0200
-Subject: [PATCH] arm64: dts: Add base DTS file for bcmbca device Asus
- GT-AX6000
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It's a home router with 1 GiB of RAM, 6 Ethernet ports, 2 USB ports.
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Acked-by: William Zhang <william.zhang@broadcom.com>
-Link: https://lore.kernel.org/r/20220713200351.28526-2-zajec5@gmail.com
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 4 +++-
- .../bcmbca/bcm4912-asus-gt-ax6000.dts | 19 +++++++++++++++++++
- 2 files changed, 22 insertions(+), 1 deletion(-)
- create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts
-
---- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -1,5 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0
--dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dtb \
-+dtb-$(CONFIG_ARCH_BCMBCA) += \
-+ bcm4912-asus-gt-ax6000.dtb \
-+ bcm94912.dtb \
- bcm963158.dtb \
- bcm96858.dtb \
- bcm963146.dtb \
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts
-@@ -0,0 +1,19 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+/dts-v1/;
-+
-+#include "bcm4912.dtsi"
-+
-+/ {
-+ compatible = "asus,gt-ax6000", "brcm,bcm4912", "brcm,bcmbca";
-+ model = "Asus GT-AX6000";
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00 0x00 0x00 0x40000000>;
-+ };
-+};
-+
-+&uart0 {
-+ status = "okay";
-+};
Link: https://lore.kernel.org/r/20220718132100.13277-1-zajec5@gmail.com
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 75 +++++++++++++++++++
+ .../boot/dts/broadcom/bcmbca/bcm4908.dtsi | 75 +++++++++++++++++++
1 file changed, 75 insertions(+)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
@@ -352,6 +352,61 @@
groups = "led_9_grp_a";
};
Link: https://lore.kernel.org/r/20220718132100.13277-2-zajec5@gmail.com
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 8 ++++++++
+ arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
@@ -517,6 +517,14 @@
status = "okay";
};
Link: https://lore.kernel.org/r/20220718132100.13277-3-zajec5@gmail.com
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- .../bcm4908/bcm4908-asus-gt-ac5300.dts | 48 +++++++++++++++++++
+ .../bcmbca/bcm4908-asus-gt-ac5300.dts | 48 +++++++++++++++++++
1 file changed, 48 insertions(+)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
@@ -2,6 +2,7 @@
#include <dt-bindings/gpio/gpio.h>
Link: https://lore.kernel.org/r/20220803175455.47638-4-william.zhang@broadcom.com
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
- arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 2 +-
- .../dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 2 +-
- arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 2 +-
- .../arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts | 2 +-
+ arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts | 2 +-
+ .../dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts | 2 +-
+ arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts | 2 +-
+ .../arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
@@ -7,7 +7,7 @@
#include "bcm4906.dtsi"
model = "Netgear R8000P";
memory@0 {
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
@@ -7,7 +7,7 @@
#include "bcm4906.dtsi"
model = "TP-Link Archer C2300 V1";
memory@0 {
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
@@ -7,7 +7,7 @@
#include "bcm4908.dtsi"
model = "Asus GT-AC5300";
memory@0 {
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
+--- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts
++++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts
@@ -3,7 +3,7 @@
#include "bcm4908.dtsi"
+++ /dev/null
-From ded8f22945899f4e87dd6d952bbc4abce6e64b7e Mon Sep 17 00:00:00 2001
-From: William Zhang <william.zhang@broadcom.com>
-Date: Wed, 3 Aug 2022 10:54:50 -0700
-Subject: [PATCH] arm64: dts: Move BCM4908 dts to bcmbca folder
-
-As part of ARCH_BCM4908 to ARCH_BCMBCA migration, move the BCM4908 dts
-files to bcmbca folder and use CONFIG_ARCH_BCMBCA to build all the
-BCM4908 board dts. Delete bcm4908 folder and its makefile as well.
-
-Signed-off-by: William Zhang <william.zhang@broadcom.com>
-Link: https://lore.kernel.org/r/20220803175455.47638-5-william.zhang@broadcom.com
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/Makefile | 1 -
- arch/arm64/boot/dts/broadcom/bcm4908/Makefile | 5 -----
- arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 4 ++++
- .../broadcom/{bcm4908 => bcmbca}/bcm4906-netgear-r8000p.dts | 0
- .../{bcm4908 => bcmbca}/bcm4906-tplink-archer-c2300-v1.dts | 0
- .../arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906.dtsi | 0
- .../broadcom/{bcm4908 => bcmbca}/bcm4908-asus-gt-ac5300.dts | 0
- .../broadcom/{bcm4908 => bcmbca}/bcm4908-netgear-raxe500.dts | 0
- .../arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908.dtsi | 0
- 9 files changed, 4 insertions(+), 6 deletions(-)
- delete mode 100644 arch/arm64/boot/dts/broadcom/bcm4908/Makefile
- rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906-netgear-r8000p.dts (100%)
- rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906-tplink-archer-c2300-v1.dts (100%)
- rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906.dtsi (100%)
- rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908-asus-gt-ac5300.dts (100%)
- rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908-netgear-raxe500.dts (100%)
- rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908.dtsi (100%)
-
---- a/arch/arm64/boot/dts/broadcom/Makefile
-+++ b/arch/arm64/boot/dts/broadcom/Makefile
-@@ -6,7 +6,6 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rp
- bcm2837-rpi-3-b-plus.dtb \
- bcm2837-rpi-cm3-io3.dtb
-
--subdir-y += bcm4908
- subdir-y += bcmbca
- subdir-y += northstar2
- subdir-y += stingray
---- a/arch/arm64/boot/dts/broadcom/bcm4908/Makefile
-+++ /dev/null
-@@ -1,5 +0,0 @@
--# SPDX-License-Identifier: GPL-2.0
--dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
--dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
--dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb
--dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-netgear-raxe500.dtb
---- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile
-@@ -1,5 +1,9 @@
- # SPDX-License-Identifier: GPL-2.0
- dtb-$(CONFIG_ARCH_BCMBCA) += \
-+ bcm4906-netgear-r8000p.dtb \
-+ bcm4906-tplink-archer-c2300-v1.dtb \
-+ bcm4908-asus-gt-ac5300.dtb \
-+ bcm4908-netgear-raxe500.dtb \
- bcm4912-asus-gt-ax6000.dtb \
- bcm94912.dtb \
- bcm963158.dtb \
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
-+++ /dev/null
-@@ -1,157 +0,0 @@
--// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
--
--#include <dt-bindings/gpio/gpio.h>
--#include <dt-bindings/input/input.h>
--#include <dt-bindings/leds/common.h>
--
--#include "bcm4906.dtsi"
--
--/ {
-- compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
-- model = "Netgear R8000P";
--
-- memory@0 {
-- device_type = "memory";
-- reg = <0x00 0x00 0x00 0x20000000>;
-- };
--
-- leds {
-- compatible = "gpio-leds";
--
-- led-power-white {
-- function = LED_FUNCTION_POWER;
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
-- };
--
-- led-power-amber {
-- function = LED_FUNCTION_POWER;
-- color = <LED_COLOR_ID_AMBER>;
-- gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
-- };
--
-- led-wps {
-- function = LED_FUNCTION_WPS;
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
-- };
--
-- led-2ghz {
-- function = "2ghz";
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
-- };
--
-- led-5ghz-1 {
-- function = "5ghz-1";
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
-- };
--
-- led-5ghz-2 {
-- function = "5ghz-2";
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
-- };
--
-- led-usb2 {
-- function = "usb2";
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
-- };
--
-- led-usb3 {
-- function = "usb3";
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
-- };
--
-- led-wifi {
-- function = "wifi";
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
-- };
-- };
--};
--
--&enet {
-- nvmem-cells = <&base_mac_addr>;
-- nvmem-cell-names = "mac-address";
--};
--
--&usb_phy {
-- brcm,ioc = <1>;
-- status = "okay";
--};
--
--&ehci {
-- status = "okay";
--};
--
--&ohci {
-- status = "okay";
--};
--
--&xhci {
-- status = "okay";
--};
--
--&ports {
-- port@0 {
-- label = "lan4";
-- };
--
-- port@1 {
-- label = "lan3";
-- };
--
-- port@2 {
-- label = "lan2";
-- };
--
-- port@3 {
-- label = "lan1";
-- };
--
-- port@7 {
-- reg = <7>;
-- phy-mode = "internal";
-- phy-handle = <&phy12>;
-- label = "wan";
-- };
--};
--
--&nandcs {
-- nand-ecc-strength = <4>;
-- nand-ecc-step-size = <512>;
-- nand-on-flash-bbt;
--
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- partitions {
-- compatible = "fixed-partitions";
-- #address-cells = <1>;
-- #size-cells = <1>;
--
-- partition@0 {
-- compatible = "nvmem-cells";
-- label = "cferom";
-- reg = <0x0 0x100000>;
--
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges = <0 0x0 0x100000>;
--
-- base_mac_addr: mac@106a0 {
-- reg = <0x106a0 0x6>;
-- };
-- };
--
-- partition@100000 {
-- compatible = "brcm,bcm4908-firmware";
-- label = "firmware";
-- reg = <0x100000 0x4400000>;
-- };
-- };
--};
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
-+++ /dev/null
-@@ -1,182 +0,0 @@
--// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
--
--#include <dt-bindings/gpio/gpio.h>
--#include <dt-bindings/input/input.h>
--#include <dt-bindings/leds/common.h>
--
--#include "bcm4906.dtsi"
--
--/ {
-- compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
-- model = "TP-Link Archer C2300 V1";
--
-- memory@0 {
-- device_type = "memory";
-- reg = <0x00 0x00 0x00 0x20000000>;
-- };
--
-- leds {
-- compatible = "gpio-leds";
--
-- led-power {
-- function = LED_FUNCTION_POWER;
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
-- };
--
-- led-2ghz {
-- function = "2ghz";
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
-- };
--
-- led-5ghz {
-- function = "5ghz";
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
-- };
--
-- led-wan-amber {
-- function = LED_FUNCTION_WAN;
-- color = <LED_COLOR_ID_AMBER>;
-- gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
-- };
--
-- led-wan-blue {
-- function = LED_FUNCTION_WAN;
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
-- };
--
-- led-lan {
-- function = LED_FUNCTION_LAN;
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
-- };
--
-- led-wps {
-- function = LED_FUNCTION_WPS;
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
-- };
--
-- led-usb2 {
-- function = "usb2";
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
-- };
--
-- led-usb3 {
-- function = "usbd3";
-- color = <LED_COLOR_ID_BLUE>;
-- gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
-- };
--
-- led-brightness {
-- function = LED_FUNCTION_BACKLIGHT;
-- color = <LED_COLOR_ID_WHITE>;
-- gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
-- };
-- };
--
-- gpio-keys-polled {
-- compatible = "gpio-keys-polled";
-- poll-interval = <100>;
--
-- key-brightness {
-- label = "LEDs";
-- linux,code = <KEY_BRIGHTNESS_ZERO>;
-- gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
-- };
--
-- key-wps {
-- label = "WPS";
-- linux,code = <KEY_WPS_BUTTON>;
-- gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
-- };
--
-- key-wifi {
-- label = "WiFi";
-- linux,code = <KEY_RFKILL>;
-- gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
-- };
--
-- key-restart {
-- label = "Reset";
-- linux,code = <KEY_RESTART>;
-- gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
-- };
-- };
--};
--
--&usb_phy {
-- brcm,ioc = <1>;
-- status = "okay";
--};
--
--&ehci {
-- status = "okay";
--};
--
--&ohci {
-- status = "okay";
--};
--
--&xhci {
-- status = "okay";
--};
--
--&ports {
-- port@0 {
-- label = "lan4";
-- };
--
-- port@1 {
-- label = "lan3";
-- };
--
-- port@2 {
-- label = "lan2";
-- };
--
-- port@3 {
-- label = "lan1";
-- };
--
-- port@7 {
-- reg = <7>;
-- phy-mode = "internal";
-- phy-handle = <&phy12>;
-- label = "wan";
-- };
--};
--
--&nandcs {
-- nand-ecc-strength = <4>;
-- nand-ecc-step-size = <512>;
-- nand-on-flash-bbt;
--
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- partitions {
-- compatible = "brcm,bcm4908-partitions";
-- #address-cells = <1>;
-- #size-cells = <1>;
--
-- partition@0 {
-- label = "cferom";
-- reg = <0x0 0x100000>;
-- };
--
-- partition@100000 {
-- compatible = "brcm,bcm4908-firmware";
-- reg = <0x100000 0x3900000>;
-- };
--
-- partition@5800000 {
-- compatible = "brcm,bcm4908-firmware";
-- reg = <0x3a00000 0x3900000>;
-- };
-- };
--};
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi
-+++ /dev/null
-@@ -1,34 +0,0 @@
--// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
--
--#include "bcm4908.dtsi"
--
--/ {
-- cpus {
-- /delete-node/ cpu@2;
--
-- /delete-node/ cpu@3;
-- };
--
-- timer {
-- compatible = "arm,armv8-timer";
-- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
-- };
--
-- timer {
-- compatible = "arm,armv8-timer";
-- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
-- };
--
-- pmu {
-- compatible = "arm,cortex-a53-pmu";
-- interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-- interrupt-affinity = <&cpu0>, <&cpu1>;
-- };
--};
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
-+++ /dev/null
-@@ -1,207 +0,0 @@
--// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
--
--#include <dt-bindings/gpio/gpio.h>
--#include <dt-bindings/input/input.h>
--#include <dt-bindings/leds/common.h>
--
--#include "bcm4908.dtsi"
--
--/ {
-- compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca";
-- model = "Asus GT-AC5300";
--
-- memory@0 {
-- device_type = "memory";
-- reg = <0x00 0x00 0x00 0x40000000>;
-- };
--
-- gpio-keys-polled {
-- compatible = "gpio-keys-polled";
-- poll-interval = <100>;
--
-- key-wifi {
-- label = "WiFi";
-- linux,code = <KEY_RFKILL>;
-- gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
-- };
--
-- key-wps {
-- label = "WPS";
-- linux,code = <KEY_WPS_BUTTON>;
-- gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
-- };
--
-- key-restart {
-- label = "Reset";
-- linux,code = <KEY_RESTART>;
-- gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
-- };
--
-- key-brightness {
-- label = "LEDs";
-- linux,code = <KEY_BRIGHTNESS_ZERO>;
-- gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
-- };
-- };
--};
--
--&enet {
-- nvmem-cells = <&base_mac_addr>;
-- nvmem-cell-names = "mac-address";
--};
--
--&usb_phy {
-- brcm,ioc = <1>;
-- status = "okay";
--};
--
--&ehci {
-- status = "okay";
--};
--
--&ohci {
-- status = "okay";
--};
--
--&xhci {
-- status = "okay";
--};
--
--&ports {
-- port@0 {
-- label = "lan2";
-- };
--
-- port@1 {
-- label = "lan1";
-- };
--
-- port@2 {
-- label = "lan6";
-- };
--
-- port@3 {
-- label = "lan5";
-- };
--
-- /* External BCM53134S switch */
-- port@7 {
-- label = "sw";
-- reg = <7>;
-- phy-mode = "rgmii";
--
-- fixed-link {
-- speed = <1000>;
-- full-duplex;
-- };
-- };
--};
--
--&mdio {
-- /* lan8 */
-- ethernet-phy@0 {
-- reg = <0>;
-- };
--
-- /* lan7 */
-- ethernet-phy@1 {
-- reg = <1>;
-- };
--
-- /* lan4 */
-- ethernet-phy@2 {
-- reg = <2>;
-- };
--
-- /* lan3 */
-- ethernet-phy@3 {
-- reg = <3>;
-- };
--};
--
--&leds {
-- led-power@11 {
-- reg = <0x11>;
-- function = LED_FUNCTION_POWER;
-- color = <LED_COLOR_ID_WHITE>;
-- default-state = "on";
-- active-low;
-- pinctrl-names = "default";
-- pinctrl-0 = <&pins_led_17_a>;
-- };
--
-- led-wan-red@12 {
-- reg = <0x12>;
-- function = LED_FUNCTION_WAN;
-- color = <LED_COLOR_ID_RED>;
-- active-low;
-- pinctrl-names = "default";
-- pinctrl-0 = <&pins_led_18_a>;
-- };
--
-- led-wps@14 {
-- reg = <0x14>;
-- function = LED_FUNCTION_WPS;
-- color = <LED_COLOR_ID_WHITE>;
-- active-low;
-- pinctrl-names = "default";
-- pinctrl-0 = <&pins_led_20_a>;
-- };
--
-- led-wan-white@15 {
-- reg = <0x15>;
-- function = LED_FUNCTION_WAN;
-- color = <LED_COLOR_ID_WHITE>;
-- active-low;
-- pinctrl-names = "default";
-- pinctrl-0 = <&pins_led_21_a>;
-- };
--
-- led-lan@19 {
-- reg = <0x19>;
-- function = LED_FUNCTION_LAN;
-- color = <LED_COLOR_ID_WHITE>;
-- pinctrl-names = "default";
-- pinctrl-0 = <&pins_led_25_a>;
-- };
--};
--
--&nandcs {
-- nand-ecc-strength = <4>;
-- nand-ecc-step-size = <512>;
-- nand-on-flash-bbt;
-- brcm,nand-has-wp;
--
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- partitions {
-- compatible = "brcm,bcm4908-partitions";
-- #address-cells = <1>;
-- #size-cells = <1>;
--
-- partition@0 {
-- compatible = "nvmem-cells";
-- label = "cferom";
-- reg = <0x0 0x100000>;
--
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges = <0 0x0 0x100000>;
--
-- base_mac_addr: mac@106a0 {
-- reg = <0x106a0 0x6>;
-- };
-- };
--
-- partition@100000 {
-- compatible = "brcm,bcm4908-firmware";
-- reg = <0x100000 0x5700000>;
-- };
--
-- partition@5800000 {
-- compatible = "brcm,bcm4908-firmware";
-- reg = <0x5800000 0x5700000>;
-- };
-- };
--};
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
-+++ /dev/null
-@@ -1,50 +0,0 @@
--// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
--
--#include "bcm4908.dtsi"
--
--/ {
-- compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca";
-- model = "Netgear RAXE500";
--
-- memory@0 {
-- device_type = "memory";
-- reg = <0x00 0x00 0x00 0x40000000>;
-- };
--};
--
--&ehci {
-- status = "okay";
--};
--
--&ohci {
-- status = "okay";
--};
--
--&xhci {
-- status = "okay";
--};
--
--&ports {
-- port@0 {
-- label = "lan4";
-- };
--
-- port@1 {
-- label = "lan3";
-- };
--
-- port@2 {
-- label = "lan2";
-- };
--
-- port@3 {
-- label = "lan1";
-- };
--
-- port@7 {
-- reg = <7>;
-- phy-mode = "internal";
-- phy-handle = <&phy12>;
-- label = "wan";
-- };
--};
---- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
-+++ /dev/null
-@@ -1,575 +0,0 @@
--// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
--
--#include <dt-bindings/interrupt-controller/irq.h>
--#include <dt-bindings/interrupt-controller/arm-gic.h>
--#include <dt-bindings/phy/phy.h>
--#include <dt-bindings/soc/bcm-pmb.h>
--
--/dts-v1/;
--
--/ {
-- interrupt-parent = <&gic>;
--
-- #address-cells = <2>;
-- #size-cells = <2>;
--
-- aliases {
-- serial0 = &uart0;
-- };
--
-- chosen {
-- stdout-path = "serial0:115200n8";
-- };
--
-- cpus {
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- cpu0: cpu@0 {
-- device_type = "cpu";
-- compatible = "brcm,brahma-b53";
-- reg = <0x0>;
-- enable-method = "spin-table";
-- cpu-release-addr = <0x0 0xfff8>;
-- next-level-cache = <&l2>;
-- };
--
-- cpu1: cpu@1 {
-- device_type = "cpu";
-- compatible = "brcm,brahma-b53";
-- reg = <0x1>;
-- enable-method = "spin-table";
-- cpu-release-addr = <0x0 0xfff8>;
-- next-level-cache = <&l2>;
-- };
--
-- cpu2: cpu@2 {
-- device_type = "cpu";
-- compatible = "brcm,brahma-b53";
-- reg = <0x2>;
-- enable-method = "spin-table";
-- cpu-release-addr = <0x0 0xfff8>;
-- next-level-cache = <&l2>;
-- };
--
-- cpu3: cpu@3 {
-- device_type = "cpu";
-- compatible = "brcm,brahma-b53";
-- reg = <0x3>;
-- enable-method = "spin-table";
-- cpu-release-addr = <0x0 0xfff8>;
-- next-level-cache = <&l2>;
-- };
--
-- l2: l2-cache0 {
-- compatible = "cache";
-- };
-- };
--
-- axi@81000000 {
-- compatible = "simple-bus";
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges = <0x00 0x00 0x81000000 0x4000>;
--
-- gic: interrupt-controller@1000 {
-- compatible = "arm,gic-400";
-- #interrupt-cells = <3>;
-- #address-cells = <0>;
-- interrupt-controller;
-- reg = <0x1000 0x1000>,
-- <0x2000 0x2000>;
-- };
-- };
--
-- timer {
-- compatible = "arm,armv8-timer";
-- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-- };
--
-- pmu {
-- compatible = "arm,cortex-a53-pmu";
-- interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-- interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
-- };
--
-- clocks {
-- periph_clk: periph_clk {
-- compatible = "fixed-clock";
-- #clock-cells = <0>;
-- clock-frequency = <50000000>;
-- clock-output-names = "periph";
-- };
-- };
--
-- soc {
-- compatible = "simple-bus";
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges = <0x00 0x00 0x80000000 0x281000>;
--
-- enet: ethernet@2000 {
-- compatible = "brcm,bcm4908-enet";
-- reg = <0x2000 0x1000>;
--
-- interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
-- interrupt-names = "rx", "tx";
-- };
--
-- usb_phy: usb-phy@c200 {
-- compatible = "brcm,bcm4908-usb-phy";
-- reg = <0xc200 0x100>;
-- reg-names = "ctrl";
-- power-domains = <&pmb BCM_PMB_HOST_USB>;
-- dr_mode = "host";
-- brcm,has-xhci;
-- brcm,has-eohci;
-- #phy-cells = <1>;
-- status = "disabled";
-- };
--
-- ehci: usb@c300 {
-- compatible = "generic-ehci";
-- reg = <0xc300 0x100>;
-- interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-- phys = <&usb_phy PHY_TYPE_USB2>;
-- status = "disabled";
-- };
--
-- ohci: usb@c400 {
-- compatible = "generic-ohci";
-- reg = <0xc400 0x100>;
-- interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
-- phys = <&usb_phy PHY_TYPE_USB2>;
-- status = "disabled";
-- };
--
-- xhci: usb@d000 {
-- compatible = "generic-xhci";
-- reg = <0xd000 0x8c8>;
-- interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-- phys = <&usb_phy PHY_TYPE_USB3>;
-- status = "disabled";
-- };
--
-- bus@80000 {
-- compatible = "simple-bus";
-- #size-cells = <1>;
-- #address-cells = <1>;
-- ranges = <0 0x80000 0x50000>;
--
-- ethernet-switch@0 {
-- compatible = "brcm,bcm4908-switch";
-- reg = <0x0 0x40000>,
-- <0x40000 0x110>,
-- <0x40340 0x30>,
-- <0x40380 0x30>,
-- <0x40600 0x34>,
-- <0x40800 0x208>;
-- reg-names = "core", "reg", "intrl2_0",
-- "intrl2_1", "fcb", "acb";
-- interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
-- brcm,num-gphy = <5>;
-- brcm,num-rgmii-ports = <2>;
--
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- ports: ports {
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- port@0 {
-- reg = <0>;
-- phy-mode = "internal";
-- phy-handle = <&phy8>;
-- };
--
-- port@1 {
-- reg = <1>;
-- phy-mode = "internal";
-- phy-handle = <&phy9>;
-- };
--
-- port@2 {
-- reg = <2>;
-- phy-mode = "internal";
-- phy-handle = <&phy10>;
-- };
--
-- port@3 {
-- reg = <3>;
-- phy-mode = "internal";
-- phy-handle = <&phy11>;
-- };
--
-- port@8 {
-- reg = <8>;
-- phy-mode = "internal";
-- ethernet = <&enet>;
--
-- fixed-link {
-- speed = <1000>;
-- full-duplex;
-- };
-- };
-- };
-- };
--
-- mdio: mdio@405c0 {
-- compatible = "brcm,unimac-mdio";
-- reg = <0x405c0 0x8>;
-- reg-names = "mdio";
-- #size-cells = <0>;
-- #address-cells = <1>;
--
-- phy8: ethernet-phy@8 {
-- reg = <8>;
-- };
--
-- phy9: ethernet-phy@9 {
-- reg = <9>;
-- };
--
-- phy10: ethernet-phy@a {
-- reg = <10>;
-- };
--
-- phy11: ethernet-phy@b {
-- reg = <11>;
-- };
--
-- phy12: ethernet-phy@c {
-- reg = <12>;
-- };
-- };
-- };
--
-- procmon: syscon@280000 {
-- compatible = "simple-bus";
-- reg = <0x280000 0x1000>;
-- ranges;
--
-- #address-cells = <1>;
-- #size-cells = <1>;
--
-- pmb: power-controller@2800c0 {
-- compatible = "brcm,bcm4908-pmb";
-- reg = <0x2800c0 0x40>;
-- #power-domain-cells = <1>;
-- };
-- };
-- };
--
-- bus@ff800000 {
-- compatible = "simple-bus";
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges = <0x00 0x00 0xff800000 0x3000>;
--
-- twd: timer-mfd@400 {
-- compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
-- reg = <0x400 0x4c>;
-- ranges = <0x0 0x400 0x4c>;
--
-- #address-cells = <1>;
-- #size-cells = <1>;
--
-- watchdog@28 {
-- compatible = "brcm,bcm6345-wdt";
-- reg = <0x28 0x8>;
-- };
-- };
--
-- gpio0: gpio-controller@500 {
-- compatible = "brcm,bcm6345-gpio";
-- reg-names = "dirout", "dat";
-- reg = <0x500 0x28>, <0x528 0x28>;
--
-- #gpio-cells = <2>;
-- gpio-controller;
-- };
--
-- pinctrl@560 {
-- compatible = "brcm,bcm4908-pinctrl";
-- reg = <0x560 0x10>;
--
-- pins_led_0_a: led_0-a-pins {
-- function = "led_0";
-- groups = "led_0_grp_a";
-- };
--
-- pins_led_1_a: led_1-a-pins {
-- function = "led_1";
-- groups = "led_1_grp_a";
-- };
--
-- pins_led_2_a: led_2-a-pins {
-- function = "led_2";
-- groups = "led_2_grp_a";
-- };
--
-- pins_led_3_a: led_3-a-pins {
-- function = "led_3";
-- groups = "led_3_grp_a";
-- };
--
-- pins_led_4_a: led_4-a-pins {
-- function = "led_4";
-- groups = "led_4_grp_a";
-- };
--
-- pins_led_5_a: led_5-a-pins {
-- function = "led_5";
-- groups = "led_5_grp_a";
-- };
--
-- pins_led_6_a: led_6-a-pins {
-- function = "led_6";
-- groups = "led_6_grp_a";
-- };
--
-- pins_led_7_a: led_7-a-pins {
-- function = "led_7";
-- groups = "led_7_grp_a";
-- };
--
-- pins_led_8_a: led_8-a-pins {
-- function = "led_8";
-- groups = "led_8_grp_a";
-- };
--
-- pins_led_9_a: led_9-a-pins {
-- function = "led_9";
-- groups = "led_9_grp_a";
-- };
--
-- pins_led_10_a: led_10-a-pins {
-- function = "led_10";
-- groups = "led_10_grp_a";
-- };
--
-- pins_led_11_a: led_11-a-pins {
-- function = "led_11";
-- groups = "led_11_grp_a";
-- };
--
-- pins_led_12_a: led_12-a-pins {
-- function = "led_12";
-- groups = "led_12_grp_a";
-- };
--
-- pins_led_13_a: led_13-a-pins {
-- function = "led_13";
-- groups = "led_13_grp_a";
-- };
--
-- pins_led_14_a: led_14-a-pins {
-- function = "led_14";
-- groups = "led_14_grp_a";
-- };
--
-- pins_led_15_a: led_15-a-pins {
-- function = "led_15";
-- groups = "led_15_grp_a";
-- };
--
-- pins_led_16_a: led_16-a-pins {
-- function = "led_16";
-- groups = "led_16_grp_a";
-- };
--
-- pins_led_17_a: led_17-a-pins {
-- function = "led_17";
-- groups = "led_17_grp_a";
-- };
--
-- pins_led_18_a: led_18-a-pins {
-- function = "led_18";
-- groups = "led_18_grp_a";
-- };
--
-- pins_led_19_a: led_19-a-pins {
-- function = "led_19";
-- groups = "led_19_grp_a";
-- };
--
-- pins_led_20_a: led_20-a-pins {
-- function = "led_20";
-- groups = "led_20_grp_a";
-- };
--
-- pins_led_21_a: led_21-a-pins {
-- function = "led_21";
-- groups = "led_21_grp_a";
-- };
--
-- pins_led_22_a: led_22-a-pins {
-- function = "led_22";
-- groups = "led_22_grp_a";
-- };
--
-- pins_led_23_a: led_23-a-pins {
-- function = "led_23";
-- groups = "led_23_grp_a";
-- };
--
-- pins_led_24_a: led_24-a-pins {
-- function = "led_24";
-- groups = "led_24_grp_a";
-- };
--
-- pins_led_25_a: led_25-a-pins {
-- function = "led_25";
-- groups = "led_25_grp_a";
-- };
--
-- pins_led_26_a: led_26-a-pins {
-- function = "led_26";
-- groups = "led_26_grp_a";
-- };
--
-- pins_led_27_a: led_27-a-pins {
-- function = "led_27";
-- groups = "led_27_grp_a";
-- };
--
-- pins_led_28_a: led_28-a-pins {
-- function = "led_28";
-- groups = "led_28_grp_a";
-- };
--
-- pins_led_29_a: led_29-a-pins {
-- function = "led_29";
-- groups = "led_29_grp_a";
-- };
--
-- pins_led_30_a: led_30-a-pins {
-- function = "led_30";
-- groups = "led_30_grp_a";
-- };
--
-- pins_led_31_a: led_31-a-pins {
-- function = "led_31";
-- groups = "led_31_grp_a";
-- };
--
-- pins_hs_uart: hs_uart-pins {
-- function = "hs_uart";
-- groups = "hs_uart_grp";
-- };
--
-- pins_i2c_a: i2c-a-pins {
-- function = "i2c";
-- groups = "i2c_grp_a";
-- };
--
-- pins_i2c_b: i2c-b-pins {
-- function = "i2c";
-- groups = "i2c_grp_b";
-- };
--
-- pins_i2s: i2s-pins {
-- function = "i2s";
-- groups = "i2s_grp";
-- };
--
-- pins_nand_ctrl: nand_ctrl-pins {
-- function = "nand_ctrl";
-- groups = "nand_ctrl_grp";
-- };
--
-- pins_nand_data: nand_data-pins {
-- function = "nand_data";
-- groups = "nand_data_grp";
-- };
--
-- pins_emmc_ctrl: emmc_ctrl-pins {
-- function = "emmc_ctrl";
-- groups = "emmc_ctrl_grp";
-- };
--
-- pins_usb0_pwr: usb0_pwr-pins {
-- function = "usb0_pwr";
-- groups = "usb0_pwr_grp";
-- };
--
-- pins_usb1_pwr: usb1_pwr-pins {
-- function = "usb1_pwr";
-- groups = "usb1_pwr_grp";
-- };
-- };
--
-- uart0: serial@640 {
-- compatible = "brcm,bcm6345-uart";
-- reg = <0x640 0x18>;
-- interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&periph_clk>;
-- clock-names = "refclk";
-- status = "okay";
-- };
--
-- leds: leds@800 {
-- compatible = "brcm,bcm4908-leds", "brcm,bcm63138-leds";
-- reg = <0x800 0xdc>;
--
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- nand-controller@1800 {
-- #address-cells = <1>;
-- #size-cells = <0>;
-- compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
-- reg = <0x1800 0x600>, <0x2000 0x10>;
-- reg-names = "nand", "nand-int-base";
-- interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
-- interrupt-names = "nand";
-- status = "okay";
--
-- nandcs: nand@0 {
-- compatible = "brcm,nandcs";
-- reg = <0>;
-- };
-- };
--
-- i2c@2100 {
-- compatible = "brcm,brcmper-i2c";
-- reg = <0x2100 0x58>;
-- clock-frequency = <97500>;
-- pinctrl-names = "default";
-- pinctrl-0 = <&pins_i2c_a>;
-- status = "disabled";
-- };
--
-- misc@2600 {
-- compatible = "brcm,misc", "simple-mfd";
-- reg = <0x2600 0xe4>;
--
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges = <0x00 0x2600 0xe4>;
--
-- reset-controller@2644 {
-- compatible = "brcm,bcm4908-misc-pcie-reset";
-- reg = <0x44 0x04>;
-- #reset-cells = <1>;
-- };
-- };
-- };
--
-- reboot {
-- compatible = "syscon-reboot";
-- regmap = <&twd>;
-- offset = <0x34>;
-- mask = <1>;
-- };
--};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
-@@ -0,0 +1,157 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/input/input.h>
-+#include <dt-bindings/leds/common.h>
-+
-+#include "bcm4906.dtsi"
-+
-+/ {
-+ compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
-+ model = "Netgear R8000P";
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00 0x00 0x00 0x20000000>;
-+ };
-+
-+ leds {
-+ compatible = "gpio-leds";
-+
-+ led-power-white {
-+ function = LED_FUNCTION_POWER;
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-power-amber {
-+ function = LED_FUNCTION_POWER;
-+ color = <LED_COLOR_ID_AMBER>;
-+ gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-wps {
-+ function = LED_FUNCTION_WPS;
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-2ghz {
-+ function = "2ghz";
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-5ghz-1 {
-+ function = "5ghz-1";
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-5ghz-2 {
-+ function = "5ghz-2";
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-usb2 {
-+ function = "usb2";
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-usb3 {
-+ function = "usb3";
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-wifi {
-+ function = "wifi";
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+};
-+
-+&enet {
-+ nvmem-cells = <&base_mac_addr>;
-+ nvmem-cell-names = "mac-address";
-+};
-+
-+&usb_phy {
-+ brcm,ioc = <1>;
-+ status = "okay";
-+};
-+
-+&ehci {
-+ status = "okay";
-+};
-+
-+&ohci {
-+ status = "okay";
-+};
-+
-+&xhci {
-+ status = "okay";
-+};
-+
-+&ports {
-+ port@0 {
-+ label = "lan4";
-+ };
-+
-+ port@1 {
-+ label = "lan3";
-+ };
-+
-+ port@2 {
-+ label = "lan2";
-+ };
-+
-+ port@3 {
-+ label = "lan1";
-+ };
-+
-+ port@7 {
-+ reg = <7>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy12>;
-+ label = "wan";
-+ };
-+};
-+
-+&nandcs {
-+ nand-ecc-strength = <4>;
-+ nand-ecc-step-size = <512>;
-+ nand-on-flash-bbt;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ partitions {
-+ compatible = "fixed-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ partition@0 {
-+ compatible = "nvmem-cells";
-+ label = "cferom";
-+ reg = <0x0 0x100000>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0 0x0 0x100000>;
-+
-+ base_mac_addr: mac@106a0 {
-+ reg = <0x106a0 0x6>;
-+ };
-+ };
-+
-+ partition@100000 {
-+ compatible = "brcm,bcm4908-firmware";
-+ label = "firmware";
-+ reg = <0x100000 0x4400000>;
-+ };
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
-@@ -0,0 +1,182 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/input/input.h>
-+#include <dt-bindings/leds/common.h>
-+
-+#include "bcm4906.dtsi"
-+
-+/ {
-+ compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
-+ model = "TP-Link Archer C2300 V1";
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00 0x00 0x00 0x20000000>;
-+ };
-+
-+ leds {
-+ compatible = "gpio-leds";
-+
-+ led-power {
-+ function = LED_FUNCTION_POWER;
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-2ghz {
-+ function = "2ghz";
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-5ghz {
-+ function = "5ghz";
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-wan-amber {
-+ function = LED_FUNCTION_WAN;
-+ color = <LED_COLOR_ID_AMBER>;
-+ gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ led-wan-blue {
-+ function = LED_FUNCTION_WAN;
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-lan {
-+ function = LED_FUNCTION_LAN;
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-wps {
-+ function = LED_FUNCTION_WPS;
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-usb2 {
-+ function = "usb2";
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-usb3 {
-+ function = "usbd3";
-+ color = <LED_COLOR_ID_BLUE>;
-+ gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ led-brightness {
-+ function = LED_FUNCTION_BACKLIGHT;
-+ color = <LED_COLOR_ID_WHITE>;
-+ gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ gpio-keys-polled {
-+ compatible = "gpio-keys-polled";
-+ poll-interval = <100>;
-+
-+ key-brightness {
-+ label = "LEDs";
-+ linux,code = <KEY_BRIGHTNESS_ZERO>;
-+ gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ key-wps {
-+ label = "WPS";
-+ linux,code = <KEY_WPS_BUTTON>;
-+ gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ key-wifi {
-+ label = "WiFi";
-+ linux,code = <KEY_RFKILL>;
-+ gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ key-restart {
-+ label = "Reset";
-+ linux,code = <KEY_RESTART>;
-+ gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+};
-+
-+&usb_phy {
-+ brcm,ioc = <1>;
-+ status = "okay";
-+};
-+
-+&ehci {
-+ status = "okay";
-+};
-+
-+&ohci {
-+ status = "okay";
-+};
-+
-+&xhci {
-+ status = "okay";
-+};
-+
-+&ports {
-+ port@0 {
-+ label = "lan4";
-+ };
-+
-+ port@1 {
-+ label = "lan3";
-+ };
-+
-+ port@2 {
-+ label = "lan2";
-+ };
-+
-+ port@3 {
-+ label = "lan1";
-+ };
-+
-+ port@7 {
-+ reg = <7>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy12>;
-+ label = "wan";
-+ };
-+};
-+
-+&nandcs {
-+ nand-ecc-strength = <4>;
-+ nand-ecc-step-size = <512>;
-+ nand-on-flash-bbt;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ partitions {
-+ compatible = "brcm,bcm4908-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ partition@0 {
-+ label = "cferom";
-+ reg = <0x0 0x100000>;
-+ };
-+
-+ partition@100000 {
-+ compatible = "brcm,bcm4908-firmware";
-+ reg = <0x100000 0x3900000>;
-+ };
-+
-+ partition@5800000 {
-+ compatible = "brcm,bcm4908-firmware";
-+ reg = <0x3a00000 0x3900000>;
-+ };
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4906.dtsi
-@@ -0,0 +1,34 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include "bcm4908.dtsi"
-+
-+/ {
-+ cpus {
-+ /delete-node/ cpu@2;
-+
-+ /delete-node/ cpu@3;
-+ };
-+
-+ timer {
-+ compatible = "arm,armv8-timer";
-+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
-+ };
-+
-+ timer {
-+ compatible = "arm,armv8-timer";
-+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
-+ };
-+
-+ pmu {
-+ compatible = "arm,cortex-a53-pmu";
-+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-affinity = <&cpu0>, <&cpu1>;
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
-@@ -0,0 +1,207 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/input/input.h>
-+#include <dt-bindings/leds/common.h>
-+
-+#include "bcm4908.dtsi"
-+
-+/ {
-+ compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca";
-+ model = "Asus GT-AC5300";
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00 0x00 0x00 0x40000000>;
-+ };
-+
-+ gpio-keys-polled {
-+ compatible = "gpio-keys-polled";
-+ poll-interval = <100>;
-+
-+ key-wifi {
-+ label = "WiFi";
-+ linux,code = <KEY_RFKILL>;
-+ gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ key-wps {
-+ label = "WPS";
-+ linux,code = <KEY_WPS_BUTTON>;
-+ gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ key-restart {
-+ label = "Reset";
-+ linux,code = <KEY_RESTART>;
-+ gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ key-brightness {
-+ label = "LEDs";
-+ linux,code = <KEY_BRIGHTNESS_ZERO>;
-+ gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+};
-+
-+&enet {
-+ nvmem-cells = <&base_mac_addr>;
-+ nvmem-cell-names = "mac-address";
-+};
-+
-+&usb_phy {
-+ brcm,ioc = <1>;
-+ status = "okay";
-+};
-+
-+&ehci {
-+ status = "okay";
-+};
-+
-+&ohci {
-+ status = "okay";
-+};
-+
-+&xhci {
-+ status = "okay";
-+};
-+
-+&ports {
-+ port@0 {
-+ label = "lan2";
-+ };
-+
-+ port@1 {
-+ label = "lan1";
-+ };
-+
-+ port@2 {
-+ label = "lan6";
-+ };
-+
-+ port@3 {
-+ label = "lan5";
-+ };
-+
-+ /* External BCM53134S switch */
-+ port@7 {
-+ label = "sw";
-+ reg = <7>;
-+ phy-mode = "rgmii";
-+
-+ fixed-link {
-+ speed = <1000>;
-+ full-duplex;
-+ };
-+ };
-+};
-+
-+&mdio {
-+ /* lan8 */
-+ ethernet-phy@0 {
-+ reg = <0>;
-+ };
-+
-+ /* lan7 */
-+ ethernet-phy@1 {
-+ reg = <1>;
-+ };
-+
-+ /* lan4 */
-+ ethernet-phy@2 {
-+ reg = <2>;
-+ };
-+
-+ /* lan3 */
-+ ethernet-phy@3 {
-+ reg = <3>;
-+ };
-+};
-+
-+&leds {
-+ led-power@11 {
-+ reg = <0x11>;
-+ function = LED_FUNCTION_POWER;
-+ color = <LED_COLOR_ID_WHITE>;
-+ default-state = "on";
-+ active-low;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pins_led_17_a>;
-+ };
-+
-+ led-wan-red@12 {
-+ reg = <0x12>;
-+ function = LED_FUNCTION_WAN;
-+ color = <LED_COLOR_ID_RED>;
-+ active-low;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pins_led_18_a>;
-+ };
-+
-+ led-wps@14 {
-+ reg = <0x14>;
-+ function = LED_FUNCTION_WPS;
-+ color = <LED_COLOR_ID_WHITE>;
-+ active-low;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pins_led_20_a>;
-+ };
-+
-+ led-wan-white@15 {
-+ reg = <0x15>;
-+ function = LED_FUNCTION_WAN;
-+ color = <LED_COLOR_ID_WHITE>;
-+ active-low;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pins_led_21_a>;
-+ };
-+
-+ led-lan@19 {
-+ reg = <0x19>;
-+ function = LED_FUNCTION_LAN;
-+ color = <LED_COLOR_ID_WHITE>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pins_led_25_a>;
-+ };
-+};
-+
-+&nandcs {
-+ nand-ecc-strength = <4>;
-+ nand-ecc-step-size = <512>;
-+ nand-on-flash-bbt;
-+ brcm,nand-has-wp;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ partitions {
-+ compatible = "brcm,bcm4908-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ partition@0 {
-+ compatible = "nvmem-cells";
-+ label = "cferom";
-+ reg = <0x0 0x100000>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0 0x0 0x100000>;
-+
-+ base_mac_addr: mac@106a0 {
-+ reg = <0x106a0 0x6>;
-+ };
-+ };
-+
-+ partition@100000 {
-+ compatible = "brcm,bcm4908-firmware";
-+ reg = <0x100000 0x5700000>;
-+ };
-+
-+ partition@5800000 {
-+ compatible = "brcm,bcm4908-firmware";
-+ reg = <0x5800000 0x5700000>;
-+ };
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908-netgear-raxe500.dts
-@@ -0,0 +1,50 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include "bcm4908.dtsi"
-+
-+/ {
-+ compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca";
-+ model = "Netgear RAXE500";
-+
-+ memory@0 {
-+ device_type = "memory";
-+ reg = <0x00 0x00 0x00 0x40000000>;
-+ };
-+};
-+
-+&ehci {
-+ status = "okay";
-+};
-+
-+&ohci {
-+ status = "okay";
-+};
-+
-+&xhci {
-+ status = "okay";
-+};
-+
-+&ports {
-+ port@0 {
-+ label = "lan4";
-+ };
-+
-+ port@1 {
-+ label = "lan3";
-+ };
-+
-+ port@2 {
-+ label = "lan2";
-+ };
-+
-+ port@3 {
-+ label = "lan1";
-+ };
-+
-+ port@7 {
-+ reg = <7>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy12>;
-+ label = "wan";
-+ };
-+};
---- /dev/null
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
-@@ -0,0 +1,575 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-+
-+#include <dt-bindings/interrupt-controller/irq.h>
-+#include <dt-bindings/interrupt-controller/arm-gic.h>
-+#include <dt-bindings/phy/phy.h>
-+#include <dt-bindings/soc/bcm-pmb.h>
-+
-+/dts-v1/;
-+
-+/ {
-+ interrupt-parent = <&gic>;
-+
-+ #address-cells = <2>;
-+ #size-cells = <2>;
-+
-+ aliases {
-+ serial0 = &uart0;
-+ };
-+
-+ chosen {
-+ stdout-path = "serial0:115200n8";
-+ };
-+
-+ cpus {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ cpu0: cpu@0 {
-+ device_type = "cpu";
-+ compatible = "brcm,brahma-b53";
-+ reg = <0x0>;
-+ enable-method = "spin-table";
-+ cpu-release-addr = <0x0 0xfff8>;
-+ next-level-cache = <&l2>;
-+ };
-+
-+ cpu1: cpu@1 {
-+ device_type = "cpu";
-+ compatible = "brcm,brahma-b53";
-+ reg = <0x1>;
-+ enable-method = "spin-table";
-+ cpu-release-addr = <0x0 0xfff8>;
-+ next-level-cache = <&l2>;
-+ };
-+
-+ cpu2: cpu@2 {
-+ device_type = "cpu";
-+ compatible = "brcm,brahma-b53";
-+ reg = <0x2>;
-+ enable-method = "spin-table";
-+ cpu-release-addr = <0x0 0xfff8>;
-+ next-level-cache = <&l2>;
-+ };
-+
-+ cpu3: cpu@3 {
-+ device_type = "cpu";
-+ compatible = "brcm,brahma-b53";
-+ reg = <0x3>;
-+ enable-method = "spin-table";
-+ cpu-release-addr = <0x0 0xfff8>;
-+ next-level-cache = <&l2>;
-+ };
-+
-+ l2: l2-cache0 {
-+ compatible = "cache";
-+ };
-+ };
-+
-+ axi@81000000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x00 0x00 0x81000000 0x4000>;
-+
-+ gic: interrupt-controller@1000 {
-+ compatible = "arm,gic-400";
-+ #interrupt-cells = <3>;
-+ #address-cells = <0>;
-+ interrupt-controller;
-+ reg = <0x1000 0x1000>,
-+ <0x2000 0x2000>;
-+ };
-+ };
-+
-+ timer {
-+ compatible = "arm,armv8-timer";
-+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-+ };
-+
-+ pmu {
-+ compatible = "arm,cortex-a53-pmu";
-+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
-+ };
-+
-+ clocks {
-+ periph_clk: periph_clk {
-+ compatible = "fixed-clock";
-+ #clock-cells = <0>;
-+ clock-frequency = <50000000>;
-+ clock-output-names = "periph";
-+ };
-+ };
-+
-+ soc {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x00 0x00 0x80000000 0x281000>;
-+
-+ enet: ethernet@2000 {
-+ compatible = "brcm,bcm4908-enet";
-+ reg = <0x2000 0x1000>;
-+
-+ interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-names = "rx", "tx";
-+ };
-+
-+ usb_phy: usb-phy@c200 {
-+ compatible = "brcm,bcm4908-usb-phy";
-+ reg = <0xc200 0x100>;
-+ reg-names = "ctrl";
-+ power-domains = <&pmb BCM_PMB_HOST_USB>;
-+ dr_mode = "host";
-+ brcm,has-xhci;
-+ brcm,has-eohci;
-+ #phy-cells = <1>;
-+ status = "disabled";
-+ };
-+
-+ ehci: usb@c300 {
-+ compatible = "generic-ehci";
-+ reg = <0xc300 0x100>;
-+ interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-+ phys = <&usb_phy PHY_TYPE_USB2>;
-+ status = "disabled";
-+ };
-+
-+ ohci: usb@c400 {
-+ compatible = "generic-ohci";
-+ reg = <0xc400 0x100>;
-+ interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
-+ phys = <&usb_phy PHY_TYPE_USB2>;
-+ status = "disabled";
-+ };
-+
-+ xhci: usb@d000 {
-+ compatible = "generic-xhci";
-+ reg = <0xd000 0x8c8>;
-+ interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-+ phys = <&usb_phy PHY_TYPE_USB3>;
-+ status = "disabled";
-+ };
-+
-+ bus@80000 {
-+ compatible = "simple-bus";
-+ #size-cells = <1>;
-+ #address-cells = <1>;
-+ ranges = <0 0x80000 0x50000>;
-+
-+ ethernet-switch@0 {
-+ compatible = "brcm,bcm4908-switch";
-+ reg = <0x0 0x40000>,
-+ <0x40000 0x110>,
-+ <0x40340 0x30>,
-+ <0x40380 0x30>,
-+ <0x40600 0x34>,
-+ <0x40800 0x208>;
-+ reg-names = "core", "reg", "intrl2_0",
-+ "intrl2_1", "fcb", "acb";
-+ interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
-+ <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
-+ brcm,num-gphy = <5>;
-+ brcm,num-rgmii-ports = <2>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ ports: ports {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ port@0 {
-+ reg = <0>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy8>;
-+ };
-+
-+ port@1 {
-+ reg = <1>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy9>;
-+ };
-+
-+ port@2 {
-+ reg = <2>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy10>;
-+ };
-+
-+ port@3 {
-+ reg = <3>;
-+ phy-mode = "internal";
-+ phy-handle = <&phy11>;
-+ };
-+
-+ port@8 {
-+ reg = <8>;
-+ phy-mode = "internal";
-+ ethernet = <&enet>;
-+
-+ fixed-link {
-+ speed = <1000>;
-+ full-duplex;
-+ };
-+ };
-+ };
-+ };
-+
-+ mdio: mdio@405c0 {
-+ compatible = "brcm,unimac-mdio";
-+ reg = <0x405c0 0x8>;
-+ reg-names = "mdio";
-+ #size-cells = <0>;
-+ #address-cells = <1>;
-+
-+ phy8: ethernet-phy@8 {
-+ reg = <8>;
-+ };
-+
-+ phy9: ethernet-phy@9 {
-+ reg = <9>;
-+ };
-+
-+ phy10: ethernet-phy@a {
-+ reg = <10>;
-+ };
-+
-+ phy11: ethernet-phy@b {
-+ reg = <11>;
-+ };
-+
-+ phy12: ethernet-phy@c {
-+ reg = <12>;
-+ };
-+ };
-+ };
-+
-+ procmon: syscon@280000 {
-+ compatible = "simple-bus";
-+ reg = <0x280000 0x1000>;
-+ ranges;
-+
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ pmb: power-controller@2800c0 {
-+ compatible = "brcm,bcm4908-pmb";
-+ reg = <0x2800c0 0x40>;
-+ #power-domain-cells = <1>;
-+ };
-+ };
-+ };
-+
-+ bus@ff800000 {
-+ compatible = "simple-bus";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x00 0x00 0xff800000 0x3000>;
-+
-+ twd: timer-mfd@400 {
-+ compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
-+ reg = <0x400 0x4c>;
-+ ranges = <0x0 0x400 0x4c>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ watchdog@28 {
-+ compatible = "brcm,bcm6345-wdt";
-+ reg = <0x28 0x8>;
-+ };
-+ };
-+
-+ gpio0: gpio-controller@500 {
-+ compatible = "brcm,bcm6345-gpio";
-+ reg-names = "dirout", "dat";
-+ reg = <0x500 0x28>, <0x528 0x28>;
-+
-+ #gpio-cells = <2>;
-+ gpio-controller;
-+ };
-+
-+ pinctrl@560 {
-+ compatible = "brcm,bcm4908-pinctrl";
-+ reg = <0x560 0x10>;
-+
-+ pins_led_0_a: led_0-a-pins {
-+ function = "led_0";
-+ groups = "led_0_grp_a";
-+ };
-+
-+ pins_led_1_a: led_1-a-pins {
-+ function = "led_1";
-+ groups = "led_1_grp_a";
-+ };
-+
-+ pins_led_2_a: led_2-a-pins {
-+ function = "led_2";
-+ groups = "led_2_grp_a";
-+ };
-+
-+ pins_led_3_a: led_3-a-pins {
-+ function = "led_3";
-+ groups = "led_3_grp_a";
-+ };
-+
-+ pins_led_4_a: led_4-a-pins {
-+ function = "led_4";
-+ groups = "led_4_grp_a";
-+ };
-+
-+ pins_led_5_a: led_5-a-pins {
-+ function = "led_5";
-+ groups = "led_5_grp_a";
-+ };
-+
-+ pins_led_6_a: led_6-a-pins {
-+ function = "led_6";
-+ groups = "led_6_grp_a";
-+ };
-+
-+ pins_led_7_a: led_7-a-pins {
-+ function = "led_7";
-+ groups = "led_7_grp_a";
-+ };
-+
-+ pins_led_8_a: led_8-a-pins {
-+ function = "led_8";
-+ groups = "led_8_grp_a";
-+ };
-+
-+ pins_led_9_a: led_9-a-pins {
-+ function = "led_9";
-+ groups = "led_9_grp_a";
-+ };
-+
-+ pins_led_10_a: led_10-a-pins {
-+ function = "led_10";
-+ groups = "led_10_grp_a";
-+ };
-+
-+ pins_led_11_a: led_11-a-pins {
-+ function = "led_11";
-+ groups = "led_11_grp_a";
-+ };
-+
-+ pins_led_12_a: led_12-a-pins {
-+ function = "led_12";
-+ groups = "led_12_grp_a";
-+ };
-+
-+ pins_led_13_a: led_13-a-pins {
-+ function = "led_13";
-+ groups = "led_13_grp_a";
-+ };
-+
-+ pins_led_14_a: led_14-a-pins {
-+ function = "led_14";
-+ groups = "led_14_grp_a";
-+ };
-+
-+ pins_led_15_a: led_15-a-pins {
-+ function = "led_15";
-+ groups = "led_15_grp_a";
-+ };
-+
-+ pins_led_16_a: led_16-a-pins {
-+ function = "led_16";
-+ groups = "led_16_grp_a";
-+ };
-+
-+ pins_led_17_a: led_17-a-pins {
-+ function = "led_17";
-+ groups = "led_17_grp_a";
-+ };
-+
-+ pins_led_18_a: led_18-a-pins {
-+ function = "led_18";
-+ groups = "led_18_grp_a";
-+ };
-+
-+ pins_led_19_a: led_19-a-pins {
-+ function = "led_19";
-+ groups = "led_19_grp_a";
-+ };
-+
-+ pins_led_20_a: led_20-a-pins {
-+ function = "led_20";
-+ groups = "led_20_grp_a";
-+ };
-+
-+ pins_led_21_a: led_21-a-pins {
-+ function = "led_21";
-+ groups = "led_21_grp_a";
-+ };
-+
-+ pins_led_22_a: led_22-a-pins {
-+ function = "led_22";
-+ groups = "led_22_grp_a";
-+ };
-+
-+ pins_led_23_a: led_23-a-pins {
-+ function = "led_23";
-+ groups = "led_23_grp_a";
-+ };
-+
-+ pins_led_24_a: led_24-a-pins {
-+ function = "led_24";
-+ groups = "led_24_grp_a";
-+ };
-+
-+ pins_led_25_a: led_25-a-pins {
-+ function = "led_25";
-+ groups = "led_25_grp_a";
-+ };
-+
-+ pins_led_26_a: led_26-a-pins {
-+ function = "led_26";
-+ groups = "led_26_grp_a";
-+ };
-+
-+ pins_led_27_a: led_27-a-pins {
-+ function = "led_27";
-+ groups = "led_27_grp_a";
-+ };
-+
-+ pins_led_28_a: led_28-a-pins {
-+ function = "led_28";
-+ groups = "led_28_grp_a";
-+ };
-+
-+ pins_led_29_a: led_29-a-pins {
-+ function = "led_29";
-+ groups = "led_29_grp_a";
-+ };
-+
-+ pins_led_30_a: led_30-a-pins {
-+ function = "led_30";
-+ groups = "led_30_grp_a";
-+ };
-+
-+ pins_led_31_a: led_31-a-pins {
-+ function = "led_31";
-+ groups = "led_31_grp_a";
-+ };
-+
-+ pins_hs_uart: hs_uart-pins {
-+ function = "hs_uart";
-+ groups = "hs_uart_grp";
-+ };
-+
-+ pins_i2c_a: i2c-a-pins {
-+ function = "i2c";
-+ groups = "i2c_grp_a";
-+ };
-+
-+ pins_i2c_b: i2c-b-pins {
-+ function = "i2c";
-+ groups = "i2c_grp_b";
-+ };
-+
-+ pins_i2s: i2s-pins {
-+ function = "i2s";
-+ groups = "i2s_grp";
-+ };
-+
-+ pins_nand_ctrl: nand_ctrl-pins {
-+ function = "nand_ctrl";
-+ groups = "nand_ctrl_grp";
-+ };
-+
-+ pins_nand_data: nand_data-pins {
-+ function = "nand_data";
-+ groups = "nand_data_grp";
-+ };
-+
-+ pins_emmc_ctrl: emmc_ctrl-pins {
-+ function = "emmc_ctrl";
-+ groups = "emmc_ctrl_grp";
-+ };
-+
-+ pins_usb0_pwr: usb0_pwr-pins {
-+ function = "usb0_pwr";
-+ groups = "usb0_pwr_grp";
-+ };
-+
-+ pins_usb1_pwr: usb1_pwr-pins {
-+ function = "usb1_pwr";
-+ groups = "usb1_pwr_grp";
-+ };
-+ };
-+
-+ uart0: serial@640 {
-+ compatible = "brcm,bcm6345-uart";
-+ reg = <0x640 0x18>;
-+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-+ clocks = <&periph_clk>;
-+ clock-names = "refclk";
-+ status = "okay";
-+ };
-+
-+ leds: leds@800 {
-+ compatible = "brcm,bcm4908-leds", "brcm,bcm63138-leds";
-+ reg = <0x800 0xdc>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ };
-+
-+ nand-controller@1800 {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
-+ reg = <0x1800 0x600>, <0x2000 0x10>;
-+ reg-names = "nand", "nand-int-base";
-+ interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
-+ interrupt-names = "nand";
-+ status = "okay";
-+
-+ nandcs: nand@0 {
-+ compatible = "brcm,nandcs";
-+ reg = <0>;
-+ };
-+ };
-+
-+ i2c@2100 {
-+ compatible = "brcm,brcmper-i2c";
-+ reg = <0x2100 0x58>;
-+ clock-frequency = <97500>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pins_i2c_a>;
-+ status = "disabled";
-+ };
-+
-+ misc@2600 {
-+ compatible = "brcm,misc", "simple-mfd";
-+ reg = <0x2600 0xe4>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ ranges = <0x00 0x2600 0xe4>;
-+
-+ reset-controller@2644 {
-+ compatible = "brcm,bcm4908-misc-pcie-reset";
-+ reg = <0x44 0x04>;
-+ #reset-cells = <1>;
-+ };
-+ };
-+ };
-+
-+ reboot {
-+ compatible = "syscon-reboot";
-+ regmap = <&twd>;
-+ offset = <0x34>;
-+ mask = <1>;
-+ };
-+};
+++ /dev/null
-From 5cca02449490e767289bda38db1577e2c375c084 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Tue, 28 Feb 2023 15:43:58 +0100
-Subject: [PATCH] arm64: dts: broadcom: bcmbca: bcm4908: fix NAND interrupt
- name
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes:
-arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dtb: nand-controller@1800: interrupt-names:0: 'nand_ctlrdy' was expected
- From schema: Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml
-arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dtb: nand-controller@1800: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
- From schema: Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Link: https://lore.kernel.org/all/20230228144400.21689-1-zajec5@gmail.com/
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
-@@ -556,7 +556,7 @@
- reg = <0x1800 0x600>, <0x2000 0x10>;
- reg-names = "nand", "nand-int-base";
- interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
-- interrupt-names = "nand";
-+ interrupt-names = "nand_ctlrdy";
- status = "okay";
-
- nandcs: nand@0 {
+++ /dev/null
-From f16a8294dd7a02c7ad042cd2e3acc5ea06698dc1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Tue, 28 Feb 2023 15:44:00 +0100
-Subject: [PATCH] arm64: dts: broadcom: bcmbca: bcm4908: fix procmon nodename
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes:
-arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dtb: syscon@280000: $nodename:0: 'syscon@280000' does not match '^([a-z][a-z0-9\\-]+-bus|bus|localbus|soc|axi|ahb|apb)(@.+)?$'
- From schema: schemas/simple-bus.yaml
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Link: https://lore.kernel.org/all/20230228144400.21689-3-zajec5@gmail.com/
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
-+++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
-@@ -260,7 +260,7 @@
- };
- };
-
-- procmon: syscon@280000 {
-+ procmon: bus@280000 {
- compatible = "simple-bus";
- reg = <0x280000 0x1000>;
- ranges;
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
-@@ -1229,6 +1229,34 @@ int __get_mtd_device(struct mtd_info *mt
+@@ -1236,6 +1236,34 @@ int __get_mtd_device(struct mtd_info *mt
EXPORT_SYMBOL_GPL(__get_mtd_device);
/**
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
-@@ -1669,6 +1669,9 @@ int mtd_read_oob(struct mtd_info *mtd, l
+@@ -1676,6 +1676,9 @@ int mtd_read_oob(struct mtd_info *mtd, l
if (!master->_read_oob && (!master->_read || ops->oobbuf))
return -EOPNOTSUPP;
if (mtd->flags & MTD_SLC_ON_MLC_EMULATION)
ret_code = mtd_io_emulated_slc(mtd, from, true, ops);
else
-@@ -1686,6 +1689,8 @@ int mtd_read_oob(struct mtd_info *mtd, l
+@@ -1693,6 +1696,8 @@ int mtd_read_oob(struct mtd_info *mtd, l
return ret_code;
if (mtd->ecc_strength == 0)
return 0; /* device lacks ecc */
+++ /dev/null
-From 1cd9ceaa5282ff10ea20a7fbadde5a476a1cc99e Mon Sep 17 00:00:00 2001
-From: Michael Walle <michael@walle.cc>
-Date: Wed, 8 Mar 2023 09:20:18 +0100
-Subject: [PATCH] mtd: core: provide unique name for nvmem device, take two
-
-Commit c048b60d39e1 ("mtd: core: provide unique name for nvmem device")
-tries to give the nvmem device a unique name, but fails badly if the mtd
-device doesn't have a "struct device" associated with it, i.e. if
-CONFIG_MTD_PARTITIONED_MASTER is not set. This will result in the name
-"(null)-user-otp", which is not unique. It seems the best we can do is
-to use the compatible name together with a unique identifier added by
-the nvmem subsystem by using NVMEM_DEVID_AUTO.
-
-Fixes: c048b60d39e1 ("mtd: core: provide unique name for nvmem device")
-Cc: stable@vger.kernel.org
-Signed-off-by: Michael Walle <michael@walle.cc>
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Link: https://lore.kernel.org/linux-mtd/20230308082021.870459-1-michael@walle.cc
----
- drivers/mtd/mtdcore.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
---- a/drivers/mtd/mtdcore.c
-+++ b/drivers/mtd/mtdcore.c
-@@ -895,8 +895,8 @@ static struct nvmem_device *mtd_otp_nvme
-
- /* OTP nvmem will be registered on the physical device */
- config.dev = mtd->dev.parent;
-- config.name = kasprintf(GFP_KERNEL, "%s-%s", dev_name(&mtd->dev), compatible);
-- config.id = NVMEM_DEVID_NONE;
-+ config.name = compatible;
-+ config.id = NVMEM_DEVID_AUTO;
- config.owner = THIS_MODULE;
- config.type = NVMEM_TYPE_OTP;
- config.root_only = true;
-@@ -912,7 +912,6 @@ static struct nvmem_device *mtd_otp_nvme
- nvmem = NULL;
-
- of_node_put(np);
-- kfree(config.name);
-
- return nvmem;
- }
+++ /dev/null
-From 8bd1d24e6ca3c599dd455b0e1b22f77bab8290eb Mon Sep 17 00:00:00 2001
-From: Michael Walle <michael@walle.cc>
-Date: Wed, 8 Mar 2023 09:20:19 +0100
-Subject: [PATCH] mtd: core: fix nvmem error reporting
-
-The master MTD will only have an associated device if
-CONFIG_MTD_PARTITIONED_MASTER is set, thus we cannot use dev_err() on
-mtd->dev. Instead use the parent device which is the physical flash
-memory.
-
-Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support")
-Cc: stable@vger.kernel.org
-Signed-off-by: Michael Walle <michael@walle.cc>
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Link: https://lore.kernel.org/linux-mtd/20230308082021.870459-2-michael@walle.cc
----
- drivers/mtd/mtdcore.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
---- a/drivers/mtd/mtdcore.c
-+++ b/drivers/mtd/mtdcore.c
-@@ -946,6 +946,7 @@ static int mtd_nvmem_fact_otp_reg_read(v
-
- static int mtd_otp_nvmem_add(struct mtd_info *mtd)
- {
-+ struct device *dev = mtd->dev.parent;
- struct nvmem_device *nvmem;
- ssize_t size;
- int err;
-@@ -959,7 +960,7 @@ static int mtd_otp_nvmem_add(struct mtd_
- nvmem = mtd_otp_nvmem_register(mtd, "user-otp", size,
- mtd_nvmem_user_otp_reg_read);
- if (IS_ERR(nvmem)) {
-- dev_err(&mtd->dev, "Failed to register OTP NVMEM device\n");
-+ dev_err(dev, "Failed to register OTP NVMEM device\n");
- return PTR_ERR(nvmem);
- }
- mtd->otp_user_nvmem = nvmem;
-@@ -977,7 +978,7 @@ static int mtd_otp_nvmem_add(struct mtd_
- nvmem = mtd_otp_nvmem_register(mtd, "factory-otp", size,
- mtd_nvmem_fact_otp_reg_read);
- if (IS_ERR(nvmem)) {
-- dev_err(&mtd->dev, "Failed to register OTP NVMEM device\n");
-+ dev_err(dev, "Failed to register OTP NVMEM device\n");
- err = PTR_ERR(nvmem);
- goto err;
- }
+++ /dev/null
-From e0489f6e221f5ddee6cb3bd51b992b790c5fa4b9 Mon Sep 17 00:00:00 2001
-From: Michael Walle <michael@walle.cc>
-Date: Wed, 8 Mar 2023 09:20:20 +0100
-Subject: [PATCH] mtd: core: fix error path for nvmem provider
-
-If mtd_otp_nvmem_add() fails, the partitions won't be removed
-because there is simply no call to del_mtd_partitions().
-Unfortunately, add_mtd_partitions() will print all partitions to
-the kernel console. If mtd_otp_nvmem_add() returns -EPROBE_DEFER
-this would print the partitions multiple times to the kernel
-console. Instead move mtd_otp_nvmem_add() to the beginning of the
-function.
-
-Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support")
-Cc: stable@vger.kernel.org
-Signed-off-by: Michael Walle <michael@walle.cc>
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Link: https://lore.kernel.org/linux-mtd/20230308082021.870459-3-michael@walle.cc
----
- drivers/mtd/mtdcore.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- a/drivers/mtd/mtdcore.c
-+++ b/drivers/mtd/mtdcore.c
-@@ -1031,10 +1031,14 @@ int mtd_device_parse_register(struct mtd
-
- mtd_set_dev_defaults(mtd);
-
-+ ret = mtd_otp_nvmem_add(mtd);
-+ if (ret)
-+ goto out;
-+
- if (IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER)) {
- ret = add_mtd_device(mtd);
- if (ret)
-- return ret;
-+ goto out;
- }
-
- /* Prefer parsed partitions over driver-provided fallback */
-@@ -1069,9 +1073,12 @@ int mtd_device_parse_register(struct mtd
- register_reboot_notifier(&mtd->reboot_notifier);
- }
-
-- ret = mtd_otp_nvmem_add(mtd);
--
- out:
-+ if (ret) {
-+ nvmem_unregister(mtd->otp_user_nvmem);
-+ nvmem_unregister(mtd->otp_factory_nvmem);
-+ }
-+
- if (ret && device_is_registered(&mtd->dev))
- del_mtd_device(mtd);
-
static void axienet_mac_pcs_get_state(struct phylink_config *config,
--- a/drivers/net/pcs/pcs-xpcs.c
+++ b/drivers/net/pcs/pcs-xpcs.c
-@@ -646,7 +646,7 @@ void xpcs_validate(struct dw_xpcs *xpcs,
+@@ -637,7 +637,7 @@ void xpcs_validate(struct dw_xpcs *xpcs,
if (state->interface == PHY_INTERFACE_MODE_NA)
return;
ret = stmmac_hw_setup(dev, true);
if (ret < 0) {
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
-@@ -6424,6 +6417,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6430,6 +6423,7 @@ void stmmac_enable_rx_queue(struct stmma
return;
}
stmmac_clear_rx_descriptors(priv, queue);
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -6485,6 +6479,7 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6491,6 +6485,7 @@ void stmmac_enable_tx_queue(struct stmma
return;
}
stmmac_clear_tx_descriptors(priv, queue);
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -7411,6 +7406,25 @@ int stmmac_suspend(struct device *dev)
+@@ -7417,6 +7412,25 @@ int stmmac_suspend(struct device *dev)
}
EXPORT_SYMBOL_GPL(stmmac_suspend);
/**
* stmmac_reset_queues_param - reset queue parameters
* @priv: device pointer
-@@ -7421,22 +7435,11 @@ static void stmmac_reset_queues_param(st
+@@ -7427,22 +7441,11 @@ static void stmmac_reset_queues_param(st
u32 tx_cnt = priv->plat->tx_queues_to_use;
u32 queue;
}
}
-@@ -6398,7 +6402,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6404,7 +6408,7 @@ void stmmac_disable_rx_queue(struct stmm
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
{
struct stmmac_channel *ch = &priv->channel[queue];
unsigned long flags;
u32 buf_size;
-@@ -6435,7 +6439,7 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6441,7 +6445,7 @@ void stmmac_enable_rx_queue(struct stmma
rx_q->queue_index);
} else {
stmmac_set_dma_bfsize(priv, priv->ioaddr,
rx_q->queue_index);
}
-@@ -6461,7 +6465,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6467,7 +6471,7 @@ void stmmac_disable_tx_queue(struct stmm
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
{
struct stmmac_channel *ch = &priv->channel[queue];
unsigned long flags;
int ret;
-@@ -6511,7 +6515,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6517,7 +6521,7 @@ void stmmac_xdp_release(struct net_devic
stmmac_disable_all_queues(priv);
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
/* Free the IRQ lines */
stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
-@@ -6570,7 +6574,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6576,7 +6580,7 @@ int stmmac_xdp_open(struct net_device *d
/* DMA RX Channel Configuration */
for (chan = 0; chan < rx_cnt; chan++) {
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
rx_q->dma_rx_phy, chan);
-@@ -6588,7 +6592,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6594,7 +6598,7 @@ int stmmac_xdp_open(struct net_device *d
rx_q->queue_index);
} else {
stmmac_set_dma_bfsize(priv, priv->ioaddr,
rx_q->queue_index);
}
-@@ -6597,7 +6601,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6603,7 +6607,7 @@ int stmmac_xdp_open(struct net_device *d
/* DMA TX Channel Configuration */
for (chan = 0; chan < tx_cnt; chan++) {
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
tx_q->dma_tx_phy, chan);
-@@ -6630,7 +6634,7 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6636,7 +6640,7 @@ int stmmac_xdp_open(struct net_device *d
irq_error:
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
stmmac_hw_teardown(dev);
init_error:
-@@ -6657,8 +6661,8 @@ int stmmac_xsk_wakeup(struct net_device
+@@ -6663,8 +6667,8 @@ int stmmac_xsk_wakeup(struct net_device
queue >= priv->plat->tx_queues_to_use)
return -EINVAL;
ch = &priv->channel[queue];
if (!rx_q->xsk_pool && !tx_q->xsk_pool)
-@@ -6918,8 +6922,8 @@ int stmmac_reinit_ringparam(struct net_d
+@@ -6924,8 +6928,8 @@ int stmmac_reinit_ringparam(struct net_d
if (netif_running(dev))
stmmac_release(dev);
if (netif_running(dev))
ret = stmmac_open(dev);
-@@ -7357,7 +7361,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7363,7 +7367,7 @@ int stmmac_suspend(struct device *dev)
stmmac_disable_all_queues(priv);
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
if (priv->eee_enabled) {
priv->tx_path_in_lpi_mode = false;
-@@ -7408,7 +7412,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
+@@ -7414,7 +7418,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
{
rx_q->cur_rx = 0;
rx_q->dirty_rx = 0;
-@@ -7416,7 +7420,7 @@ static void stmmac_reset_rx_queue(struct
+@@ -7422,7 +7426,7 @@ static void stmmac_reset_rx_queue(struct
static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
{
/* Disable the MAC Rx/Tx */
stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6397,7 +6513,7 @@ void stmmac_disable_rx_queue(struct stmm
+@@ -6403,7 +6519,7 @@ void stmmac_disable_rx_queue(struct stmm
spin_unlock_irqrestore(&ch->lock, flags);
stmmac_stop_rx_dma(priv, queue);
}
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6408,21 +6524,21 @@ void stmmac_enable_rx_queue(struct stmma
+@@ -6414,21 +6530,21 @@ void stmmac_enable_rx_queue(struct stmma
u32 buf_size;
int ret;
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
rx_q->dma_rx_phy, rx_q->queue_index);
-@@ -6460,7 +6576,7 @@ void stmmac_disable_tx_queue(struct stmm
+@@ -6466,7 +6582,7 @@ void stmmac_disable_tx_queue(struct stmm
spin_unlock_irqrestore(&ch->lock, flags);
stmmac_stop_tx_dma(priv, queue);
}
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
-@@ -6470,21 +6586,21 @@ void stmmac_enable_tx_queue(struct stmma
+@@ -6476,21 +6592,21 @@ void stmmac_enable_tx_queue(struct stmma
unsigned long flags;
int ret;
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
tx_q->dma_tx_phy, tx_q->queue_index);
-@@ -6524,7 +6640,7 @@ void stmmac_xdp_release(struct net_devic
+@@ -6530,7 +6646,7 @@ void stmmac_xdp_release(struct net_devic
stmmac_stop_all_dma(priv);
/* Release and free the Rx/Tx resources */
/* Disable the MAC Rx/Tx */
stmmac_mac_set(priv, priv->ioaddr, false);
-@@ -6549,14 +6665,14 @@ int stmmac_xdp_open(struct net_device *d
+@@ -6555,14 +6671,14 @@ int stmmac_xdp_open(struct net_device *d
u32 chan;
int ret;
if (ret < 0) {
netdev_err(dev, "%s: DMA descriptors initialization failed\n",
__func__);
-@@ -6638,7 +6754,7 @@ irq_error:
+@@ -6644,7 +6760,7 @@ irq_error:
stmmac_hw_teardown(dev);
init_error:
dma_desc_error:
return ret;
}
-@@ -7503,7 +7619,7 @@ int stmmac_resume(struct device *dev)
+@@ -7509,7 +7625,7 @@ int stmmac_resume(struct device *dev)
stmmac_reset_queues_param(priv);
stmmac_free_tx_skbufs(priv);
return -ENODEV;
/* Name & Type */
-@@ -369,7 +369,7 @@ int of_device_uevent_modalias(struct dev
+@@ -372,7 +372,7 @@ int of_device_uevent_modalias(struct dev
{
int sl;
--- a/drivers/of/device.c
+++ b/drivers/of/device.c
-@@ -378,6 +378,8 @@ int of_device_uevent_modalias(struct dev
+@@ -381,6 +381,8 @@ int of_device_uevent_modalias(struct dev
sl = of_device_get_modalias(dev, &env->buf[env->buflen-1],
sizeof(env->buf) - env->buflen);
+++ /dev/null
-From b19a4266c52de78496fe40f0b37580a3b762e67d Mon Sep 17 00:00:00 2001
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-Date: Tue, 4 Apr 2023 18:21:09 +0100
-Subject: [PATCH] of: Fix modalias string generation
-
-The helper generating an OF based modalias (of_device_get_modalias())
-works fine, but due to the use of snprintf() internally it needs a
-buffer one byte longer than what should be needed just for the entire
-string (excluding the '\0'). Most users of this helper are sysfs hooks
-providing the modalias string to users. They all provide a PAGE_SIZE
-buffer which is way above the number of bytes required to fit the
-modalias string and hence do not suffer from this issue.
-
-There is another user though, of_device_request_module(), which is only
-called by drivers/usb/common/ulpi.c. This request module function is
-faulty, but maybe because in most cases there is an alternative, ULPI
-driver users have not noticed it.
-
-In this function, of_device_get_modalias() is called twice. The first
-time without buffer just to get the number of bytes required by the
-modalias string (excluding the null byte), and a second time, after
-buffer allocation, to fill the buffer. The allocation asks for an
-additional byte, in order to store the trailing '\0'. However, the
-buffer *length* provided to of_device_get_modalias() excludes this extra
-byte. The internal use of snprintf() with a length that is exactly the
-number of bytes to be written has the effect of using the last available
-byte to store a '\0', which then smashes the last character of the
-modalias string.
-
-Provide the actual size of the buffer to of_device_get_modalias() to fix
-this issue.
-
-Note: the "str[size - 1] = '\0';" line is not really needed as snprintf
-will anyway end the string with a null byte, but there is a possibility
-that this function might be called on a struct device_node without
-compatible, in this case snprintf() would not be executed. So we keep it
-just to avoid possible unbounded strings.
-
-Cc: Stephen Boyd <sboyd@kernel.org>
-Cc: Peter Chen <peter.chen@kernel.org>
-Fixes: 9c829c097f2f ("of: device: Support loading a module with OF based modalias")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Reviewed-by: Rob Herring <robh@kernel.org>
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-Link: https://lore.kernel.org/r/20230404172148.82422-2-srinivas.kandagatla@linaro.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/of/device.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
---- a/drivers/of/device.c
-+++ b/drivers/of/device.c
-@@ -290,12 +290,15 @@ int of_device_request_module(struct devi
- if (size < 0)
- return size;
-
-- str = kmalloc(size + 1, GFP_KERNEL);
-+ /* Reserve an additional byte for the trailing '\0' */
-+ size++;
-+
-+ str = kmalloc(size, GFP_KERNEL);
- if (!str)
- return -ENOMEM;
-
- of_device_get_modalias(dev, str, size);
-- str[size] = '\0';
-+ str[size - 1] = '\0';
- ret = request_module(str);
- kfree(str);
-
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1825,6 +1825,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1826,6 +1826,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
/*
* When we registered the protocol we saved the socket in the data
-@@ -1832,6 +1833,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1833,6 +1834,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
/*
* Yank back the headers [hope the device set this
-@@ -1844,7 +1846,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1845,7 +1847,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2092,12 +2094,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2093,12 +2095,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res;
bool is_drop_n_account = false;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2223,12 +2225,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2224,12 +2226,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3339,6 +3341,7 @@ static int packet_create(struct net *net
+@@ -3342,6 +3344,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
@@ -3979,6 +3982,16 @@ packet_setsockopt(struct socket *sock, i
- po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
+ WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
return 0;
}
+ case PACKET_RECV_TYPE:
break;
--- a/net/packet/internal.h
+++ b/net/packet/internal.h
-@@ -137,6 +137,7 @@ struct packet_sock {
+@@ -136,6 +136,7 @@ struct packet_sock {
int (*xmit)(struct sk_buff *skb);
struct packet_type prot_hook ____cacheline_aligned_in_smp;
atomic_t tp_drops ____cacheline_aligned_in_smp;
+++ /dev/null
-From 8fafb7e5c041814876266259e5e439f93571dcef Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth@gmail.com>
-Date: Thu, 7 Jul 2022 03:09:40 +0200
-Subject: [PATCH 6/8] ARM: dts: qcom: ipq8064: reduce pci IO size to 64K
-
-The current value for pci IO is problematic for ath10k wifi card
-commonly connected to ipq8064 SoC.
-The current value is probably a typo and is actually uncommon to find
-1MB IO space even on a x86 arch. Also with recent changes to the pci
-driver, pci1 and pci2 now fails to function as any connected device
-fails any reg read/write. Reduce this to 64K as it should be more than
-enough and 3 * 64K of total IO space doesn't exceed the IO_SPACE_LIMIT
-hardcoded for the ARM arch.
-
-Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-Tested-by: Jonathan McDowell <noodles@earth.li>
-Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
-Link: https://lore.kernel.org/r/20220707010943.20857-7-ansuelsmth@gmail.com
----
- arch/arm/boot/dts/qcom-ipq8064.dtsi | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
-+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
-@@ -885,7 +885,7 @@
- #address-cells = <3>;
- #size-cells = <2>;
-
-- ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */
-+ ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00010000 /* downstream I/O */
- 0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
-
- interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-@@ -936,7 +936,7 @@
- #address-cells = <3>;
- #size-cells = <2>;
-
-- ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */
-+ ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00010000 /* downstream I/O */
- 0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
-
- interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
-@@ -987,7 +987,7 @@
- #address-cells = <3>;
- #size-cells = <2>;
-
-- ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */
-+ ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00010000 /* downstream I/O */
- 0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
-
- interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
watchdog: watchdog@b017000 {
compatible = "qcom,kpss-wdt";
reg = <0xb017000 0x1000>;
-@@ -857,4 +849,12 @@
+@@ -853,4 +845,12 @@
status = "disabled";
};
};
cryptobam: dma-controller@704000 {
compatible = "qcom,bam-v1.7.0";
reg = <0x00704000 0x20000>;
-@@ -878,4 +888,90 @@
+@@ -874,4 +884,90 @@
<GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
--- a/drivers/spmi/spmi.c
+++ b/drivers/spmi/spmi.c
-@@ -387,6 +387,23 @@ static struct bus_type spmi_bus_type = {
+@@ -388,6 +388,23 @@ static struct bus_type spmi_bus_type = {
};
/**
struct qcom_pcie {
struct dw_pcie *pci;
void __iomem *parf; /* DT parf */
-@@ -1469,6 +1473,38 @@ static const struct qcom_pcie_ops ops_1_
+@@ -1467,6 +1471,38 @@ static const struct qcom_pcie_ops ops_1_
.config_sid = qcom_pcie_config_sid_sm8250,
};
static const struct dw_pcie_ops dw_pcie_ops = {
.link_up = qcom_pcie_link_up,
.start_link = qcom_pcie_start_link,
-@@ -1480,6 +1516,7 @@ static int qcom_pcie_probe(struct platfo
+@@ -1478,6 +1514,7 @@ static int qcom_pcie_probe(struct platfo
struct pcie_port *pp;
struct dw_pcie *pci;
struct qcom_pcie *pcie;
int ret;
pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
-@@ -1501,7 +1538,13 @@ static int qcom_pcie_probe(struct platfo
+@@ -1499,7 +1536,13 @@ static int qcom_pcie_probe(struct platfo
pcie->pci = pci;
pcie->reset = devm_gpiod_get_optional(dev, "perst", GPIOD_OUT_HIGH);
if (IS_ERR(pcie->reset)) {
-@@ -1557,16 +1600,17 @@ err_pm_runtime_put:
+@@ -1555,16 +1598,17 @@ err_pm_runtime_put:
}
static const struct of_device_id qcom_pcie_match[] = {
};
struct qcom_pcie;
-@@ -1282,6 +1292,112 @@ static void qcom_pcie_post_deinit_2_7_0(
+@@ -1280,6 +1290,112 @@ static void qcom_pcie_post_deinit_2_7_0(
clk_disable_unprepare(res->pipe_clk);
}
static int qcom_pcie_link_up(struct dw_pcie *pci)
{
u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP);
-@@ -1473,6 +1589,15 @@ static const struct qcom_pcie_ops ops_1_
+@@ -1471,6 +1587,15 @@ static const struct qcom_pcie_ops ops_1_
.config_sid = qcom_pcie_config_sid_sm8250,
};
static const struct qcom_pcie_cfg apq8084_cfg = {
.ops = &ops_1_0_0,
};
-@@ -1505,6 +1630,10 @@ static const struct qcom_pcie_cfg sc7280
+@@ -1503,6 +1628,10 @@ static const struct qcom_pcie_cfg sc7280
.ops = &ops_1_9_0,
};
static const struct dw_pcie_ops dw_pcie_ops = {
.link_up = qcom_pcie_link_up,
.start_link = qcom_pcie_start_link,
-@@ -1611,6 +1740,7 @@ static const struct of_device_id qcom_pc
+@@ -1609,6 +1738,7 @@ static const struct of_device_id qcom_pc
{ .compatible = "qcom,pcie-sdm845", .data = &sdm845_cfg },
{ .compatible = "qcom,pcie-sm8250", .data = &sm8250_cfg },
{ .compatible = "qcom,pcie-sc7280", .data = &sc7280_cfg },
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
-@@ -1735,6 +1735,7 @@ static const struct of_device_id qcom_pc
+@@ -1733,6 +1733,7 @@ static const struct of_device_id qcom_pc
{ .compatible = "qcom,pcie-apq8064", .data = &ipq8064_cfg },
{ .compatible = "qcom,pcie-msm8996", .data = &msm8996_cfg },
{ .compatible = "qcom,pcie-ipq8074", .data = &ipq8074_cfg },
compatible = "arm,gic-v2m-frame";
msi-controller;
reg = <0x0 0xffd>;
-@@ -813,8 +813,7 @@
- <0x82000000 0 0x10220000 0x10220000
- 0 0xfde0000>; /* non-prefetchable memory */
+@@ -811,8 +811,7 @@
+ ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
+ <0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
- interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0 0 0 1 &intc 0 142
-@@ -877,8 +876,7 @@
- <0x82000000 0 0x20220000 0x20220000
- 0 0xfde0000>; /* non-prefetchable memory */
+@@ -873,8 +872,7 @@
+ ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
+ <0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
- interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "msi";
spmi_bus: spmi@200f000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0x0200f000 0x001000>,
-@@ -917,6 +948,56 @@
+@@ -913,6 +944,56 @@
"axi_s_sticky";
status = "disabled";
};
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -998,6 +998,117 @@
+@@ -994,6 +994,117 @@
};
};
};
#define UART_BUG_TXEN BIT(1) /* UART has buggy TX IIR status */
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
-@@ -288,7 +288,7 @@ static const struct serial8250_config ua
+@@ -289,7 +289,7 @@ static const struct serial8250_config ua
.tx_loadsz = 16,
.fcr = UART_FCR_ENABLE_FIFO |
UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
},
[PORT_NPCM] = {
.name = "Nuvoton 16550",
-@@ -2756,6 +2756,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2760,6 +2760,11 @@ serial8250_do_set_termios(struct uart_po
unsigned long flags;
unsigned int baud, quot, frac = 0;
/*
* The first read of a sensor often contains very high bogus
-@@ -1075,6 +1073,11 @@ static int mtk_thermal_probe(struct plat
+@@ -1085,6 +1083,11 @@ static int mtk_thermal_probe(struct plat
mtk_thermal_release_periodic_ts(mt, auxadc_base);
}
.compatible = "mediatek,mt8183-thermal",
.data = (void *)&mt8183_thermal_data,
}, {
-@@ -1068,15 +1186,24 @@ static int mtk_thermal_probe(struct plat
+@@ -1078,15 +1196,24 @@ static int mtk_thermal_probe(struct plat
goto err_disable_clk_auxadc;
}