diff options
author | Christian Lamparter <chunkeey@gmail.com> | 2022-01-16 18:42:18 +0100 |
---|---|---|
committer | Christian Lamparter <chunkeey@gmail.com> | 2022-02-04 21:15:17 +0100 |
commit | a1693a8c2cdc74a5bf33cabaadc2174f2f088dbf (patch) | |
tree | 4c3649acad51368a35d381b1fdec513081d2106c /target/linux/apm821xx | |
parent | f095822699cc397f86d2c24616aaaa7f814dc8d9 (diff) | |
download | upstream-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-eeprom | 45 | ||||
-rw-r--r-- | target/linux/apm821xx/dts/netgear-wndr4700.dts | 27 |
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>; }; }; |