[openwrt/openwrt] econet: en7528: split DASAN H660GM-A into Airtel and Generic variants

LEDE Commits lede-commits at lists.infradead.org
Tue Feb 24 11:18:16 PST 2026


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7ee18e84dce3d44839349257835e552760655fd2

commit 7ee18e84dce3d44839349257835e552760655fd2
Author: Ahmed Naseef <naseefkm at gmail.com>
AuthorDate: Thu Feb 19 16:00:52 2026 +0400

    econet: en7528: split DASAN H660GM-A into Airtel and Generic variants
    
    The DASAN H660GM-A GPON ONT exists in two hardware variants, one
    distributed by ISPs and one sold directly by the manufacturer [1].
    
    Split the single DTS into a shared dtsi and per-variant DTS files
    with the correct GPIO mappings, flash layout, and LED definitions.
    
    Variant comparison:
    
      Feature        | Airtel                    | Generic
      ---------------+---------------------------+-------------------------
      Supplied by    | Airtel Xstream Fiber      | Retail
      Flash          | Micron MT29F2G01ABAGD     | Micron MT29F1G01ABAFD
                     | 256 MB                    | 128 MB
      Known P/N      | DPW-G-P-66GMAZ-A3         | DPW:G-P-660GMAY-G0
                     | (some units unlabelled)   | DPW:G-P-660GMAY-G3
      WPS LED        | Yes                       | No
      WLAN button    | No                        | Yes
      USB LED        | No                        | Yes
      LAN LEDs       | Green only                | Green + Amber
    
    [1] https://dasanns.com/en/solution/detail.php?mode=view&cat_no=32&offset=&idx=122
    
    Tested-by: Arif Rahman Hakim <arif2785id at gmail.com>
    Signed-off-by: Ahmed Naseef <naseefkm at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/22095
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/econet/base-files/sbin/en75_chboot    |   3 +-
 .../econet/dts/en7528_dasan_h660gm-a-airtel.dts    |  70 ++++++++++++++
 .../econet/dts/en7528_dasan_h660gm-a-generic.dts   | 101 +++++++++++++++++++++
 ...san_h660gm-a.dts => en7528_dasan_h660gm-a.dtsi} |  63 +------------
 target/linux/econet/image/en7528.mk                |  16 +++-
 5 files changed, 188 insertions(+), 65 deletions(-)

diff --git a/target/linux/econet/base-files/sbin/en75_chboot b/target/linux/econet/base-files/sbin/en75_chboot
index 27f2b2bad4..a582d64a5d 100755
--- a/target/linux/econet/base-files/sbin/en75_chboot
+++ b/target/linux/econet/base-files/sbin/en75_chboot
@@ -138,7 +138,8 @@ main() {
         code_openwrt=30
         code_factory=31
         ;;
-    dasan,h660gm-a)
+    dasan,h660gm-a-airtel|\
+    dasan,h660gm-a-generic)
         # bootflag stored in dzs partition at offset 0x49
         part=$(part_named '"dzs"')
         offset_blocks=0
