From 7850f5071a02a1fa49146bcb3c5e4515e2126dff Mon Sep 17 00:00:00 2001
From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Date: Mon, 15 Feb 2021 17:30:59 +0100
Subject: [PATCH] ath79: create common DTSI for Senao ar934x APs

This creates a shared DTSI for ar934x Senao/Engenius APs:

 - EAP300 v2
 - ENS202EXT v1
 - EAP600
 - ECB600

Since ar9341/ar9344 have different configuration, this new file
mostly contains the partitioning.

Suggested-by: Michael Pratt <mcpratt@pm.me>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit ce8b535ed3aea743f58d8445dfaa1c2ced375f94)
---
 .../ath79/dts/ar9341_engenius_eap300-v2.dts   | 92 +-----------------
 .../dts/ar9341_engenius_ens202ext-v1.dts      | 92 +-----------------
 .../ath79/dts/ar9344_engenius_exx600.dtsi     | 92 +-----------------
 .../linux/ath79/dts/ar934x_senao_loader.dtsi  | 95 +++++++++++++++++++
 4 files changed, 98 insertions(+), 273 deletions(-)
 create mode 100644 target/linux/ath79/dts/ar934x_senao_loader.dtsi

diff --git a/target/linux/ath79/dts/ar9341_engenius_eap300-v2.dts b/target/linux/ath79/dts/ar9341_engenius_eap300-v2.dts
index b830821977..8c87a73508 100644
--- a/target/linux/ath79/dts/ar9341_engenius_eap300-v2.dts
+++ b/target/linux/ath79/dts/ar9341_engenius_eap300-v2.dts
@@ -1,10 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
 #include "ar9341.dtsi"
+#include "ar934x_senao_loader.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
-#include <dt-bindings/mtd/partitions/uimage.h>
 
 / {
 	model = "Engenius EAP300 v2";
@@ -43,96 +43,6 @@
 			linux,default-trigger = "phy0tpt";
 		};
 	};
-
-	virtual_flash {
-		compatible = "mtd-concat";
-
-		devices = <&fwconcat0 &fwconcat1>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				compatible = "openwrt,uimage", "denx,uimage";
-				openwrt,ih-magic = <IH_MAGIC_OKLI>;
-				label = "firmware";
-				reg = <0x0 0x0>;
-			};
-		};
-	};
-};
-
-&ref {
-	clock-frequency = <40000000>;
-};
-
-&spi {
-	status = "okay";
-
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <20000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				label = "u-boot";
-				reg = <0x000000 0x040000>;
-				read-only;
-			};
-
-			partition@40000 {
-				label = "u-boot-env";
-				reg = <0x040000 0x010000>;
-			};
-
-			partition@50000 {
-				label = "custom";
-				reg = <0x050000 0x050000>;
-				read-only;
-			};
-
-			partition@a0000 {
-				label = "loader";
-				reg = <0x0a0000 0x010000>;
-				read-only;
-			};
-
-			fwconcat1: partition@b0000 {
-				label = "fwconcat1";
-				reg = <0x0b0000 0x170000>;
-			};
-
-			partition@220000 {
-				label = "fakeroot";
-				reg = <0x220000 0x010000>;
-				read-only;
-			};
-
-			fwconcat0: partition@230000 {
-				label = "fwconcat0";
-				reg = <0x230000 0xbc0000>;
-			};
-
-			partition@df0000 {
-				label = "failsafe";
-				reg = <0xdf0000 0x200000>;
-				read-only;
-			};
-
-			art: partition@ff0000 {
-				label = "art";
-				reg = <0xff0000 0x010000>;
-				read-only;
-			};
-		};
-	};
 };
 
 &eth1 {
diff --git a/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts b/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts
index 8204578c17..5c81020ccd 100644
--- a/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts
+++ b/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts
@@ -1,10 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
 #include "ar9341.dtsi"
+#include "ar934x_senao_loader.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
-#include <dt-bindings/mtd/partitions/uimage.h>
 
 / {
 	model = "Engenius ENS202EXT v1";
@@ -58,96 +58,6 @@
 			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
 		};
 	};
