aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@gmail.com>2021-10-16 21:28:52 +0200
committerChristian Lamparter <chunkeey@gmail.com>2021-11-28 01:13:08 +0100
commit297bceeecf29e9bfedba0b26c9d0a2cefeda2add (patch)
treef28b2e6e8f8ab504999aed8d7b1d4acc391b0b5d
parent49d400191dae027a89909680e372f1934a1e1766 (diff)
downloadupstream-297bceeecf29e9bfedba0b26c9d0a2cefeda2add.tar.gz
upstream-297bceeecf29e9bfedba0b26c9d0a2cefeda2add.tar.bz2
upstream-297bceeecf29e9bfedba0b26c9d0a2cefeda2add.zip
ath79: convert TP-Link Archer C7v1/2 Wifis to nvmem-cells
For v2, both ath9k (2.4GHz Wifi) and ath10k (5 GHz) driver now pull the (pre-)calibration data from the nvmem subsystem. v1 is slightly different as only the ath9k Wifi is supported. This allows us to move the userspace caldata extraction and mac-address patching for the 5GHZ ath10k supported wifi into the device-tree definition of the device. ath9k's nodes are also changed over to use nvmem-cells over OpenWrt's custom mtd-cal-data property. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
-rw-r--r--target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts16
-rw-r--r--target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts31
-rw-r--r--target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata1
3 files changed, 38 insertions, 10 deletions
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts
index dfa64d6ca3..e520a83d40 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts
@@ -41,10 +41,18 @@
reg = <0x020000 0x7d0000>;
};
- art: partition@7f0000 {
+ partition@7f0000 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ calibration_art_1000: calibration@1000 {
+ reg = <0x1000 0x440>;
+ };
};
};
@@ -60,10 +68,8 @@
};
&wmac {
- mtd-cal-data = <&art 0x1000>;
-
- nvmem-cells = <&macaddr_uboot_1fc00>;
- nvmem-cell-names = "mac-address";
+ nvmem-cells = <&macaddr_uboot_1fc00>, <&calibration_art_1000>;
+ nvmem-cell-names = "mac-address", "calibration";
};
&uboot {
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts
index 9e959a276a..b7ac902003 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts
@@ -45,6 +45,18 @@
label = "art";
reg = <0xff0000 0x010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ calibration_art_1000: calibration@1000 {
+ reg = <0x1000 0x440>;
+ };
+
+ calibration_art_5000: calibration@5000 {
+ reg = <0x5000 0x844>;
+ };
};
};
@@ -59,11 +71,22 @@
nvmem-cell-names = "mac-address";
};
-&wmac {
- mtd-cal-data = <&art 0x1000>;
+&pcie1 {
+ status = "okay";
- nvmem-cells = <&macaddr_uboot_1fc00>;
- nvmem-cell-names = "mac-address";
+ wifi@0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0 0 0 0 0>;
+
+ mac-address-increment = <(-1)>;
+ nvmem-cells = <&macaddr_uboot_1fc00>, <&calibration_art_5000>;
+ nvmem-cell-names = "mac-address", "calibration";
+ };
+};
+
+&wmac {
+ nvmem-cells = <&macaddr_uboot_1fc00>, <&calibration_art_1000>;
+ nvmem-cell-names = "mac-address", "calibration";
};
&uboot {
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 7f8c1b1143..1d02da8639 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -126,7 +126,6 @@ case "$FIRMWARE" in
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) -1)
;;
tplink,archer-c5-v1|\
- tplink,archer-c7-v2|\
tplink,tl-wdr7500-v3)
caldata_extract "art" 0x5000 0x844
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary u-boot 0x1fc00) -1)