lantiq: Add support for Arcadyan VGV7510KW22 (known as o2 Box 6431)
[openwrt.git] / target / linux / lantiq / base-files / etc / hotplug.d / firmware / 10-rt2x00-eeprom
1 #!/bin/sh
2 # based on gabors ralink wisoc implementation
3
4 rt2x00_eeprom_die() {
5         echo "rt2x00 eeprom: " "$*"
6         exit 1
7 }
8
9 rt2x00_eeprom_extract() {
10         local part=$1
11         local offset=$2
12         local count=$3
13         local swab=$4
14         local mtd
15
16         . /lib/functions.sh
17
18         mtd=$(find_mtd_part $part)
19         [ -n "$mtd" ] || \
20                 rt2x00_eeprom_die "no mtd device found for partition $part"
21
22         if [ $swab -gt 0 ]; then
23                 dd if=$mtd of=/lib/firmware/$FIRMWARE bs=2 skip=$offset count=$count conv=swab || \
24                         rt2x00_eeprom_die "failed to extract from $mtd"
25         else
26                 dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
27                         rt2x00_eeprom_die "failed to extract from $mtd"
28         fi
29 }
30
31 [ -e /lib/firmware/$FIRMWARE ] && exit 0
32 . /lib/functions/lantiq.sh
33
34 case "$FIRMWARE" in
35 "RT2860.eeprom" )
36         local board=$(lantiq_board_name)
37         case $board in
38         ARV7510PW22|ARV7519PW|ARV752DPW|ARV752DPW22|VGV7519)
39                 rt2x00_eeprom_extract "board_config" 520 256 1
40                 ;;
41         ARV7525PW)
42                 rt2x00_eeprom_extract "board_config" 1040 512 0
43                 ;;
44         *)
45                 rt2x00_eeprom_die "board $board is not supported yet"
46                 ;;
47         esac
48         ;;
49 "RT3062.eeprom" )
50         local board=$(lantiq_board_name)
51         case $board in
52         VGV7510KW22)
53                 rt2x00_eeprom_extract "board_config" 520 256 1
54                 ;;
55         *)
56                 rt2x00_eeprom_die "board $board is not supported yet"
57                 ;;
58         esac
59         ;;
60 esac