-
-	virtual_flash {
-		compatible = "mtd-concat";
-
-		devices = <&fwconcat0 &fwconcat1>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				compatible = "openwrt,uimage", "denx,uimage";
-				openwrt,ih-magic = <IH_MAGIC_OKLI>;
-				label = "firmware";
-				reg = <0x0 0x0>;
-			};
-		};
-	};
-};
-
-&ref {
-	clock-frequency = <40000000>;
-};
-
-&spi {
-	status = "okay";
-
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <40000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				label = "u-boot";
-				reg = <0x000000 0x040000>;
-				read-only;
-			};
-
-			partition@40000 {
-				label = "u-boot-env";
-				reg = <0x040000 0x010000>;
-			};
-
-			partition@50000 {
-				label = "custom";
-				reg = <0x050000 0x050000>;
-				read-only;
-			};
-
-			partition@a0000 {
-				label = "loader";
-				reg = <0x0a0000 0x010000>;
-				read-only;
-			};
-
-			fwconcat1: partition@b0000 {
-				label = "fwconcat1";
-				reg = <0x0b0000 0x170000>;
-			};
-
-			partition@220000 {
-				label = "fakeroot";
-				reg = <0x220000 0x010000>;
-				read-only;
-			};
-
-			fwconcat0: partition@230000 {
-				label = "fwconcat0";
-				reg = <0x230000 0xbc0000>;
-			};
-
-			partition@df0000 {
-				label = "failsafe";
-				reg = <0xdf0000 0x200000>;
-				read-only;
-			};
-
-			art: partition@ff0000 {
-				label = "art";
-				reg = <0xff0000 0x010000>;
-				read-only;
-			};
-		};
-	};
 };
 
 &eth0 {
diff --git a/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi b/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi
index d7036ff675..1c318f2083 100644
--- a/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi
+++ b/target/linux/ath79/dts/ar9344_engenius_exx600.dtsi
@@ -1,10 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
 #include "ar9344.dtsi"
+#include "ar934x_senao_loader.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
-#include <dt-bindings/mtd/partitions/uimage.h>
 
 / {
 	aliases {
@@ -35,96 +35,6 @@
 			linux,default-trigger = "phy1tpt";
 		};
 	};
-
-	virtual_flash {
-		compatible = "mtd-concat";
-
-		devices = <&fwconcat0 &fwconcat1>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				compatible = "openwrt,uimage", "denx,uimage";
-				openwrt,ih-magic = <IH_MAGIC_OKLI>;
-				label = "firmware";
-				reg = <0x0 0x0>;
-			};
-		};
-	};
-};
-
-&ref {
-	clock-frequency = <40000000>;
-};
-
-&spi {
-	status = "okay";
-
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <40000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				label = "u-boot";
-				reg = <0x000000 0x040000>;
-				read-only;
-			};
-
-			partition@40000 {
-				label = "u-boot-env";
-				reg = <0x040000 0x010000>;
-			};
-
-			partition@50000 {
-				label = "custom";
-				reg = <0x050000 0x050000>;
-				read-only;
-			};
-
-			partition@a0000 {
-				label = "loader";
-				reg = <0x0a0000 0x010000>;
-				read-only;
-			};
-
-			fwconcat1: partition@b0000 {
-				label = "fwconcat1";
-				reg = <0x0b0000 0x170000>;
-			};
-
-			partition@220000 {
-				label = "fakeroot";
-				reg = <0x220000 0x010000>;
-				read-only;
-			};
-
-			fwconcat0: partition@230000 {
-				label = "fwconcat0";
-				reg = <0x230000 0xbc0000>;
-			};
-
-			partition@df0000 {
-				label = "failsafe";
-				reg = <0xdf0000 0x200000>;
-				read-only;
-			};
-
-			art: partition@ff0000 {
-				label = "art";
-				reg = <0xff0000 0x010000>;
-				read-only;
-			};
-		};
-	};
 };
 
 &mdio0 {
diff --git a/target/linux/ath79/dts/ar934x_senao_loader.dtsi b/target/linux/ath79/dts/ar934x_senao_loader.dtsi
new file mode 100644
index 0000000000..aa8a36d242
--- /dev/null
+++ b/target/linux/ath79/dts/ar934x_senao_loader.dtsi
@@ -0,0 +1,95 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/mtd/partitions/uimage.h>
+
+/ {
+	virtual_flash {
+		compatible = "mtd-concat";
+
+		devices = <&fwconcat0 &fwconcat1>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				compatible = "openwrt,uimage", "denx,uimage";
+				openwrt,ih-magic = <IH_MAGIC_OKLI>;
+				label = "firmware";
+				reg = <0x0 0x0>;
+			};
+		};
+	};
+};
+
+&ref {
+	clock-frequency = <40000000>;
+};
+
+&spi {
+	status = "okay";
+
+	flash@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <40000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "u-boot";
+				reg = <0x000000 0x040000>;
+				read-only;
+			};
+
+			partition@40000 {
+				label = "u-boot-env";
+				reg = <0x040000 0x010000>;
+			};
+
+			partition@50000 {
+				label = "custom";
+				reg = <0x050000 0x050000>;
+				read-only;
+			};
+
+			partition@a0000 {
+				label = "loader";
+				reg = <0x0a0000 0x010000>;
+				read-only;
+			};
+
+			fwconcat1: partition@b0000 {
+				label = "fwconcat1";
+				reg = <0x0b0000 0x170000>;
+			};
+
+			partition@220000 {
+				label = "fakeroot";
+				reg = <0x220000 0x010000>;
+				read-only;
+			};
+
+			fwconcat0: partition@230000 {
+				label = "fwconcat0";
+				reg = <0x230000 0xbc0000>;
+			};
+
+			partition@df0000 {
+				label = "failsafe";
+				reg = <0xdf0000 0x200000>;
+				read-only;
+			};
+
+			art: partition@ff0000 {
+				label = "art";
+				reg = <0xff0000 0x010000>;
+				read-only;
+			};
+		};
+	};
+};
-- 
2.30.2