[openwrt/openwrt] ath79: add nvmem handling for AR9285 devices

LEDE Commits lede-commits at lists.infradead.org
Thu Sep 11 16:22:12 PDT 2025


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3ca84b840ceccda56ea9b7ad0c17da72d814bd18

commit 3ca84b840ceccda56ea9b7ad0c17da72d814bd18
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Aug 29 16:28:54 2025 -0700

    ath79: add nvmem handling for AR9285 devices
    
    They have the same 0x200 calibration size.
    
    Added various compatible lines in various places to make it clear what
    device we're talking about.
    
    Signed-off-by: Rosen Penev <rosenp at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/19863
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/dts/ar7240_netgear_wnr1000-v2.dts     |  9 ++++++---
 target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi     |  9 ++++++---
 target/linux/ath79/dts/ar7240_tplink.dtsi                | 14 +++++++++++---
 target/linux/ath79/dts/ar7240_tplink_tl-wa.dtsi          |  4 ----
 target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts   |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts   |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts   |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wa830re-v1.dts   |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts   |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wr.dtsi          |  4 ----
 target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts    |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts    |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts     |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts   |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts     |  8 ++++++++
 target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts     |  8 ++++++++
 .../base-files/etc/hotplug.d/firmware/10-ath9k-eeprom    | 16 +---------------
 17 files changed, 112 insertions(+), 32 deletions(-)

diff --git a/target/linux/ath79/dts/ar7240_netgear_wnr1000-v2.dts b/target/linux/ath79/dts/ar7240_netgear_wnr1000-v2.dts
index b1f8bd3a89..4be7b9779f 100644
--- a/target/linux/ath79/dts/ar7240_netgear_wnr1000-v2.dts
+++ b/target/linux/ath79/dts/ar7240_netgear_wnr1000-v2.dts
@@ -190,6 +190,10 @@
 					macaddr_art_6: macaddr at 6 {
 						reg = <0x6 0x6>;
 					};
+
+					calibration_art_1000: calibration at 1000 {
+						reg = <0x1000 0x200>;
+					};
 				};
 			};
 		};
@@ -214,9 +218,8 @@
 	ath9k: wifi at 0,0 {
 		compatible = "pci168c,002b";
 		reg = <0x0000 0 0 0 0>;
-		nvmem-cells = <&macaddr_art_0 1>;
-		nvmem-cell-names = "mac-address";
-		qca,no-eeprom;
+		nvmem-cells = <&macaddr_art_0 1>, <&calibration_art_1000>;
+		nvmem-cell-names = "mac-address", "calibration";
 		#gpio-cells = <2>;
 		gpio-controller;
 	};
diff --git a/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi b/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi
index 3d9ab10322..07d6779220 100644
--- a/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi
+++ b/target/linux/ath79/dts/ar7240_netgear_wnr612-v2.dtsi
@@ -120,6 +120,10 @@
 					macaddr_art_6: macaddr at 6 {
 						reg = <0x6 0x6>;
 					};
+
+					calibration_art_1000: calibration at 1000 {
+						reg = <0x1000 0x200>;
+					};
 				};
 			};
 		};
@@ -144,9 +148,8 @@
 	ath9k: wifi at 0,0 {
 		compatible = "pci168c,002b";
 		reg = <0x0000 0 0 0 0>;
-		nvmem-cells = <&macaddr_art_0 1>;
-		nvmem-cell-names = "mac-address";
-		qca,no-eeprom;
+		nvmem-cells = <&macaddr_art_0 1>, <&calibration_art_1000>;
+		nvmem-cell-names = "mac-address", "calibration";
 		#gpio-cells = <2>;
 		gpio-controller;
 	};
diff --git a/target/linux/ath79/dts/ar7240_tplink.dtsi b/target/linux/ath79/dts/ar7240_tplink.dtsi
index 28e9a96b66..10256838b1 100644
--- a/target/linux/ath79/dts/ar7240_tplink.dtsi
+++ b/target/linux/ath79/dts/ar7240_tplink.dtsi
@@ -103,6 +103,15 @@
 				reg = <0x3f0000 0x10000>;
 				label = "art";
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					calibration_art_1000: calibration at 1000 {
+					};
+				};
 			};
 		};
 	};
@@ -117,9 +126,8 @@
 
 	ath9k: wifi at 0,0 {
 		reg = <0x0000 0 0 0 0>;
-		qca,no-eeprom;
-		nvmem-cells = <&macaddr_uboot_1fc00 0>;
-		nvmem-cell-names = "mac-address";
+		nvmem-cells = <&macaddr_uboot_1fc00 0>, <&calibration_art_1000>;
+		nvmem-cell-names = "mac-address", "calibration";
 		#gpio-cells = <2>;
 		gpio-controller;
 	};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wa.dtsi b/target/linux/ath79/dts/ar7240_tplink_tl-wa.dtsi
index 94d2570c6c..e7463ca9ba 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wa.dtsi
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wa.dtsi
@@ -20,7 +20,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00 0>;
 	nvmem-cell-names = "mac-address";
 };
-
-&ath9k {
-	compatible = "pci168c,002a";
-};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts
index eda5ae4eb6..aad25dbc83 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WA701ND v1";
 	compatible = "tplink,tl-wa701nd-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002b";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0x200>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts
index 93e59dcda6..2bf5ae598e 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WA730RE v1";
 	compatible = "tplink,tl-wa730re-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002b";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0x200>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts
index c86f8f0e54..499f3b6761 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WA801ND v1";
 	compatible = "tplink,tl-wa801nd-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002a";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0xeb8>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wa830re-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wa830re-v1.dts
index e84dc6b3c7..55bd7f8dd4 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wa830re-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wa830re-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WA830RE v1";
 	compatible = "tplink,tl-wa830re-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002a";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0xeb8>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts
index 008da2ecf0..df00691019 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WA901ND v1";
 	compatible = "tplink,tl-wa901nd-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002b";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0x200>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr.dtsi b/target/linux/ath79/dts/ar7240_tplink_tl-wr.dtsi
index e0c625e239..69a3105fd9 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wr.dtsi
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr.dtsi
@@ -41,7 +41,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00 1>;
 	nvmem-cell-names = "mac-address";
 };
-
-&ath9k {
-	compatible = "pci168c,002b";
-};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts
index 8b38c5addb..f16aab988f 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WR740N v1/v2";
 	compatible = "tplink,tl-wr740n-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002b";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0x200>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts
index 71f361cd21..28a903f099 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WR740N v3";
 	compatible = "tplink,tl-wr740n-v3", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002b";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0x200>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts
index d6fde1b377..56956ceaf2 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WR741N/ND v1/v2";
 	compatible = "tplink,tl-wr741-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002b";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0x200>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts
index 756f64c9dd..f41b76710d 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WR743ND v1";
 	compatible = "tplink,tl-wr743nd-v1", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002b";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0x200>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts
index a90d6f7f56..632b8523ca 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WR841N/ND v5/v6";
 	compatible = "tplink,tl-wr841-v5", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002a";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0xeb8>;
+};
diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts
index d0b2ca0384..14cff1f3f4 100644
--- a/target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts
+++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts
@@ -6,3 +6,11 @@
 	model = "TP-Link TL-WR941N/ND v4";
 	compatible = "tplink,tl-wr941-v4", "qca,ar7240";
 };
+
+&ath9k {
+	compatible = "pci168c,002a";
+};
+
+&calibration_art_1000 {
+	reg = <0x1000 0xeb8>;
+};
diff --git a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 796ebc3321..0f96f04902 100644
--- a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -12,30 +12,16 @@ case "$FIRMWARE" in
 	buffalo,whr-g301n|\
 	engenius,eap350-v1|\
 	engenius,ecb350-v1|\
-	engenius,enh202-v1|\
-	tplink,tl-wa701nd-v1|\
-	tplink,tl-wa730re-v1|\
-	tplink,tl-wa801nd-v1|\
-	tplink,tl-wa830re-v1|\
-	tplink,tl-wa901nd-v1|\
-	tplink,tl-wr841-v5|\
-	tplink,tl-wr941-v4)
+	engenius,enh202-v1)
 		caldata_extract "art" 0x1000 0xeb8
 		;;
 	dlink,dir-615-e4)
 		caldata_extract "art" 0x1000 0x1000
 		ath9k_patch_mac_crc $(mtd_get_mac_ascii "nvram" "lan_mac") 0x10c
 		;;
-	netgear,wnr1000-v2|\
 	netgear,wnr2000-v3|\
-	netgear,wnr612-v2|\
-	on,n150r|\
 	tplink,tl-mr3220-v1|\
 	tplink,tl-mr3420-v1|\
-	tplink,tl-wr740n-v1|\
-	tplink,tl-wr740n-v3|\
-	tplink,tl-wr741-v1|\
-	tplink,tl-wr743nd-v1|\
 	tplink,tl-wr841-v7|\
 	ubnt,airrouter|\
 	ubnt,bullet-m-ar7240|\




More information about the lede-commits mailing list