apm821xx: WNDR4700: utilize ath9k nvmem-cells
authorChristian Lamparter <chunkeey@gmail.com>
Sun, 16 Jan 2022 17:42:18 +0000 (18:42 +0100)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 4 Feb 2022 20:15:17 +0000 (21:15 +0100)
the WNDR4700 can fetch its calibration data and
mac-addresses directly from the "wifi_data" partition.
This allows us to get rid of the 10-ath9k-eeprom file
for the apm821xx target completely.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom [deleted file]
target/linux/apm821xx/dts/netgear-wndr4700.dts

diff --git a/target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
deleted file mode 100644 (file)
index dcdcf4d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-[ -e /lib/firmware/$FIRMWARE ] && exit 0
-
-. /lib/functions/caldata.sh
-
-board=$(board_name)
-
-case "$FIRMWARE" in
-"ath9k-eeprom-pci-0000:43:00.0.bin")
-        case $board in
-        netgear,wndr4700)
-               . /lib/upgrade/nand.sh
-
-               if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
-                       caldata_extract_ubi "caldata" 0x1000 0x1000
-               else
-                       caldata_extract "wifi_data" 0x1000 0x1000
-                       ath9k_patch_mac $(mtd_get_mac_binary wifi_data 0x0)
-               fi
-               ;;
-       *)
-               caldata_die "board $board is not supported yet"
-               ;;
-       esac
-       ;;
-
-"ath9k-eeprom-pci-0000:44:00.0.bin")
-        case $board in
-        netgear,wndr4700)
-               . /lib/upgrade/nand.sh
-
-               if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
-                       caldata_extract_ubi "caldata" 0x5000 0x1000
-               else
-                       caldata_extract "wifi_data" 0x5000 0x1000
-                       ath9k_patch_mac $(mtd_get_mac_binary wifi_data 0xc)
-               fi
-               ;;
-       *)
-               caldata_die "board $board is not supported yet"
-               ;;
-       esac
-       ;;
-esac
index 63c96bd82a8a7d24ce4bf1fc48b3023abe05de76..12d9dc0bfd1ee263c128a7a210f2644a9b41f555 100644 (file)
                                label = "wifi_data";
                                reg = <0x07fc0000 0x00040000>;
                                read-only;
+
+                               compatible = "nvmem-cells";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               macaddr_wifi_0: macaddr@0 {
+                                       reg = <0x0 0x6>;
+                               };
+                               macaddr_wifi_c: macaddr@c {
+                                       reg = <0xc 0x6>;
+                               };
+
+                               calibration_wifi_1000: calibration@1000 {
+                                       reg = <0x1000 0x440>;
+                               };
+
+                               calibration_wifi_5000: calibration@5000 {
+                                       reg = <0x5000 0x440>;
+                               };
                        };
                };
        };
                                        compatible = "pci168c,0030";
                                        reg = <0x00430000 0 0 0 0>;
                                        interrupts = <3>; /* INTC */
-                                       qca,no-eeprom;
-                                       /* wifi CAL & MAC is stored in nvram */
+                                       nvmem-cell-names = "mac-address", "calibration";
+                                       nvmem-cells = <&macaddr_wifi_0>, <&calibration_wifi_1000>;
 
                                        /*
                                         * Because this was such a pain.
                                        compatible = "pci168c,0033";
                                        reg = <0x00440000 0 0 0 0>;
                                        interrupts = <4>; /* INTD */
-                                       qca,no-eeprom;
-                                       /* wifi CAL & MAC is stored in nvram */
+                                       nvmem-cell-names = "mac-address", "calibration";
+                                       nvmem-cells = <&macaddr_wifi_c>, <&calibration_wifi_5000>;
                                };
                        };