diff options
author | Christian Lamparter <chunkeey@gmail.com> | 2021-10-16 21:28:52 +0200 |
---|---|---|
committer | Christian Lamparter <chunkeey@gmail.com> | 2021-11-28 01:13:08 +0100 |
commit | 297bceeecf29e9bfedba0b26c9d0a2cefeda2add (patch) | |
tree | f28b2e6e8f8ab504999aed8d7b1d4acc391b0b5d | |
parent | 49d400191dae027a89909680e372f1934a1e1766 (diff) | |
download | upstream-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>
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) |