[openwrt/openwrt] ipq40xx/meraki: refactor common device tree

LEDE Commits lede-commits at lists.infradead.org
Mon Dec 29 10:41:27 PST 2025


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/593e399568a9834576f03e9414c1a232d82078b6

commit 593e399568a9834576f03e9414c1a232d82078b6
Author: Hal Martin <hal.martin at gmail.com>
AuthorDate: Mon Dec 22 10:48:46 2025 +0100

    ipq40xx/meraki: refactor common device tree
    
    qcom-ipq4029-insect-common.dtsi was common to the MR33 and MR74, but was no
    longer common with the other supported Meraki devices. I have refactored
    insect-common and wired-qca-common into qcom-ipq4029-meraki-common.dtsi
    which contains the actual common components (e.g. NAND partitions, ART nvmem).
    
    Individual devices reference qcom-ipq4029-meraki-insect.dtsi
    plus their own individual configuration.
    
    Signed-off-by: Hal Martin <hal.martin at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/20646
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../arch/arm/boot/dts/qcom/qcom-ipq4029-gx20.dts   |  66 +++++-
 ...common.dtsi => qcom-ipq4029-meraki-common.dtsi} | 233 +++------------------
 .../boot/dts/qcom/qcom-ipq4029-meraki-insect.dtsi  | 122 +++++++++++
 .../arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts  |  36 +---
 .../arch/arm/boot/dts/qcom/qcom-ipq4029-mr33.dts   |  69 +++++-
 .../arch/arm/boot/dts/qcom/qcom-ipq4029-mr74.dts   |  69 +++++-
 .../arch/arm/boot/dts/qcom/qcom-ipq4029-z3.dts     |  65 +++++-
 7 files changed, 421 insertions(+), 239 deletions(-)

diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-gx20.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-gx20.dts
index 0c951e56da..d3dd6edd8e 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-gx20.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-gx20.dts
@@ -1,12 +1,26 @@
 // SPDX-License-Identifier: GPL-2.0-only
 // Device Tree Source for Meraki Go GX20 (Fairyfly)
 
-#include "qcom-ipq4029-wired-qca-common.dtsi"
+#include "qcom-ipq4029-meraki-insect.dtsi"
 
 / {
 	model = "Meraki Go GX20 Router";
 	compatible = "meraki,gx20";
 
+	soc {
+		ess_tcsr at 1953000 {
+			qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+		};
+
+		tcsr at 194b000 {
+			/* select hostmode */
+			compatible = "qcom,tcsr";
+			reg = <0x194b000 0x100>;
+			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
+			status = "okay";
+		};
+	};
+
 	leds {
 		compatible = "gpio-leds";
 
@@ -99,11 +113,51 @@
 	};
 };
 
