Upgrade b43 and mac80211.
[openwrt/staging/lynxis/omap.git] / package / b43 / src / tables_nphy.c
1 /*
2
3 Broadcom B43 wireless driver
4 IEEE 802.11n PHY and radio device data tables
5
6 Copyright (c) 2008 Michael Buesch <mb@bu3sch.de>
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; see the file COPYING. If not, write to
20 the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
21 Boston, MA 02110-1301, USA.
22
23 */
24
25 #include "b43.h"
26 #include "tables_nphy.h"
27 #include "phy.h"
28 #include "nphy.h"
29
30
31 struct b2055_inittab_entry {
32 /* Value to write if we use the 5GHz band. */
33 u16 ghz5;
34 /* Value to write if we use the 2.4GHz band. */
35 u16 ghz2;
36 /* Flags */
37 u8 flags;
38 #define B2055_INITTAB_ENTRY_OK 0x01
39 #define B2055_INITTAB_UPLOAD 0x02
40 };
41 #define UPLOAD .flags = B2055_INITTAB_ENTRY_OK | B2055_INITTAB_UPLOAD
42 #define NOUPLOAD .flags = B2055_INITTAB_ENTRY_OK
43
44 static const struct b2055_inittab_entry b2055_inittab [] = {
45 [B2055_SP_PINPD] = { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
46 [B2055_C1_SP_RSSI] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
47 [B2055_C1_SP_PDMISC] = { .ghz5 = 0x0027, .ghz2 = 0x0027, NOUPLOAD, },
48 [B2055_C2_SP_RSSI] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
49 [B2055_C2_SP_PDMISC] = { .ghz5 = 0x0027, .ghz2 = 0x0027, NOUPLOAD, },
50 [B2055_C1_SP_RXGC1] = { .ghz5 = 0x007F, .ghz2 = 0x007F, UPLOAD, },
51 [B2055_C1_SP_RXGC2] = { .ghz5 = 0x0007, .ghz2 = 0x0007, UPLOAD, },
52 [B2055_C2_SP_RXGC1] = { .ghz5 = 0x007F, .ghz2 = 0x007F, UPLOAD, },
53 [B2055_C2_SP_RXGC2] = { .ghz5 = 0x0007, .ghz2 = 0x0007, UPLOAD, },
54 [B2055_C1_SP_LPFBWSEL] = { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
55 [B2055_C2_SP_LPFBWSEL] = { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
56 [B2055_C1_SP_TXGC1] = { .ghz5 = 0x004F, .ghz2 = 0x004F, UPLOAD, },
57 [B2055_C1_SP_TXGC2] = { .ghz5 = 0x0005, .ghz2 = 0x0005, UPLOAD, },
58 [B2055_C2_SP_TXGC1] = { .ghz5 = 0x004F, .ghz2 = 0x004F, UPLOAD, },
59 [B2055_C2_SP_TXGC2] = { .ghz5 = 0x0005, .ghz2 = 0x0005, UPLOAD, },
60 [B2055_MASTER1] = { .ghz5 = 0x00D0, .ghz2 = 0x00D0, NOUPLOAD, },
61 [B2055_MASTER2] = { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
62 [B2055_PD_LGEN] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
63 [B2055_PD_PLLTS] = { .ghz5 = 0x0040, .ghz2 = 0x0040, NOUPLOAD, },
64 [B2055_C1_PD_LGBUF] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
65 [B2055_C1_PD_TX] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
66 [B2055_C1_PD_RXTX] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
67 [B2055_C1_PD_RSSIMISC] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
68 [B2055_C2_PD_LGBUF] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
69 [B2055_C2_PD_TX] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
70 [B2055_C2_PD_RXTX] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
71 [B2055_C2_PD_RSSIMISC] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
72 [B2055_PWRDET_LGEN] = { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
73 [B2055_C1_PWRDET_LGBUF] = { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
74 [B2055_C1_PWRDET_RXTX] = { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
75 [B2055_C2_PWRDET_LGBUF] = { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
76 [B2055_C2_PWRDET_RXTX] = { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
77 [B2055_RRCCAL_CS] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
78 [B2055_RRCCAL_NOPTSEL] = { .ghz5 = 0x002C, .ghz2 = 0x002C, NOUPLOAD, },
79 [B2055_CAL_MISC] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
80 [B2055_CAL_COUT] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
81 [B2055_CAL_COUT2] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
82 [B2055_CAL_CVARCTL] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
83 [B2055_CAL_RVARCTL] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
84 [B2055_CAL_LPOCTL] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
85 [B2055_CAL_TS] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
86 [B2055_CAL_RCCALRTS] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
87 [B2055_CAL_RCALRTS] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
88 [B2055_PADDRV] = { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
89 [B2055_XOCTL1] = { .ghz5 = 0x0038, .ghz2 = 0x0038, NOUPLOAD, },
90 [B2055_XOCTL2] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
91 [B2055_XOREGUL] = { .ghz5 = 0x0004, .ghz2 = 0x0004, UPLOAD, },
92 [B2055_XOMISC] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
93 [B2055_PLL_LFC1] = { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
94 [B2055_PLL_CALVTH] = { .ghz5 = 0x0087, .ghz2 = 0x0087, NOUPLOAD, },
95 [B2055_PLL_LFC2] = { .ghz5 = 0x0009, .ghz2 = 0x0009, NOUPLOAD, },
96 [B2055_PLL_REF] = { .ghz5 = 0x0070, .ghz2 = 0x0070, NOUPLOAD, },
97 [B2055_PLL_LFR1] = { .ghz5 = 0x0011, .ghz2 = 0x0011, NOUPLOAD, },
98 [B2055_PLL_PFDCP] = { .ghz5 = 0x0018, .ghz2 = 0x0018, UPLOAD, },
99 [B2055_PLL_IDAC_CPOPAMP] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
100 [B2055_PLL_CPREG] = { .ghz5 = 0x0004, .ghz2 = 0x0004, UPLOAD, },
101 [B2055_PLL_RCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
102 [B2055_RF_PLLMOD0] = { .ghz5 = 0x009E, .ghz2 = 0x009E, NOUPLOAD, },
103 [B2055_RF_PLLMOD1] = { .ghz5 = 0x0009, .ghz2 = 0x0009, NOUPLOAD, },
104 [B2055_RF_MMDIDAC1] = { .ghz5 = 0x00C8, .ghz2 = 0x00C8, UPLOAD, },
105 [B2055_RF_MMDIDAC0] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
106 [B2055_RF_MMDSP] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
107 [B2055_VCO_CAL1] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
108 [B2055_VCO_CAL2] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
109 [B2055_VCO_CAL3] = { .ghz5 = 0x0001, .ghz2 = 0x0001, NOUPLOAD, },
110 [B2055_VCO_CAL4] = { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
111 [B2055_VCO_CAL5] = { .ghz5 = 0x0096, .ghz2 = 0x0096, NOUPLOAD, },
112 [B2055_VCO_CAL6] = { .ghz5 = 0x003E, .ghz2 = 0x003E, NOUPLOAD, },
113 [B2055_VCO_CAL7] = { .ghz5 = 0x003E, .ghz2 = 0x003E, NOUPLOAD, },
114 [B2055_VCO_CAL8] = { .ghz5 = 0x0013, .ghz2 = 0x0013, NOUPLOAD, },
115 [B2055_VCO_CAL9] = { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
116 [B2055_VCO_CAL10] = { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
117 [B2055_VCO_CAL11] = { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
118 [B2055_VCO_CAL12] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
119 [B2055_VCO_CAL13] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
120 [B2055_VCO_CAL14] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
121 [B2055_VCO_CAL15] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
122 [B2055_VCO_CAL16] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
123 [B2055_VCO_KVCO] = { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
124 [B2055_VCO_CAPTAIL] = { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
125 [B2055_VCO_IDACVCO] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
126 [B2055_VCO_REG] = { .ghz5 = 0x0084, .ghz2 = 0x0084, UPLOAD, },
127 [B2055_PLL_RFVTH] = { .ghz5 = 0x00C3, .ghz2 = 0x00C3, NOUPLOAD, },
128 [B2055_LGBUF_CENBUF] = { .ghz5 = 0x008F, .ghz2 = 0x008F, NOUPLOAD, },
129 [B2055_LGEN_TUNE1] = { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
130 [B2055_LGEN_TUNE2] = { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
131 [B2055_LGEN_IDAC1] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
132 [B2055_LGEN_IDAC2] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
133 [B2055_LGEN_BIASC] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
134 [B2055_LGEN_BIASIDAC] = { .ghz5 = 0x00CC, .ghz2 = 0x00CC, NOUPLOAD, },
135 [B2055_LGEN_RCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
136 [B2055_LGEN_DIV] = { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
137 [B2055_LGEN_SPARE2] = { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
138 [B2055_C1_LGBUF_ATUNE] = { .ghz5 = 0x00F8, .ghz2 = 0x00F8, NOUPLOAD, },
139 [B2055_C1_LGBUF_GTUNE] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
140 [B2055_C1_LGBUF_DIV] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
141 [B2055_C1_LGBUF_AIDAC] = { .ghz5 = 0x0088, .ghz2 = 0x0008, UPLOAD, },
142 [B2055_C1_LGBUF_GIDAC] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
143 [B2055_C1_LGBUF_IDACFO] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
144 [B2055_C1_LGBUF_SPARE] = { .ghz5 = 0x0001, .ghz2 = 0x0001, UPLOAD, },
145 [B2055_C1_RX_RFSPC1] = { .ghz5 = 0x008A, .ghz2 = 0x008A, NOUPLOAD, },
146 [B2055_C1_RX_RFR1] = { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
147 [B2055_C1_RX_RFR2] = { .ghz5 = 0x0083, .ghz2 = 0x0083, NOUPLOAD, },
148 [B2055_C1_RX_RFRCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
149 [B2055_C1_RX_BB_BLCMP] = { .ghz5 = 0x00A0, .ghz2 = 0x00A0, NOUPLOAD, },
150 [B2055_C1_RX_BB_LPF] = { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
151 [B2055_C1_RX_BB_MIDACHP] = { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
152 [B2055_C1_RX_BB_VGA1IDAC] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
153 [B2055_C1_RX_BB_VGA2IDAC] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
154 [B2055_C1_RX_BB_VGA3IDAC] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
155 [B2055_C1_RX_BB_BUFOCTL] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
156 [B2055_C1_RX_BB_RCCALCTL] = { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
157 [B2055_C1_RX_BB_RSSICTL1] = { .ghz5 = 0x006A, .ghz2 = 0x006A, UPLOAD, },
158 [B2055_C1_RX_BB_RSSICTL2] = { .ghz5 = 0x00AB, .ghz2 = 0x00AB, UPLOAD, },
159 [B2055_C1_RX_BB_RSSICTL3] = { .ghz5 = 0x0013, .ghz2 = 0x0013, UPLOAD, },
160 [B2055_C1_RX_BB_RSSICTL4] = { .ghz5 = 0x00C1, .ghz2 = 0x00C1, UPLOAD, },
161 [B2055_C1_RX_BB_RSSICTL5] = { .ghz5 = 0x00AA, .ghz2 = 0x00AA, UPLOAD, },
162 [B2055_C1_RX_BB_REG] = { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
163 [B2055_C1_RX_BB_SPARE1] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
164 [B2055_C1_RX_TXBBRCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
165 [B2055_C1_TX_RF_SPGA] = { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
166 [B2055_C1_TX_RF_SPAD] = { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
167 [B2055_C1_TX_RF_CNTPGA1] = { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
168 [B2055_C1_TX_RF_CNTPAD1] = { .ghz5 = 0x0055, .ghz2 = 0x0055, NOUPLOAD, },
169 [B2055_C1_TX_RF_PGAIDAC] = { .ghz5 = 0x0097, .ghz2 = 0x0097, UPLOAD, },
170 [B2055_C1_TX_PGAPADTN] = { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
171 [B2055_C1_TX_PADIDAC1] = { .ghz5 = 0x0014, .ghz2 = 0x0014, UPLOAD, },
172 [B2055_C1_TX_PADIDAC2] = { .ghz5 = 0x0033, .ghz2 = 0x0033, NOUPLOAD, },
173 [B2055_C1_TX_MXBGTRIM] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
174 [B2055_C1_TX_RF_RCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
175 [B2055_C1_TX_RF_PADTSSI1] = { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
176 [B2055_C1_TX_RF_PADTSSI2] = { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
177 [B2055_C1_TX_RF_SPARE] = { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
178 [B2055_C1_TX_RF_IQCAL1] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
179 [B2055_C1_TX_RF_IQCAL2] = { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
180 [B2055_C1_TXBB_RCCAL] = { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
181 [B2055_C1_TXBB_LPF1] = { .ghz5 = 0x0028, .ghz2 = 0x0028, NOUPLOAD, },
182 [B2055_C1_TX_VOSCNCL] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
183 [B2055_C1_TX_LPF_MXGMIDAC] = { .ghz5 = 0x004A, .ghz2 = 0x004A, NOUPLOAD, },
184 [B2055_C1_TX_BB_MXGM] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
185 [B2055_C2_LGBUF_ATUNE] = { .ghz5 = 0x00F8, .ghz2 = 0x00F8, NOUPLOAD, },
186 [B2055_C2_LGBUF_GTUNE] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
187 [B2055_C2_LGBUF_DIV] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
188 [B2055_C2_LGBUF_AIDAC] = { .ghz5 = 0x0088, .ghz2 = 0x0008, UPLOAD, },
189 [B2055_C2_LGBUF_GIDAC] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
190 [B2055_C2_LGBUF_IDACFO] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
191 [B2055_C2_LGBUF_SPARE] = { .ghz5 = 0x0001, .ghz2 = 0x0001, UPLOAD, },
192 [B2055_C2_RX_RFSPC1] = { .ghz5 = 0x008A, .ghz2 = 0x008A, NOUPLOAD, },
193 [B2055_C2_RX_RFR1] = { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
194 [B2055_C2_RX_RFR2] = { .ghz5 = 0x0083, .ghz2 = 0x0083, NOUPLOAD, },
195 [B2055_C2_RX_RFRCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
196 [B2055_C2_RX_BB_BLCMP] = { .ghz5 = 0x00A0, .ghz2 = 0x00A0, NOUPLOAD, },
197 [B2055_C2_RX_BB_LPF] = { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
198 [B2055_C2_RX_BB_MIDACHP] = { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
199 [B2055_C2_RX_BB_VGA1IDAC] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
200 [B2055_C2_RX_BB_VGA2IDAC] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
201 [B2055_C2_RX_BB_VGA3IDAC] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
202 [B2055_C2_RX_BB_BUFOCTL] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
203 [B2055_C2_RX_BB_RCCALCTL] = { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
204 [B2055_C2_RX_BB_RSSICTL1] = { .ghz5 = 0x006A, .ghz2 = 0x006A, UPLOAD, },
205 [B2055_C2_RX_BB_RSSICTL2] = { .ghz5 = 0x00AB, .ghz2 = 0x00AB, UPLOAD, },
206 [B2055_C2_RX_BB_RSSICTL3] = { .ghz5 = 0x0013, .ghz2 = 0x0013, UPLOAD, },
207 [B2055_C2_RX_BB_RSSICTL4] = { .ghz5 = 0x00C1, .ghz2 = 0x00C1, UPLOAD, },
208 [B2055_C2_RX_BB_RSSICTL5] = { .ghz5 = 0x00AA, .ghz2 = 0x00AA, UPLOAD, },
209 [B2055_C2_RX_BB_REG] = { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
210 [B2055_C2_RX_BB_SPARE1] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
211 [B2055_C2_RX_TXBBRCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
212 [B2055_C2_TX_RF_SPGA] = { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
213 [B2055_C2_TX_RF_SPAD] = { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
214 [B2055_C2_TX_RF_CNTPGA1] = { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
215 [B2055_C2_TX_RF_CNTPAD1] = { .ghz5 = 0x0055, .ghz2 = 0x0055, NOUPLOAD, },
216 [B2055_C2_TX_RF_PGAIDAC] = { .ghz5 = 0x0097, .ghz2 = 0x0097, UPLOAD, },
217 [B2055_C2_TX_PGAPADTN] = { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
218 [B2055_C2_TX_PADIDAC1] = { .ghz5 = 0x0014, .ghz2 = 0x0014, UPLOAD, },
219 [B2055_C2_TX_PADIDAC2] = { .ghz5 = 0x0033, .ghz2 = 0x0033, NOUPLOAD, },
220 [B2055_C2_TX_MXBGTRIM] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
221 [B2055_C2_TX_RF_RCAL] = { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
222 [B2055_C2_TX_RF_PADTSSI1] = { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
223 [B2055_C2_TX_RF_PADTSSI2] = { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
224 [B2055_C2_TX_RF_SPARE] = { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
225 [B2055_C2_TX_RF_IQCAL1] = { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
226 [B2055_C2_TX_RF_IQCAL2] = { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
227 [B2055_C2_TXBB_RCCAL] = { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
228 [B2055_C2_TXBB_LPF1] = { .ghz5 = 0x0028, .ghz2 = 0x0028, NOUPLOAD, },
229 [B2055_C2_TX_VOSCNCL] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
230 [B2055_C2_TX_LPF_MXGMIDAC] = { .ghz5 = 0x004A, .ghz2 = 0x004A, NOUPLOAD, },
231 [B2055_C2_TX_BB_MXGM] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
232 [B2055_PRG_GCHP21] = { .ghz5 = 0x0071, .ghz2 = 0x0071, NOUPLOAD, },
233 [B2055_PRG_GCHP22] = { .ghz5 = 0x0072, .ghz2 = 0x0072, NOUPLOAD, },
234 [B2055_PRG_GCHP23] = { .ghz5 = 0x0073, .ghz2 = 0x0073, NOUPLOAD, },
235 [B2055_PRG_GCHP24] = { .ghz5 = 0x0074, .ghz2 = 0x0074, NOUPLOAD, },
236 [B2055_PRG_GCHP25] = { .ghz5 = 0x0075, .ghz2 = 0x0075, NOUPLOAD, },
237 [B2055_PRG_GCHP26] = { .ghz5 = 0x0076, .ghz2 = 0x0076, NOUPLOAD, },
238 [B2055_PRG_GCHP27] = { .ghz5 = 0x0077, .ghz2 = 0x0077, NOUPLOAD, },
239 [B2055_PRG_GCHP28] = { .ghz5 = 0x0078, .ghz2 = 0x0078, NOUPLOAD, },
240 [B2055_PRG_GCHP29] = { .ghz5 = 0x0079, .ghz2 = 0x0079, NOUPLOAD, },
241 [B2055_PRG_GCHP30] = { .ghz5 = 0x007A, .ghz2 = 0x007A, NOUPLOAD, },
242 [0xC7] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
243 [0xC8] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
244 [0xC9] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
245 [0xCA] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
246 [0xCB] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
247 [0xCC] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
248 [B2055_C1_LNA_GAINBST] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
249 [0xCE] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
250 [0xCF] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
251 [0xD0] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
252 [0xD1] = { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
253 [B2055_C1_B0NB_RSSIVCM] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
254 [0xD3] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
255 [0xD4] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
256 [0xD5] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
257 [B2055_C1_GENSPARE2] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
258 [0xD7] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
259 [0xD8] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
260 [B2055_C2_LNA_GAINBST] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
261 [0xDA] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
262 [0xDB] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
263 [0xDC] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
264 [0xDD] = { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
265 [B2055_C2_B0NB_RSSIVCM] = { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
266 [0xDF] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
267 [0xE0] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
268 [0xE1] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
269 [B2055_C2_GENSPARE2] = { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
270 };
271
272
273 void b2055_upload_inittab(struct b43_wldev *dev,
274 bool ghz5, bool ignore_uploadflag)
275 {
276 const struct b2055_inittab_entry *e;
277 unsigned int i;
278 u16 value;
279
280 for (i = 0; i < ARRAY_SIZE(b2055_inittab); i++) {
281 e = &(b2055_inittab[i]);
282 if (!(e->flags & B2055_INITTAB_ENTRY_OK))
283 continue;
284 if ((e->flags & B2055_INITTAB_UPLOAD) || ignore_uploadflag) {
285 if (ghz5)
286 value = e->ghz5;
287 else
288 value = e->ghz2;
289 b43_radio_write16(dev, i, value);
290 }
291 }
292 }
293
294
295 #define RADIOREGS(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, \
296 r12, r13, r14, r15, r16, r17, r18, r19, r20, r21) \
297 .radio_pll_ref = r0, \
298 .radio_rf_pllmod0 = r1, \
299 .radio_rf_pllmod1 = r2, \
300 .radio_vco_captail = r3, \
301 .radio_vco_cal1 = r4, \
302 .radio_vco_cal2 = r5, \
303 .radio_pll_lfc1 = r6, \
304 .radio_pll_lfr1 = r7, \
305 .radio_pll_lfc2 = r8, \
306 .radio_lgbuf_cenbuf = r9, \
307 .radio_lgen_tune1 = r10, \
308 .radio_lgen_tune2 = r11, \
309 .radio_c1_lgbuf_atune = r12, \
310 .radio_c1_lgbuf_gtune = r13, \
311 .radio_c1_rx_rfr1 = r14, \
312 .radio_c1_tx_pgapadtn = r15, \
313 .radio_c1_tx_mxbgtrim = r16, \
314 .radio_c2_lgbuf_atune = r17, \
315 .radio_c2_lgbuf_gtune = r18, \
316 .radio_c2_rx_rfr1 = r19, \
317 .radio_c2_tx_pgapadtn = r20, \
318 .radio_c2_tx_mxbgtrim = r21
319
320 #define PHYREGS(r0, r1, r2, r3, r4, r5) \
321 .phy_bw1a = r0, \
322 .phy_bw2 = r1, \
323 .phy_bw3 = r2, \
324 .phy_bw4 = r3, \
325 .phy_bw5 = r4, \
326 .phy_bw6 = r5
327
328 static const struct b43_nphy_channeltab_entry b43_nphy_channeltab[] = {
329 { .channel = 184,
330 .freq = 4920, /* MHz */
331 .unk2 = 3280,
332 RADIOREGS(0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
333 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F,
334 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
335 PHYREGS(0xB407, 0xB007, 0xAC07, 0x1402, 0x1502, 0x1602),
336 },
337 { .channel = 186,
338 .freq = 4930, /* MHz */
339 .unk2 = 3287,
340 RADIOREGS(0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
341 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F,
342 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
343 PHYREGS(0xB807, 0xB407, 0xB007, 0x1302, 0x1402, 0x1502),
344 },
345 { .channel = 188,
346 .freq = 4940, /* MHz */
347 .unk2 = 3293,
348 RADIOREGS(0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
349 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
350 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
351 PHYREGS(0xBC07, 0xB807, 0xB407, 0x1202, 0x1302, 0x1402),
352 },
353 { .channel = 190,
354 .freq = 4950, /* MHz */
355 .unk2 = 3300,
356 RADIOREGS(0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
357 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
358 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
359 PHYREGS(0xC007, 0xBC07, 0xB807, 0x1102, 0x1202, 0x1302),
360 },
361 { .channel = 192,
362 .freq = 4960, /* MHz */
363 .unk2 = 3307,
364 RADIOREGS(0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
365 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
366 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
367 PHYREGS(0xC407, 0xC007, 0xBC07, 0x0F02, 0x1102, 0x1202),
368 },
369 { .channel = 194,
370 .freq = 4970, /* MHz */
371 .unk2 = 3313,
372 RADIOREGS(0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
373 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
374 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
375 PHYREGS(0xC807, 0xC407, 0xC007, 0x0E02, 0x0F02, 0x1102),
376 },
377 { .channel = 196,
378 .freq = 4980, /* MHz */
379 .unk2 = 3320,
380 RADIOREGS(0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
381 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
382 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
383 PHYREGS(0xCC07, 0xC807, 0xC407, 0x0D02, 0x0E02, 0x0F02),
384 },
385 { .channel = 198,
386 .freq = 4990, /* MHz */
387 .unk2 = 3327,
388 RADIOREGS(0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
389 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
390 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
391 PHYREGS(0xD007, 0xCC07, 0xC807, 0x0C02, 0x0D02, 0x0E02),
392 },
393 { .channel = 200,
394 .freq = 5000, /* MHz */
395 .unk2 = 3333,
396 RADIOREGS(0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
397 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
398 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
399 PHYREGS(0xD407, 0xD007, 0xCC07, 0x0B02, 0x0C02, 0x0D02),
400 },
401 { .channel = 202,
402 .freq = 5010, /* MHz */
403 .unk2 = 3340,
404 RADIOREGS(0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
405 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
406 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
407 PHYREGS(0xD807, 0xD407, 0xD007, 0x0A02, 0x0B02, 0x0C02),
408 },
409 { .channel = 204,
410 .freq = 5020, /* MHz */
411 .unk2 = 3347,
412 RADIOREGS(0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
413 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
414 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
415 PHYREGS(0xDC07, 0xD807, 0xD407, 0x0902, 0x0A02, 0x0B02),
416 },
417 { .channel = 206,
418 .freq = 5030, /* MHz */
419 .unk2 = 3353,
420 RADIOREGS(0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
421 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
422 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
423 PHYREGS(0xE007, 0xDC07, 0xD807, 0x0802, 0x0902, 0x0A02),
424 },
425 { .channel = 208,
426 .freq = 5040, /* MHz */
427 .unk2 = 3360,
428 RADIOREGS(0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
429 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
430 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
431 PHYREGS(0xE407, 0xE007, 0xDC07, 0x0702, 0x0802, 0x0902),
432 },
433 { .channel = 210,
434 .freq = 5050, /* MHz */
435 .unk2 = 3367,
436 RADIOREGS(0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
437 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
438 0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
439 PHYREGS(0xE807, 0xE407, 0xE007, 0x0602, 0x0702, 0x0802),
440 },
441 { .channel = 212,
442 .freq = 5060, /* MHz */
443 .unk2 = 3373,
444 RADIOREGS(0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
445 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F,
446 0x8E, 0xFF, 0x00, 0x0E, 0x0F, 0x8E),
447 PHYREGS(0xEC07, 0xE807, 0xE407, 0x0502, 0x0602, 0x0702),
448 },
449 { .channel = 214,
450 .freq = 5070, /* MHz */
451 .unk2 = 3380,
452 RADIOREGS(0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
453 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F,
454 0x8E, 0xFF, 0x00, 0x0E, 0x0F, 0x8E),
455 PHYREGS(0xF007, 0xEC07, 0xE807, 0x0402, 0x0502, 0x0602),
456 },
457 { .channel = 216,
458 .freq = 5080, /* MHz */
459 .unk2 = 3387,
460 RADIOREGS(0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
461 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F,
462 0x8D, 0xEE, 0x00, 0x0E, 0x0F, 0x8D),
463 PHYREGS(0xF407, 0xF007, 0xEC07, 0x0302, 0x0402, 0x0502),
464 },
465 { .channel = 218,
466 .freq = 5090, /* MHz */
467 .unk2 = 3393,
468 RADIOREGS(0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
469 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F,
470 0x8D, 0xEE, 0x00, 0x0E, 0x0F, 0x8D),
471 PHYREGS(0xF807, 0xF407, 0xF007, 0x0202, 0x0302, 0x0402),
472 },
473 { .channel = 220,
474 .freq = 5100, /* MHz */
475 .unk2 = 3400,
476 RADIOREGS(0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
477 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F,
478 0x8D, 0xEE, 0x00, 0x0D, 0x0F, 0x8D),
479 PHYREGS(0xFC07, 0xF807, 0xF407, 0x0102, 0x0202, 0x0302),
480 },
481 { .channel = 222,
482 .freq = 5110, /* MHz */
483 .unk2 = 3407,
484 RADIOREGS(0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
485 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F,
486 0x8D, 0xEE, 0x00, 0x0D, 0x0F, 0x8D),
487 PHYREGS(0x0008, 0xFC07, 0xF807, 0x0002, 0x0102, 0x0202),
488 },
489 { .channel = 224,
490 .freq = 5120, /* MHz */
491 .unk2 = 3413,
492 RADIOREGS(0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
493 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F,
494 0x8C, 0xDD, 0x00, 0x0D, 0x0F, 0x8C),
495 PHYREGS(0x0408, 0x0008, 0xFC07, 0xFF01, 0x0002, 0x0102),
496 },
497 { .channel = 226,
498 .freq = 5130, /* MHz */
499 .unk2 = 3420,
500 RADIOREGS(0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
501 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F,
502 0x8C, 0xDD, 0x00, 0x0D, 0x0F, 0x8C),
503 PHYREGS(0x0808, 0x0408, 0x0008, 0xFE01, 0xFF01, 0x0002),
504 },
505 { .channel = 228,
506 .freq = 5140, /* MHz */
507 .unk2 = 3427,
508 RADIOREGS(0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
509 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E,
510 0x8B, 0xDD, 0x00, 0x0C, 0x0E, 0x8B),
511 PHYREGS(0x0C08, 0x0808, 0x0408, 0xFD01, 0xFE01, 0xFF01),
512 },
513 { .channel = 32,
514 .freq = 5160, /* MHz */
515 .unk2 = 3440,
516 RADIOREGS(0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
517 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D,
518 0x8A, 0xCC, 0x00, 0x0B, 0x0D, 0x8A),
519 PHYREGS(0x1408, 0x1008, 0x0C08, 0xFB01, 0xFC01, 0xFD01),
520 },
521 { .channel = 34,
522 .freq = 5170, /* MHz */
523 .unk2 = 3447,
524 RADIOREGS(0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
525 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D,
526 0x8A, 0xCC, 0x00, 0x0B, 0x0D, 0x8A),
527 PHYREGS(0x1808, 0x1408, 0x1008, 0xFA01, 0xFB01, 0xFC01),
528 },
529 { .channel = 36,
530 .freq = 5180, /* MHz */
531 .unk2 = 3453,
532 RADIOREGS(0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
533 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C,
534 0x89, 0xCC, 0x00, 0x0B, 0x0C, 0x89),
535 PHYREGS(0x1C08, 0x1808, 0x1408, 0xF901, 0xFA01, 0xFB01),
536 },
537 { .channel = 38,
538 .freq = 5190, /* MHz */
539 .unk2 = 3460,
540 RADIOREGS(0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
541 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C,
542 0x89, 0xCC, 0x00, 0x0B, 0x0C, 0x89),
543 PHYREGS(0x2008, 0x1C08, 0x1808, 0xF801, 0xF901, 0xFA01),
544 },
545 { .channel = 40,
546 .freq = 5200, /* MHz */
547 .unk2 = 3467,
548 RADIOREGS(0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
549 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B,
550 0x89, 0xBB, 0x00, 0x0A, 0x0B, 0x89),
551 PHYREGS(0x2408, 0x2008, 0x1C08, 0xF701, 0xF801, 0xF901),
552 },
553 { .channel = 42,
554 .freq = 5210, /* MHz */
555 .unk2 = 3473,
556 RADIOREGS(0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
557 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B,
558 0x89, 0xBB, 0x00, 0x0A, 0x0B, 0x89),
559 PHYREGS(0x2808, 0x2408, 0x2008, 0xF601, 0xF701, 0xF801),
560 },
561 { .channel = 44,
562 .freq = 5220, /* MHz */
563 .unk2 = 3480,
564 RADIOREGS(0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
565 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A,
566 0x88, 0xBB, 0x00, 0x09, 0x0A, 0x88),
567 PHYREGS(0x2C08, 0x2808, 0x2408, 0xF501, 0xF601, 0xF701),
568 },
569 { .channel = 46,
570 .freq = 5230, /* MHz */
571 .unk2 = 3487,
572 RADIOREGS(0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
573 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A,
574 0x88, 0xBB, 0x00, 0x09, 0x0A, 0x88),
575 PHYREGS(0x3008, 0x2C08, 0x2808, 0xF401, 0xF501, 0xF601),
576 },
577 { .channel = 48,
578 .freq = 5240, /* MHz */
579 .unk2 = 3493,
580 RADIOREGS(0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
581 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A,
582 0x87, 0xAA, 0x00, 0x09, 0x0A, 0x87),
583 PHYREGS(0x3408, 0x3008, 0x2C08, 0xF301, 0xF401, 0xF501),
584 },
585 { .channel = 50,
586 .freq = 5250, /* MHz */
587 .unk2 = 3500,
588 RADIOREGS(0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
589 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A,
590 0x87, 0xAA, 0x00, 0x09, 0x0A, 0x87),
591 PHYREGS(0x3808, 0x3408, 0x3008, 0xF201, 0xF301, 0xF401),
592 },
593 { .channel = 52,
594 .freq = 5260, /* MHz */
595 .unk2 = 3507,
596 RADIOREGS(0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
597 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09,
598 0x87, 0xAA, 0x00, 0x08, 0x09, 0x87),
599 PHYREGS(0x3C08, 0x3808, 0x3408, 0xF101, 0xF201, 0xF301),
600 },
601 { .channel = 54,
602 .freq = 5270, /* MHz */
603 .unk2 = 3513,
604 RADIOREGS(0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
605 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09,
606 0x87, 0xAA, 0x00, 0x08, 0x09, 0x87),
607 PHYREGS(0x4008, 0x3C08, 0x3808, 0xF001, 0xF101, 0xF201),
608 },
609 { .channel = 56,
610 .freq = 5280, /* MHz */
611 .unk2 = 3520,
612 RADIOREGS(0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
613 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08,
614 0x86, 0x99, 0x00, 0x08, 0x08, 0x86),
615 PHYREGS(0x4408, 0x4008, 0x3C08, 0xF001, 0xF001, 0xF101),
616 },
617 { .channel = 58,
618 .freq = 5290, /* MHz */
619 .unk2 = 3527,
620 RADIOREGS(0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
621 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08,
622 0x86, 0x99, 0x00, 0x08, 0x08, 0x86),
623 PHYREGS(0x4808, 0x4408, 0x4008, 0xEF01, 0xF001, 0xF001),
624 },
625 { .channel = 60,
626 .freq = 5300, /* MHz */
627 .unk2 = 3533,
628 RADIOREGS(0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
629 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07,
630 0x85, 0x99, 0x00, 0x08, 0x07, 0x85),
631 PHYREGS(0x4C08, 0x4808, 0x4408, 0xEE01, 0xEF01, 0xF001),
632 },
633 { .channel = 62,
634 .freq = 5310, /* MHz */
635 .unk2 = 3540,
636 RADIOREGS(0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
637 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07,
638 0x85, 0x99, 0x00, 0x08, 0x07, 0x85),
639 PHYREGS(0x5008, 0x4C08, 0x4808, 0xED01, 0xEE01, 0xEF01),
640 },
641 { .channel = 64,
642 .freq = 5320, /* MHz */
643 .unk2 = 3547,
644 RADIOREGS(0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
645 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07,
646 0x84, 0x88, 0x00, 0x07, 0x07, 0x84),
647 PHYREGS(0x5408, 0x5008, 0x4C08, 0xEC01, 0xED01, 0xEE01),
648 },
649 { .channel = 66,
650 .freq = 5330, /* MHz */
651 .unk2 = 3553,
652 RADIOREGS(0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
653 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07,
654 0x84, 0x88, 0x00, 0x07, 0x07, 0x84),
655 PHYREGS(0x5808, 0x5408, 0x5008, 0xEB01, 0xEC01, 0xED01),
656 },
657 { .channel = 68,
658 .freq = 5340, /* MHz */
659 .unk2 = 3560,
660 RADIOREGS(0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
661 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06,
662 0x84, 0x88, 0x00, 0x07, 0x06, 0x84),
663 PHYREGS(0x5C08, 0x5808, 0x5408, 0xEA01, 0xEB01, 0xEC01),
664 },
665 { .channel = 70,
666 .freq = 5350, /* MHz */
667 .unk2 = 3567,
668 RADIOREGS(0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
669 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06,
670 0x84, 0x88, 0x00, 0x07, 0x06, 0x84),
671 PHYREGS(0x6008, 0x5C08, 0x5808, 0xE901, 0xEA01, 0xEB01),
672 },
673 { .channel = 72,
674 .freq = 5360, /* MHz */
675 .unk2 = 3573,
676 RADIOREGS(0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
677 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05,
678 0x83, 0x77, 0x00, 0x06, 0x05, 0x83),
679 PHYREGS(0x6408, 0x6008, 0x5C08, 0xE801, 0xE901, 0xEA01),
680 },
681 { .channel = 74,
682 .freq = 5370, /* MHz */
683 .unk2 = 3580,
684 RADIOREGS(0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
685 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05,
686 0x83, 0x77, 0x00, 0x06, 0x05, 0x83),
687 PHYREGS(0x6808, 0x6408, 0x6008, 0xE701, 0xE801, 0xE901),
688 },
689 { .channel = 76,
690 .freq = 5380, /* MHz */
691 .unk2 = 3587,
692 RADIOREGS(0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
693 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04,
694 0x82, 0x77, 0x00, 0x06, 0x04, 0x82),
695 PHYREGS(0x6C08, 0x6808, 0x6408, 0xE601, 0xE701, 0xE801),
696 },
697 { .channel = 78,
698 .freq = 5390, /* MHz */
699 .unk2 = 3593,
700 RADIOREGS(0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
701 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04,
702 0x82, 0x77, 0x00, 0x06, 0x04, 0x82),
703 PHYREGS(0x7008, 0x6C08, 0x6808, 0xE501, 0xE601, 0xE701),
704 },
705 { .channel = 80,
706 .freq = 5400, /* MHz */
707 .unk2 = 3600,
708 RADIOREGS(0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
709 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04,
710 0x81, 0x66, 0x00, 0x05, 0x04, 0x81),
711 PHYREGS(0x7408, 0x7008, 0x6C08, 0xE501, 0xE501, 0xE601),
712 },
713 { .channel = 82,
714 .freq = 5410, /* MHz */
715 .unk2 = 3607,
716 RADIOREGS(0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
717 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04,
718 0x81, 0x66, 0x00, 0x05, 0x04, 0x81),
719 PHYREGS(0x7808, 0x7408, 0x7008, 0xE401, 0xE501, 0xE501),
720 },
721 { .channel = 84,
722 .freq = 5420, /* MHz */
723 .unk2 = 3613,
724 RADIOREGS(0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
725 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03,
726 0x80, 0x66, 0x00, 0x05, 0x03, 0x80),
727 PHYREGS(0x7C08, 0x7808, 0x7408, 0xE301, 0xE401, 0xE501),
728 },
729 { .channel = 86,
730 .freq = 5430, /* MHz */
731 .unk2 = 3620,
732 RADIOREGS(0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
733 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03,
734 0x80, 0x66, 0x00, 0x05, 0x03, 0x80),
735 PHYREGS(0x8008, 0x7C08, 0x7808, 0xE201, 0xE301, 0xE401),
736 },
737 { .channel = 88,
738 .freq = 5440, /* MHz */
739 .unk2 = 3627,
740 RADIOREGS(0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
741 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02,
742 0x80, 0x55, 0x00, 0x04, 0x02, 0x80),
743 PHYREGS(0x8408, 0x8008, 0x7C08, 0xE101, 0xE201, 0xE301),
744 },
745 { .channel = 90,
746 .freq = 5450, /* MHz */
747 .unk2 = 3633,
748 RADIOREGS(0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
749 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02,
750 0x80, 0x55, 0x00, 0x04, 0x02, 0x80),
751 PHYREGS(0x8808, 0x8408, 0x8008, 0xE001, 0xE101, 0xE201),
752 },
753 { .channel = 92,
754 .freq = 5460, /* MHz */
755 .unk2 = 3640,
756 RADIOREGS(0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
757 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01,
758 0x80, 0x55, 0x00, 0x04, 0x01, 0x80),
759 PHYREGS(0x8C08, 0x8808, 0x8408, 0xDF01, 0xE001, 0xE101),
760 },
761 { .channel = 94,
762 .freq = 5470, /* MHz */
763 .unk2 = 3647,
764 RADIOREGS(0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
765 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01,
766 0x80, 0x55, 0x00, 0x04, 0x01, 0x80),
767 PHYREGS(0x9008, 0x8C08, 0x8808, 0xDE01, 0xDF01, 0xE001),
768 },
769 { .channel = 96,
770 .freq = 5480, /* MHz */
771 .unk2 = 3653,
772 RADIOREGS(0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
773 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00,
774 0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
775 PHYREGS(0x9408, 0x9008, 0x8C08, 0xDD01, 0xDE01, 0xDF01),
776 },
777 { .channel = 98,
778 .freq = 5490, /* MHz */
779 .unk2 = 3660,
780 RADIOREGS(0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
781 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00,
782 0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
783 PHYREGS(0x9808, 0x9408, 0x9008, 0xDD01, 0xDD01, 0xDE01),
784 },
785 { .channel = 100,
786 .freq = 5500, /* MHz */
787 .unk2 = 3667,
788 RADIOREGS(0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
789 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00,
790 0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
791 PHYREGS(0x9C08, 0x9808, 0x9408, 0xDC01, 0xDD01, 0xDD01),
792 },
793 { .channel = 102,
794 .freq = 5510, /* MHz */
795 .unk2 = 3673,
796 RADIOREGS(0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
797 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00,
798 0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
799 PHYREGS(0xA008, 0x9C08, 0x9808, 0xDB01, 0xDC01, 0xDD01),
800 },
801 { .channel = 104,
802 .freq = 5520, /* MHz */
803 .unk2 = 3680,
804 RADIOREGS(0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
805 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
806 0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
807 PHYREGS(0xA408, 0xA008, 0x9C08, 0xDA01, 0xDB01, 0xDC01),
808 },
809 { .channel = 106,
810 .freq = 5530, /* MHz */
811 .unk2 = 3687,
812 RADIOREGS(0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
813 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
814 0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
815 PHYREGS(0xA808, 0xA408, 0xA008, 0xD901, 0xDA01, 0xDB01),
816 },
817 { .channel = 108,
818 .freq = 5540, /* MHz */
819 .unk2 = 3693,
820 RADIOREGS(0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
821 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
822 0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
823 PHYREGS(0xAC08, 0xA808, 0xA408, 0xD801, 0xD901, 0xDA01),
824 },
825 { .channel = 110,
826 .freq = 5550, /* MHz */
827 .unk2 = 3700,
828 RADIOREGS(0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
829 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
830 0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
831 PHYREGS(0xB008, 0xAC08, 0xA808, 0xD701, 0xD801, 0xD901),
832 },
833 { .channel = 112,
834 .freq = 5560, /* MHz */
835 .unk2 = 3707,
836 RADIOREGS(0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
837 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
838 0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
839 PHYREGS(0xB408, 0xB008, 0xAC08, 0xD701, 0xD701, 0xD801),
840 },
841 { .channel = 114,
842 .freq = 5570, /* MHz */
843 .unk2 = 3713,
844 RADIOREGS(0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
845 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
846 0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
847 PHYREGS(0xB808, 0xB408, 0xB008, 0xD601, 0xD701, 0xD701),
848 },
849 { .channel = 116,
850 .freq = 5580, /* MHz */
851 .unk2 = 3720,
852 RADIOREGS(0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
853 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
854 0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
855 PHYREGS(0xBC08, 0xB808, 0xB408, 0xD501, 0xD601, 0xD701),
856 },
857 { .channel = 118,
858 .freq = 5590, /* MHz */
859 .unk2 = 3727,
860 RADIOREGS(0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
861 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
862 0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
863 PHYREGS(0xC008, 0xBC08, 0xB808, 0xD401, 0xD501, 0xD601),
864 },
865 { .channel = 120,
866 .freq = 5600, /* MHz */
867 .unk2 = 3733,
868 RADIOREGS(0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
869 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00,
870 0x80, 0x11, 0x00, 0x01, 0x00, 0x80),
871 PHYREGS(0xC408, 0xC008, 0xBC08, 0xD301, 0xD401, 0xD501),
872 },
873 { .channel = 122,
874 .freq = 5610, /* MHz */
875 .unk2 = 3740,
876 RADIOREGS(0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
877 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00,
878 0x80, 0x11, 0x00, 0x01, 0x00, 0x80),
879 PHYREGS(0xC808, 0xC408, 0xC008, 0xD201, 0xD301, 0xD401),
880 },
881 { .channel = 124,
882 .freq = 5620, /* MHz */
883 .unk2 = 3747,
884 RADIOREGS(0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
885 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
886 0x80, 0x11, 0x00, 0x00, 0x00, 0x80),
887 PHYREGS(0xCC08, 0xC808, 0xC408, 0xD201, 0xD201, 0xD301),
888 },
889 { .channel = 126,
890 .freq = 5630, /* MHz */
891 .unk2 = 3753,
892 RADIOREGS(0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
893 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
894 0x80, 0x11, 0x00, 0x00, 0x00, 0x80),
895 PHYREGS(0xD008, 0xCC08, 0xC808, 0xD101, 0xD201, 0xD201),
896 },
897 { .channel = 128,
898 .freq = 5640, /* MHz */
899 .unk2 = 3760,
900 RADIOREGS(0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
901 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
903 PHYREGS(0xD408, 0xD008, 0xCC08, 0xD001, 0xD101, 0xD201),
904 },
905 { .channel = 130,
906 .freq = 5650, /* MHz */
907 .unk2 = 3767,
908 RADIOREGS(0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
909 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
910 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
911 PHYREGS(0xD808, 0xD408, 0xD008, 0xCF01, 0xD001, 0xD101),
912 },
913 { .channel = 132,
914 .freq = 5660, /* MHz */
915 .unk2 = 3773,
916 RADIOREGS(0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
917 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
918 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
919 PHYREGS(0xDC08, 0xD808, 0xD408, 0xCE01, 0xCF01, 0xD001),
920 },
921 { .channel = 134,
922 .freq = 5670, /* MHz */
923 .unk2 = 3780,
924 RADIOREGS(0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
925 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
926 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
927 PHYREGS(0xE008, 0xDC08, 0xD808, 0xCE01, 0xCE01, 0xCF01),
928 },
929 { .channel = 136,
930 .freq = 5680, /* MHz */
931 .unk2 = 3787,
932 RADIOREGS(0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
933 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
934 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
935 PHYREGS(0xE408, 0xE008, 0xDC08, 0xCD01, 0xCE01, 0xCE01),
936 },
937 { .channel = 138,
938 .freq = 5690, /* MHz */
939 .unk2 = 3793,
940 RADIOREGS(0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
941 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
942 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
943 PHYREGS(0xE808, 0xE408, 0xE008, 0xCC01, 0xCD01, 0xCE01),
944 },
945 { .channel = 140,
946 .freq = 5700, /* MHz */
947 .unk2 = 3800,
948 RADIOREGS(0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
949 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
950 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
951 PHYREGS(0xEC08, 0xE808, 0xE408, 0xCB01, 0xCC01, 0xCD01),
952 },
953 { .channel = 142,
954 .freq = 5710, /* MHz */
955 .unk2 = 3807,
956 RADIOREGS(0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
957 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
958 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
959 PHYREGS(0xF008, 0xEC08, 0xE808, 0xCA01, 0xCB01, 0xCC01),
960 },
961 { .channel = 144,
962 .freq = 5720, /* MHz */
963 .unk2 = 3813,
964 RADIOREGS(0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
965 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
966 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
967 PHYREGS(0xF408, 0xF008, 0xEC08, 0xC901, 0xCA01, 0xCB01),
968 },
969 { .channel = 145,
970 .freq = 5725, /* MHz */
971 .unk2 = 3817,
972 RADIOREGS(0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
973 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
974 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
975 PHYREGS(0xF608, 0xF208, 0xEE08, 0xC901, 0xCA01, 0xCB01),
976 },
977 { .channel = 146,
978 .freq = 5730, /* MHz */
979 .unk2 = 3820,
980 RADIOREGS(0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
981 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
982 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
983 PHYREGS(0xF808, 0xF408, 0xF008, 0xC901, 0xC901, 0xCA01),
984 },
985 { .channel = 147,
986 .freq = 5735, /* MHz */
987 .unk2 = 3823,
988 RADIOREGS(0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
989 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
990 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
991 PHYREGS(0xFA08, 0xF608, 0xF208, 0xC801, 0xC901, 0xCA01),
992 },
993 { .channel = 148,
994 .freq = 5740, /* MHz */
995 .unk2 = 3827,
996 RADIOREGS(0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
997 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
998 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
999 PHYREGS(0xFC08, 0xF808, 0xF408, 0xC801, 0xC901, 0xC901),
1000 },
1001 { .channel = 149,
1002 .freq = 5745, /* MHz */
1003 .unk2 = 3830,
1004 RADIOREGS(0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
1005 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1006 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1007 PHYREGS(0xFE08, 0xFA08, 0xF608, 0xC801, 0xC801, 0xC901),
1008 },
1009 { .channel = 150,
1010 .freq = 5750, /* MHz */
1011 .unk2 = 3833,
1012 RADIOREGS(0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1013 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1014 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1015 PHYREGS(0x0009, 0xFC08, 0xF808, 0xC701, 0xC801, 0xC901),
1016 },
1017 { .channel = 151,
1018 .freq = 5755, /* MHz */
1019 .unk2 = 3837,
1020 RADIOREGS(0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
1021 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1022 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1023 PHYREGS(0x0209, 0xFE08, 0xFA08, 0xC701, 0xC801, 0xC801),
1024 },
1025 { .channel = 152,
1026 .freq = 5760, /* MHz */
1027 .unk2 = 3840,
1028 RADIOREGS(0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1029 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1030 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1031 PHYREGS(0x0409, 0x0009, 0xFC08, 0xC601, 0xC701, 0xC801),
1032 },
1033 { .channel = 153,
1034 .freq = 5765, /* MHz */
1035 .unk2 = 3843,
1036 RADIOREGS(0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
1037 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1038 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1039 PHYREGS(0x0609, 0x0209, 0xFE08, 0xC601, 0xC701, 0xC801),
1040 },
1041 { .channel = 154,
1042 .freq = 5770, /* MHz */
1043 .unk2 = 3847,
1044 RADIOREGS(0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1045 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1046 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1047 PHYREGS(0x0809, 0x0409, 0x0009, 0xC601, 0xC601, 0xC701),
1048 },
1049 { .channel = 155,
1050 .freq = 5775, /* MHz */
1051 .unk2 = 3850,
1052 RADIOREGS(0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
1053 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1054 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1055 PHYREGS(0x0A09, 0x0609, 0x0209, 0xC501, 0xC601, 0xC701),
1056 },
1057 { .channel = 156,
1058 .freq = 5780, /* MHz */
1059 .unk2 = 3853,
1060 RADIOREGS(0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1061 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1062 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1063 PHYREGS(0x0C09, 0x0809, 0x0409, 0xC501, 0xC601, 0xC601),
1064 },
1065 { .channel = 157,
1066 .freq = 5785, /* MHz */
1067 .unk2 = 3857,
1068 RADIOREGS(0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
1069 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1070 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1071 PHYREGS(0x0E09, 0x0A09, 0x0609, 0xC401, 0xC501, 0xC601),
1072 },
1073 { .channel = 158,
1074 .freq = 5790, /* MHz */
1075 .unk2 = 3860,
1076 RADIOREGS(0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1077 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1078 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1079 PHYREGS(0x1009, 0x0C09, 0x0809, 0xC401, 0xC501, 0xC601),
1080 },
1081 { .channel = 159,
1082 .freq = 5795, /* MHz */
1083 .unk2 = 3863,
1084 RADIOREGS(0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
1085 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1086 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1087 PHYREGS(0x1209, 0x0E09, 0x0A09, 0xC401, 0xC401, 0xC501),
1088 },
1089 { .channel = 160,
1090 .freq = 5800, /* MHz */
1091 .unk2 = 3867,
1092 RADIOREGS(0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1093 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1094 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1095 PHYREGS(0x1409, 0x1009, 0x0C09, 0xC301, 0xC401, 0xC501),
1096 },
1097 { .channel = 161,
1098 .freq = 5805, /* MHz */
1099 .unk2 = 3870,
1100 RADIOREGS(0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
1101 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1102 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1103 PHYREGS(0x1609, 0x1209, 0x0E09, 0xC301, 0xC401, 0xC401),
1104 },
1105 { .channel = 162,
1106 .freq = 5810, /* MHz */
1107 .unk2 = 3873,
1108 RADIOREGS(0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1109 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1110 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1111 PHYREGS(0x1809, 0x1409, 0x1009, 0xC201, 0xC301, 0xC401),
1112 },
1113 { .channel = 163,
1114 .freq = 5815, /* MHz */
1115 .unk2 = 3877,
1116 RADIOREGS(0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
1117 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1118 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1119 PHYREGS(0x1A09, 0x1609, 0x1209, 0xC201, 0xC301, 0xC401),
1120 },
1121 { .channel = 164,
1122 .freq = 5820, /* MHz */
1123 .unk2 = 3880,
1124 RADIOREGS(0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1125 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1126 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1127 PHYREGS(0x1C09, 0x1809, 0x1409, 0xC201, 0xC201, 0xC301),
1128 },
1129 { .channel = 165,
1130 .freq = 5825, /* MHz */
1131 .unk2 = 3883,
1132 RADIOREGS(0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
1133 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1134 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1135 PHYREGS(0x1E09, 0x1A09, 0x1609, 0xC101, 0xC201, 0xC301),
1136 },
1137 { .channel = 166,
1138 .freq = 5830, /* MHz */
1139 .unk2 = 3887,
1140 RADIOREGS(0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1141 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1142 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1143 PHYREGS(0x2009, 0x1C09, 0x1809, 0xC101, 0xC201, 0xC201),
1144 },
1145 { .channel = 168,
1146 .freq = 5840, /* MHz */
1147 .unk2 = 3893,
1148 RADIOREGS(0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1149 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1150 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1151 PHYREGS(0x2409, 0x2009, 0x1C09, 0xC001, 0xC101, 0xC201),
1152 },
1153 { .channel = 170,
1154 .freq = 5850, /* MHz */
1155 .unk2 = 3900,
1156 RADIOREGS(0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
1157 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1158 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1159 PHYREGS(0x2809, 0x2409, 0x2009, 0xBF01, 0xC001, 0xC101),
1160 },
1161 { .channel = 172,
1162 .freq = 5860, /* MHz */
1163 .unk2 = 3907,
1164 RADIOREGS(0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
1165 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1166 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1167 PHYREGS(0x2C09, 0x2809, 0x2409, 0xBF01, 0xBF01, 0xC001),
1168 },
1169 { .channel = 174,
1170 .freq = 5870, /* MHz */
1171 .unk2 = 3913,
1172 RADIOREGS(0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
1173 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1174 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1175 PHYREGS(0x3009, 0x2C09, 0x2809, 0xBE01, 0xBF01, 0xBF01),
1176 },
1177 { .channel = 176,
1178 .freq = 5880, /* MHz */
1179 .unk2 = 3920,
1180 RADIOREGS(0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
1181 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1182 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1183 PHYREGS(0x3409, 0x3009, 0x2C09, 0xBD01, 0xBE01, 0xBF01),
1184 },
1185 { .channel = 178,
1186 .freq = 5890, /* MHz */
1187 .unk2 = 3927,
1188 RADIOREGS(0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
1189 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1190 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1191 PHYREGS(0x3809, 0x3409, 0x3009, 0xBC01, 0xBD01, 0xBE01),
1192 },
1193 { .channel = 180,
1194 .freq = 5900, /* MHz */
1195 .unk2 = 3933,
1196 RADIOREGS(0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
1197 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1198 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1199 PHYREGS(0x3C09, 0x3809, 0x3409, 0xBC01, 0xBC01, 0xBD01),
1200 },
1201 { .channel = 182,
1202 .freq = 5910, /* MHz */
1203 .unk2 = 3940,
1204 RADIOREGS(0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
1205 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1206 0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1207 PHYREGS(0x4009, 0x3C09, 0x3809, 0xBB01, 0xBC01, 0xBC01),
1208 },
1209 { .channel = 1,
1210 .freq = 2412, /* MHz */
1211 .unk2 = 3216,
1212 RADIOREGS(0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
1213 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C,
1214 0x80, 0xFF, 0x88, 0x0D, 0x0C, 0x80),
1215 PHYREGS(0xC903, 0xC503, 0xC103, 0x3A04, 0x3F04, 0x4304),
1216 },
1217 { .channel = 2,
1218 .freq = 2417, /* MHz */
1219 .unk2 = 3223,
1220 RADIOREGS(0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
1221 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B,
1222 0x80, 0xFF, 0x88, 0x0C, 0x0B, 0x80),
1223 PHYREGS(0xCB03, 0xC703, 0xC303, 0x3804, 0x3D04, 0x4104),
1224 },
1225 { .channel = 3,
1226 .freq = 2422, /* MHz */
1227 .unk2 = 3229,
1228 RADIOREGS(0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
1229 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A,
1230 0x80, 0xFF, 0x88, 0x0C, 0x0A, 0x80),
1231 PHYREGS(0xCD03, 0xC903, 0xC503, 0x3604, 0x3A04, 0x3F04),
1232 },
1233 { .channel = 4,
1234 .freq = 2427, /* MHz */
1235 .unk2 = 3236,
1236 RADIOREGS(0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
1237 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A,
1238 0x80, 0xFF, 0x88, 0x0C, 0x0A, 0x80),
1239 PHYREGS(0xCF03, 0xCB03, 0xC703, 0x3404, 0x3804, 0x3D04),
1240 },
1241 { .channel = 5,
1242 .freq = 2432, /* MHz */
1243 .unk2 = 3243,
1244 RADIOREGS(0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
1245 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09,
1246 0x80, 0xFF, 0x88, 0x0C, 0x09, 0x80),
1247 PHYREGS(0xD103, 0xCD03, 0xC903, 0x3104, 0x3604, 0x3A04),
1248 },
1249 { .channel = 6,
1250 .freq = 2437, /* MHz */
1251 .unk2 = 3249,
1252 RADIOREGS(0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
1253 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08,
1254 0x80, 0xFF, 0x88, 0x0B, 0x08, 0x80),
1255 PHYREGS(0xD303, 0xCF03, 0xCB03, 0x2F04, 0x3404, 0x3804),
1256 },
1257 { .channel = 7,
1258 .freq = 2442, /* MHz */
1259 .unk2 = 3256,
1260 RADIOREGS(0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
1261 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07,
1262 0x80, 0xFF, 0x88, 0x0A, 0x07, 0x80),
1263 PHYREGS(0xD503, 0xD103, 0xCD03, 0x2D04, 0x3104, 0x3604),
1264 },
1265 { .channel = 8,
1266 .freq = 2447, /* MHz */
1267 .unk2 = 3263,
1268 RADIOREGS(0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
1269 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06,
1270 0x80, 0xFF, 0x88, 0x0A, 0x06, 0x80),
1271 PHYREGS(0xD703, 0xD303, 0xCF03, 0x2B04, 0x2F04, 0x3404),
1272 },
1273 { .channel = 9,
1274 .freq = 2452, /* MHz */
1275 .unk2 = 3269,
1276 RADIOREGS(0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
1277 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06,
1278 0x80, 0xFF, 0x88, 0x09, 0x06, 0x80),
1279 PHYREGS(0xD903, 0xD503, 0xD103, 0x2904, 0x2D04, 0x3104),
1280 },
1281 { .channel = 10,
1282 .freq = 2457, /* MHz */
1283 .unk2 = 3276,
1284 RADIOREGS(0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
1285 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05,
1286 0x80, 0xFF, 0x88, 0x08, 0x05, 0x80),
1287 PHYREGS(0xDB03, 0xD703, 0xD303, 0x2704, 0x2B04, 0x2F04),
1288 },
1289 { .channel = 11,
1290 .freq = 2462, /* MHz */
1291 .unk2 = 3283,
1292 RADIOREGS(0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
1293 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04,
1294 0x80, 0xFF, 0x88, 0x08, 0x04, 0x80),
1295 PHYREGS(0xDD03, 0xD903, 0xD503, 0x2404, 0x2904, 0x2D04),
1296 },
1297 { .channel = 12,
1298 .freq = 2467, /* MHz */
1299 .unk2 = 3289,
1300 RADIOREGS(0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
1301 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03,
1302 0x80, 0xFF, 0x88, 0x08, 0x03, 0x80),
1303 PHYREGS(0xDF03, 0xDB03, 0xD703, 0x2204, 0x2704, 0x2B04),
1304 },
1305 { .channel = 13,
1306 .freq = 2472, /* MHz */
1307 .unk2 = 3296,
1308 RADIOREGS(0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
1309 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03,
1310 0x80, 0xFF, 0x88, 0x07, 0x03, 0x80),
1311 PHYREGS(0xE103, 0xDD03, 0xD903, 0x2004, 0x2404, 0x2904),
1312 },
1313 { .channel = 14,
1314 .freq = 2484, /* MHz */
1315 .unk2 = 3312,
1316 RADIOREGS(0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
1317 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01,
1318 0x80, 0xFF, 0x88, 0x07, 0x01, 0x80),
1319 PHYREGS(0xE603, 0xE203, 0xDE03, 0x1B04, 0x1F04, 0x2404),
1320 },
1321 };
1322
1323 const struct b43_nphy_channeltab_entry *
1324 b43_nphy_get_chantabent(struct b43_wldev *dev, u8 channel)
1325 {
1326 const struct b43_nphy_channeltab_entry *e;
1327 unsigned int i;
1328
1329 for (i = 0; i < ARRAY_SIZE(b43_nphy_channeltab); i++) {
1330 e = &(b43_nphy_channeltab[i]);
1331 if (e->channel == channel)
1332 return e;
1333 }
1334
1335 return NULL;
1336 }
1337
1338
1339 const u8 b43_ntab_adjustpower0[] = {
1340 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
1341 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
1342 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
1343 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
1344 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09,
1345 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B,
1346 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
1347 0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
1348 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
1349 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
1350 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
1351 0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
1352 0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19,
1353 0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1B,
1354 0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D,
1355 0x1E, 0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F,
1356 };
1357
1358 const u8 b43_ntab_adjustpower1[] = {
1359 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
1360 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
1361 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
1362 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
1363 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09,
1364 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B,
1365 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
1366 0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
1367 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
1368 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
1369 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
1370 0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
1371 0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19,
1372 0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1B,
1373 0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D,
1374 0x1E, 0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F,
1375 };
1376
1377 const u16 b43_ntab_bdi[] = {
1378 0x0070, 0x0126, 0x012C, 0x0246, 0x048D, 0x04D2,
1379 };
1380
1381 const u32 b43_ntab_channelest[] = {
1382 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1383 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1384 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1385 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1386 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1387 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1388 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1389 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1390 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1391 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1392 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1393 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1394 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1395 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1396 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1397 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1398 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1399 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1400 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1401 0x44444444, 0x44444444, 0x44444444, 0x44444444,
1402 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1403 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1404 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1405 0x10101010, 0x10101010, 0x10101010, 0x10101010,
1406 };
1407
1408 const u8 b43_ntab_estimatepowerlt0[] = {
1409 0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
1410 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
1411 0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
1412 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
1413 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
1414 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
1415 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
1416 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
1417 };
1418
1419 const u8 b43_ntab_estimatepowerlt1[] = {
1420 0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
1421 0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
1422 0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
1423 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
1424 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
1425 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
1426 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
1427 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
1428 };
1429
1430 const u8 b43_ntab_framelookup[] = {
1431 0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
1432 0x0A, 0x0C, 0x1C, 0x1C, 0x0B, 0x0D, 0x1E, 0x1E,
1433 0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1A, 0x1A,
1434 0x0E, 0x10, 0x20, 0x28, 0x0F, 0x11, 0x22, 0x2A,
1435 };
1436
1437 const u32 b43_ntab_framestruct[] = {
1438 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
1439 0x09804506, 0x00100030, 0x09804507, 0x00100030,
1440 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1441 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1442 0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
1443 0x0980450E, 0x00100038, 0x0980450F, 0x00100038,
1444 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1445 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1446 0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
1447 0x1980C506, 0x00100030, 0x21810506, 0x00100030,
1448 0x21810506, 0x00100030, 0x01800504, 0x00100030,
1449 0x11808505, 0x00100030, 0x29814507, 0x01100030,
1450 0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
1451 0x21810506, 0x00100030, 0x21810506, 0x00100030,
1452 0x29814507, 0x01100030, 0x00000000, 0x00000000,
1453 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1454 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1455 0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
1456 0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
1457 0x1180850D, 0x00100038, 0x2981450F, 0x01100038,
1458 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1459 0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
1460 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
1461 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1462 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
1463 0x1980C506, 0x00100030, 0x1980C506, 0x00100030,
1464 0x11808504, 0x00100030, 0x3981CA05, 0x00100030,
1465 0x29814507, 0x01100030, 0x00000000, 0x00000000,
1466 0x10008A04, 0x00100000, 0x3981CA05, 0x00100030,
1467 0x1980C506, 0x00100030, 0x29814507, 0x01100030,
1468 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1469 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1470 0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
1471 0x1980C50E, 0x00100038, 0x1980C50E, 0x00100038,
1472 0x1180850C, 0x00100038, 0x3981CA0D, 0x00100038,
1473 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
1474 0x10008A0C, 0x00100008, 0x3981CA0D, 0x00100038,
1475 0x1980C50E, 0x00100038, 0x2981450F, 0x01100038,
1476 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1477 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1478 0x40021404, 0x00100000, 0x02001405, 0x00100040,
1479 0x0B004A06, 0x01900060, 0x13008A06, 0x01900060,
1480 0x13008A06, 0x01900060, 0x43020A04, 0x00100060,
1481 0x1B00CA05, 0x00100060, 0x23010A07, 0x01500060,
1482 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
1483 0x13008A06, 0x01900060, 0x13008A06, 0x01900060,
1484 0x23010A07, 0x01500060, 0x00000000, 0x00000000,
1485 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1486 0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
1487 0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
1488 0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
1489 0x1B00CA0D, 0x00100070, 0x23010A0F, 0x01500070,
1490 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1491 0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
1492 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
1493 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1494 0x50029404, 0x00100000, 0x32019405, 0x00100040,
1495 0x0B004A06, 0x01900060, 0x0B004A06, 0x01900060,
1496 0x5B02CA04, 0x00100060, 0x3B01D405, 0x00100060,
1497 0x23010A07, 0x01500060, 0x00000000, 0x00000000,
1498 0x5802D404, 0x00100000, 0x3B01D405, 0x00100060,
1499 0x0B004A06, 0x01900060, 0x23010A07, 0x01500060,
1500 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1501 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1502 0x5002940C, 0x00100010, 0x3201940D, 0x00100050,
1503 0x0B004A0E, 0x01900070, 0x0B004A0E, 0x01900070,
1504 0x5B02CA0C, 0x00100070, 0x3B01D40D, 0x00100070,
1505 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
1506 0x5802D40C, 0x00100010, 0x3B01D40D, 0x00100070,
1507 0x0B004A0E, 0x01900070, 0x23010A0F, 0x01500070,
1508 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1509 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1510 0x40021404, 0x000F4800, 0x62031405, 0x00100040,
1511 0x53028A06, 0x01900060, 0x53028A07, 0x01900060,
1512 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1513 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1514 0x4002140C, 0x000F4810, 0x6203140D, 0x00100050,
1515 0x53028A0E, 0x01900070, 0x53028A0F, 0x01900070,
1516 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1517 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1518 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1519 0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
1520 0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
1521 0x1180850D, 0x00100038, 0x1181850D, 0x00100038,
1522 0x2981450F, 0x01100038, 0x00000000, 0x00000000,
1523 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1524 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1525 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1526 0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1527 0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
1528 0x1181850D, 0x00100038, 0x2981450F, 0x01100038,
1529 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1530 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1531 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1532 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1533 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1534 0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
1535 0x0180C506, 0x00100030, 0x0180C506, 0x00100030,
1536 0x2180C50C, 0x00100030, 0x49820A0D, 0x0016A130,
1537 0x41824A0D, 0x0016A130, 0x2981450F, 0x01100030,
1538 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1539 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1540 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1541 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1542 0x2000CA0C, 0x00100000, 0x49820A0D, 0x0016A130,
1543 0x1980C50E, 0x00100030, 0x41824A0D, 0x0016A130,
1544 0x2981450F, 0x01100030, 0x00000000, 0x00000000,
1545 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1546 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1547 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1548 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1549 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1550 0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
1551 0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
1552 0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
1553 0x1B00CA0D, 0x00100070, 0x1B014A0D, 0x00100070,
1554 0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
1555 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1556 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1557 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1558 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1559 0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
1560 0x1B014A0D, 0x00100070, 0x23010A0F, 0x01500070,
1561 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1562 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1563 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1564 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1565 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1566 0x50029404, 0x00100000, 0x32019405, 0x00100040,
1567 0x03004A06, 0x01900060, 0x03004A06, 0x01900060,
1568 0x6B030A0C, 0x00100060, 0x4B02140D, 0x0016A160,
1569 0x4302540D, 0x0016A160, 0x23010A0F, 0x01500060,
1570 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1571 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1572 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1573 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1574 0x6B03140C, 0x00100060, 0x4B02140D, 0x0016A160,
1575 0x0B004A0E, 0x01900060, 0x4302540D, 0x0016A160,
1576 0x23010A0F, 0x01500060, 0x00000000, 0x00000000,
1577 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1578 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1579 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1580 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1581 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1582 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
1583 0x53028A06, 0x01900060, 0x5B02CA06, 0x01900060,
1584 0x5B02CA06, 0x01900060, 0x43020A04, 0x00100060,
1585 0x1B00CA05, 0x00100060, 0x53028A07, 0x0190C060,
1586 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1587 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1588 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1589 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1590 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1591 0x53028A0E, 0x01900070, 0x5B02CA0E, 0x01900070,
1592 0x5B02CA0E, 0x01900070, 0x43020A0C, 0x00100070,
1593 0x1B00CA0D, 0x00100070, 0x53028A0F, 0x0190C070,
1594 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1595 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1596 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1597 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1598 0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
1599 0x5B02CA06, 0x01900060, 0x5B02CA06, 0x01900060,
1600 0x53028A07, 0x0190C060, 0x00000000, 0x00000000,
1601 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1602 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1603 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1604 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1605 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1606 0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1607 0x5B02CA0E, 0x01900070, 0x5B02CA0E, 0x01900070,
1608 0x53028A0F, 0x0190C070, 0x00000000, 0x00000000,
1609 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1610 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1611 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1612 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1613 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1614 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1615 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1616 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1617 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1618 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1619 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1620 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1621 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1622 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1623 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1624 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1625 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1626 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1627 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1628 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1629 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1630 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1631 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1632 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1633 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1634 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1635 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1636 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1637 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1638 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1639 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1640 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1641 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1642 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1643 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1644 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1645 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1646 };
1647
1648 const u32 b43_ntab_gainctl0[] = {
1649 0x007F003F, 0x007E013F, 0x007D023E, 0x007C033E,
1650 0x007B043D, 0x007A053D, 0x0079063C, 0x0078073C,
1651 0x0077083B, 0x0076093B, 0x00750A3A, 0x00740B3A,
1652 0x00730C39, 0x00720D39, 0x00710E38, 0x00700F38,
1653 0x006F0037, 0x006E0137, 0x006D0236, 0x006C0336,
1654 0x006B0435, 0x006A0535, 0x00690634, 0x00680734,
1655 0x00670833, 0x00660933, 0x00650A32, 0x00640B32,
1656 0x00630C31, 0x00620D31, 0x00610E30, 0x00600F30,
1657 0x005F002F, 0x005E012F, 0x005D022E, 0x005C032E,
1658 0x005B042D, 0x005A052D, 0x0059062C, 0x0058072C,
1659 0x0057082B, 0x0056092B, 0x00550A2A, 0x00540B2A,
1660 0x00530C29, 0x00520D29, 0x00510E28, 0x00500F28,
1661 0x004F0027, 0x004E0127, 0x004D0226, 0x004C0326,
1662 0x004B0425, 0x004A0525, 0x00490624, 0x00480724,
1663 0x00470823, 0x00460923, 0x00450A22, 0x00440B22,
1664 0x00430C21, 0x00420D21, 0x00410E20, 0x00400F20,
1665 0x003F001F, 0x003E011F, 0x003D021E, 0x003C031E,
1666 0x003B041D, 0x003A051D, 0x0039061C, 0x0038071C,
1667 0x0037081B, 0x0036091B, 0x00350A1A, 0x00340B1A,
1668 0x00330C19, 0x00320D19, 0x00310E18, 0x00300F18,
1669 0x002F0017, 0x002E0117, 0x002D0216, 0x002C0316,
1670 0x002B0415, 0x002A0515, 0x00290614, 0x00280714,
1671 0x00270813, 0x00260913, 0x00250A12, 0x00240B12,
1672 0x00230C11, 0x00220D11, 0x00210E10, 0x00200F10,
1673 0x001F000F, 0x001E010F, 0x001D020E, 0x001C030E,
1674 0x001B040D, 0x001A050D, 0x0019060C, 0x0018070C,
1675 0x0017080B, 0x0016090B, 0x00150A0A, 0x00140B0A,
1676 0x00130C09, 0x00120D09, 0x00110E08, 0x00100F08,
1677 0x000F0007, 0x000E0107, 0x000D0206, 0x000C0306,
1678 0x000B0405, 0x000A0505, 0x00090604, 0x00080704,
1679 0x00070803, 0x00060903, 0x00050A02, 0x00040B02,
1680 0x00030C01, 0x00020D01, 0x00010E00, 0x00000F00,
1681 };
1682
1683 const u32 b43_ntab_gainctl1[] = {
1684 0x007F003F, 0x007E013F, 0x007D023E, 0x007C033E,
1685 0x007B043D, 0x007A053D, 0x0079063C, 0x0078073C,
1686 0x0077083B, 0x0076093B, 0x00750A3A, 0x00740B3A,
1687 0x00730C39, 0x00720D39, 0x00710E38, 0x00700F38,
1688 0x006F0037, 0x006E0137, 0x006D0236, 0x006C0336,
1689 0x006B0435, 0x006A0535, 0x00690634, 0x00680734,
1690 0x00670833, 0x00660933, 0x00650A32, 0x00640B32,
1691 0x00630C31, 0x00620D31, 0x00610E30, 0x00600F30,
1692 0x005F002F, 0x005E012F, 0x005D022E, 0x005C032E,
1693 0x005B042D, 0x005A052D, 0x0059062C, 0x0058072C,
1694 0x0057082B, 0x0056092B, 0x00550A2A, 0x00540B2A,
1695 0x00530C29, 0x00520D29, 0x00510E28, 0x00500F28,
1696 0x004F0027, 0x004E0127, 0x004D0226, 0x004C0326,
1697 0x004B0425, 0x004A0525, 0x00490624, 0x00480724,
1698 0x00470823, 0x00460923, 0x00450A22, 0x00440B22,
1699 0x00430C21, 0x00420D21, 0x00410E20, 0x00400F20,
1700 0x003F001F, 0x003E011F, 0x003D021E, 0x003C031E,
1701 0x003B041D, 0x003A051D, 0x0039061C, 0x0038071C,
1702 0x0037081B, 0x0036091B, 0x00350A1A, 0x00340B1A,
1703 0x00330C19, 0x00320D19, 0x00310E18, 0x00300F18,
1704 0x002F0017, 0x002E0117, 0x002D0216, 0x002C0316,
1705 0x002B0415, 0x002A0515, 0x00290614, 0x00280714,
1706 0x00270813, 0x00260913, 0x00250A12, 0x00240B12,
1707 0x00230C11, 0x00220D11, 0x00210E10, 0x00200F10,
1708 0x001F000F, 0x001E010F, 0x001D020E, 0x001C030E,
1709 0x001B040D, 0x001A050D, 0x0019060C, 0x0018070C,
1710 0x0017080B, 0x0016090B, 0x00150A0A, 0x00140B0A,
1711 0x00130C09, 0x00120D09, 0x00110E08, 0x00100F08,
1712 0x000F0007, 0x000E0107, 0x000D0206, 0x000C0306,
1713 0x000B0405, 0x000A0505, 0x00090604, 0x00080704,
1714 0x00070803, 0x00060903, 0x00050A02, 0x00040B02,
1715 0x00030C01, 0x00020D01, 0x00010E00, 0x00000F00,
1716 };
1717
1718 const u32 b43_ntab_intlevel[] = {
1719 0x00802070, 0x0671188D, 0x0A60192C, 0x0A300E46,
1720 0x00C1188D, 0x080024D2, 0x00000070,
1721 };
1722
1723 const u32 b43_ntab_iqlt0[] = {
1724 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1725 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1726 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1727 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1728 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1729 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1730 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1731 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1732 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1733 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1734 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1735 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1736 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1737 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1738 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1739 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1740 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1741 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1742 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1743 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1744 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1745 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1746 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1747 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1748 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1749 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1750 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1751 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1752 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1753 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1754 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1755 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1756 };
1757
1758 const u32 b43_ntab_iqlt1[] = {
1759 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1760 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1761 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1762 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1763 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1764 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1765 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1766 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1767 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1768 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1769 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1770 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1771 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1772 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1773 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1774 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1775 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1776 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1777 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1778 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1779 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1780 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1781 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1782 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1783 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1784 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1785 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1786 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1787 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1788 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1789 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1790 0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1791 };
1792
1793 const u16 b43_ntab_loftlt0[] = {
1794 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1795 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1796 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1797 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1798 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1799 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1800 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1801 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1802 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1803 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1804 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1805 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1806 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1807 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1808 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1809 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1810 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1811 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1812 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1813 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1814 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1815 0x0002, 0x0103,
1816 };
1817
1818 const u16 b43_ntab_loftlt1[] = {
1819 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1820 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1821 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1822 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1823 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1824 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1825 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1826 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1827 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1828 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1829 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1830 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1831 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1832 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1833 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1834 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1835 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1836 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1837 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1838 0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1839 0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1840 0x0002, 0x0103,
1841 };
1842
1843 const u8 b43_ntab_mcs[] = {
1844 0x00, 0x08, 0x0A, 0x10, 0x12, 0x19, 0x1A, 0x1C,
1845 0x40, 0x48, 0x4A, 0x50, 0x52, 0x59, 0x5A, 0x5C,
1846 0x80, 0x88, 0x8A, 0x90, 0x92, 0x99, 0x9A, 0x9C,
1847 0xC0, 0xC8, 0xCA, 0xD0, 0xD2, 0xD9, 0xDA, 0xDC,
1848 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1849 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1850 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1851 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1852 0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C,
1853 0x10, 0x11, 0x12, 0x14, 0x18, 0x19, 0x1A, 0x1C,
1854 0x20, 0x21, 0x22, 0x24, 0x40, 0x41, 0x42, 0x44,
1855 0x48, 0x49, 0x4A, 0x4C, 0x50, 0x51, 0x52, 0x54,
1856 0x58, 0x59, 0x5A, 0x5C, 0x60, 0x61, 0x62, 0x64,
1857 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1858 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1859 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1860 };
1861
1862 const u32 b43_ntab_noisevar10[] = {
1863 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1864 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1865 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1866 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1867 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1868 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1869 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1870 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1871 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1872 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1873 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1874 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1875 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1876 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1877 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1878 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1879 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1880 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1881 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1882 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1883 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1884 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1885 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1886 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1887 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1888 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1889 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1890 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1891 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1892 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1893 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1894 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1895 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1896 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1897 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1898 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1899 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1900 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1901 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1902 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1903 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1904 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1905 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1906 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1907 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1908 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1909 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1910 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1911 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1912 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1913 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1914 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1915 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1916 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1917 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1918 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1919 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1920 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1921 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1922 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1923 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1924 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1925 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1926 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1927 };
1928
1929 const u32 b43_ntab_noisevar11[] = {
1930 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1931 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1932 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1933 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1934 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1935 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1936 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1937 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1938 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1939 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1940 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1941 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1942 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1943 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1944 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1945 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1946 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1947 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1948 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1949 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1950 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1951 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1952 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1953 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1954 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1955 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1956 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1957 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1958 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1959 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1960 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1961 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1962 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1963 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1964 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1965 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1966 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1967 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1968 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1969 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1970 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1971 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1972 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1973 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1974 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1975 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1976 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1977 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1978 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1979 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1980 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1981 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1982 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1983 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1984 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1985 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1986 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1987 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1988 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1989 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1990 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1991 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1992 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1993 0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1994 };
1995
1996 const u16 b43_ntab_pilot[] = {
1997 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08,
1998 0xFF08, 0xFF08, 0x80D5, 0x80D5, 0x80D5, 0x80D5,
1999 0x80D5, 0x80D5, 0x80D5, 0x80D5, 0xFF0A, 0xFF82,
2000 0xFFA0, 0xFF28, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
2001 0xFF82, 0xFFA0, 0xFF28, 0xFF0A, 0xFFFF, 0xFFFF,
2002 0xFFFF, 0xFFFF, 0xF83F, 0xFA1F, 0xFA97, 0xFAB5,
2003 0xF2BD, 0xF0BF, 0xFFFF, 0xFFFF, 0xF017, 0xF815,
2004 0xF215, 0xF095, 0xF035, 0xF01D, 0xFFFF, 0xFFFF,
2005 0xFF08, 0xFF02, 0xFF80, 0xFF20, 0xFF08, 0xFF02,
2006 0xFF80, 0xFF20, 0xF01F, 0xF817, 0xFA15, 0xF295,
2007 0xF0B5, 0xF03D, 0xFFFF, 0xFFFF, 0xF82A, 0xFA0A,
2008 0xFA82, 0xFAA0, 0xF2A8, 0xF0AA, 0xFFFF, 0xFFFF,
2009 0xF002, 0xF800, 0xF200, 0xF080, 0xF020, 0xF008,
2010 0xFFFF, 0xFFFF, 0xF00A, 0xF802, 0xFA00, 0xF280,
2011 0xF0A0, 0xF028, 0xFFFF, 0xFFFF,
2012 };
2013
2014 const u32 b43_ntab_pilotlt[] = {
2015 0x76540123, 0x62407351, 0x76543201, 0x76540213,
2016 0x76540123, 0x76430521,
2017 };
2018
2019 const u32 b43_ntab_tdi20a0[] = {
2020 0x00091226, 0x000A1429, 0x000B56AD, 0x000C58B0,
2021 0x000D5AB3, 0x000E9CB6, 0x000F9EBA, 0x0000C13D,
2022 0x00020301, 0x00030504, 0x00040708, 0x0005090B,
2023 0x00064B8E, 0x00095291, 0x000A5494, 0x000B9718,
2024 0x000C9927, 0x000D9B2A, 0x000EDD2E, 0x000FDF31,
2025 0x000101B4, 0x000243B7, 0x000345BB, 0x000447BE,
2026 0x00058982, 0x00068C05, 0x00099309, 0x000A950C,
2027 0x000BD78F, 0x000CD992, 0x000DDB96, 0x000F1D99,
2028 0x00005FA8, 0x0001422C, 0x0002842F, 0x00038632,
2029 0x00048835, 0x0005CA38, 0x0006CCBC, 0x0009D3BF,
2030 0x000B1603, 0x000C1806, 0x000D1A0A, 0x000E1C0D,
2031 0x000F5E10, 0x00008093, 0x00018297, 0x0002C49A,
2032 0x0003C680, 0x0004C880, 0x00060B00, 0x00070D00,
2033 0x00000000, 0x00000000, 0x00000000,
2034 };
2035
2036 const u32 b43_ntab_tdi20a1[] = {
2037 0x00014B26, 0x00028D29, 0x000393AD, 0x00049630,
2038 0x0005D833, 0x0006DA36, 0x00099C3A, 0x000A9E3D,
2039 0x000BC081, 0x000CC284, 0x000DC488, 0x000F068B,
2040 0x0000488E, 0x00018B91, 0x0002D214, 0x0003D418,
2041 0x0004D6A7, 0x000618AA, 0x00071AAE, 0x0009DCB1,
2042 0x000B1EB4, 0x000C0137, 0x000D033B, 0x000E053E,
2043 0x000F4702, 0x00008905, 0x00020C09, 0x0003128C,
2044 0x0004148F, 0x00051712, 0x00065916, 0x00091B19,
2045 0x000A1D28, 0x000B5F2C, 0x000C41AF, 0x000D43B2,
2046 0x000E85B5, 0x000F87B8, 0x0000C9BC, 0x00024CBF,
2047 0x00035303, 0x00045506, 0x0005978A, 0x0006998D,
2048 0x00095B90, 0x000A5D93, 0x000B9F97, 0x000C821A,
2049 0x000D8400, 0x000EC600, 0x000FC800, 0x00010A00,
2050 0x00000000, 0x00000000, 0x00000000,
2051 };
2052
2053 const u32 b43_ntab_tdi40a0[] = {
2054 0x0011A346, 0x00136CCF, 0x0014F5D9, 0x001641E2,
2055 0x0017CB6B, 0x00195475, 0x001B2383, 0x001CAD0C,
2056 0x001E7616, 0x0000821F, 0x00020BA8, 0x0003D4B2,
2057 0x00056447, 0x00072DD0, 0x0008B6DA, 0x000A02E3,
2058 0x000B8C6C, 0x000D15F6, 0x0011E484, 0x0013AE0D,
2059 0x00153717, 0x00168320, 0x00180CA9, 0x00199633,
2060 0x001B6548, 0x001CEED1, 0x001EB7DB, 0x0000C3E4,
2061 0x00024D6D, 0x000416F7, 0x0005A585, 0x00076F0F,
2062 0x0008F818, 0x000A4421, 0x000BCDAB, 0x000D9734,
2063 0x00122649, 0x0013EFD2, 0x001578DC, 0x0016C4E5,
2064 0x00184E6E, 0x001A17F8, 0x001BA686, 0x001D3010,
2065 0x001EF999, 0x00010522, 0x00028EAC, 0x00045835,
2066 0x0005E74A, 0x0007B0D3, 0x00093A5D, 0x000A85E6,
2067 0x000C0F6F, 0x000DD8F9, 0x00126787, 0x00143111,
2068 0x0015BA9A, 0x00170623, 0x00188FAD, 0x001A5936,
2069 0x001BE84B, 0x001DB1D4, 0x001F3B5E, 0x000146E7,
2070 0x00031070, 0x000499FA, 0x00062888, 0x0007F212,
2071 0x00097B9B, 0x000AC7A4, 0x000C50AE, 0x000E1A37,
2072 0x0012A94C, 0x001472D5, 0x0015FC5F, 0x00174868,
2073 0x0018D171, 0x001A9AFB, 0x001C2989, 0x001DF313,
2074 0x001F7C9C, 0x000188A5, 0x000351AF, 0x0004DB38,
2075 0x0006AA4D, 0x000833D7, 0x0009BD60, 0x000B0969,
2076 0x000C9273, 0x000E5BFC, 0x00132A8A, 0x0014B414,
2077 0x00163D9D, 0x001789A6, 0x001912B0, 0x001ADC39,
2078 0x001C6BCE, 0x001E34D8, 0x001FBE61, 0x0001CA6A,
2079 0x00039374, 0x00051CFD, 0x0006EC0B, 0x00087515,
2080 0x0009FE9E, 0x000B4AA7, 0x000CD3B1, 0x000E9D3A,
2081 0x00000000, 0x00000000,
2082 };
2083
2084 const u32 b43_ntab_tdi40a1[] = {
2085 0x001EDB36, 0x000129CA, 0x0002B353, 0x00047CDD,
2086 0x0005C8E6, 0x000791EF, 0x00091BF9, 0x000AAA07,
2087 0x000C3391, 0x000DFD1A, 0x00120923, 0x0013D22D,
2088 0x00155C37, 0x0016EACB, 0x00187454, 0x001A3DDE,
2089 0x001B89E7, 0x001D12F0, 0x001F1CFA, 0x00016B88,
2090 0x00033492, 0x0004BE1B, 0x00060A24, 0x0007D32E,
2091 0x00095D38, 0x000AEC4C, 0x000C7555, 0x000E3EDF,
2092 0x00124AE8, 0x001413F1, 0x0015A37B, 0x00172C89,
2093 0x0018B593, 0x001A419C, 0x001BCB25, 0x001D942F,
2094 0x001F63B9, 0x0001AD4D, 0x00037657, 0x0004C260,
2095 0x00068BE9, 0x000814F3, 0x0009A47C, 0x000B2D8A,
2096 0x000CB694, 0x000E429D, 0x00128C26, 0x001455B0,
2097 0x0015E4BA, 0x00176E4E, 0x0018F758, 0x001A8361,
2098 0x001C0CEA, 0x001DD674, 0x001FA57D, 0x0001EE8B,
2099 0x0003B795, 0x0005039E, 0x0006CD27, 0x000856B1,
2100 0x0009E5C6, 0x000B6F4F, 0x000CF859, 0x000E8462,
2101 0x00130DEB, 0x00149775, 0x00162603, 0x0017AF8C,
2102 0x00193896, 0x001AC49F, 0x001C4E28, 0x001E17B2,
2103 0x0000A6C7, 0x00023050, 0x0003F9DA, 0x00054563,
2104 0x00070EEC, 0x00089876, 0x000A2704, 0x000BB08D,
2105 0x000D3A17, 0x001185A0, 0x00134F29, 0x0014D8B3,
2106 0x001667C8, 0x0017F151, 0x00197ADB, 0x001B0664,
2107 0x001C8FED, 0x001E5977, 0x0000E805, 0x0002718F,
2108 0x00043B18, 0x000586A1, 0x0007502B, 0x0008D9B4,
2109 0x000A68C9, 0x000BF252, 0x000DBBDC, 0x0011C7E5,
2110 0x001390EE, 0x00151A78, 0x0016A906, 0x00183290,
2111 0x0019BC19, 0x001B4822, 0x001CD12C, 0x001E9AB5,
2112 0x00000000, 0x00000000,
2113 };
2114
2115 const u32 b43_ntab_tdtrn[] = {
2116 0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
2117 0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
2118 0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
2119 0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
2120 0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
2121 0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
2122 0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
2123 0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
2124 0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
2125 0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
2126 0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
2127 0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
2128 0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
2129 0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
2130 0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
2131 0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
2132 0xFA58FA58, 0xF895043B, 0xFF4C09C0, 0xFBC6FFA8,
2133 0xFB84F384, 0x0798F6F9, 0x05760122, 0x058409F6,
2134 0x0B500000, 0x05B7F542, 0x08860432, 0x06DDFEE7,
2135 0xFB84F384, 0xF9D90664, 0xF7E8025C, 0x00FFF7BD,
2136 0x05A805A8, 0xF7BD00FF, 0x025CF7E8, 0x0664F9D9,
2137 0xF384FB84, 0xFEE706DD, 0x04320886, 0xF54205B7,
2138 0x00000B50, 0x09F60584, 0x01220576, 0xF6F90798,
2139 0xF384FB84, 0xFFA8FBC6, 0x09C0FF4C, 0x043BF895,
2140 0x02D402D4, 0x07DE0270, 0xFC96079C, 0xF90AFE94,
2141 0xFE00FF2C, 0x02D4065D, 0x092A0096, 0x0014FBB8,
2142 0xFD2CFD2C, 0x076AFB3C, 0x0096F752, 0xF991FD87,
2143 0xFB2C0200, 0xFEB8F960, 0x08E0FC96, 0x049802A8,
2144 0xFD2CFD2C, 0x02A80498, 0xFC9608E0, 0xF960FEB8,
2145 0x0200FB2C, 0xFD87F991, 0xF7520096, 0xFB3C076A,
2146 0xFD2CFD2C, 0xFBB80014, 0x0096092A, 0x065D02D4,
2147 0xFF2CFE00, 0xFE94F90A, 0x079CFC96, 0x027007DE,
2148 0x02D402D4, 0x027007DE, 0x079CFC96, 0xFE94F90A,
2149 0xFF2CFE00, 0x065D02D4, 0x0096092A, 0xFBB80014,
2150 0xFD2CFD2C, 0xFB3C076A, 0xF7520096, 0xFD87F991,
2151 0x0200FB2C, 0xF960FEB8, 0xFC9608E0, 0x02A80498,
2152 0xFD2CFD2C, 0x049802A8, 0x08E0FC96, 0xFEB8F960,
2153 0xFB2C0200, 0xF991FD87, 0x0096F752, 0x076AFB3C,
2154 0xFD2CFD2C, 0x0014FBB8, 0x092A0096, 0x02D4065D,
2155 0xFE00FF2C, 0xF90AFE94, 0xFC96079C, 0x07DE0270,
2156 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2157 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2158 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2159 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2160 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2161 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2162 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2163 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2164 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2165 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2166 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2167 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2168 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2169 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2170 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2171 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2172 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2173 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2174 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2175 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2176 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2177 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2178 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2179 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2180 0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
2181 0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
2182 0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
2183 0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
2184 0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
2185 0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
2186 0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
2187 0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
2188 0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
2189 0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
2190 0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
2191 0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
2192 0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
2193 0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
2194 0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
2195 0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
2196 0x061C061C, 0xFF30009D, 0xFFB21141, 0xFD87FB54,
2197 0xF65DFE59, 0x02EEF99E, 0x0166F03C, 0xFFF809B6,
2198 0x000008A4, 0x000AF42B, 0x00EFF577, 0xFA840BF2,
2199 0xFC02FF51, 0x08260F67, 0xFFF0036F, 0x0842F9C3,
2200 0x00000000, 0x063DF7BE, 0xFC910010, 0xF099F7DA,
2201 0x00AF03FE, 0xF40E057C, 0x0A89FF11, 0x0BD5FFF6,
2202 0xF75C0000, 0xF64A0008, 0x0FC4FE9A, 0x0662FD12,
2203 0x01A709A3, 0x04AC0279, 0xEEBF004E, 0xFF6300D0,
2204 0xF9E4F9E4, 0x00D0FF63, 0x004EEEBF, 0x027904AC,
2205 0x09A301A7, 0xFD120662, 0xFE9A0FC4, 0x0008F64A,
2206 0x0000F75C, 0xFFF60BD5, 0xFF110A89, 0x057CF40E,
2207 0x03FE00AF, 0xF7DAF099, 0x0010FC91, 0xF7BE063D,
2208 0x00000000, 0xF9C30842, 0x036FFFF0, 0x0F670826,
2209 0xFF51FC02, 0x0BF2FA84, 0xF57700EF, 0xF42B000A,
2210 0x08A40000, 0x09B6FFF8, 0xF03C0166, 0xF99E02EE,
2211 0xFE59F65D, 0xFB54FD87, 0x1141FFB2, 0x009DFF30,
2212 0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
2213 0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
2214 0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
2215 0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
2216 0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
2217 0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
2218 0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
2219 0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
2220 0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
2221 0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
2222 0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
2223 0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
2224 0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
2225 0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
2226 0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
2227 0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
2228 0xFA58FA58, 0xF8F0FE00, 0x0448073D, 0xFDC9FE46,
2229 0xF9910258, 0x089D0407, 0xFD5CF71A, 0x02AFFDE0,
2230 0x083E0496, 0xFF5A0740, 0xFF7AFD97, 0x00FE01F1,
2231 0x0009082E, 0xFA94FF75, 0xFECDF8EA, 0xFFB0F693,
2232 0xFD2CFA58, 0x0433FF16, 0xFBA405DD, 0xFA610341,
2233 0x06A606CB, 0x0039FD2D, 0x0677FA97, 0x01FA05E0,
2234 0xF896003E, 0x075A068B, 0x012CFC3E, 0xFA23F98D,
2235 0xFC7CFD43, 0xFF90FC0D, 0x01C10982, 0x00C601D6,
2236 0xFD2CFD2C, 0x01D600C6, 0x098201C1, 0xFC0DFF90,
2237 0xFD43FC7C, 0xF98DFA23, 0xFC3E012C, 0x068B075A,
2238 0x003EF896, 0x05E001FA, 0xFA970677, 0xFD2D0039,
2239 0x06CB06A6, 0x0341FA61, 0x05DDFBA4, 0xFF160433,
2240 0xFA58FD2C, 0xF693FFB0, 0xF8EAFECD, 0xFF75FA94,
2241 0x082E0009, 0x01F100FE, 0xFD97FF7A, 0x0740FF5A,
2242 0x0496083E, 0xFDE002AF, 0xF71AFD5C, 0x0407089D,
2243 0x0258F991, 0xFE46FDC9, 0x073D0448, 0xFE00F8F0,
2244 0xFD2CFD2C, 0xFCE00500, 0xFC09FDDC, 0xFE680157,
2245 0x04C70571, 0xFC3AFF21, 0xFCD70228, 0x056D0277,
2246 0x0200FE00, 0x0022F927, 0xFE3C032B, 0xFC44FF3C,
2247 0x03E9FBDB, 0x04570313, 0x04C9FF5C, 0x000D03B8,
2248 0xFA580000, 0xFBE900D2, 0xF9D0FE0B, 0x0125FDF9,
2249 0x042501BF, 0x0328FA2B, 0xFFA902F0, 0xFA250157,
2250 0x0200FE00, 0x03740438, 0xFF0405FD, 0x030CFE52,
2251 0x0037FB39, 0xFF6904C5, 0x04F8FD23, 0xFD31FC1B,
2252 0xFD2CFD2C, 0xFC1BFD31, 0xFD2304F8, 0x04C5FF69,
2253 0xFB390037, 0xFE52030C, 0x05FDFF04, 0x04380374,
2254 0xFE000200, 0x0157FA25, 0x02F0FFA9, 0xFA2B0328,
2255 0x01BF0425, 0xFDF90125, 0xFE0BF9D0, 0x00D2FBE9,
2256 0x0000FA58, 0x03B8000D, 0xFF5C04C9, 0x03130457,
2257 0xFBDB03E9, 0xFF3CFC44, 0x032BFE3C, 0xF9270022,
2258 0xFE000200, 0x0277056D, 0x0228FCD7, 0xFF21FC3A,
2259 0x057104C7, 0x0157FE68, 0xFDDCFC09, 0x0500FCE0,
2260 0xFD2CFD2C, 0x0500FCE0, 0xFDDCFC09, 0x0157FE68,
2261 0x057104C7, 0xFF21FC3A, 0x0228FCD7, 0x0277056D,
2262 0xFE000200, 0xF9270022, 0x032BFE3C, 0xFF3CFC44,
2263 0xFBDB03E9, 0x03130457, 0xFF5C04C9, 0x03B8000D,
2264 0x0000FA58, 0x00D2FBE9, 0xFE0BF9D0, 0xFDF90125,
2265 0x01BF0425, 0xFA2B0328, 0x02F0FFA9, 0x0157FA25,
2266 0xFE000200, 0x04380374, 0x05FDFF04, 0xFE52030C,
2267 0xFB390037, 0x04C5FF69, 0xFD2304F8, 0xFC1BFD31,
2268 0xFD2CFD2C, 0xFD31FC1B, 0x04F8FD23, 0xFF6904C5,
2269 0x0037FB39, 0x030CFE52, 0xFF0405FD, 0x03740438,
2270 0x0200FE00, 0xFA250157, 0xFFA902F0, 0x0328FA2B,
2271 0x042501BF, 0x0125FDF9, 0xF9D0FE0B, 0xFBE900D2,
2272 0xFA580000, 0x000D03B8, 0x04C9FF5C, 0x04570313,
2273 0x03E9FBDB, 0xFC44FF3C, 0xFE3C032B, 0x0022F927,
2274 0x0200FE00, 0x056D0277, 0xFCD70228, 0xFC3AFF21,
2275 0x04C70571, 0xFE680157, 0xFC09FDDC, 0xFCE00500,
2276 0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
2277 0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
2278 0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
2279 0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
2280 0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
2281 0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
2282 0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
2283 0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
2284 0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
2285 0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
2286 0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
2287 0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
2288 0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
2289 0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
2290 0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
2291 0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
2292 };
2293
2294 const u32 b43_ntab_tmap[] = {
2295 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2296 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2297 0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
2298 0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
2299 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x000AA888,
2300 0x88880000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2301 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2302 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2303 0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
2304 0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
2305 0xF1111110, 0x11111111, 0x11F11111, 0x00011111,
2306 0x11110000, 0x1111F111, 0x11111111, 0x111111F1,
2307 0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00088AAA,
2308 0xAAAA0000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
2309 0xAAA8AAA0, 0x8AAA8AAA, 0xAA8A8A8A, 0x000AAA88,
2310 0x8AAA0000, 0xAAA8A888, 0x8AA88A8A, 0x8A88A888,
2311 0x08080A00, 0x0A08080A, 0x080A0A08, 0x00080808,
2312 0x080A0000, 0x080A0808, 0x080A0808, 0x0A0A0A08,
2313 0xA0A0A0A0, 0x80A0A080, 0x8080A0A0, 0x00008080,
2314 0x80A00000, 0x80A080A0, 0xA080A0A0, 0x8080A0A0,
2315 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2316 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2317 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2318 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2319 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2320 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2321 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2322 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2323 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2324 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2325 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2326 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2327 0x99999000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
2328 0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
2329 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2330 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
2331 0x22000000, 0x2222B222, 0x22222222, 0x222222B2,
2332 0xB2222220, 0x22222222, 0x22D22222, 0x00000222,
2333 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2334 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2335 0x33000000, 0x3333B333, 0x33333333, 0x333333B3,
2336 0xB3333330, 0x33333333, 0x33D33333, 0x00000333,
2337 0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
2338 0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
2339 0x99B99B00, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
2340 0x9B99BB99, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
2341 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2342 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
2343 0x22222200, 0x2222F222, 0x22222222, 0x222222F2,
2344 0x22222222, 0x22222222, 0x22F22222, 0x00000222,
2345 0x11000000, 0x1111F111, 0x11111111, 0x11111111,
2346 0xF1111111, 0x11111111, 0x11F11111, 0x01111111,
2347 0xBB9BB900, 0xB9B9BB99, 0xB99BBBBB, 0xBBBB9B9B,
2348 0xB9BB99BB, 0xB99999B9, 0xB9B9B99B, 0x00000BBB,
2349 0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
2350 0xA8AA88AA, 0xA88888A8, 0xA8A8A88A, 0x0A888AAA,
2351 0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
2352 0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00000AAA,
2353 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2354 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2355 0xBBBBBB00, 0x999BBBBB, 0x9BB99B9B, 0xB9B9B9BB,
2356 0xB9B99BBB, 0xB9B9B9BB, 0xB9BB9B99, 0x00000999,
2357 0x8A000000, 0xAA88A888, 0xA88888AA, 0xA88A8A88,
2358 0xA88AA88A, 0x88A8AAAA, 0xA8AA8AAA, 0x0888A88A,
2359 0x0B0B0B00, 0x090B0B0B, 0x0B090B0B, 0x0909090B,
2360 0x09090B0B, 0x09090B0B, 0x09090B09, 0x00000909,
2361 0x0A000000, 0x0A080808, 0x080A080A, 0x080A0A08,
2362 0x080A080A, 0x0808080A, 0x0A0A0A08, 0x0808080A,
2363 0xB0B0B000, 0x9090B0B0, 0x90B09090, 0xB0B0B090,
2364 0xB0B090B0, 0x90B0B0B0, 0xB0B09090, 0x00000090,
2365 0x80000000, 0xA080A080, 0xA08080A0, 0xA0808080,
2366 0xA080A080, 0x80A0A0A0, 0xA0A080A0, 0x00A0A0A0,
2367 0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
2368 0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
2369 0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
2370 0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
2371 0x33000000, 0x3333F333, 0x33333333, 0x333333F3,
2372 0xF3333330, 0x33333333, 0x33F33333, 0x00000333,
2373 0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
2374 0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
2375 0x99000000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
2376 0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
2377 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2378 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2379 0x88888000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2380 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2381 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2382 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
2383 0x88A88A00, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2384 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2385 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2386 0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
2387 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2388 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2389 0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2390 0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2391 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2392 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2393 0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2394 0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2395 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2396 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2397 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2398 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2399 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2400 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2401 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2402 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2403 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2404 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2405 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2406 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2407 };
2408
2409 static inline void assert_ntab_array_sizes(void)
2410 {
2411 #undef check
2412 #define check(table, size) \
2413 BUILD_BUG_ON(ARRAY_SIZE(b43_ntab_##table) != B43_NTAB_##size##_SIZE)
2414
2415 check(adjustpower0, C0_ADJPLT);
2416 check(adjustpower1, C1_ADJPLT);
2417 check(bdi, BDI);
2418 check(channelest, CHANEST);
2419 check(estimatepowerlt0, C0_ESTPLT);
2420 check(estimatepowerlt1, C1_ESTPLT);
2421 check(framelookup, FRAMELT);
2422 check(framestruct, FRAMESTRUCT);
2423 check(gainctl0, C0_GAINCTL);
2424 check(gainctl1, C1_GAINCTL);
2425 check(intlevel, INTLEVEL);
2426 check(iqlt0, C0_IQLT);
2427 check(iqlt1, C1_IQLT);
2428 check(loftlt0, C0_LOFEEDTH);
2429 check(loftlt1, C1_LOFEEDTH);
2430 check(mcs, MCS);
2431 check(noisevar10, NOISEVAR10);
2432 check(noisevar11, NOISEVAR11);
2433 check(pilot, PILOT);
2434 check(pilotlt, PILOTLT);
2435 check(tdi20a0, TDI20A0);
2436 check(tdi20a1, TDI20A1);
2437 check(tdi40a0, TDI40A0);
2438 check(tdi40a1, TDI40A1);
2439 check(tdtrn, TDTRN);
2440 check(tmap, TMAP);
2441
2442 #undef check
2443 }
2444
2445 void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value)
2446 {
2447 u32 type;
2448
2449 type = offset & B43_NTAB_TYPEMASK;
2450 offset &= 0xFFFF;
2451
2452 switch (type) {
2453 case B43_NTAB_8BIT:
2454 B43_WARN_ON(value & ~0xFF);
2455 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2456 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
2457 break;
2458 case B43_NTAB_16BIT:
2459 B43_WARN_ON(value & ~0xFFFF);
2460 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2461 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
2462 break;
2463 case B43_NTAB_32BIT:
2464 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2465 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
2466 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF);
2467 break;
2468 default:
2469 B43_WARN_ON(1);
2470 }
2471
2472 return;
2473
2474 /* Some compiletime assertions... */
2475 assert_ntab_array_sizes();
2476 }