diff --git a/target/linux/econet/dts/en7528_dasan_h660gm-a-airtel.dts b/target/linux/econet/dts/en7528_dasan_h660gm-a-airtel.dts
new file mode 100644
index 0000000000..8f9f506e4f
--- /dev/null
+++ b/target/linux/econet/dts/en7528_dasan_h660gm-a-airtel.dts
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/dts-v1/;
+
+#include "en7528_dasan_h660gm-a.dtsi"
+
+/ {
+	model = "DASAN H660GM-A (Airtel)";
+	compatible = "dasan,h660gm-a-airtel", "econet,en7528";
+
+	leds {
+		led_wps: wps {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_WPS;
+			gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
+		};
+
+		led_lan1: lan1 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <1>;
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+		};
+
+		led_lan2: lan2 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <2>;
+			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+		};
+
+		led_lan3: lan3 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <3>;
+			gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+		};
+
+		led_lan4: lan4 {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <4>;
+			gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&partitions {
+	partition at 60c0000 {
+		label = "unknown";
+		reg = <0x60c0000 0x7d00000>;
+	};
+
+	partition at ddc0000 {
+		label = "reservearea";
+		reg = <0xddc0000 0x240000>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			eeprom_reservearea_40000: eeprom at 40000 {
+				reg = <0x40000 0x400>;
+			};
+
+			eeprom_reservearea_1c0000: eeprom at 1c0000 {
+				reg = <0x1c0000 0x1000>;
+			};
+		};
+	};
+};
diff --git a/target/linux/econet/dts/en7528_dasan_h660gm-a-generic.dts b/target/linux/econet/dts/en7528_dasan_h660gm-a-generic.dts
new file mode 100644
index 0000000000..998f385a73
--- /dev/null
+++ b/target/linux/econet/dts/en7528_dasan_h660gm-a-generic.dts
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/dts-v1/;
+
+#include "en7528_dasan_h660gm-a.dtsi"
+
+/ {
+	model = "DASAN H660GM-A (Generic)";
+	compatible = "dasan,h660gm-a-generic", "econet,en7528";
+
+	keys {
+		key-wlan {
+			label = "wlan";
+			gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RFKILL>;
+		};
+	};
+
+	leds {
+		led_usb: usb {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_USB;
+			gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan1-green {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <1>;
+			gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan1-amber {
+			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <1>;
+			gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan2-green {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <2>;
+			gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan2-amber {
+			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <2>;
+			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan3-green {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <3>;
+			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan3-amber {
+			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <3>;
+			gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan4-green {
+			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <4>;
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+		};
+
+		led-lan4-amber {
+			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_LAN;
+			function-enumerator = <4>;
+			gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&partitions {
+	partition at 6dc0000 {
+		label = "reservearea";
+		reg = <0x6dc0000 0x240000>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			eeprom_reservearea_40000: eeprom at 40000 {
+				reg = <0x40000 0x400>;
+			};
+
+			eeprom_reservearea_1c0000: eeprom at 1c0000 {
+				reg = <0x1c0000 0x1000>;
+			};
+		};
+	};
+};
diff --git a/target/linux/econet/dts/en7528_dasan_h660gm-a.dts b/target/linux/econet/dts/en7528_dasan_h660gm-a.dtsi
similarity index 74%
rename from target/linux/econet/dts/en7528_dasan_h660gm-a.dts
rename to target/linux/econet/dts/en7528_dasan_h660gm-a.dtsi
index f14c1e29db..2c63d813b8 100644
--- a/target/linux/econet/dts/en7528_dasan_h660gm-a.dts
+++ b/target/linux/econet/dts/en7528_dasan_h660gm-a.dtsi
@@ -1,5 +1,4 @@
 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-/dts-v1/;
 
 #include "en7528.dtsi"
 
@@ -8,9 +7,6 @@
 #include <dt-bindings/leds/common.h>
 
 / {
-	model = "DASAN H660GM-A";
-	compatible = "dasan,h660gm-a", "econet,en7528";
-
 	aliases {
 		led-boot = &led_power;
 		led-failsafe = &led_power;
@@ -66,40 +62,6 @@
 			gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
 		};
 
-		led_wps: wps {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_WPS;
-			gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
-		};
-
-		led_lan1: lan1 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <1>;
-			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
-		};
-
-		led_lan2: lan2 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <2>;
-			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
-		};
-
-		led_lan3: lan3 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <3>;
-			gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
-		};
-
-		led_lan4: lan4 {
-			color = <LED_COLOR_ID_GREEN>;
-			function = LED_FUNCTION_LAN;
-			function-enumerator = <4>;
-			gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
-		};
-
 		led_wlan24: wlan2g {
 			color = <LED_COLOR_ID_GREEN>;
 			function = LED_FUNCTION_WLAN_2GHZ;
@@ -186,7 +148,7 @@
 	econet,bmt;
 	econet,bbt-table-size = <250>;
 
-	partitions {
+	partitions: partitions {
 		compatible = "fixed-partitions";
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -239,28 +201,5 @@
 			label = "rwfs";
 			reg = <0x40c0000 0x2000000>;
 		};
-
-		partition at 60c0000 {
-			label = "unknown";
-			reg = <0x60c0000 0x7d00000>;
-		};
-
-		partition at ddc0000 {
-			label = "reservearea";
-			reg = <0xddc0000 0x240000>;
-			nvmem-layout {
-				compatible = "fixed-layout";
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				eeprom_reservearea_40000: eeprom at 40000 {
-					reg = <0x40000 0x400>;
-				};
-
-				eeprom_reservearea_1c0000: eeprom at 1c0000 {
-					reg = <0x1c0000 0x1000>;
-				};
-			};
-		};
 	};
 };
diff --git a/target/linux/econet/image/en7528.mk b/target/linux/econet/image/en7528.mk
index d608a28bc5..b6e132c18c 100644
--- a/target/linux/econet/image/en7528.mk
+++ b/target/linux/econet/image/en7528.mk
@@ -10,10 +10,22 @@ TARGET_DEVICES += en7528_generic
 define Device/dasan_h660gm-a
   DEVICE_VENDOR := DASAN
   DEVICE_MODEL := H660GM-A
-  DEVICE_DTS := en7528_dasan_h660gm-a
   DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615e kmod-mt7663-firmware-ap
   TRX_MODEL := Dewberry
   IMAGES := tclinux.trx
   IMAGE/tclinux.trx := append-kernel | lzma | tclinux-trx
 endef
-TARGET_DEVICES += dasan_h660gm-a
+
+define Device/dasan_h660gm-a-airtel
+  $(Device/dasan_h660gm-a)
+  DEVICE_VARIANT := Airtel
+  DEVICE_DTS := en7528_dasan_h660gm-a-airtel
+endef
+TARGET_DEVICES += dasan_h660gm-a-airtel
+
+define Device/dasan_h660gm-a-generic
+  $(Device/dasan_h660gm-a)
+  DEVICE_VARIANT := Generic
+  DEVICE_DTS := en7528_dasan_h660gm-a-generic
+endef
+TARGET_DEVICES += dasan_h660gm-a-generic




More information about the lede-commits mailing list