-/* GX20 does not have WiFi radios */
-&wifi0 {
-	status = "disabled";
+&tricolor {
+	enable-gpio = <&tlmm 48 GPIO_ACTIVE_HIGH>;
+};
+
+&usb2_hs_phy {
+		status = "okay";
+};
+
+&usb2 {
+		status = "okay";
+};
+
+&usb3_hs_phy {
+		status = "okay";
+};
+
+&usb3_ss_phy {
+		status = "okay";
+};
+
+&usb3 {
+		status = "okay";
+};
+
+&swport1 {
+	label = "wan";
+	status = "okay";
+};
+
+&swport2 {
+	label = "lan2";
+	status = "okay";
+};
+
+&swport3 {
+	label = "lan3";
+	status = "okay";
+};
+
+&swport4 {
+	label = "lan4";
+	status = "okay";
 };
 
-&wifi1 {
-	status = "disabled";
+&swport5 {
+	label = "lan5";
+	status = "okay";
 };
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-meraki-common.dtsi
similarity index 61%
rename from target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi
rename to target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-meraki-common.dtsi
index 46cc68435f..2e5d961eae 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-meraki-common.dtsi
@@ -1,9 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Device Tree Source for Meraki "Insect" series
+ * Device Tree Source for Meraki devices
  *
  * Copyright (C) 2017 Chris Blake <chrisrblake93 at gmail.com>
  * Copyright (C) 2017 Christian Lamparter <chunkeey at googlemail.com>
+ * Copyright (C) 2025 Hal Martin <halmartin at googlemail.com>
  *
  * Based on Cisco Meraki DTS from GPL release r25-linux-3.14-20170427
  *
@@ -19,21 +20,6 @@
 #include <dt-bindings/leds/common.h>
 
 / {
-	aliases {
-		// TODO: Verify if the ethernet0 alias is needed
-		ethernet0 = &gmac;
-		led-boot = &status_green;
-		led-failsafe = &status_red;
-		led-running = &status_green;
-		led-upgrade = &power_orange;
-	};
-
-	/* Do we really need this defined? */
-	memory {
-		device_type = "memory";
-		reg = <0x80000000 0x10000000>;
-	};
-
 	soc {
 		/* It is a 56-bit counter that supplies the count to the ARM arch
 		   timers and without upstream driver */
@@ -45,7 +31,6 @@
 		ess_tcsr at 1953000 {
 			compatible = "qcom,tcsr";
 			reg = <0x1953000 0x1000>;
-			qcom,ess-interface-select = <TCSR_ESS_PSGMII_RGMII5>;
 		};
 
 		tcsr at 1949000 {
@@ -70,17 +55,6 @@
 			linux,code = <KEY_RESTART>;
 		};
 	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		power_orange: power {
-			function = LED_FUNCTION_POWER;
-			color = <LED_COLOR_ID_ORANGE>;
-			gpios = <&tlmm 49 GPIO_ACTIVE_LOW>;
-			panic-indicator;
-		};
-	};
 };
 
 &watchdog {
@@ -105,17 +79,6 @@
 	status = "okay";
 };
 
-&blsp1_uart2 {
-	pinctrl-0 = <&serial_1_pins>;
-	pinctrl-names = "default";
-	status = "okay";
-
-	bluetooth {
-		compatible = "ti,cc2650";
-		enable-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
-	};
-};
-
 &cryptobam {
 	status = "okay";
 };
@@ -124,72 +87,6 @@
 	pinctrl-0 = <&i2c_0_pins>;
 	pinctrl-names = "default";
 	status = "okay";
-
-	eeprom at 50 {
-		compatible = "atmel,24c64";
-		pagesize = <32>;
-		reg = <0x50>;
-		read-only; /* This holds our MAC & Meraki board-data */
-
-		nvmem-layout {
-			compatible = "fixed-layout";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			mac_address: mac-address at 66 {
-				compatible = "mac-base";
-				reg = <0x66 0x6>;
-				#nvmem-cell-cells = <1>;
-			};
-		};
-	};
-};
-
-&blsp1_i2c4 {
-	pinctrl-0 = <&i2c_1_pins>;
-	pinctrl-names = "default";
-	status = "okay";
-
-	tricolor: led-controller at 30 {
-		compatible = "ti,lp5562";
-		reg = <0x30>;
-		clock-mode = /bits/8 <2>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		/* RGB led */
-		status_red: chan at 0 {
-			chan-name = "red:status";
-			led-cur = /bits/ 8 <0x20>;
-			max-cur = /bits/ 8 <0x60>;
-			reg = <0>;
-			color = <LED_COLOR_ID_RED>;
-		};
-
-		status_green: chan at 1 {
-			chan-name = "green:status";
-			led-cur = /bits/ 8 <0x20>;
-			max-cur = /bits/ 8 <0x60>;
-			reg = <1>;
-			color = <LED_COLOR_ID_GREEN>;
-		};
-
-		chan at 2 {
-			chan-name = "blue:status";
-			led-cur = /bits/ 8 <0x20>;
-			max-cur = /bits/ 8 <0x60>;
-			reg = <2>;
-			color = <LED_COLOR_ID_BLUE>;
-		};
-
-		chan at 3 {
-			chan-name = "white:status";
-			led-cur = /bits/ 8 <0x20>;
-			max-cur = /bits/ 8 <0x60>;
-			reg = <3>;
-			color = <LED_COLOR_ID_WHITE>;
-		};
-	};
 };
 
 &nand {
@@ -277,6 +174,12 @@
 	};
 };
 
