Use nvmem cell for ath10k precal where possible.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
- openmesh,a62 |\
- plasmacloud,pa2200)
- caldata_extract "0:ART" 0x9000 0x2f20
- ;;
linksys,ea8300 |\
linksys,mr8300)
- caldata_extract "ART" 0x9000 0x2f20
# OEM assigns 4 sequential MACs
ath10k_patch_mac $(macaddr_setbit_la $(macaddr_add "$(cat /sys/class/net/eth0/address)" 4))
;;
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
- cellc,rtl30vw |\
- openmesh,a42 |\
- openmesh,a62 |\
- plasmacloud,pa1200 |\
- plasmacloud,pa2200)
- caldata_extract "0:ART" 0x1000 0x2f20
- ;;
devolo,magic-2-wifi-next)
- caldata_extract "ART" 0x1000 0x2f20
ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0)
;;
dlink,dap-2610)
- caldata_extract "ART" 0x1000 0x2f20
ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac)
;;
engenius,emd1)
- caldata_extract "0:ART" 0x1000 0x2f20
ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr)
;;
engenius,emr3500)
- caldata_extract "0:ART" 0x1000 0x2f20
ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV ethaddr)
;;
engenius,ens620ext)
- caldata_extract "ART" 0x1000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2)
;;
linksys,ea8300 |\
linksys,mr8300)
- caldata_extract "ART" 0x1000 0x2f20
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2)
;;
meraki,mr33 |\
;;
zyxel,nbg6617 |\
zyxel,wre6606)
- caldata_extract "ART" 0x1000 0x2f20
ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
;;
esac
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
- cellc,rtl30vw |\
- openmesh,a42 |\
- openmesh,a62 |\
- plasmacloud,pa1200 |\
- plasmacloud,pa2200)
- caldata_extract "0:ART" 0x5000 0x2f20
- ;;
devolo,magic-2-wifi-next)
- caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1)
;;
dlink,dap-2610)
- caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
;;
engenius,emd1)
- caldata_extract "0:ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr) 1)
;;
engenius,emr3500)
- caldata_extract "0:ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) 1)
;;
engenius,ens620ext)
- caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 3)
;;
linksys,ea8300 |\
linksys,mr8300)
- caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
;;
meraki,mr33 |\
;;
zyxel,nbg6617 |\
zyxel,wre6606)
- caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
;;
esac
reg = <0>;
spi-max-frequency = <24000000>;
/* partitions are passed via bootloader */
+
+ partitions {
+ partition-art {
+ label = "0:ART";
+ read-only;
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
+ };
+ }
};
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A42";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A42";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
label = "ART";
reg = <0x170000 0x10000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
partition@180000 {
compatible = "wrg";
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "dlink,dap-2610";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "dlink,dap-2610";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
label = "0:ART";
reg = <0x00170000 0x00010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
partition8@180000 {
label = "userconfig";
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "EnGenius-EMD1";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "EnGenius-EMD1";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
label = "0:ART";
reg = <0x00170000 0x00010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
partition@180000 {
label = "userconfig";
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "EnGenius-EMR3500";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "EnGenius-EMR3500";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
label = "ART";
reg = <0x00180000 0x00010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
partition@190000 {
compatible = "denx,fit";
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "EnGenius-ENS620EXT";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "EnGenius-ENS620EXT";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "devolo,magic-2-wifi-next";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "devolo,magic-2-wifi-next";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
&blsp1_spi1 {
reg = <0x000f0000 0x00080000>;
read-only;
};
- partition@170000 {
+ partition-art@170000 {
label = "ART";
reg = <0x00170000 0x00010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
firmware@180000 {
compatible = "denx,fit";
label = "ART";
reg = <0x00170000 0x00010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
partition8@180000 {
label = "kernel";
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "ZyXEL-NBG6617";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "ZyXEL-NBG6617";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
&usb3_ss_phy {
reg = <0>;
spi-max-frequency = <24000000>;
/* partitions are passed via bootloader */
+
+ partitions {
+ partition-art {
+ label = "0:ART";
+ read-only;
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
+ };
+ }
};
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "PlasmaCloud-PA1200";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "PlasmaCloud-PA1200";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
label = "ART";
reg = <0x00170000 0x00010000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
partition8@180000 {
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "ZyXEL-WRE6606";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "ZyXEL-WRE6606";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
reg = <0>;
spi-max-frequency = <24000000>;
/* partitions are passed via bootloader */
+
+ partitions {
+ partition-art {
+ label = "0:ART";
+ read-only;
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
+
+ precal_art_9000: precal@9000 {
+ reg = <0x9000 0x2f20>;
+ };
+ };
+ }
};
};
reg = <0x00010000 0 0 0 0>;
qcom,ath10k-calibration-variant = "OM-A62";
ieee80211-freq-limit = <5170000 5350000>;
+
+ nvmem-cells = <&precal_art_9000>;
+ nvmem-cell-names = "pre-calibration";
};
};
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A62";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "OM-A62";
ieee80211-freq-limit = <5470000 5875000>;
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "linksys-ea8300-fcc";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
ieee80211-freq-limit = <5170000 5330000>;
qcom,ath10k-calibration-variant = "linksys-ea8300-fcc";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi2 {
status = "okay";
ieee80211-freq-limit = <5490000 5835000>;
qcom,ath10k-calibration-variant = "linksys-ea8300-fcc";
+
+ nvmem-cells = <&precal_art_9000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "linksys-mr8300-v0-fcc";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
ieee80211-freq-limit = <5170000 5330000>;
qcom,ath10k-calibration-variant = "linksys-mr8300-v0-fcc";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi2 {
status = "okay";
ieee80211-freq-limit = <5490000 5835000>;
qcom,ath10k-calibration-variant = "linksys-mr8300-v0-fcc";
+
+ nvmem-cells = <&precal_art_9000>;
+ nvmem-cell-names = "pre-calibration";
};
reg = <0>;
spi-max-frequency = <24000000>;
/* partitions are passed via bootloader */
+
+ partitions {
+ partition-art {
+ label = "0:ART";
+ read-only;
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
+
+ precal_art_9000: precal@9000 {
+ reg = <0x9000 0x2f20>;
+ };
+ };
+ }
};
};
reg = <0x00010000 0 0 0 0>;
qcom,ath10k-calibration-variant = "PlasmaCloud-PA2200";
ieee80211-freq-limit = <5170000 5350000>;
+
+ nvmem-cells = <&precal_art_9000>;
+ nvmem-cell-names = "pre-calibration";
};
};
};
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "PlasmaCloud-PA2200";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "PlasmaCloud-PA2200";
ieee80211-freq-limit = <5470000 5875000>;
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
read-only;
};
- partition@170000 {
+ partition-art@170000 {
label = "0:ART";
reg = <0x170000 0x10000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
};
partition@180000 {
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "cellc,rtl30vw";
+
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "cellc,rtl30vw";
+
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
};
label = "ART";
reg = <0x400000 0x80000>;
read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ precal_art_1000: precal@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal@5000 {
+ reg = <0x5000 0x2f20>;
+ };
+
+ precal_art_9000: precal@9000 {
+ reg = <0x9000 0x2f20>;
+ };
};
partition@480000 {