From 92ccaacb295693f8f03fe815b574f15a753a1d15 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Mon, 16 Dec 2024 15:42:19 -0800
Subject: [PATCH] lantiq: use nvmem for fritz 736x

Two use AR9287 and one AR9381. Both have different calibration sizes.
Move differences out of wifi node to make it clearer what's what.

qca,no-eeprom needs to stay for 7362sl as there's no nvmem equivalent
for caldata_extract_reverse

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17278
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Link: https://github.com/openwrt/openwrt/pull/17512
Signed-off-by: Robert Marko <robimarko@gmail.com>
---
 .../arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts |  4 ++--
 .../arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts  | 10 ++++++++++
 .../arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts  |  5 +++++
 .../arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi   |  4 +---
 .../base-files/etc/hotplug.d/firmware/12-ath9k-eeprom  |  3 ---
 5 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts
index cc15324b56..1b41405062 100644
--- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts
@@ -49,7 +49,7 @@
 					#size-cells = <1>;
 
 					cal_urlader_985: cal@985 {
-						reg = <0x985 0x440>;
+						reg = <0x985 0x3d8>;
 					};
 
 					macaddr_urlader_a91: macaddr@a91 {
@@ -94,7 +94,7 @@
 };
 
 &wifi {
-	/delete-property/ qca,no-eeprom;
+	compatible = "pci168c,002e";
 	nvmem-cells = <&cal_urlader_985>;
 	nvmem-cell-names = "calibration";
 };
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts
index cbe6c14c99..9301b049ca 100644
--- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts
@@ -49,6 +49,10 @@
 					#address-cells = <1>;
 					#size-cells = <1>;
 
+					cal_urlader_985: cal@985 {
+						reg = <0x985 0x3d8>;
+					};
+
 					macaddr_urlader_a91: macaddr@a91 {
 						compatible = "mac-base";
 						reg = <0xa91 0x6>;
@@ -89,3 +93,9 @@
 &phy1 {
 	reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
 };
+
+&wifi {
+	compatible = "pci168c,002e";
+	nvmem-cells = <&cal_urlader_985>;
+	nvmem-cell-names = "calibration";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts
index 7929bde6cf..e1334fa306 100644
--- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts
@@ -127,3 +127,8 @@
 &phy1 {
 	reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
 };
+
+&wifi {
+	compatible = "pci168c,0030";
+	qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi
index e7fc9a4f55..cc0c97da89 100644
--- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi
@@ -155,10 +155,8 @@
 		#address-cells = <2>;
 		device_type = "pci";
 
-		wifi: wifi@168c,002e {
-			compatible = "pci168c,002e";
+		wifi: wifi@0,0 {
 			reg = <0 0 0 0 0>;
-			qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */
 		};
 	};
 };
diff --git a/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom b/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
index 164e2d39ca..936181c693 100644
--- a/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
+++ b/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
@@ -19,9 +19,6 @@ case "$FIRMWARE" in
 			avm,fritz3390)
 				caldata_extract_reverse "urlader" 0x2546 0x440
 				;;
-			avm,fritz7360sl)
-				caldata_extract "urlader" 0x985 0x1000
-				;;
 			avm,fritz7412|\
 			avm,fritz7430)
 				/usr/bin/fritz_cal_extract -i 1 -s 0x1e000 -e 0x207 -l 5120 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader") || \
-- 
2.30.2