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
2 changed files with 23 additions and 49 deletions
|
@ -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";
|
label = "wifi_data";
|
||||||
reg = <0x07fc0000 0x00040000>;
|
reg = <0x07fc0000 0x00040000>;
|
||||||
read-only;
|
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";
|
compatible = "pci168c,0030";
|
||||||
reg = <0x00430000 0 0 0 0>;
|
reg = <0x00430000 0 0 0 0>;
|
||||||
interrupts = <3>; /* INTC */
|
interrupts = <3>; /* INTC */
|
||||||
qca,no-eeprom;
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
/* wifi CAL & MAC is stored in nvram */
|
nvmem-cells = <&macaddr_wifi_0>, <&calibration_wifi_1000>;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Because this was such a pain.
|
* Because this was such a pain.
|
||||||
|
@ -480,8 +499,8 @@
|
||||||
compatible = "pci168c,0033";
|
compatible = "pci168c,0033";
|
||||||
reg = <0x00440000 0 0 0 0>;
|
reg = <0x00440000 0 0 0 0>;
|
||||||
interrupts = <4>; /* INTD */
|
interrupts = <4>; /* INTD */
|
||||||
qca,no-eeprom;
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
/* wifi CAL & MAC is stored in nvram */
|
nvmem-cells = <&macaddr_wifi_c>, <&calibration_wifi_5000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue