[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