aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/apm821xx
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@gmail.com>2022-01-16 18:42:18 +0100
committerChristian Lamparter <chunkeey@gmail.com>2022-02-04 21:15:17 +0100
commita1693a8c2cdc74a5bf33cabaadc2174f2f088dbf (patch)
tree4c3649acad51368a35d381b1fdec513081d2106c /target/linux/apm821xx
parentf095822699cc397f86d2c24616aaaa7f814dc8d9 (diff)
downloadupstream-a1693a8c2cdc74a5bf33cabaadc2174f2f088dbf.tar.gz
upstream-a1693a8c2cdc74a5bf33cabaadc2174f2f088dbf.tar.bz2
upstream-a1693a8c2cdc74a5bf33cabaadc2174f2f088dbf.zip
apm821xx: WNDR4700: utilize ath9k nvmem-cells
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>
Diffstat (limited to 'target/linux/apm821xx')
-rw-r--r--target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom45
-rw-r--r--target/linux/apm821xx/dts/netgear-wndr4700.dts27
2 files changed, 23 insertions, 49 deletions
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
index dcdcf4dc45..0000000000
--- a/target/linux/apm821xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ /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
diff --git a/target/linux/apm821xx/dts/netgear-wndr4700.dts b/target/linux/apm821xx/dts/netgear-wndr4700.dts
index 63c96bd82a..12d9dc0bfd 100644
--- a/target/linux/apm821xx/dts/netgear-wndr4700.dts
+++ b/target/linux/apm821xx/dts/netgear-wndr4700.dts
@@ -247,6 +247,25 @@
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>;
+ };
};
};
};
@@ -457,8 +476,8 @@
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.
@@ -480,8 +499,8 @@
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>;
};
};