ath79: utilize nvmem on Netgear EX7300 v2

mtd-mac-address should no longer be used after commit 5ae2e786395c
("kernel: drop support for mtd-mac-address"). Convert it to nvmem-cells.

While at it, also convert OpenWrt's custom mtd-cal-data property and
userspace pre-calibration data extraction to the nvmem implementation.

Note: nvmem-cells in QCN5502 wmac has not been tested.

Fixes: c32008a37b81 ("ath79: add partial support for Netgear EX7300v2")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
This commit is contained in:
Sungbo Eo 2022-02-09 01:32:47 +09:00
parent b0d5939b80
commit 3e3e78de11
2 changed files with 47 additions and 15 deletions

View File

@ -114,6 +114,14 @@
&pcie { &pcie {
status = "okay"; status = "okay";
wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0 0 0 0 0>;
nvmem-cells = <&macaddr_artmtd_c>, <&precal_art_5000>;
nvmem-cell-names = "mac-address", "pre-calibration";
};
}; };
&pll { &pll {
@ -133,7 +141,7 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
uboot: partition@0 { partition@0 {
label = "u-boot"; label = "u-boot";
reg = <0x000000 0x040000>; reg = <0x000000 0x040000>;
read-only; read-only;
@ -174,29 +182,56 @@
read-only; read-only;
}; };
artmtd: partition@fe0000 { partition@fe0000 {
label = "artmtd"; label = "artmtd";
reg = <0xfe0000 0x10000>; reg = <0xfe0000 0x10000>;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_artmtd_0: macaddr@0 {
reg = <0x0 0x6>;
}; };
art: partition@ff0000 { macaddr_artmtd_6: macaddr@6 {
reg = <0x6 0x6>;
};
macaddr_artmtd_c: macaddr@c {
reg = <0xc 0x6>;
};
};
partition@ff0000 {
label = "art"; label = "art";
reg = <0xff0000 0x10000>; reg = <0xff0000 0x10000>;
read-only; read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
cal_art_1000: cal@1000 {
reg = <0x1000 0x440>;
};
precal_art_5000: precal@5000 {
reg = <0x5000 0x2f20>;
};
}; };
}; };
}; };
}; };
/*
Does not work due to lack of QCN5502 support in ath9k.
&wmac { &wmac {
status = "okay"; /* Does not work due to lack of QCN5502 support in ath9k. */
status = "disabled";
mtd-cal-data = <&art 0x1000>; nvmem-cells = <&macaddr_artmtd_6>, <&cal_art_1000>;
mtd-mac-address = <&artmtd 0x6>; nvmem-cell-names = "mac-address", "calibration";
}; };
*/
&mdio0 { &mdio0 {
status = "okay"; status = "okay";
@ -210,7 +245,8 @@ Does not work due to lack of QCN5502 support in ath9k.
&eth0 { &eth0 {
status = "okay"; status = "okay";
mtd-mac-address = <&artmtd 0x0>; nvmem-cells = <&macaddr_artmtd_0>;
nvmem-cell-names = "mac-address";
phy-handle = <&phy5>; phy-handle = <&phy5>;
phy-mode = "sgmii"; phy-mode = "sgmii";

View File

@ -219,10 +219,6 @@ case "$FIRMWARE" in
caldata_extract "caldata" 0x5000 0x2f20 caldata_extract "caldata" 0x5000 0x2f20
ath10k_patch_mac $(mtd_get_mac_binary caldata 0xc) ath10k_patch_mac $(mtd_get_mac_binary caldata 0xc)
;; ;;
netgear,ex7300-v2)
caldata_extract "art" 0x5000 0x2f20
ath10k_patch_mac $(mtd_get_mac_binary artmtd 0xc)
;;
phicomm,k2t) phicomm,k2t)
caldata_extract "art" 0x5000 0x2f20 caldata_extract "art" 0x5000 0x2f20
ath10k_patch_mac $(k2t_get_mac "5g_mac") ath10k_patch_mac $(k2t_get_mac "5g_mac")