ipq40xx: utilize nvmem-cells for plasmacloud,pa1200

The calibration data and mac addresses on this device are stored in the
0:ART partition. It is therefore possible to move the code to handle them
directly to the devicetree instead of the various scripts.

But the actual relevant information about the partition layout is provided
by the bootloader via bootargs (mtdparts) and not via the devicetree
itself. Instead of using a fixed-partition template, the mtd dynamic
partitions support from the upstream kernel is used.

Reported-by: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
Sven Eckelmann 2022-10-25 09:12:16 +02:00 committed by Hauke Mehrtens
parent 364550f9d9
commit b8bda645fc
2 changed files with 31 additions and 2 deletions

View File

@ -76,7 +76,6 @@ case "$FIRMWARE" in
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
cellc,rtl30vw |\
plasmacloud,pa1200 |\
plasmacloud,pa2200)
caldata_extract "0:ART" 0x1000 0x2f20
;;
@ -171,7 +170,6 @@ case "$FIRMWARE" in
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
cellc,rtl30vw |\
plasmacloud,pa1200 |\
plasmacloud,pa2200)
caldata_extract "0:ART" 0x5000 0x2f20
;;

View File

@ -140,7 +140,32 @@
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <24000000>;
/* partitions are passed via bootloader */
partitions {
partition-art {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
label = "0:ART";
precal_art_1000: precal@1000 {
reg = <0x1000 0x2f20>;
};
precal_art_5000: precal@5000 {
reg = <0x5000 0x2f20>;
};
macaddr_gmac0: macaddr@0 {
reg = <0x0 0x6>;
};
macaddr_gmac1: macaddr@6 {
reg = <0x6 0x6>;
};
};
};
};
};
@ -161,9 +186,15 @@
&wifi0 {
status = "okay";
qcom,ath10k-calibration-variant = "PlasmaCloud-PA1200";
nvmem-cell-names = "pre-calibration";
nvmem-cells = <&precal_art_1000>;
};
&wifi1 {
status = "okay";
qcom,ath10k-calibration-variant = "PlasmaCloud-PA1200";
nvmem-cell-names = "pre-calibration";
nvmem-cells = <&precal_art_5000>;
};