+&pcie0 {
+	status = "disabled";
+	perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
+};
+
 &ubi_art {
 	nvmem-layout {
 		compatible = "fixed-layout";
@@ -297,33 +200,11 @@
 	};
 };
 
-&pcie0 {
-	status = "okay";
-	perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
-	wake-gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
-};
-
-&pcie_bridge0 {
-	wifi at 0,0 {
-		compatible = "qcom,ath10k";
-		reg = <0x00010000 0 0 0 0>;
-		nvmem-cells = <&mac_address 1>, <&cal_factory_9000>;
-		nvmem-cell-names = "mac-address", "calibration";
-	};
-};
-
 &qpic_bam {
 	status = "okay";
 };
 
 &tlmm {
-	/*
-	 * GPIO43 should be 0/1 whenever the unit is
-	 * powered through PoE or AC-Adapter.
-	 * That said, playing with this seems to
-	 * reset the AP.
-	 */
-
 	mdio_pins: mdio_pinmux {
 		mux_1 {
 			pins = "gpio6";
@@ -355,27 +236,17 @@
 	};
 
 	i2c_0_pins: i2c_0_pinmux {
-		pinmux {
-			function = "blsp_i2c0";
-			pins = "gpio20", "gpio21";
-		};
-		pinconf {
-			pins = "gpio20", "gpio21";
-			drive-strength = <16>;
-			bias-disable;
-		};
+		function = "blsp_i2c0";
+		pins = "gpio20", "gpio21";
+		drive-strength = <16>;
+		bias-disable;
 	};
 
 	i2c_1_pins: i2c_1_pinmux {
-		pinmux {
-			function = "blsp_i2c1";
-			pins = "gpio34", "gpio35";
-		};
-		pinconf {
-			pins = "gpio34", "gpio35";
-			drive-strength = <16>;
-			bias-disable;
-		};
+		function = "blsp_i2c1";
+		pins = "gpio34", "gpio35";
+		drive-strength = <16>;
+		bias-disable;
 	};
 
 	nand_pins: nand_pins {
@@ -390,90 +261,46 @@
 		 */
 
 		pullups {
-			pins = "gpio52", "gpio53", "gpio58",
-				"gpio59";
+			pins = "gpio53", "gpio58", "gpio59";
 			function = "qpic";
 			bias-pull-up;
 		};
 
 		pulldowns {
-			pins = "gpio54", "gpio55", "gpio56",
-				"gpio57", "gpio60", "gpio61",
-				"gpio62", "gpio63", "gpio64",
-				"gpio65", "gpio66", "gpio67",
-				"gpio68", "gpio69";
+			pins = "gpio55", "gpio56", "gpio57",
+				"gpio60", "gpio62", "gpio63",
+				"gpio64", "gpio65", "gpio66",
+				"gpio67", "gpio68", "gpio69";
 			function = "qpic";
 			bias-pull-down;
 		};
 	};
 };
 
-&wifi0 {
-	status = "okay";
-	nvmem-cells = <&mac_address 2>, <&precal_factory_1000>;
-	nvmem-cell-names = "mac-address", "pre-calibration";
-};
-
-&wifi1 {
-	status = "okay";
-	nvmem-cells = <&mac_address 3>, <&precal_factory_5000>;
-	nvmem-cell-names = "mac-address", "pre-calibration";
-};
-
 &mdio {
 	status = "okay";
 	pinctrl-0 = <&mdio_pins>;
 	pinctrl-names = "default";
-
-	ar8035: ethernet-phy at 1 {
-		reg = <1>;
-	};
-
-	ethernet-phy-package at 0 {
-		status = "disabled";
-	};
-};
-
-&gmac {
-	status = "okay";
-	nvmem-cells = <&mac_address 0>;
-	nvmem-cell-names = "mac-address";
 };
 
 &switch {
 	status = "okay";
-
-	/delete-property/ psgmii-ethphy;
 };
 
-&swport5 {
+&gmac {
 	status = "okay";
-
-	label = "lan";
-	phy-handle = <&ar8035>;
-	phy-mode = "rgmii-rxid";
-};
-
-&ethphy0 {
-	status = "disabled";
-};
-
-&ethphy1 {
-	status = "disabled";
-};
-
-&ethphy2 {
-	status = "disabled";
-};
-
-&ethphy3 {
-	status = "disabled";
+	nvmem-cells = <&mac_address 0>;
+	nvmem-cell-names = "mac-address";
 };
 
-&ethphy4 {
+&wifi0 {
 	status = "disabled";
+	nvmem-cells = <&mac_address 2>, <&precal_factory_1000>;
+	nvmem-cell-names = "mac-address", "pre-calibration";
 };
 
-&psgmiiphy {
+&wifi1 {
 	status = "disabled";
+	nvmem-cells = <&mac_address 3>, <&precal_factory_5000>;
+	nvmem-cell-names = "mac-address", "pre-calibration";
 };
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-meraki-insect.dtsi b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-meraki-insect.dtsi
new file mode 100644
index 0000000000..9c9f307219
--- /dev/null
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-meraki-insect.dtsi
@@ -0,0 +1,122 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Device Tree Source for Meraki devices
+ *
+ * Copyright (C) 2017 Chris Blake <chrisrblake93 at gmail.com>
+ * Copyright (C) 2017 Christian Lamparter <chunkeey at googlemail.com>
+ * Copyright (C) 2025 Hal Martin <halmartin at googlemail.com>
+ *
+ * Based on Cisco Meraki DTS from GPL release r25-linux-3.14-20170427
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without
+ * any warranty of any kind, whether express or implied.
+ */
+
+#include "qcom-ipq4029-meraki-common.dtsi"
+
+/ {
+	aliases {
+		led-boot = &status_green;
+		led-failsafe = &status_red;
+		led-running = &status_green;
+		led-upgrade = &power_orange;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		power_orange: power {
+			function = LED_FUNCTION_POWER;
+			color = <LED_COLOR_ID_ORANGE>;
+			gpios = <&tlmm 49 GPIO_ACTIVE_LOW>;
+			panic-indicator;
+		};
+	};
+};
+
+&blsp1_i2c3 {
+	eeprom at 50 {
+		compatible = "atmel,24c64";
+		pagesize = <32>;
+		reg = <0x50>;
+		read-only; /* This holds our MAC & Meraki board-data */
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			mac_address: mac-address at 66 {
+				compatible = "mac-base";
+				reg = <0x66 0x6>;
+				#nvmem-cell-cells = <1>;
+			};
+		};
+	};
+};
+
+&blsp1_i2c4 {
+	pinctrl-0 = <&i2c_1_pins>;
+	pinctrl-names = "default";
+	status = "okay";
+
+	tricolor: led-controller at 30 {
+		compatible = "ti,lp5562";
+		reg = <0x30>;
+		clock-mode = /bits/8 <2>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* RGB led */
+		status_red: chan at 0 {
+			chan-name = "red:status";
+			led-cur = /bits/ 8 <0x20>;
+			max-cur = /bits/ 8 <0x60>;
+			reg = <0>;
+			color = <LED_COLOR_ID_RED>;
+		};
+
+		status_green: chan at 1 {
+			chan-name = "green:status";
+			led-cur = /bits/ 8 <0x20>;
+			max-cur = /bits/ 8 <0x60>;
+			reg = <1>;
+			color = <LED_COLOR_ID_GREEN>;
+		};
+
+		chan at 2 {
+			chan-name = "blue:status";
+			led-cur = /bits/ 8 <0x20>;
+			max-cur = /bits/ 8 <0x60>;
+			reg = <2>;
+			color = <LED_COLOR_ID_BLUE>;
+		};
+
+		chan at 3 {
+			chan-name = "white:status";
+			led-cur = /bits/ 8 <0x20>;
+			max-cur = /bits/ 8 <0x60>;
+			reg = <3>;
+			color = <LED_COLOR_ID_WHITE>;
+		};
+	};
+};
+
+&gmac {
+	status = "okay";
+	nvmem-cells = <&mac_address 0>;
+	nvmem-cell-names = "mac-address";
+};
+
+&wifi0 {
+	status = "disabled";
+	nvmem-cells = <&mac_address 2>, <&precal_factory_1000>;
+	nvmem-cell-names = "mac-address", "pre-calibration";
+};
+
+&wifi1 {
+	status = "disabled";
+	nvmem-cells = <&mac_address 3>, <&precal_factory_5000>;
+	nvmem-cell-names = "mac-address", "pre-calibration";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts
index 4edc1bf120..8b21736d00 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr30h.dts
@@ -1,19 +1,12 @@
 // SPDX-License-Identifier: GPL-2.0-only
 // Device Tree Source for Meraki MR30H (Noisy Cricket)
 
-#include "qcom-ipq4029-wired-qca-common.dtsi"
+#include "qcom-ipq4029-meraki-insect.dtsi"
 
 / {
 	model = "Meraki MR30H";
 	compatible = "meraki,mr30h";
 
-	soc {
-		/* for USB PHY, device has no USB port */
-		tcsr at 194b000 {
-			status = "disabled";
-		};
-	};
-
 	leds {
 		compatible = "gpio-leds";
 
@@ -80,26 +73,16 @@
 			gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
 		};
 	};
-};
-
-&usb2_hs_phy {
-	status = "disabled";
-};
 
-&usb2 {
-	status = "disabled";
-};
-
-&usb3_hs_phy {
-	status = "disabled";
-};
-
-&usb3_ss_phy {
-	status = "disabled";
+	soc {
+		ess_tcsr at 1953000 {
+			qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+		};
+	};
 };
 
-&usb3 {
-	status = "disabled";
+&tricolor {
+	enable-gpio = <&tlmm 48 GPIO_ACTIVE_HIGH>;
 };
 
 &pcie0 {
@@ -109,7 +92,7 @@
 };
 
 &pcie_bridge0 {
-	wifi2: wifi at 1,0 {
+	wifi2: wifi at 0,0 {
 		compatible = "qcom,ath10k";
 		reg = <0x00010000 0 0 0 0>;
 		nvmem-cells = <&cal_factory_9000>;
@@ -127,7 +110,6 @@
 	qcom,ath10k-calibration-variant = "Meraki-MR30H";
 };
 
-
 &swport1 {
 	label = "lan4";
 	status = "okay";
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr33.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr33.dts
index a1fad08559..62a793cedb 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr33.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr33.dts
@@ -1,21 +1,88 @@
 // SPDX-License-Identifier: GPL-2.0-only
 // Device Tree Source for Meraki MR33 (Stinkbug)
 
-#include "qcom-ipq4029-insect-common.dtsi"
+#include "qcom-ipq4029-meraki-insect.dtsi"
 
 / {
 	model = "Meraki MR33 Access Point";
 	compatible = "meraki,mr33";
+
+	soc {
+		ess_tcsr at 1953000 {
+			qcom,ess-interface-select = <TCSR_ESS_PSGMII_RGMII5>;
+		};
+	};
 };
 
 &tricolor {
 	enable-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
 };
 
+&pcie0 {
+	status = "okay";
+};
+
+&pcie_bridge0 {
+	wifi at 0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x00010000 0 0 0 0>;
+		nvmem-cells = <&mac_address 1>, <&cal_factory_9000>;
+		nvmem-cell-names = "mac-address", "calibration";
+	};
+};
+
 &wifi0 {
+	status = "okay";
 	qcom,ath10k-calibration-variant = "Meraki-MR33";
 };
 
 &wifi1 {
+	status = "okay";
 	qcom,ath10k-calibration-variant = "Meraki-MR33";
 };
+
+&mdio {
+	ar8035: ethernet-phy at 1 {
+		reg = <1>;
+	};
+
+	ethernet-phy-package at 0 {
+		status = "disabled";
+	};
+};
+
+&switch {
+	/delete-property/ psgmii-ethphy;
+};
+
+&swport5 {
+	status = "okay";
+
+	label = "lan";
+	phy-handle = <&ar8035>;
+	phy-mode = "rgmii-rxid";
+};
+
+&ethphy0 {
+	status = "disabled";
+};
+
+&ethphy1 {
+	status = "disabled";
+};
+
+&ethphy2 {
+	status = "disabled";
+};
+
+&ethphy3 {
+	status = "disabled";
+};
+
+&ethphy4 {
+	status = "disabled";
+};
+
+&psgmiiphy {
+	status = "disabled";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr74.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr74.dts
index 2df9e912a2..09e71a65a8 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr74.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-mr74.dts
@@ -1,21 +1,88 @@
 // SPDX-License-Identifier: GPL-2.0-only
 // Device Tree Source for Meraki MR74 (Ladybug)
 
-#include "qcom-ipq4029-insect-common.dtsi"
+#include "qcom-ipq4029-meraki-insect.dtsi"
 
 / {
 	model = "Meraki MR74 Access Point";
 	compatible = "meraki,mr74";
+
+	soc {
+		ess_tcsr at 1953000 {
+			qcom,ess-interface-select = <TCSR_ESS_PSGMII_RGMII5>;
+		};
+	};
 };
 
 &tricolor {
 	enable-gpios = <&tlmm 14 GPIO_ACTIVE_LOW>;
 };
 
+&pcie0 {
+	status = "okay";
+};
+
+&pcie_bridge0 {
+	wifi at 0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x00010000 0 0 0 0>;
+		nvmem-cells = <&mac_address 1>, <&cal_factory_9000>;
+		nvmem-cell-names = "mac-address", "calibration";
+	};
+};
+
 &wifi0 {
+	status = "okay";
 	qcom,ath10k-calibration-variant = "Meraki-MR33";
 };
 
 &wifi1 {
+	status = "okay";
 	qcom,ath10k-calibration-variant = "Meraki-MR33";
 };
+
+&mdio {
+	ar8035: ethernet-phy at 1 {
+		reg = <1>;
+	};
+
+	ethernet-phy-package at 0 {
+		status = "disabled";
+	};
+};
+
+&switch {
+	/delete-property/ psgmii-ethphy;
+};
+
+&swport5 {
+	status = "okay";
+
+	label = "lan";
+	phy-handle = <&ar8035>;
+	phy-mode = "rgmii-rxid";
+};
+
+&ethphy0 {
+	status = "disabled";
+};
+
+&ethphy1 {
+	status = "disabled";
+};
+
+&ethphy2 {
+	status = "disabled";
+};
+
+&ethphy3 {
+	status = "disabled";
+};
+
+&ethphy4 {
+	status = "disabled";
+};
+
+&psgmiiphy {
+	status = "disabled";
+};
diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-z3.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-z3.dts
index 6ed70dc0a2..ea3b3ee759 100644
--- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-z3.dts
+++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4029-z3.dts
@@ -1,12 +1,26 @@
 // SPDX-License-Identifier: GPL-2.0-only
 // Device Tree Source for Meraki Z3 (Fuzzy Cricket)
 
-#include "qcom-ipq4029-wired-qca-common.dtsi"
+#include "qcom-ipq4029-meraki-insect.dtsi"
 
 / {
 	model = "Meraki Z3 Router";
 	compatible = "meraki,z3";
 
+	soc {
+		ess_tcsr at 1953000 {
+			qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+		};
+
+		tcsr at 194b000 {
+			/* select hostmode */
+			compatible = "qcom,tcsr";
+			reg = <0x194b000 0x100>;
+			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
+			status = "okay";
+		};
+	};
+
 	leds {
 		compatible = "gpio-leds";
 
@@ -99,6 +113,55 @@
 	};
 };
 
+&tricolor {
+	enable-gpio = <&tlmm 48 GPIO_ACTIVE_HIGH>;
+};
+
+&usb2_hs_phy {
+	status = "okay";
+};
+
+&usb2 {
+	status = "okay";
+};
+
+&usb3_hs_phy {
+	status = "okay";
+};
+
+&usb3_ss_phy {
+	status = "okay";
+};
+
+&usb3 {
+	status = "okay";
+};
+
+&swport1 {
+	label = "wan";
+	status = "okay";
+};
+
+&swport2 {
+	label = "lan2";
+	status = "okay";
+};
+
+&swport3 {
+	label = "lan3";
+	status = "okay";
+};
+
+&swport4 {
+	label = "lan4";
+	status = "okay";
+};
+
+&swport5 {
+	label = "lan5";
+	status = "okay";
+};
+
 &wifi0 {
 	status = "okay";
 	qcom,ath10k-calibration-variant = "Meraki-Z3";




More information about the lede-commits mailing list