mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-06 19:19:31 +00:00
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>
This commit is contained in:
parent
f095822699
commit
a1693a8c2c
@ -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
|
@ -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>;
|
||||
};
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user