staging: brcm80211: fix "ERROR: need consistent spacing around '*'"
[deliverable/linux.git] / drivers / staging / brcm80211 / phy / wlc_phy_n.c
CommitLineData
a9533e7e
HP
1/*
2 * Copyright (c) 2010 Broadcom Corporation
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17#include <wlc_cfg.h>
18#include <osl.h>
19#include <siutils.h>
20#include <sbchipc.h>
21#include <bitfuncs.h>
22#include <hndpmu.h>
23#include <bcmendian.h>
24
25#include <wlc_phy_radio.h>
26#include <wlc_phy_int.h>
27#include <wlc_phyreg_n.h>
28#include <wlc_phytbl_n.h>
29
30#define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
31 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
32 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1))
33#define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
34 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
35 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1), value);
36#define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
37 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value);
38
39#define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
40 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
41 radio_type##_##jspace##1##_##reg_name));
42#define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
43 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
44 radio_type##_##jspace##1##_##reg_name), value);
45#define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
46 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
47 radio_type##_##reg_name##_##jspace##1));
48#define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
49 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
50 radio_type##_##reg_name##_##jspace##1), value);
51
52#define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
53#define NPHY_ACI_CHANNEL_DELTA 5
54#define NPHY_ACI_CHANNEL_SKIP 4
55#define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
56#define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
57#define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
58#define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
59#define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
60#define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
61
62#define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
63
64#define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
65
66#define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
67
68#define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
69
70#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
71
72#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
73
74#define NPHY_NOISE_NOASSOC_ENTER_TH 400
75
76#define NPHY_NOISE_ASSOC_ENTER_TH 400
77
78#define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
79
80#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
81#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
82
83#define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
84
85#define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
86
87#define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
88
89#define NPHY_RSSICAL_MAXREAD 31
90
91#define NPHY_RSSICAL_NPOLL 8
92#define NPHY_RSSICAL_MAXD (1<<20)
93#define NPHY_MIN_RXIQ_PWR 2
94
95#define NPHY_RSSICAL_W1_TARGET 25
96#define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
97#define NPHY_RSSICAL_NB_TARGET 0
98
99#define NPHY_RSSICAL_W1_TARGET_REV3 29
100#define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
101
102#define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
103#define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
104#define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
105#define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - NPHY_RSSICAL_MAXREAD)
106#define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
107#define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - NPHY_RSSICAL_MAXREAD)
108#define NPHY_RSSI_SXT(x) ((int8) (-((x) & 0x20) + ((x) & 0x1f)))
109#define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
110 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
111#define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
112 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
113#define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
114 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
115
116#define NPHY_IQCAL_NUMGAINS 9
117#define NPHY_N_GCTL 0x66
118
119#define NPHY_PAPD_EPS_TBL_SIZE 64
120#define NPHY_PAPD_SCL_TBL_SIZE 64
121#define NPHY_NUM_DIG_FILT_COEFFS 15
122
123#define NPHY_PAPD_COMP_OFF 0
124#define NPHY_PAPD_COMP_ON 1
125
126#define NPHY_SROM_TEMPSHIFT 32
127#define NPHY_SROM_MAXTEMPOFFSET 16
128#define NPHY_SROM_MINTEMPOFFSET -16
129
130#define NPHY_CAL_MAXTEMPDELTA 64
131
132#define NPHY_NOISEVAR_TBLLEN40 256
133#define NPHY_NOISEVAR_TBLLEN20 128
134
135#define NPHY_ANARXLPFBW_REDUCTIONFACT 7
136
137#define NPHY_ADJUSTED_MINCRSPOWER 0x1e
138
139typedef struct _nphy_iqcal_params {
140 uint16 txlpf;
141 uint16 txgm;
142 uint16 pga;
143 uint16 pad;
144 uint16 ipa;
145 uint16 cal_gain;
146 uint16 ncorr[5];
147} nphy_iqcal_params_t;
148
149typedef struct _nphy_txiqcal_ladder {
150 uint8 percent;
151 uint8 g_env;
152} nphy_txiqcal_ladder_t;
153
154typedef struct {
155 nphy_txgains_t gains;
156 bool useindex;
157 uint8 index;
158} nphy_ipa_txcalgains_t;
159
160typedef struct nphy_papd_restore_state_t {
161 uint16 fbmix[2];
162 uint16 vga_master[2];
163 uint16 intpa_master[2];
164 uint16 afectrl[2];
165 uint16 afeoverride[2];
166 uint16 pwrup[2];
167 uint16 atten[2];
168 uint16 mm;
169} nphy_papd_restore_state;
170
171typedef struct _nphy_ipa_txrxgain {
172 uint16 hpvga;
173 uint16 lpf_biq1;
174 uint16 lpf_biq0;
175 uint16 lna2;
176 uint16 lna1;
177 int8 txpwrindex;
178} nphy_ipa_txrxgain_t;
179
180#define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
181
182nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz[] = { {0, 0, 0, 0, 0, 100},
183{0, 0, 0, 0, 0, 50},
184{0, 0, 0, 0, 0, -1},
185{0, 0, 0, 3, 0, -1},
186{0, 0, 3, 3, 0, -1},
187{0, 2, 3, 3, 0, -1}
188};
189
190nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz[] = { {0, 0, 0, 0, 0, 128},
191{0, 0, 0, 0, 0, 70},
192{0, 0, 0, 0, 0, 20},
193{0, 0, 0, 3, 0, 20},
194{0, 0, 3, 3, 0, 20},
195{0, 2, 3, 3, 0, 20}
196};
197
198nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = { {0, 0, 0, 0, 0, 100},
199{0, 0, 0, 0, 0, 50},
200{0, 0, 0, 0, 0, -1},
201{0, 0, 0, 3, 0, -1},
202{0, 0, 3, 3, 0, -1},
203{0, 0, 5, 3, 0, -1}
204};
205
206nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = { {0, 0, 0, 0, 0, 10},
207{0, 0, 0, 1, 0, 10},
208{0, 0, 1, 2, 0, 10},
209{0, 0, 1, 3, 0, 10},
210{0, 0, 4, 3, 0, 10},
211{0, 0, 6, 3, 0, 10}
212};
213
214#define NPHY_RXCAL_TONEAMP 181
215#define NPHY_RXCAL_TONEFREQ_40MHz 4000
216#define NPHY_RXCAL_TONEFREQ_20MHz 2000
217
218enum {
219 NPHY_RXCAL_GAIN_INIT = 0,
220 NPHY_RXCAL_GAIN_UP,
221 NPHY_RXCAL_GAIN_DOWN
222};
223
224#define wlc_phy_get_papd_nphy(pi) \
225 (read_phy_reg((pi), 0x1e7) & \
226 ((0x1 << 15) | \
227 (0x1 << 14) | \
228 (0x1 << 13)))
229
230#define TXFILT_SHAPING_OFDM20 0
231#define TXFILT_SHAPING_OFDM40 1
232#define TXFILT_SHAPING_CCK 2
233#define TXFILT_DEFAULT_OFDM20 3
234#define TXFILT_DEFAULT_OFDM40 4
235
236uint16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
237 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
238 230, -44, 230, 201, -191, 201},
239 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
240 26, 34, -32, 34},
241 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
242 121, -73, 121, 91, 124, 91},
243 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
244 151, 301, 151, 602, -752, 602},
245 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
246 12, 25, 12, 13, 27, 13},
247 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
248 230, -44, 230, 201, -191, 201},
249 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
250 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
251};
252
253typedef struct _chan_info_nphy_2055 {
254 uint16 chan;
255 uint16 freq;
256 uint unknown;
257 uint8 RF_pll_ref;
258 uint8 RF_rf_pll_mod1;
259 uint8 RF_rf_pll_mod0;
260 uint8 RF_vco_cap_tail;
261 uint8 RF_vco_cal1;
262 uint8 RF_vco_cal2;
263 uint8 RF_pll_lf_c1;
264 uint8 RF_pll_lf_r1;
265 uint8 RF_pll_lf_c2;
266 uint8 RF_lgbuf_cen_buf;
267 uint8 RF_lgen_tune1;
268 uint8 RF_lgen_tune2;
269 uint8 RF_core1_lgbuf_a_tune;
270 uint8 RF_core1_lgbuf_g_tune;
271 uint8 RF_core1_rxrf_reg1;
272 uint8 RF_core1_tx_pga_pad_tn;
273 uint8 RF_core1_tx_mx_bgtrim;
274 uint8 RF_core2_lgbuf_a_tune;
275 uint8 RF_core2_lgbuf_g_tune;
276 uint8 RF_core2_rxrf_reg1;
277 uint8 RF_core2_tx_pga_pad_tn;
278 uint8 RF_core2_tx_mx_bgtrim;
279 uint16 PHY_BW1a;
280 uint16 PHY_BW2;
281 uint16 PHY_BW3;
282 uint16 PHY_BW4;
283 uint16 PHY_BW5;
284 uint16 PHY_BW6;
285} chan_info_nphy_2055_t;
286
287typedef struct _chan_info_nphy_radio205x {
288 uint16 chan;
289 uint16 freq;
290 uint8 RF_SYN_pll_vcocal1;
291 uint8 RF_SYN_pll_vcocal2;
292 uint8 RF_SYN_pll_refdiv;
293 uint8 RF_SYN_pll_mmd2;
294 uint8 RF_SYN_pll_mmd1;
295 uint8 RF_SYN_pll_loopfilter1;
296 uint8 RF_SYN_pll_loopfilter2;
297 uint8 RF_SYN_pll_loopfilter3;
298 uint8 RF_SYN_pll_loopfilter4;
299 uint8 RF_SYN_pll_loopfilter5;
300 uint8 RF_SYN_reserved_addr27;
301 uint8 RF_SYN_reserved_addr28;
302 uint8 RF_SYN_reserved_addr29;
303 uint8 RF_SYN_logen_VCOBUF1;
304 uint8 RF_SYN_logen_MIXER2;
305 uint8 RF_SYN_logen_BUF3;
306 uint8 RF_SYN_logen_BUF4;
307 uint8 RF_RX0_lnaa_tune;
308 uint8 RF_RX0_lnag_tune;
309 uint8 RF_TX0_intpaa_boost_tune;
310 uint8 RF_TX0_intpag_boost_tune;
311 uint8 RF_TX0_pada_boost_tune;
312 uint8 RF_TX0_padg_boost_tune;
313 uint8 RF_TX0_pgaa_boost_tune;
314 uint8 RF_TX0_pgag_boost_tune;
315 uint8 RF_TX0_mixa_boost_tune;
316 uint8 RF_TX0_mixg_boost_tune;
317 uint8 RF_RX1_lnaa_tune;
318 uint8 RF_RX1_lnag_tune;
319 uint8 RF_TX1_intpaa_boost_tune;
320 uint8 RF_TX1_intpag_boost_tune;
321 uint8 RF_TX1_pada_boost_tune;
322 uint8 RF_TX1_padg_boost_tune;
323 uint8 RF_TX1_pgaa_boost_tune;
324 uint8 RF_TX1_pgag_boost_tune;
325 uint8 RF_TX1_mixa_boost_tune;
326 uint8 RF_TX1_mixg_boost_tune;
327 uint16 PHY_BW1a;
328 uint16 PHY_BW2;
329 uint16 PHY_BW3;
330 uint16 PHY_BW4;
331 uint16 PHY_BW5;
332 uint16 PHY_BW6;
333} chan_info_nphy_radio205x_t;
334
335typedef struct _chan_info_nphy_radio2057 {
336 uint16 chan;
337 uint16 freq;
338 uint8 RF_vcocal_countval0;
339 uint8 RF_vcocal_countval1;
340 uint8 RF_rfpll_refmaster_sparextalsize;
341 uint8 RF_rfpll_loopfilter_r1;
342 uint8 RF_rfpll_loopfilter_c2;
343 uint8 RF_rfpll_loopfilter_c1;
344 uint8 RF_cp_kpd_idac;
345 uint8 RF_rfpll_mmd0;
346 uint8 RF_rfpll_mmd1;
347 uint8 RF_vcobuf_tune;
348 uint8 RF_logen_mx2g_tune;
349 uint8 RF_logen_mx5g_tune;
350 uint8 RF_logen_indbuf2g_tune;
351 uint8 RF_logen_indbuf5g_tune;
352 uint8 RF_txmix2g_tune_boost_pu_core0;
353 uint8 RF_pad2g_tune_pus_core0;
354 uint8 RF_pga_boost_tune_core0;
355 uint8 RF_txmix5g_boost_tune_core0;
356 uint8 RF_pad5g_tune_misc_pus_core0;
357 uint8 RF_lna2g_tune_core0;
358 uint8 RF_lna5g_tune_core0;
359 uint8 RF_txmix2g_tune_boost_pu_core1;
360 uint8 RF_pad2g_tune_pus_core1;
361 uint8 RF_pga_boost_tune_core1;
362 uint8 RF_txmix5g_boost_tune_core1;
363 uint8 RF_pad5g_tune_misc_pus_core1;
364 uint8 RF_lna2g_tune_core1;
365 uint8 RF_lna5g_tune_core1;
366 uint16 PHY_BW1a;
367 uint16 PHY_BW2;
368 uint16 PHY_BW3;
369 uint16 PHY_BW4;
370 uint16 PHY_BW5;
371 uint16 PHY_BW6;
372} chan_info_nphy_radio2057_t;
373
374typedef struct _chan_info_nphy_radio2057_rev5 {
375 uint16 chan;
376 uint16 freq;
377 uint8 RF_vcocal_countval0;
378 uint8 RF_vcocal_countval1;
379 uint8 RF_rfpll_refmaster_sparextalsize;
380 uint8 RF_rfpll_loopfilter_r1;
381 uint8 RF_rfpll_loopfilter_c2;
382 uint8 RF_rfpll_loopfilter_c1;
383 uint8 RF_cp_kpd_idac;
384 uint8 RF_rfpll_mmd0;
385 uint8 RF_rfpll_mmd1;
386 uint8 RF_vcobuf_tune;
387 uint8 RF_logen_mx2g_tune;
388 uint8 RF_logen_indbuf2g_tune;
389 uint8 RF_txmix2g_tune_boost_pu_core0;
390 uint8 RF_pad2g_tune_pus_core0;
391 uint8 RF_lna2g_tune_core0;
392 uint8 RF_txmix2g_tune_boost_pu_core1;
393 uint8 RF_pad2g_tune_pus_core1;
394 uint8 RF_lna2g_tune_core1;
395 uint16 PHY_BW1a;
396 uint16 PHY_BW2;
397 uint16 PHY_BW3;
398 uint16 PHY_BW4;
399 uint16 PHY_BW5;
400 uint16 PHY_BW6;
401} chan_info_nphy_radio2057_rev5_t;
402
403typedef struct nphy_sfo_cfg {
404 uint16 PHY_BW1a;
405 uint16 PHY_BW2;
406 uint16 PHY_BW3;
407 uint16 PHY_BW4;
408 uint16 PHY_BW5;
409 uint16 PHY_BW6;
410} nphy_sfo_cfg_t;
411
412static chan_info_nphy_2055_t chan_info_nphy_2055[] = {
413 {
414 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
415 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
416 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
417 {
418 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
419 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
420 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
421 {
422 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
423 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
424 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
425 {
426 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
427 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
428 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
429 {
430 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
431 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
432 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
433 {
434 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
435 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
436 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
437 {
438 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
439 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
440 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
441 {
442 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
443 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
444 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
445 {
446 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
447 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
448 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
449 {
450 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
451 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
452 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
453 {
454 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
455 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
456 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
457 {
458 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
459 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
460 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
461 {
462 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
463 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
464 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
465 {
466 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
467 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
468 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
469 {
470 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
471 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
472 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
473 {
474 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
475 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
476 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
477 {
478 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
479 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
480 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
481 {
482 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
483 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
484 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
485 {
486 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
487 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
488 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
489 {
490 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
491 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
492 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
493 {
494 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
495 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
496 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
497 {
498 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
499 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
500 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
501 {
502 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
503 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
504 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
505 {
506 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
507 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
508 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
509 {
510 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
511 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
512 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
513 {
514 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
515 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
516 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
517 {
518 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
519 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
520 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
521 {
522 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
523 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
524 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
525 {
526 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
527 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
528 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
529 {
530 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
531 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
532 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
533 {
534 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
535 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
536 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
537 {
538 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
539 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
540 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
541 {
542 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
543 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
544 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
545 {
546 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
547 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
548 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
549 {
550 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
551 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
552 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
553 {
554 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
555 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
556 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
557 {
558 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
559 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
560 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
561 {
562 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
563 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
564 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
565 {
566 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
567 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
568 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
569 {
570 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
571 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
572 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
573 {
574 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
575 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
576 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
577 {
578 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
579 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
580 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
581 {
582 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
583 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
584 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
585 {
586 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
587 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
588 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
589 {
590 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
591 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
592 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
593 {
594 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
595 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
596 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
597 {
598 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
599 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
600 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
601 {
602 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
603 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
604 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
605 {
606 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
607 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
608 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
609 {
610 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
611 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
612 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
613 {
614 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
615 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
616 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
617 {
618 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
619 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
620 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
621 {
622 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
623 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
624 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
625 {
626 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
627 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
628 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
629 {
630 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
631 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
632 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
633 {
634 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
635 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
636 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
637 {
638 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
639 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
640 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
641 {
642 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
643 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
644 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
645 {
646 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
647 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
648 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
649 {
650 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
651 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
652 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
653 {
654 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
655 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
656 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
657 {
658 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
659 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
660 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
661 {
662 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
663 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
664 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
665 {
666 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
667 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
668 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
669 {
670 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
671 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
672 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
673 {
674 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
675 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
676 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
677 {
678 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
679 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
680 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
681 {
682 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
683 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
684 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
685 {
686 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
687 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
688 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
689 {
690 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
691 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
692 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
693 {
694 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
695 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
696 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
697 {
698 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
699 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
700 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
701 {
702 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
703 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
704 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
705 {
706 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
707 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
708 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
709 {
710 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
711 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
712 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
713 {
714 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
715 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
716 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
717 {
718 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
719 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
720 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
721 {
722 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
723 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
724 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
725 {
726 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
727 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
728 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
729 {
730 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
731 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
732 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
733 {
734 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
735 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
736 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
737 {
738 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
739 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
740 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
741 {
742 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
743 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
744 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
745 {
746 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
747 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
748 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
749 {
750 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
751 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
752 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
753 {
754 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
755 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
756 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
757 {
758 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
759 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
760 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
761 {
762 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
763 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
764 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
765 {
766 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
767 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
768 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
769 {
770 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
771 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
772 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
773 {
774 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
775 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
776 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
777 {
778 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
779 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
780 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
781 {
782 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
783 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
784 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
785 {
786 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
787 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
788 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
789 {
790 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
791 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
792 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
793 {
794 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
795 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
796 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
797 {
798 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
799 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
800 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
801 {
802 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
803 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
804 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
805 {
806 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
807 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
808 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
809 {
810 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
811 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
812 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
813 {
814 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
815 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
816 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
817 {
818 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
819 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
820 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
821 {
822 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
823 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
824 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
825 {
826 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
827 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
828 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
829 {
830 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
831 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
832 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
833 {
834 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
835 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
836 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
837 {
838 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
839 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
840 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
841 {
842 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
843 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
844 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
845 {
846 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
847 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
848 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
849 {
850 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
851 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
852 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
853 {
854 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
855 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
856 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
857 {
858 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
859 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
860 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
861 {
862 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
863 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
864 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
865 {
866 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
867 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
868 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
869 {
870 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
871 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
872 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
873 {
874 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
875 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
876 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
877 {
878 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
879 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
880 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
881 {
882 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
883 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
884 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
885 {
886 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
887 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
888 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
889 {
890 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
891 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
892 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
893 {
894 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
895 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
896 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
897 {
898 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
899 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
900 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
901 {
902 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
903 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
904 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
905 {
906 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
907 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
908 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
909};
910
911static chan_info_nphy_radio205x_t chan_info_nphyrev3_2056[] = {
912 {
913 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
914 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
915 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
916 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
917 {
918 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
919 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
920 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
921 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
922 {
923 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
924 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
925 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
926 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
927 {
928 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
929 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
930 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
931 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
932 {
933 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
934 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
935 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
936 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
937 {
938 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
939 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
940 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
941 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
942 {
943 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
944 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
945 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
946 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
947 {
948 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
949 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
950 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
951 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
952 {
953 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
954 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
955 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
956 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
957 {
958 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
959 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
960 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
961 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
962 {
963 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
964 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
965 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
966 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
967 {
968 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
969 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
970 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
971 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
972 {
973 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
974 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
975 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
976 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
977 {
978 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
979 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
980 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
981 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
982 {
983 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
984 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
985 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
986 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
987 {
988 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
989 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
990 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
991 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
992 {
993 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
994 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
995 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
996 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
997 {
998 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
999 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1000 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1001 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1002 {
1003 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1004 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1005 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1006 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1007 {
1008 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1009 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1010 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1011 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1012 {
1013 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1014 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1015 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1016 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1017 {
1018 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1019 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1020 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1021 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1022 {
1023 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1024 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1025 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1026 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1027 {
1028 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1029 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1030 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1031 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1032 {
1033 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1034 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1035 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1036 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1037 {
1038 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1039 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1040 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1041 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1042 {
1043 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1044 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1045 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1046 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1047 {
1048 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1049 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1050 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1051 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1052 {
1053 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1054 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1055 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1056 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1057 {
1058 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1059 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1060 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1061 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1062 {
1063 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1064 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1065 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1066 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1067 {
1068 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1069 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1070 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1071 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1072 {
1073 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1074 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1075 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1076 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1077 {
1078 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1079 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1080 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1081 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1082 {
1083 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1084 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1085 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1086 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1087 {
1088 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1089 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1090 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1091 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1092 {
1093 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1094 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1095 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1096 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1097 {
1098 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1099 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1100 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1101 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1102 {
1103 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1104 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1105 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1106 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1107 {
1108 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1109 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1110 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1111 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1112 {
1113 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1114 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1115 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1116 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1117 {
1118 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1119 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1120 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1121 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1122 {
1123 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1124 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1125 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1126 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1127 {
1128 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1129 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1130 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1131 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1132 {
1133 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1134 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1135 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1136 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1137 {
1138 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1139 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1140 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1141 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1142 {
1143 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1144 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1145 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1146 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1147 {
1148 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1149 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1150 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1151 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1152 {
1153 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1154 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1155 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1156 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1157 {
1158 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1159 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1160 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1161 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1162 {
1163 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1164 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1165 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1166 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1167 {
1168 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1169 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1170 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1171 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1172 {
1173 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1174 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1175 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1176 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1177 {
1178 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1179 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1180 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1181 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1182 {
1183 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1184 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1185 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1186 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1187 {
1188 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1189 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1190 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1191 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1192 {
1193 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1194 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1195 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1196 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1197 {
1198 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1199 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1200 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1201 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1202 {
1203 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1204 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1205 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1206 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1207 {
1208 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1209 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1210 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1211 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1212 {
1213 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1214 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1215 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1216 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1217 {
1218 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1219 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1220 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1221 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1222 {
1223 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1224 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1225 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1226 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1227 {
1228 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1229 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1230 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1231 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1232 {
1233 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1234 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1235 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1236 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1237 {
1238 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1239 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1240 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1241 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1242 {
1243 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1244 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1245 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1246 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1247 {
1248 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1249 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1250 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1251 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1252 {
1253 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1254 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1255 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1256 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1257 {
1258 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1259 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1260 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1261 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1262 {
1263 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1264 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1265 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1266 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1267 {
1268 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1269 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1270 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1271 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1272 {
1273 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1274 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1275 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1276 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1277 {
1278 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1279 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1280 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1281 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1282 {
1283 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1284 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1285 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1286 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1287 {
1288 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1289 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1290 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1291 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1292 {
1293 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1294 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1295 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1296 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1297 {
1298 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1299 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1300 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1301 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1302 {
1303 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1304 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1305 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1306 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1307 {
1308 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1309 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1310 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1311 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1312 {
1313 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1314 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1315 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1316 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1317 {
1318 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1319 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1320 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1321 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1322 {
1323 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1324 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1325 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1326 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1327 {
1328 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1329 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1330 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1331 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1332 {
1333 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1334 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1335 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1336 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1337 {
1338 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1339 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1340 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1341 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1342 {
1343 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1344 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1345 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1346 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1347 {
1348 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1349 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1350 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1351 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1352 {
1353 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1354 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1355 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1356 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1357 {
1358 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1359 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1360 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1361 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1362 {
1363 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1364 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1365 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1366 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1367 {
1368 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1369 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1370 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1371 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1372 {
1373 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1374 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1375 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1376 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1377 {
1378 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1379 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1380 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1381 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1382 {
1383 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1384 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1385 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1386 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1387 {
1388 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1389 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1390 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1391 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1392 {
1393 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1394 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1395 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1396 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1397 {
1398 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1399 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1400 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1401 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1402 {
1403 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1404 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1405 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1406 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1407 {
1408 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1409 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1410 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1411 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1412 {
1413 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1414 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1415 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1416 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1417 {
1418 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1419 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1420 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1421 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1422 {
1423 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1424 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1425 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1426 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1427 {
1428 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1429 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1430 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1431 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1432 {
1433 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1434 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1435 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1436 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1437 {
1438 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1439 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1440 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1441 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1442 {
1443 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1444 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1445 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1446 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1447 {
1448 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1449 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1450 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1451 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1452 {
1453 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1454 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1455 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1456 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1457 {
1458 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1459 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1460 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1461 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1462 {
1463 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1464 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1465 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1466 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1467 {
1468 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1469 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1470 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1471 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1472 {
1473 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1474 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1475 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1476 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1477 {
1478 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1479 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1480 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1481 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1482 {
1483 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1484 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1485 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1486 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1487 {
1488 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1489 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1490 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1491 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1492 {
1493 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1494 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1495 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1496 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1497 {
1498 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1499 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1500 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1501 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1502 {
1503 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1504 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1505 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1506 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1507 {
1508 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1509 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1510 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1511 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1512 {
1513 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1514 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1515 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1516 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1517 {
1518 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1519 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1520 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1521 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1522 {
1523 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1524 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1525 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1526 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1527 {
1528 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1529 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1530 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1531 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1532};
1533
1534static chan_info_nphy_radio205x_t chan_info_nphyrev4_2056_A1[] = {
1535 {
1536 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1537 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1538 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1539 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1540 {
1541 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1542 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1543 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1544 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1545 {
1546 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1547 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1548 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1549 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1550 {
1551 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1552 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1553 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1554 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1555 {
1556 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1557 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1558 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1559 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1560 {
1561 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1562 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1563 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1564 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1565 {
1566 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1567 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1568 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1569 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1570 {
1571 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1572 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1573 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1574 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1575 {
1576 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1577 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1578 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1579 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1580 {
1581 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1582 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1583 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1584 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1585 {
1586 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1587 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1588 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1589 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1590 {
1591 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1592 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1593 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1594 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1595 {
1596 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1597 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1598 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1599 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1600 {
1601 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1602 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1603 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1604 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1605 {
1606 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1607 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1608 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1609 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1610 {
1611 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1612 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1613 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1614 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1615 {
1616 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1617 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1618 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1619 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1620 {
1621 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1622 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1623 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1624 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1625 {
1626 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1627 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1628 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1629 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1630 {
1631 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1632 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1633 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1634 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1635 {
1636 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1637 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1638 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1639 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1640 {
1641 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1642 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1643 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1644 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1645 {
1646 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1647 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1648 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1649 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1650 {
1651 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1652 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1653 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1654 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1655 {
1656 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1657 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1658 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1659 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1660 {
1661 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1662 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1663 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1664 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1665 {
1666 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1667 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1668 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1669 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1670 {
1671 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1672 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1673 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1674 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1675 {
1676 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1677 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1678 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1679 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1680 {
1681 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1682 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1683 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1684 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1685 {
1686 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1687 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1688 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1689 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1690 {
1691 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1692 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1693 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1694 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1695 {
1696 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1697 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1698 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1699 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1700 {
1701 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1702 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1703 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1704 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1705 {
1706 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1707 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1708 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1709 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1710 {
1711 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1712 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1713 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1714 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1715 {
1716 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1717 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1718 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1719 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1720 {
1721 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1722 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1723 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1724 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1725 {
1726 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1727 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1728 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1729 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1730 {
1731 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1732 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1733 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1734 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1735 {
1736 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1737 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1738 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1739 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1740 {
1741 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1742 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1743 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1744 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1745 {
1746 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1747 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1748 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1749 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1750 {
1751 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1752 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1753 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1754 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1755 {
1756 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1757 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1758 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1759 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1760 {
1761 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1762 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1763 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1764 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1765 {
1766 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1767 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1768 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1769 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1770 {
1771 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1772 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1773 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1774 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1775 {
1776 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1777 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1778 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1779 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1780 {
1781 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1782 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1783 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1784 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1785 {
1786 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1787 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1788 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1789 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1790 {
1791 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1792 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1793 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1794 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1795 {
1796 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1797 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1798 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1799 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1800 {
1801 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1802 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1803 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1804 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1805 {
1806 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1807 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1808 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1809 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1810 {
1811 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1812 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1813 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1814 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1815 {
1816 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1817 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1818 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1819 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1820 {
1821 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1822 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1823 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1824 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1825 {
1826 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1827 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1828 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1829 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1830 {
1831 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1832 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1833 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1834 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1835 {
1836 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1837 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1838 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1839 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1840 {
1841 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1842 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1843 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1844 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1845 {
1846 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1847 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1848 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1849 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1850 {
1851 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1852 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1853 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1854 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1855 {
1856 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1857 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1858 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1859 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1860 {
1861 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1862 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1863 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1864 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1865 {
1866 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1867 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1868 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1869 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1870 {
1871 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1872 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1873 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1874 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1875 {
1876 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1877 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1878 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1879 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1880 {
1881 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1882 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1883 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1884 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1885 {
1886 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1887 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1888 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1889 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1890 {
1891 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1892 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1893 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1894 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1895 {
1896 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1897 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1898 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1899 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1900 {
1901 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1902 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1903 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1904 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1905 {
1906 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1907 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1908 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1909 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1910 {
1911 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1912 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1913 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1914 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1915 {
1916 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1917 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1918 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1919 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1920 {
1921 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1922 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1923 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1924 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1925 {
1926 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1927 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1928 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1929 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1930 {
1931 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1932 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1933 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1934 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1935 {
1936 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1937 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1938 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1939 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1940 {
1941 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1942 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1943 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1944 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1945 {
1946 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1947 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1948 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1949 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1950 {
1951 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1952 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1953 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1954 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1955 {
1956 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1957 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1958 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1959 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1960 {
1961 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1962 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1963 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1964 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1965 {
1966 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1967 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1968 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1969 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1970 {
1971 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1972 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1973 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1974 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1975 {
1976 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1977 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1978 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1979 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1980 {
1981 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1982 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1983 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1984 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1985 {
1986 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1987 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1988 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1989 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1990 {
1991 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1992 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1993 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1994 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1995 {
1996 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1997 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
1998 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1999 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2000 {
2001 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2002 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2003 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2004 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2005 {
2006 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2007 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2008 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2009 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2010 {
2011 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2012 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2013 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2014 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2015 {
2016 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2017 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2018 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2019 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2020 {
2021 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2022 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2023 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2024 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2025 {
2026 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2027 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2028 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2029 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2030 {
2031 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2032 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2033 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2034 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2035 {
2036 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2037 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2038 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2039 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2040 {
2041 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2042 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2043 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2044 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2045 {
2046 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2047 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2048 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2049 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2050 {
2051 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2052 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2053 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2054 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2055 {
2056 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2057 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2058 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2059 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2060 {
2061 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2062 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2063 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2064 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2065 {
2066 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2067 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2068 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2069 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2070 {
2071 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2072 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2073 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2074 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2075 {
2076 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2077 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2078 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2079 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2080 {
2081 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2082 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2083 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2084 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2085 {
2086 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2087 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2088 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2089 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2090 {
2091 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2092 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2093 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2094 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2095 {
2096 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2097 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2098 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2099 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2100 {
2101 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2102 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2103 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2104 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2105 {
2106 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2107 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2108 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2109 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2110 {
2111 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2112 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2113 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2114 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2115 {
2116 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2117 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2118 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2119 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2120 {
2121 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2122 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2123 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2124 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2125 {
2126 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2127 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2128 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2129 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2130 {
2131 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2132 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2133 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2134 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2135 {
2136 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2137 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2138 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2139 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2140 {
2141 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2142 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2143 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2144 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2145 {
2146 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2147 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2148 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2149 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2150 {
2151 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2152 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2153 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2154 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2155};
2156
2157static chan_info_nphy_radio205x_t chan_info_nphyrev5_2056v5[] = {
2158 {
2159 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2160 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2161 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2162 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2163 {
2164 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2165 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2166 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2167 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2168 {
2169 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2170 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2171 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2172 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2173 {
2174 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2175 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2176 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2177 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2178 {
2179 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2180 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2181 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2182 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2183 {
2184 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2185 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2186 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2187 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2188 {
2189 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2190 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2191 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2192 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2193 {
2194 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2195 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2196 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2197 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2198 {
2199 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2200 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2201 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2202 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2203 {
2204 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2205 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2206 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2207 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2208 {
2209 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2210 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2211 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2212 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2213 {
2214 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2215 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2216 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2217 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2218 {
2219 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2220 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2221 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2222 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2223 {
2224 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2225 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2226 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2227 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2228 {
2229 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2230 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2231 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2232 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2233 {
2234 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2235 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2236 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2237 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2238 {
2239 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2240 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2241 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2242 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2243 {
2244 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2245 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2246 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2247 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2248 {
2249 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2250 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2251 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2252 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2253 {
2254 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2255 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2256 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2257 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2258 {
2259 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2260 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2261 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2262 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2263 {
2264 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2265 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2266 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2267 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2268 {
2269 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2270 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2271 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2272 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2273 {
2274 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2275 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2276 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2277 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2278 {
2279 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2280 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2281 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2282 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2283 {
2284 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2285 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2286 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2287 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2288 {
2289 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2290 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2291 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2292 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2293 {
2294 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2295 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2296 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2297 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2298 {
2299 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2300 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2301 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2302 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2303 {
2304 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2305 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2306 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2307 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2308 {
2309 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2310 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2311 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2312 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2313 {
2314 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2315 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2316 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2317 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2318 {
2319 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2320 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2321 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2322 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2323 {
2324 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2325 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2326 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2327 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2328 {
2329 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2330 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2331 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2332 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2333 {
2334 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2335 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2336 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2337 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2338 {
2339 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2340 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2341 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2342 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2343 {
2344 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2345 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2346 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2347 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2348 {
2349 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2350 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2351 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2352 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2353 {
2354 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2355 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2356 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2357 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2358 {
2359 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2360 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2361 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2362 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2363 {
2364 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2365 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2366 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2367 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2368 {
2369 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2370 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2371 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2372 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2373 {
2374 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2375 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2376 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2377 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2378 {
2379 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2380 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2381 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2382 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2383 {
2384 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2385 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2386 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2387 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2388 {
2389 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2390 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2391 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2392 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2393 {
2394 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2395 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2396 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2397 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2398 {
2399 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2400 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2401 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2402 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2403 {
2404 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2405 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2406 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2407 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2408 {
2409 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2410 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2411 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2412 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2413 {
2414 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2415 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2416 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2417 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2418 {
2419 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2420 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2421 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2422 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2423 {
2424 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2425 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2426 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2427 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2428 {
2429 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2430 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2431 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2432 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2433 {
2434 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2435 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2436 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2437 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2438 {
2439 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2440 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2441 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2442 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2443 {
2444 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2445 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2446 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2447 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2448 {
2449 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2450 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2451 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2452 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2453 {
2454 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2455 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2456 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2457 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2458 {
2459 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2460 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2461 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2462 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2463 {
2464 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2465 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2466 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2467 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2468 {
2469 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2470 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2471 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2472 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2473 {
2474 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2475 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2476 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2477 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2478 {
2479 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2480 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2481 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2482 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2483 {
2484 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2485 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2486 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2487 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2488 {
2489 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2490 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2491 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2492 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2493 {
2494 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2495 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2496 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2497 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2498 {
2499 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2500 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2501 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2502 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2503 {
2504 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2505 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2506 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2507 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2508 {
2509 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2510 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2511 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2512 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2513 {
2514 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2515 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2516 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2517 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2518 {
2519 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2520 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2521 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2522 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2523 {
2524 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2525 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2526 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2527 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2528 {
2529 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2530 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2531 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2532 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2533 {
2534 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2535 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2536 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2537 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2538 {
2539 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2540 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2541 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2542 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2543 {
2544 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2545 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2546 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2547 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2548 {
2549 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2550 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2551 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2552 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2553 {
2554 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2555 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2556 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2557 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2558 {
2559 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2560 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2561 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2562 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2563 {
2564 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2565 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2566 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2567 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2568 {
2569 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2570 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2571 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2572 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2573 {
2574 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2575 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2576 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2577 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2578 {
2579 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2580 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2581 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2582 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2583 {
2584 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2585 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2586 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2587 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2588 {
2589 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2590 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2591 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2592 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2593 {
2594 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2595 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2596 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2597 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2598 {
2599 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2600 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2601 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2602 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2603 {
2604 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2605 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2606 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2607 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2608 {
2609 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2610 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2611 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2612 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2613 {
2614 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2615 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2616 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2617 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2618 {
2619 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2620 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2621 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2622 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2623 {
2624 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2625 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2626 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2627 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2628 {
2629 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2630 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2631 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2632 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2633 {
2634 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2635 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2636 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2637 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2638 {
2639 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2640 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2641 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2642 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2643 {
2644 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2645 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2646 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2647 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2648 {
2649 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2650 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2651 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2652 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2653 {
2654 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2655 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2656 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2657 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2658 {
2659 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2660 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2661 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2662 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2663 {
2664 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2665 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2666 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2667 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2668 {
2669 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2670 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2671 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2672 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2673 {
2674 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2675 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2676 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2677 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2678 {
2679 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2680 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2681 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2682 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2683 {
2684 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2685 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2686 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2687 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2688 {
2689 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2690 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2691 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2692 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2693 {
2694 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2695 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2696 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2697 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2698 {
2699 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2700 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2701 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2702 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2703 {
2704 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2705 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2706 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2707 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2708 {
2709 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2710 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2711 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2712 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2713 {
2714 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2715 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2716 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2717 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2718 {
2719 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2720 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2721 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2722 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2723 {
2724 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2725 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2726 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2727 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2728 {
2729 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2730 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2731 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2732 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2733 {
2734 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2735 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2736 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2737 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2738 {
2739 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2740 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2741 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2742 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2743 {
2744 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2745 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2746 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2747 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2748 {
2749 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2750 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2751 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2752 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2753 {
2754 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2755 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2756 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2757 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2758 {
2759 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2760 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2761 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2762 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2763 {
2764 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2765 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2766 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2767 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2768 {
2769 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2770 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2771 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2772 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2773 {
2774 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2775 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2776 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2777 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2778};
2779
2780static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v6[] = {
2781 {
2782 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2783 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2784 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2785 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2786 {
2787 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2788 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2789 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2790 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2791 {
2792 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2793 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2794 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2795 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2796 {
2797 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2798 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2799 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2800 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2801 {
2802 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2803 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2804 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2805 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2806 {
2807 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2808 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2809 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2810 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2811 {
2812 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2813 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2814 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2815 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2816 {
2817 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2818 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2819 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2820 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2821 {
2822 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2823 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2824 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2825 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2826 {
2827 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2828 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2829 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2830 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2831 {
2832 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2833 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2834 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2835 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2836 {
2837 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2838 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2839 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2840 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2841 {
2842 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2843 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2844 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2845 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2846 {
2847 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2848 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2849 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2850 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2851 {
2852 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2853 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2854 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2855 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2856 {
2857 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2858 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2859 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2860 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2861 {
2862 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2863 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2864 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2865 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2866 {
2867 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2868 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2869 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2870 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2871 {
2872 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2873 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2874 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2875 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2876 {
2877 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2878 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2879 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2880 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2881 {
2882 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2883 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2884 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2885 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2886 {
2887 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2888 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2889 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2890 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2891 {
2892 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2893 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2894 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2895 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2896 {
2897 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2898 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2899 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2900 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2901 {
2902 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2903 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2904 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2905 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2906 {
2907 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2908 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2909 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2910 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2911 {
2912 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2913 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2914 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2915 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2916 {
2917 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2918 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2919 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2920 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2921 {
2922 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2923 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2924 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2925 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2926 {
2927 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2928 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2929 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2930 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2931 {
2932 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2933 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2934 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2935 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2936 {
2937 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2938 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2939 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2940 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2941 {
2942 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2943 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2944 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2945 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2946 {
2947 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2948 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2949 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2950 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2951 {
2952 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2953 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2954 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2955 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2956 {
2957 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2958 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2959 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2960 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2961 {
2962 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2963 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2964 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2965 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2966 {
2967 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2968 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2969 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2970 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2971 {
2972 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2973 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2974 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2975 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2976 {
2977 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2978 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
2979 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2980 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2981 {
2982 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2983 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
2984 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2985 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2986 {
2987 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2988 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2989 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2990 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2991 {
2992 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2993 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2994 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2995 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2996 {
2997 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2998 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
2999 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3000 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3001 {
3002 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3003 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3004 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3005 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3006 {
3007 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3008 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3009 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3010 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3011 {
3012 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3013 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3014 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3015 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3016 {
3017 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3018 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3019 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3020 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3021 {
3022 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3023 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3024 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3025 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3026 {
3027 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3028 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3029 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3030 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3031 {
3032 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3033 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3034 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3035 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3036 {
3037 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3038 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3039 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3040 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3041 {
3042 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3043 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3044 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3045 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3046 {
3047 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3048 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3049 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3050 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3051 {
3052 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3053 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3054 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3055 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3056 {
3057 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3058 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3059 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3060 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3061 {
3062 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3063 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3064 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3065 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3066 {
3067 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3068 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3069 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3070 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3071 {
3072 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3073 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3074 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3075 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3076 {
3077 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3078 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3079 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3080 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3081 {
3082 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3083 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3084 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3085 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3086 {
3087 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3088 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3089 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3090 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3091 {
3092 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3093 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3094 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3095 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3096 {
3097 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3098 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3099 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3100 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3101 {
3102 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3103 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3104 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3105 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3106 {
3107 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3108 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3109 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3110 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3111 {
3112 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3113 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3114 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3115 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3116 {
3117 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3118 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3119 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3120 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3121 {
3122 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3123 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3124 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3125 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3126 {
3127 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3128 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3129 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3130 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3131 {
3132 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3133 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3134 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3135 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3136 {
3137 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3138 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3139 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3140 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3141 {
3142 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3143 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3144 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3145 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3146 {
3147 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3148 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3149 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3150 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3151 {
3152 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3153 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3154 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3155 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3156 {
3157 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3158 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3159 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3160 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3161 {
3162 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3163 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3164 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3165 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3166 {
3167 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3168 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3169 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3170 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3171 {
3172 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3173 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3174 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3175 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3176 {
3177 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3178 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3179 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3180 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3181 {
3182 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3183 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3184 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3185 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3186 {
3187 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3188 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3189 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3190 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3191 {
3192 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3193 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3194 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3195 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3196 {
3197 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3198 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3199 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3200 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3201 {
3202 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3203 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3204 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3205 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3206 {
3207 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3208 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3209 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3210 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3211 {
3212 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3213 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3214 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3215 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3216 {
3217 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3218 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3219 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3220 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3221 {
3222 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3223 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3224 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3225 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3226 {
3227 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3228 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3229 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3230 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3231 {
3232 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3233 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3234 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3235 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3236 {
3237 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3238 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3239 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3240 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3241 {
3242 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3243 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3244 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3245 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3246 {
3247 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3248 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3249 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3250 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3251 {
3252 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3253 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3254 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3255 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3256 {
3257 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3258 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3259 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3260 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3261 {
3262 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3263 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3264 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3265 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3266 {
3267 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3268 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3269 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3270 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3271 {
3272 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3273 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3274 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3275 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3276 {
3277 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3278 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3279 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3280 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3281 {
3282 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3283 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3284 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3285 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3286 {
3287 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3288 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3289 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3290 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3291 {
3292 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3293 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3294 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3295 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3296 {
3297 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3298 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3299 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3300 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3301 {
3302 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3303 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3304 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3305 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3306 {
3307 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3308 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3309 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3310 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3311 {
3312 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3313 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3314 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3315 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3316 {
3317 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3318 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3319 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3320 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3321 {
3322 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3323 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3324 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3325 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3326 {
3327 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3328 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3329 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3330 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3331 {
3332 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3333 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3334 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3335 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3336 {
3337 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3338 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3339 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3340 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3341 {
3342 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3343 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3344 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3345 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3346 {
3347 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3348 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3349 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3350 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3351 {
3352 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3353 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3354 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3355 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3356 {
3357 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3358 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3359 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3360 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3361 {
3362 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3363 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3364 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3365 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3366 {
3367 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3368 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3369 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3370 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3371 {
3372 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3373 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3374 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3375 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3376 {
3377 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3378 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3379 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3380 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3381 {
3382 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3383 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3384 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3385 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3386 {
3387 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3388 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3389 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3390 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3391 {
3392 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3393 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3394 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3395 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3396 {
3397 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3398 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3399 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3400 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3401};
3402
3403static chan_info_nphy_radio205x_t chan_info_nphyrev5n6_2056v7[] = {
3404 {
3405 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3406 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3407 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3408 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3409 {
3410 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3411 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3412 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3413 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3414 {
3415 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3416 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3417 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3418 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3419 {
3420 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3421 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3422 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3423 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3424 {
3425 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3426 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3427 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3428 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3429 {
3430 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3431 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3432 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3433 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3434 {
3435 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3436 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3437 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3438 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3439 {
3440 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3441 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3442 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3443 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3444 {
3445 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3446 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3447 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3448 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3449 {
3450 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3451 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3452 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3453 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3454 {
3455 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3456 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3457 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3458 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3459 {
3460 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3461 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3462 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3463 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3464 {
3465 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3466 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3467 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3468 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3469 {
3470 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3471 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3472 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3473 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3474 {
3475 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3476 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3477 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3478 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3479 {
3480 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3481 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3482 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3483 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3484 {
3485 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3486 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3487 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3488 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3489 {
3490 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3491 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3492 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3493 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3494 {
3495 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3496 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3497 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3498 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3499 {
3500 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3501 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3502 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3503 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3504 {
3505 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3506 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3507 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3508 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3509 {
3510 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3511 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3512 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3513 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3514 {
3515 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3516 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3517 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3518 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3519 {
3520 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3521 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3522 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3523 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3524 {
3525 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3526 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3527 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3528 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3529 {
3530 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3531 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3532 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3533 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3534 {
3535 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3536 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3537 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3538 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3539 {
3540 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3541 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3542 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3543 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3544 {
3545 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3546 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3547 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3548 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3549 {
3550 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3551 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3552 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3553 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3554 {
3555 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3556 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3557 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3558 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3559 {
3560 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3561 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3562 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3563 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3564 {
3565 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3566 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3567 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3568 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3569 {
3570 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3571 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3572 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3573 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3574 {
3575 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3576 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3577 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3578 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3579 {
3580 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3581 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3582 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3583 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3584 {
3585 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3586 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3587 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3588 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3589 {
3590 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3591 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3592 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3593 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3594 {
3595 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3596 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3597 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3598 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3599 {
3600 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3601 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3602 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3603 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3604 {
3605 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3606 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3607 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3608 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3609 {
3610 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3611 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3612 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3613 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3614 {
3615 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3616 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3617 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3618 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3619 {
3620 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3621 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3622 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3623 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3624 {
3625 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3626 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3627 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3628 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3629 {
3630 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3631 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3632 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3633 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3634 {
3635 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3636 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3637 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3638 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3639 {
3640 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3641 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3642 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3643 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3644 {
3645 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3646 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3647 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3648 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3649 {
3650 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3651 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3652 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3653 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3654 {
3655 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3656 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3657 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3658 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3659 {
3660 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3661 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3662 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3663 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3664 {
3665 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3666 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3667 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3668 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3669 {
3670 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3671 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3672 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3673 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3674 {
3675 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3676 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3677 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3678 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3679 {
3680 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3681 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3682 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3683 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3684 {
3685 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3686 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3687 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3688 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3689 {
3690 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3691 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3692 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3693 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3694 {
3695 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3696 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3697 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3698 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3699 {
3700 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3701 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3702 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3703 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3704 {
3705 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3706 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3707 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3708 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3709 {
3710 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3711 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3712 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3713 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3714 {
3715 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3716 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3717 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3718 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3719 {
3720 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3721 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3722 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3723 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3724 {
3725 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3726 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3727 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3728 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3729 {
3730 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3731 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3732 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3733 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3734 {
3735 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3736 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3737 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3738 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3739 {
3740 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3741 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3742 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3743 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3744 {
3745 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3746 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3747 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3748 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3749 {
3750 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3751 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3752 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3753 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3754 {
3755 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3756 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3757 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3758 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3759 {
3760 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3761 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3762 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3763 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3764 {
3765 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3766 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3767 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3768 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3769 {
3770 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3771 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3772 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3773 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3774 {
3775 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3776 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3777 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3778 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3779 {
3780 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3781 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3782 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3783 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3784 {
3785 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3786 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3787 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3788 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3789 {
3790 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3791 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3792 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3793 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3794 {
3795 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3796 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3797 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3798 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3799 {
3800 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3801 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3802 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3803 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3804 {
3805 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3806 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3807 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3808 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3809 {
3810 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3811 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3812 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3813 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3814 {
3815 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3816 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3817 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3818 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3819 {
3820 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3821 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3822 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3823 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3824 {
3825 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3826 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3827 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3828 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3829 {
3830 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3831 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3832 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3833 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3834 {
3835 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3836 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3837 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3838 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3839 {
3840 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3841 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3842 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3843 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3844 {
3845 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3846 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3847 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3848 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3849 {
3850 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3851 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3852 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3853 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3854 {
3855 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3856 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3857 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3858 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3859 {
3860 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3861 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3862 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3863 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3864 {
3865 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3866 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3867 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3868 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3869 {
3870 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3871 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3872 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3873 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3874 {
3875 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3876 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3877 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3878 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3879 {
3880 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3881 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3882 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3883 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3884 {
3885 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3886 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3887 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3888 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3889 {
3890 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3891 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3892 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3893 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3894 {
3895 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3896 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3897 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3898 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3899 {
3900 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3901 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3902 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3903 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3904 {
3905 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3906 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3907 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3908 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3909 {
3910 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3911 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3912 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3913 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3914 {
3915 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3916 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3917 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3918 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3919 {
3920 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3921 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3922 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3923 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3924 {
3925 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3926 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3927 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3928 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3929 {
3930 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3931 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3932 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3933 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3934 {
3935 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3936 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3937 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3938 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3939 {
3940 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3941 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3942 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3943 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3944 {
3945 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3946 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3947 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3948 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3949 {
3950 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3951 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3952 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3953 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3954 {
3955 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3956 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3957 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3958 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3959 {
3960 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3961 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3962 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3963 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3964 {
3965 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3966 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3967 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3968 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3969 {
3970 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3971 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3972 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3973 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3974 {
3975 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3976 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
3977 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
3978 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3979 {
3980 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3981 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
3982 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
3983 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3984 {
3985 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3986 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
3987 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
3988 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3989 {
3990 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3991 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
3992 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
3993 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3994 {
3995 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3996 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3997 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3998 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3999 {
4000 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4001 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4002 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4003 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4004 {
4005 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4006 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4007 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4008 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4009 {
4010 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4011 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4012 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4013 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4014 {
4015 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4016 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4017 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4018 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4019 {
4020 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4021 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4022 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4023 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4024};
4025
4026static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v8[] = {
4027 {
4028 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4029 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4030 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4031 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4032 {
4033 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4034 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4035 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4036 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4037 {
4038 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4039 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4040 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4041 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4042 {
4043 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4044 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4045 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4046 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4047 {
4048 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4049 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4050 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4051 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4052 {
4053 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4054 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4055 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4056 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4057 {
4058 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4059 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4060 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4061 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4062 {
4063 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4064 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4065 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4066 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4067 {
4068 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4069 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4070 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4071 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4072 {
4073 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4074 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4075 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4076 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4077 {
4078 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4079 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4080 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4081 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4082 {
4083 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4084 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4085 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4086 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4087 {
4088 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4089 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4090 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4091 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4092 {
4093 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4094 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4095 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4096 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4097 {
4098 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4099 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4100 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4101 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4102 {
4103 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4104 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4105 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4106 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4107 {
4108 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4109 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4110 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4111 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4112 {
4113 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4114 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4115 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4116 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4117 {
4118 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4119 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4120 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4121 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4122 {
4123 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4124 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4125 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4126 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4127 {
4128 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4129 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4130 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4131 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4132 {
4133 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4134 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4135 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4136 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4137 {
4138 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4139 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4140 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4141 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4142 {
4143 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4144 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4145 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4146 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4147 {
4148 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4149 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4150 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4151 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4152 {
4153 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4154 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4155 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4156 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4157 {
4158 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4159 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4160 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4161 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4162 {
4163 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4164 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4165 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4166 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4167 {
4168 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4169 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4170 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4171 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4172 {
4173 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4174 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4175 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4176 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4177 {
4178 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4179 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4180 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4181 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4182 {
4183 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4184 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4185 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4186 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4187 {
4188 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4189 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4190 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4191 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4192 {
4193 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4194 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4195 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4196 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4197 {
4198 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4199 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4200 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4201 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4202 {
4203 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4204 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4205 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4206 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4207 {
4208 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4209 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4210 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4211 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4212 {
4213 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4214 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4215 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4216 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4217 {
4218 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4219 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4220 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4221 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4222 {
4223 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4224 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4225 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4226 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4227 {
4228 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4229 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4230 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4231 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4232 {
4233 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4234 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4235 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4236 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4237 {
4238 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4239 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4240 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4241 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4242 {
4243 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4244 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4245 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4246 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4247 {
4248 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4249 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4250 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4251 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4252 {
4253 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4254 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4255 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4256 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4257 {
4258 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4259 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4260 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4261 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4262 {
4263 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4264 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4265 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4266 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4267 {
4268 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4269 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4270 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4271 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4272 {
4273 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4274 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4275 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4276 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4277 {
4278 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4279 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4280 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4281 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4282 {
4283 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4284 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4285 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4286 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4287 {
4288 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4289 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4290 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4291 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4292 {
4293 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4294 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4295 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4296 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4297 {
4298 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4299 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4300 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4301 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4302 {
4303 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4304 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4305 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4306 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4307 {
4308 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4309 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4310 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4311 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4312 {
4313 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4314 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4315 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4316 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4317 {
4318 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4319 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4320 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4321 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4322 {
4323 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4324 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4325 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4326 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4327 {
4328 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4329 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4330 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4331 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4332 {
4333 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4334 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4335 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4336 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4337 {
4338 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4339 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4340 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4341 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4342 {
4343 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4344 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4345 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4346 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4347 {
4348 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4349 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4350 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4351 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4352 {
4353 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4354 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4355 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4356 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4357 {
4358 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4359 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4360 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4361 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4362 {
4363 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4364 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4365 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4366 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4367 {
4368 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4369 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4370 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4371 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4372 {
4373 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4374 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4375 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4376 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4377 {
4378 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4379 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4380 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4381 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4382 {
4383 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4384 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4385 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4386 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4387 {
4388 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4389 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4390 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4391 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4392 {
4393 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4394 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4395 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4396 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4397 {
4398 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4399 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4400 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4401 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4402 {
4403 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4404 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4405 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4406 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4407 {
4408 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4409 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4410 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4411 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4412 {
4413 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4414 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4415 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4416 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4417 {
4418 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4419 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4420 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4421 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4422 {
4423 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4424 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4425 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4426 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4427 {
4428 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4429 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4430 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4431 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4432 {
4433 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4434 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4435 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4436 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4437 {
4438 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4439 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4440 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4441 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4442 {
4443 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4444 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4445 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4446 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4447 {
4448 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4449 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4450 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4451 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4452 {
4453 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4454 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4455 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4456 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4457 {
4458 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4459 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4460 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4461 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4462 {
4463 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4464 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4465 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4466 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4467 {
4468 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4469 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4470 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4471 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4472 {
4473 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4474 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4475 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4476 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4477 {
4478 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4479 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4480 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4481 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4482 {
4483 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4484 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4485 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4486 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4487 {
4488 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4489 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4490 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4491 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4492 {
4493 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4494 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4495 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4496 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4497 {
4498 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4499 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4500 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4501 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4502 {
4503 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4504 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4505 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4506 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4507 {
4508 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4509 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4510 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4511 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4512 {
4513 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4514 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4515 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4516 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4517 {
4518 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4519 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4520 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4521 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4522 {
4523 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4524 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4525 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4526 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4527 {
4528 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4529 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4530 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4531 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4532 {
4533 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4534 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4535 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4536 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4537 {
4538 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4539 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4540 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4541 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4542 {
4543 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4544 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4545 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4546 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4547 {
4548 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4549 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4550 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4551 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4552 {
4553 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4554 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4555 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4556 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4557 {
4558 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4559 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4560 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4561 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4562 {
4563 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4564 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4565 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4566 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4567 {
4568 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4569 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4570 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4571 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4572 {
4573 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4574 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4575 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4576 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4577 {
4578 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4579 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4580 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4581 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4582 {
4583 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4584 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4585 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4586 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4587 {
4588 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4589 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4590 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4591 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4592 {
4593 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4594 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4595 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4596 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4597 {
4598 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4599 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4600 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4601 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4602 {
4603 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4604 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4605 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4606 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4607 {
4608 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4609 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4610 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4611 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4612 {
4613 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4614 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4615 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4616 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4617 {
4618 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4619 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4620 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4621 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4622 {
4623 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4624 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4625 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4626 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4627 {
4628 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4629 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4630 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4631 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4632 {
4633 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4634 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4635 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4636 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4637 {
4638 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4639 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4640 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4641 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4642 {
4643 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4644 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4645 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4646 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4647};
4648
4649static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v11[] = {
4650 {
4651 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4652 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4653 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4654 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4655 {
4656 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4657 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4658 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4659 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4660 {
4661 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4662 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4663 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4664 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4665 {
4666 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4667 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4668 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4669 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4670 {
4671 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4672 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4673 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4674 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4675 {
4676 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4677 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4678 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4679 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4680 {
4681 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4682 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4683 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4684 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4685 {
4686 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4687 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4688 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4689 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4690 {
4691 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4692 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4693 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4694 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4695 {
4696 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4697 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4698 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4699 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4700 {
4701 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4702 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4703 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4704 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4705 {
4706 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4707 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4708 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4709 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4710 {
4711 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4712 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4713 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4714 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4715 {
4716 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4717 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4718 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4719 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4720 {
4721 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4722 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4723 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4724 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4725 {
4726 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4727 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4728 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4729 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4730 {
4731 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4732 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4733 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4734 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4735 {
4736 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4737 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4738 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4739 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4740 {
4741 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4742 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4743 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4744 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4745 {
4746 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4747 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4748 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4749 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4750 {
4751 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4752 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4753 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4754 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4755 {
4756 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4757 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4758 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4759 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4760 {
4761 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4762 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4763 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4764 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4765 {
4766 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4767 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4768 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4769 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4770 {
4771 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4772 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4773 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4774 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4775 {
4776 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4777 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4778 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4779 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4780 {
4781 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4782 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4783 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4784 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4785 {
4786 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4787 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4788 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4789 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4790 {
4791 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4792 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4793 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4794 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4795 {
4796 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4797 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4798 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4799 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4800 {
4801 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4802 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4803 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4804 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4805 {
4806 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4807 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4808 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4809 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4810 {
4811 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4812 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4813 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4814 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4815 {
4816 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4817 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4818 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4819 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4820 {
4821 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4822 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4823 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4824 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4825 {
4826 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4827 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4828 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4829 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4830 {
4831 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4832 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4833 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4834 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4835 {
4836 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4837 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4838 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4839 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4840 {
4841 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4842 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4843 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4844 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4845 {
4846 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4847 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4848 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4849 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4850 {
4851 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4852 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4853 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4854 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4855 {
4856 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4857 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4858 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4859 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4860 {
4861 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4862 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4863 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4864 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4865 {
4866 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4867 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4868 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4869 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4870 {
4871 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4872 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4873 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4874 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4875 {
4876 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4877 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4878 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4879 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4880 {
4881 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4882 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4883 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4884 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4885 {
4886 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4887 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4888 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4889 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4890 {
4891 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4892 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4893 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4894 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4895 {
4896 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4897 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4898 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4899 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4900 {
4901 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4902 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4903 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4904 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4905 {
4906 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4907 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4908 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4909 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4910 {
4911 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4912 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4913 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4914 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4915 {
4916 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4917 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4918 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4919 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4920 {
4921 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4922 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4923 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4924 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4925 {
4926 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4927 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4928 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4929 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4930 {
4931 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4932 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4933 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4934 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4935 {
4936 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4937 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4938 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4939 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4940 {
4941 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4942 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4943 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4944 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4945 {
4946 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4947 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4948 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4949 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4950 {
4951 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4952 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4953 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4954 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4955 {
4956 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4957 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4958 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4959 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4960 {
4961 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4962 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4963 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4964 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4965 {
4966 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4967 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4968 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4969 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4970 {
4971 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4972 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4973 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4974 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4975 {
4976 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4977 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4978 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4979 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4980 {
4981 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4982 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4983 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4984 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4985 {
4986 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
4987 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4988 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4989 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4990 {
4991 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
4992 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4993 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4994 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4995 {
4996 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
4997 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4998 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4999 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5000 {
5001 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5002 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5003 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5004 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5005 {
5006 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5007 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5008 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5009 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5010 {
5011 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5012 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5013 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5014 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5015 {
5016 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5017 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5018 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5019 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5020 {
5021 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5022 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5023 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5024 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5025 {
5026 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5027 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5028 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5029 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5030 {
5031 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5032 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5033 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5034 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5035 {
5036 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5037 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5038 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5039 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5040 {
5041 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5042 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5043 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5044 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5045 {
5046 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5047 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5048 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5049 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5050 {
5051 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5052 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5053 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5054 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5055 {
5056 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5057 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5058 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5059 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5060 {
5061 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5062 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5063 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5064 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5065 {
5066 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5067 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5068 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5069 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5070 {
5071 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5072 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5073 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5074 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5075 {
5076 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5077 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5078 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5079 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5080 {
5081 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5082 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5083 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5084 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5085 {
5086 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5087 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5088 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5089 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5090 {
5091 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5092 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5093 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5094 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5095 {
5096 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5097 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5098 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5099 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5100 {
5101 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5102 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5103 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5104 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5105 {
5106 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5107 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5108 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5109 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5110 {
5111 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5112 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5113 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5114 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5115 {
5116 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5117 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5118 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5119 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5120 {
5121 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5122 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5123 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5124 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5125 {
5126 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5127 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5128 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5129 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5130 {
5131 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5132 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5133 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5134 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5135 {
5136 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5137 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5138 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5139 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5140 {
5141 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5142 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5143 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5144 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5145 {
5146 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5147 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5148 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5149 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5150 {
5151 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5152 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5153 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5154 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5155 {
5156 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5157 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5158 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5159 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5160 {
5161 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5162 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5163 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5164 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5165 {
5166 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5167 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5168 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5169 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5170 {
5171 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5172 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5173 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5174 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5175 {
5176 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5177 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5178 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5179 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5180 {
5181 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5182 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5183 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5184 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5185 {
5186 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5187 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5188 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5189 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5190 {
5191 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5192 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5193 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5194 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5195 {
5196 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5197 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5198 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5199 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5200 {
5201 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5202 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5203 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5204 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5205 {
5206 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5207 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5208 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5209 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5210 {
5211 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5212 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5213 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5214 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5215 {
5216 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5217 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5218 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5219 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5220 {
5221 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5222 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5223 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5224 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5225 {
5226 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5227 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5228 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5229 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5230 {
5231 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5232 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5233 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5234 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5235 {
5236 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5237 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5238 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5239 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5240 {
5241 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5242 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5243 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5244 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5245 {
5246 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5247 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5248 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5249 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5250 {
5251 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5252 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5253 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5254 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5255 {
5256 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5257 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5258 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5259 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5260 {
5261 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5262 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5263 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5264 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5265 {
5266 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5267 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5268 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5269 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5270};
5271
5272static chan_info_nphy_radio2057_t chan_info_nphyrev7_2057_rev4[] = {
5273 {
5274 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5275 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5276 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5277 0x0215,
5278 0x0216,
5279 },
5280 {
5281 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5282 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5283 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5284 0x0214,
5285 0x0215,
5286 },
5287 {
5288 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5289 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5290 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5291 0x0213,
5292 0x0214,
5293 },
5294 {
5295 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5296 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5297 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5298 0x0212,
5299 0x0213,
5300 },
5301 {
5302 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5303 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5304 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5305 0x0211,
5306 0x0212,
5307 },
5308 {
5309 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5311 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5312 0x020f,
5313 0x0211,
5314 },
5315 {
5316 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5318 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5319 0x020e,
5320 0x020f,
5321 },
5322 {
5323 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5324 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5325 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5326 0x020d,
5327 0x020e,
5328 },
5329 {
5330 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5332 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5333 0x020c,
5334 0x020d,
5335 },
5336 {
5337 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5338 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5339 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5340 0x020b,
5341 0x020c,
5342 },
5343 {
5344 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5345 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5346 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5347 0x020a,
5348 0x020b,
5349 },
5350 {
5351 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5352 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5353 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5354 0x0209,
5355 0x020a,
5356 },
5357 {
5358 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5359 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5360 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5361 0x0208,
5362 0x0209,
5363 },
5364 {
5365 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5366 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5367 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5368 0x0207,
5369 0x0208,
5370 },
5371 {
5372 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5373 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5374 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5375 0x0206,
5376 0x0207,
5377 },
5378 {
5379 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5380 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5381 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5382 0x0205,
5383 0x0206,
5384 },
5385 {
5386 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5387 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5388 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5389 0x0204,
5390 0x0205,
5391 },
5392 {
5393 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5394 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5395 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5396 0x0203,
5397 0x0204,
5398 },
5399 {
5400 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5401 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5402 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5403 0x0202,
5404 0x0203,
5405 },
5406 {
5407 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5408 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5409 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5410 0x0201,
5411 0x0202,
5412 },
5413 {
5414 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5415 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5416 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5417 0x0200,
5418 0x0201,
5419 },
5420 {
5421 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5422 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5423 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5424 0x01ff,
5425 0x0200,
5426 },
5427 {
5428 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5429 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5430 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5431 0x01fe,
5432 0x01ff,
5433 },
5434 {
5435 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5436 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5437 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5438 0x01fc,
5439 0x01fd,
5440 },
5441 {
5442 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5443 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5444 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5445 0x01fb,
5446 0x01fc,
5447 },
5448 {
5449 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5450 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5451 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5452 0x01fa,
5453 0x01fb,
5454 },
5455 {
5456 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5457 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5458 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5459 0x01f9,
5460 0x01fa,
5461 },
5462 {
5463 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5464 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5465 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5466 0x01f8,
5467 0x01f9,
5468 },
5469 {
5470 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5471 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5472 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5473 0x01f7,
5474 0x01f8,
5475 },
5476 {
5477 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5478 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5479 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5480 0x01f6,
5481 0x01f7,
5482 },
5483 {
5484 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5485 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5486 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5487 0x01f5,
5488 0x01f6,
5489 },
5490 {
5491 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5492 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5493 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5494 0x01f4,
5495 0x01f5,
5496 },
5497 {
5498 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5499 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5500 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5501 0x01f3,
5502 0x01f4,
5503 },
5504 {
5505 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5506 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5507 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5508 0x01f2,
5509 0x01f3,
5510 },
5511 {
5512 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5513 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5514 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5515 0x01f1,
5516 0x01f2,
5517 },
5518 {
5519 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5520 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5521 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5522 0x01f0,
5523 0x01f1,
5524 },
5525 {
5526 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5527 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5528 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5529 0x01f0,
5530 0x01f0,
5531 },
5532 {
5533 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5534 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5535 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5536 0x01ef,
5537 0x01f0,
5538 },
5539 {
5540 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5541 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5542 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5543 0x01ee,
5544 0x01ef,
5545 },
5546 {
5547 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5548 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5549 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5550 0x01ed,
5551 0x01ee,
5552 },
5553 {
5554 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5555 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5556 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5557 0x01ec,
5558 0x01ed,
5559 },
5560 {
5561 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5562 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5563 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5564 0x01eb,
5565 0x01ec,
5566 },
5567 {
5568 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5569 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5570 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5571 0x01ea,
5572 0x01eb,
5573 },
5574 {
5575 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5576 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5577 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5578 0x01e9,
5579 0x01ea,
5580 },
5581 {
5582 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5583 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5584 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5585 0x01e8,
5586 0x01e9,
5587 },
5588 {
5589 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5590 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5591 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5592 0x01e7,
5593 0x01e8,
5594 },
5595 {
5596 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5597 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5598 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5599 0x01e6,
5600 0x01e7,
5601 },
5602 {
5603 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5604 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5605 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5606 0x01e5,
5607 0x01e6,
5608 },
5609 {
5610 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5611 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5612 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5613 0x01e5,
5614 0x01e5,
5615 },
5616 {
5617 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5618 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5619 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5620 0x01e4,
5621 0x01e5,
5622 },
5623 {
5624 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5625 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5626 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5627 0x01e3,
5628 0x01e4,
5629 },
5630 {
5631 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5632 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5633 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5634 0x01e2,
5635 0x01e3,
5636 },
5637 {
5638 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5639 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5640 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5641 0x01e1,
5642 0x01e2,
5643 },
5644 {
5645 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5646 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5647 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5648 0x01e0,
5649 0x01e1,
5650 },
5651 {
5652 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5653 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5654 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5655 0x01df,
5656 0x01e0,
5657 },
5658 {
5659 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5660 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5661 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5662 0x01de,
5663 0x01df,
5664 },
5665 {
5666 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5667 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5668 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5669 0x01dd,
5670 0x01de,
5671 },
5672 {
5673 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5674 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5675 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5676 0x01dd,
5677 0x01dd,
5678 },
5679 {
5680 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5681 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5682 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5683 0x01dc,
5684 0x01dd,
5685 },
5686 {
5687 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5688 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5689 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5690 0x01db,
5691 0x01dc,
5692 },
5693 {
5694 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5695 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5696 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5697 0x01da,
5698 0x01db,
5699 },
5700 {
5701 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5702 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5703 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5704 0x01d9,
5705 0x01da,
5706 },
5707 {
5708 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5709 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5710 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5711 0x01d8,
5712 0x01d9,
5713 },
5714 {
5715 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5716 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5717 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5718 0x01d7,
5719 0x01d8,
5720 },
5721 {
5722 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5723 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5724 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5725 0x01d7,
5726 0x01d7,
5727 },
5728 {
5729 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5730 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5731 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5732 0x01d6,
5733 0x01d7,
5734 },
5735 {
5736 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5737 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5738 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5739 0x01d5,
5740 0x01d6,
5741 },
5742 {
5743 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5744 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5745 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5746 0x01d4,
5747 0x01d5,
5748 },
5749 {
5750 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5751 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5752 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5753 0x01d3,
5754 0x01d4,
5755 },
5756 {
5757 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5758 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5759 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5760 0x01d2,
5761 0x01d3,
5762 },
5763 {
5764 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5765 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5766 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5767 0x01d2,
5768 0x01d2,
5769 },
5770 {
5771 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5772 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5773 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5774 0x01d1,
5775 0x01d2,
5776 },
5777 {
5778 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5779 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5780 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5781 0x01d0,
5782 0x01d1,
5783 },
5784 {
5785 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5786 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5787 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5788 0x01cf,
5789 0x01d0,
5790 },
5791 {
5792 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5793 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5794 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5795 0x01ce,
5796 0x01cf,
5797 },
5798 {
5799 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5800 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5801 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5802 0x01ce,
5803 0x01ce,
5804 },
5805 {
5806 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5807 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5808 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5809 0x01cd,
5810 0x01ce,
5811 },
5812 {
5813 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5814 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5815 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5816 0x01cc,
5817 0x01cd,
5818 },
5819 {
5820 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5821 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5822 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5823 0x01cb,
5824 0x01cc,
5825 },
5826 {
5827 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5828 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5829 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5830 0x01ca,
5831 0x01cb,
5832 },
5833 {
5834 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5835 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5836 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5837 0x01ca,
5838 0x01cb,
5839 },
5840 {
5841 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5842 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5843 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5844 0x01c9,
5845 0x01ca,
5846 },
5847 {
5848 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5849 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5850 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5851 0x01c9,
5852 0x01ca,
5853 },
5854 {
5855 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5856 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5857 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5858 0x01c9,
5859 0x01c9,
5860 },
5861 {
5862 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5863 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5864 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5865 0x01c8,
5866 0x01c9,
5867 },
5868 {
5869 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5870 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5871 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5872 0x01c8,
5873 0x01c9,
5874 },
5875 {
5876 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5877 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5878 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5879 0x01c8,
5880 0x01c8,
5881 },
5882 {
5883 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5884 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5885 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5886 0x01c7,
5887 0x01c8,
5888 },
5889 {
5890 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5891 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5892 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5893 0x01c7,
5894 0x01c8,
5895 },
5896 {
5897 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5898 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5899 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5900 0x01c6,
5901 0x01c7,
5902 },
5903 {
5904 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5905 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5906 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5907 0x01c6,
5908 0x01c7,
5909 },
5910 {
5911 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5912 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5913 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5914 0x01c6,
5915 0x01c6,
5916 },
5917 {
5918 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5919 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5920 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5921 0x01c5,
5922 0x01c6,
5923 },
5924 {
5925 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5926 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5927 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5928 0x01c5,
5929 0x01c6,
5930 },
5931 {
5932 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5933 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5934 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5935 0x01c4,
5936 0x01c5,
5937 },
5938 {
5939 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5940 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5941 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5942 0x01c4,
5943 0x01c5,
5944 },
5945 {
5946 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5947 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5948 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5949 0x01c4,
5950 0x01c4,
5951 },
5952 {
5953 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5954 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5955 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5956 0x01c3,
5957 0x01c4,
5958 },
5959 {
5960 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5961 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5962 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5963 0x01c3,
5964 0x01c4,
5965 },
5966 {
5967 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5968 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5969 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
5970 0x01c2,
5971 0x01c3,
5972 },
5973 {
5974 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
5975 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5976 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
5977 0x01c2,
5978 0x01c3,
5979 },
5980 {
5981 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
5982 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5983 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
5984 0x01c2,
5985 0x01c2,
5986 },
5987 {
5988 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
5989 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5990 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
5991 0x01c1,
5992 0x01c2,
5993 },
5994 {
5995 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
5996 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5997 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
5998 0x01c0,
5999 0x01c1,
6000 },
6001 {
6002 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6003 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6004 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6005 0x01bf,
6006 0x01c0,
6007 },
6008 {
6009 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6010 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6011 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6012 0x01bf,
6013 0x01bf,
6014 },
6015 {
6016 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6017 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6018 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6019 0x01be,
6020 0x01bf,
6021 },
6022 {
6023 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6024 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6025 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6026 0x01bd,
6027 0x01be,
6028 },
6029 {
6030 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6031 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6032 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6033 0x01bc,
6034 0x01bd,
6035 },
6036 {
6037 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6038 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6039 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6040 0x043f,
6041 0x0443,
6042 },
6043 {
6044 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6045 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6046 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6047 0x043d,
6048 0x0441,
6049 },
6050 {
6051 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6052 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6053 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6054 0x043a,
6055 0x043f,
6056 },
6057 {
6058 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6059 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6060 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6061 0x0438,
6062 0x043d,
6063 },
6064 {
6065 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6066 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6067 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6068 0x0436,
6069 0x043a,
6070 },
6071 {
6072 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6073 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6074 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6075 0x0434,
6076 0x0438,
6077 },
6078 {
6079 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6080 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6081 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6082 0x0431,
6083 0x0436,
6084 },
6085 {
6086 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6087 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6088 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6089 0x042f,
6090 0x0434,
6091 },
6092 {
6093 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6094 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6095 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6096 0x042d,
6097 0x0431,
6098 },
6099 {
6100 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6101 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6102 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6103 0x042b,
6104 0x042f,
6105 },
6106 {
6107 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6108 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6109 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6110 0x0429,
6111 0x042d,
6112 },
6113 {
6114 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6115 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6116 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6117 0x0427,
6118 0x042b,
6119 },
6120 {
6121 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6122 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6123 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6124 0x0424,
6125 0x0429,
6126 },
6127 {
6128 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6129 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6130 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6131 0x041f,
6132 0x0424}
6133};
6134
6135static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev8_2057_rev5[] = {
6136 {
6137 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6138 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6139 0x043a, 0x043f, 0x0443},
6140 {
6141 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6142 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6143 0x0438, 0x043d, 0x0441},
6144 {
6145 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6146 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6147 0x0436, 0x043a, 0x043f},
6148 {
6149 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6150 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6151 0x0434, 0x0438, 0x043d},
6152 {
6153 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6154 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6155 0x0431, 0x0436, 0x043a},
6156 {
6157 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6158 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6159 0x042f, 0x0434, 0x0438},
6160 {
6161 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6162 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6163 0x042d, 0x0431, 0x0436},
6164 {
6165 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6166 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6167 0x042b, 0x042f, 0x0434},
6168 {
6169 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6170 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6171 0x0429, 0x042d, 0x0431},
6172 {
6173 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6174 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6175 0x0427, 0x042b, 0x042f},
6176 {
6177 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6178 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6179 0x0424, 0x0429, 0x042d},
6180 {
6181 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6182 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6183 0x0422, 0x0427, 0x042b},
6184 {
6185 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6186 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6187 0x0420, 0x0424, 0x0429},
6188 {
6189 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6190 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6191 0x041b, 0x041f, 0x0424}
6192};
6193
6194static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev9_2057_rev5v1[] = {
6195 {
6196 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6197 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6198 0x043a, 0x043f, 0x0443},
6199 {
6200 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6201 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6202 0x0438, 0x043d, 0x0441},
6203 {
6204 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6205 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6206 0x0436, 0x043a, 0x043f},
6207 {
6208 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6209 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6210 0x0434, 0x0438, 0x043d},
6211 {
6212 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6213 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6214 0x0431, 0x0436, 0x043a},
6215 {
6216 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6217 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6218 0x042f, 0x0434, 0x0438},
6219 {
6220 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6221 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6222 0x042d, 0x0431, 0x0436},
6223 {
6224 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6225 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6226 0x042b, 0x042f, 0x0434},
6227 {
6228 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6229 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6230 0x0429, 0x042d, 0x0431},
6231 {
6232 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6233 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6234 0x0427, 0x042b, 0x042f},
6235 {
6236 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6237 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6238 0x0424, 0x0429, 0x042d},
6239 {
6240 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6241 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6242 0x0422, 0x0427, 0x042b},
6243 {
6244 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6245 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6246 0x0420, 0x0424, 0x0429},
6247 {
6248 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6249 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6250 0x041b, 0x041f, 0x0424}
6251};
6252
6253static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev7[] = {
6254 {
6255 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6256 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6257 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6258 0x0215,
6259 0x0216},
6260 {
6261 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6262 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6263 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6264 0x0214,
6265 0x0215},
6266 {
6267 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6268 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6269 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6270 0x0213,
6271 0x0214},
6272 {
6273 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6274 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6275 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6276 0x0212,
6277 0x0213},
6278 {
6279 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6280 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6281 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6282 0x0211,
6283 0x0212},
6284 {
6285 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6286 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6287 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6288 0x020f,
6289 0x0211},
6290 {
6291 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6292 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6293 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6294 0x020e,
6295 0x020f},
6296 {
6297 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6298 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6299 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6300 0x020d,
6301 0x020e},
6302 {
6303 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6304 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6305 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6306 0x020c,
6307 0x020d},
6308 {
6309 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6311 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6312 0x020b,
6313 0x020c},
6314 {
6315 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6316 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6317 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6318 0x020a,
6319 0x020b},
6320 {
6321 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6322 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6323 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6324 0x0209,
6325 0x020a},
6326 {
6327 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6328 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6329 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6330 0x0208,
6331 0x0209},
6332 {
6333 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6334 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6335 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6336 0x0207,
6337 0x0208},
6338 {
6339 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6340 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6341 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6342 0x0206,
6343 0x0207},
6344 {
6345 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6346 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6347 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6348 0x0205,
6349 0x0206},
6350 {
6351 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6352 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6353 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6354 0x0204,
6355 0x0205},
6356 {
6357 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6358 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6359 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6360 0x0203,
6361 0x0204},
6362 {
6363 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6364 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6365 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6366 0x0202,
6367 0x0203},
6368 {
6369 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6370 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6371 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6372 0x0201,
6373 0x0202},
6374 {
6375 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6376 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6377 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6378 0x0200,
6379 0x0201},
6380 {
6381 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6382 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6383 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6384 0x01ff,
6385 0x0200},
6386 {
6387 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6388 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6389 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6390 0x01fe,
6391 0x01ff},
6392 {
6393 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6394 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6395 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6396 0x01fc,
6397 0x01fd},
6398 {
6399 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6400 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6401 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6402 0x01fb,
6403 0x01fc},
6404 {
6405 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6406 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6407 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6408 0x01fa,
6409 0x01fb},
6410 {
6411 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6412 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6413 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6414 0x01f9,
6415 0x01fa},
6416 {
6417 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6418 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6419 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6420 0x01f8,
6421 0x01f9},
6422 {
6423 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6424 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6425 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6426 0x01f7,
6427 0x01f8},
6428 {
6429 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6430 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6431 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6432 0x01f6,
6433 0x01f7},
6434 {
6435 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6436 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6437 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6438 0x01f5,
6439 0x01f6},
6440 {
6441 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6442 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6443 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6444 0x01f4,
6445 0x01f5},
6446 {
6447 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6448 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6449 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6450 0x01f3,
6451 0x01f4},
6452 {
6453 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6454 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6455 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6456 0x01f2,
6457 0x01f3},
6458 {
6459 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6460 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6461 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6462 0x01f1,
6463 0x01f2},
6464 {
6465 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6466 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6467 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6468 0x01f0,
6469 0x01f1},
6470 {
6471 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6472 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6473 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6474 0x01f0,
6475 0x01f0},
6476 {
6477 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6478 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6479 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6480 0x01ef,
6481 0x01f0},
6482 {
6483 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6484 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6485 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6486 0x01ee,
6487 0x01ef},
6488 {
6489 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6490 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6491 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6492 0x01ed,
6493 0x01ee},
6494 {
6495 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6496 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6497 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6498 0x01ec,
6499 0x01ed},
6500 {
6501 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6502 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6503 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6504 0x01eb,
6505 0x01ec},
6506 {
6507 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6508 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6509 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6510 0x01ea,
6511 0x01eb},
6512 {
6513 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6514 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6515 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6516 0x01e9,
6517 0x01ea},
6518 {
6519 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6520 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6521 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6522 0x01e8,
6523 0x01e9},
6524 {
6525 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6526 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6527 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6528 0x01e7,
6529 0x01e8},
6530 {
6531 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6532 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6533 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6534 0x01e6,
6535 0x01e7},
6536 {
6537 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6538 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6539 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6540 0x01e5,
6541 0x01e6},
6542 {
6543 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6544 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6545 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6546 0x01e5,
6547 0x01e5},
6548 {
6549 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6550 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6551 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6552 0x01e4,
6553 0x01e5},
6554 {
6555 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6556 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6557 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6558 0x01e3,
6559 0x01e4},
6560 {
6561 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6562 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6563 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6564 0x01e2,
6565 0x01e3},
6566 {
6567 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6568 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6569 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6570 0x01e1,
6571 0x01e2},
6572 {
6573 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6574 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6575 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6576 0x01e0,
6577 0x01e1},
6578 {
6579 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6580 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6581 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6582 0x01df,
6583 0x01e0},
6584 {
6585 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6586 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6587 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6588 0x01de,
6589 0x01df},
6590 {
6591 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6592 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6593 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6594 0x01dd,
6595 0x01de},
6596 {
6597 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6598 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6599 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6600 0x01dd,
6601 0x01dd},
6602 {
6603 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6604 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6605 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6606 0x01dc,
6607 0x01dd},
6608 {
6609 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6610 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6611 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6612 0x01db,
6613 0x01dc},
6614 {
6615 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6616 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6617 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6618 0x01da,
6619 0x01db},
6620 {
6621 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6622 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6623 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6624 0x01d9,
6625 0x01da},
6626 {
6627 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6628 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6629 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6630 0x01d8,
6631 0x01d9},
6632 {
6633 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6634 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6635 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6636 0x01d7,
6637 0x01d8},
6638 {
6639 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6640 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6641 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6642 0x01d7,
6643 0x01d7},
6644 {
6645 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6646 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6647 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6648 0x01d6,
6649 0x01d7},
6650 {
6651 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6652 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6653 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6654 0x01d5,
6655 0x01d6},
6656 {
6657 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6658 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6659 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6660 0x01d4,
6661 0x01d5},
6662 {
6663 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6664 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6665 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6666 0x01d3,
6667 0x01d4},
6668 {
6669 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6670 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6671 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6672 0x01d2,
6673 0x01d3},
6674 {
6675 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6676 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6677 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6678 0x01d2,
6679 0x01d2},
6680 {
6681 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6682 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6683 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6684 0x01d1,
6685 0x01d2},
6686 {
6687 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6688 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6689 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6690 0x01d0,
6691 0x01d1},
6692 {
6693 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6694 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6695 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6696 0x01cf,
6697 0x01d0},
6698 {
6699 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6700 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6701 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6702 0x01ce,
6703 0x01cf},
6704 {
6705 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6706 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6707 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6708 0x01ce,
6709 0x01ce},
6710 {
6711 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6712 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6713 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6714 0x01cd,
6715 0x01ce},
6716 {
6717 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6718 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6719 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6720 0x01cc,
6721 0x01cd},
6722 {
6723 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6724 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6725 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6726 0x01cb,
6727 0x01cc},
6728 {
6729 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6730 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6731 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6732 0x01ca,
6733 0x01cb},
6734 {
6735 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6736 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6737 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6738 0x01ca,
6739 0x01cb},
6740 {
6741 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6742 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6743 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6744 0x01c9,
6745 0x01ca},
6746 {
6747 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6748 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6749 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6750 0x01c9,
6751 0x01ca},
6752 {
6753 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6754 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6755 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6756 0x01c9,
6757 0x01c9},
6758 {
6759 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6760 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6761 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6762 0x01c8,
6763 0x01c9},
6764 {
6765 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6766 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6767 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6768 0x01c8,
6769 0x01c9},
6770 {
6771 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6772 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6773 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6774 0x01c8,
6775 0x01c8},
6776 {
6777 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6778 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6779 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6780 0x01c7,
6781 0x01c8},
6782 {
6783 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6784 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6785 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6786 0x01c7,
6787 0x01c8},
6788 {
6789 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6790 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6791 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6792 0x01c6,
6793 0x01c7},
6794 {
6795 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6796 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6797 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6798 0x01c6,
6799 0x01c7},
6800 {
6801 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6802 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6803 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6804 0x01c6,
6805 0x01c6},
6806 {
6807 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6808 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6809 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6810 0x01c5,
6811 0x01c6},
6812 {
6813 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6814 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6815 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6816 0x01c5,
6817 0x01c6},
6818 {
6819 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6820 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6821 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6822 0x01c4,
6823 0x01c5},
6824 {
6825 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6826 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6827 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6828 0x01c4,
6829 0x01c5},
6830 {
6831 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6832 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6833 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6834 0x01c4,
6835 0x01c4},
6836 {
6837 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6838 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6839 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6840 0x01c3,
6841 0x01c4},
6842 {
6843 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6844 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6845 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6846 0x01c3,
6847 0x01c4},
6848 {
6849 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6850 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6851 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6852 0x01c2,
6853 0x01c3},
6854 {
6855 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6856 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6857 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6858 0x01c2,
6859 0x01c3},
6860 {
6861 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6862 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6863 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6864 0x01c2,
6865 0x01c2},
6866 {
6867 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6868 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6869 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6870 0x01c1,
6871 0x01c2},
6872 {
6873 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6874 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6875 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6876 0x01c0,
6877 0x01c1},
6878 {
6879 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6880 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6881 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6882 0x01bf,
6883 0x01c0},
6884 {
6885 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6886 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6887 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6888 0x01bf,
6889 0x01bf},
6890 {
6891 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6892 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6893 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6894 0x01be,
6895 0x01bf},
6896 {
6897 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6898 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6899 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6900 0x01bd,
6901 0x01be},
6902 {
6903 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6904 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6905 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6906 0x01bc,
6907 0x01bd},
6908 {
6909 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6910 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6911 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6912 0x043f,
6913 0x0443},
6914 {
6915 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6916 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6917 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6918 0x043d,
6919 0x0441},
6920 {
6921 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6922 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6923 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6924 0x043a,
6925 0x043f},
6926 {
6927 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6928 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6929 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6930 0x0438,
6931 0x043d},
6932 {
6933 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6934 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6935 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6936 0x0436,
6937 0x043a},
6938 {
6939 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6940 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6941 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6942 0x0434,
6943 0x0438},
6944 {
6945 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6946 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6947 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6948 0x0431,
6949 0x0436},
6950 {
6951 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6952 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6953 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6954 0x042f,
6955 0x0434},
6956 {
6957 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6958 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6959 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6960 0x042d,
6961 0x0431},
6962 {
6963 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6964 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6965 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6966 0x042b,
6967 0x042f},
6968 {
6969 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6970 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6971 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6972 0x0429,
6973 0x042d},
6974 {
6975 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6976 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6977 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6978 0x0427,
6979 0x042b},
6980 {
6981 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6982 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6983 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6984 0x0424,
6985 0x0429},
6986 {
6987 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6988 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
6989 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6990 0x041f,
6991 0x0424}
6992};
6993
6994static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev8[] = {
6995 {
6996 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6997 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6998 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6999 0x0214,
7000 0x0215},
7001 {
7002 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7003 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7004 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7005 0x0213,
7006 0x0214},
7007 {
7008 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7009 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7010 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7011 0x0212,
7012 0x0213},
7013 {
7014 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7015 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7016 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7017 0x0211,
7018 0x0212},
7019 {
7020 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7021 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7022 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7023 0x020f,
7024 0x0211},
7025 {
7026 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7027 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7028 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7029 0x020e,
7030 0x020f},
7031 {
7032 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7033 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7034 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7035 0x020d,
7036 0x020e},
7037 {
7038 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7039 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7040 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7041 0x020c,
7042 0x020d},
7043 {
7044 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7045 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7046 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7047 0x020b,
7048 0x020c},
7049 {
7050 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7051 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7052 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7053 0x020a,
7054 0x020b},
7055 {
7056 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7057 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7058 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7059 0x0209,
7060 0x020a},
7061 {
7062 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7063 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7064 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7065 0x0208,
7066 0x0209},
7067 {
7068 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7069 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7070 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7071 0x0207,
7072 0x0208},
7073 {
7074 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7075 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7076 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7077 0x0206,
7078 0x0207},
7079 {
7080 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7081 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7082 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7083 0x0205,
7084 0x0206},
7085 {
7086 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7087 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7088 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7089 0x0204,
7090 0x0205},
7091 {
7092 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7093 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7094 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7095 0x0203,
7096 0x0204},
7097 {
7098 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7099 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7100 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7101 0x0202,
7102 0x0203},
7103 {
7104 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7105 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7106 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7107 0x0201,
7108 0x0202},
7109 {
7110 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7111 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7112 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7113 0x0200,
7114 0x0201},
7115 {
7116 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7117 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7118 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7119 0x01ff,
7120 0x0200},
7121 {
7122 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7123 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7124 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7125 0x01fe,
7126 0x01ff},
7127 {
7128 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7129 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7130 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7131 0x01fc,
7132 0x01fd},
7133 {
7134 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7135 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7136 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7137 0x01fb,
7138 0x01fc},
7139 {
7140 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7141 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7142 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7143 0x01fa,
7144 0x01fb},
7145 {
7146 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7147 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7148 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7149 0x01f9,
7150 0x01fa},
7151 {
7152 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7153 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7154 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7155 0x01f8,
7156 0x01f9},
7157 {
7158 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7159 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7160 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7161 0x01f7,
7162 0x01f8},
7163 {
7164 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7165 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7166 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7167 0x01f6,
7168 0x01f7},
7169 {
7170 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7171 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7172 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7173 0x01f5,
7174 0x01f6},
7175 {
7176 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7177 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7178 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7179 0x01f4,
7180 0x01f5},
7181 {
7182 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7183 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7184 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7185 0x01f3,
7186 0x01f4},
7187 {
7188 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7189 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7190 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7191 0x01f2,
7192 0x01f3},
7193 {
7194 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7195 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7196 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7197 0x01f1,
7198 0x01f2},
7199 {
7200 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7201 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7202 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7203 0x01f0,
7204 0x01f1},
7205 {
7206 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7207 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7208 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7209 0x01f0,
7210 0x01f0},
7211 {
7212 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7213 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7214 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7215 0x01ef,
7216 0x01f0},
7217 {
7218 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7219 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7220 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7221 0x01ee,
7222 0x01ef},
7223 {
7224 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7225 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7226 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7227 0x01ed,
7228 0x01ee},
7229 {
7230 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7231 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7232 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7233 0x01ec,
7234 0x01ed},
7235 {
7236 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7237 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7238 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7239 0x01eb,
7240 0x01ec},
7241 {
7242 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7243 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7244 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7245 0x01ea,
7246 0x01eb},
7247 {
7248 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7249 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7250 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7251 0x01e9,
7252 0x01ea},
7253 {
7254 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7255 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7256 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7257 0x01e8,
7258 0x01e9},
7259 {
7260 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7261 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7262 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7263 0x01e7,
7264 0x01e8},
7265 {
7266 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7267 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7268 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7269 0x01e6,
7270 0x01e7},
7271 {
7272 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7273 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7274 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7275 0x01e5,
7276 0x01e6},
7277 {
7278 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7279 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7280 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7281 0x01e5,
7282 0x01e5},
7283 {
7284 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7285 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7286 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7287 0x01e4,
7288 0x01e5},
7289 {
7290 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7291 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7292 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7293 0x01e3,
7294 0x01e4},
7295 {
7296 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7297 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7298 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7299 0x01e2,
7300 0x01e3},
7301 {
7302 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7303 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7304 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7305 0x01e1,
7306 0x01e2},
7307 {
7308 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7309 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7310 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7311 0x01e0,
7312 0x01e1},
7313 {
7314 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7315 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7316 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7317 0x01df,
7318 0x01e0},
7319 {
7320 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7321 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7322 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7323 0x01de,
7324 0x01df},
7325 {
7326 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7327 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7328 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7329 0x01dd,
7330 0x01de},
7331 {
7332 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7333 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7334 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7335 0x01dd,
7336 0x01dd},
7337 {
7338 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7339 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7340 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7341 0x01dc,
7342 0x01dd},
7343 {
7344 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7345 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7346 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7347 0x01db,
7348 0x01dc},
7349 {
7350 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7351 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7352 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7353 0x01da,
7354 0x01db},
7355 {
7356 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7357 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7358 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7359 0x01d9,
7360 0x01da},
7361 {
7362 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7363 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7364 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7365 0x01d8,
7366 0x01d9},
7367 {
7368 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7369 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7370 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7371 0x01d7,
7372 0x01d8},
7373 {
7374 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7375 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7376 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7377 0x01d7,
7378 0x01d7},
7379 {
7380 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7381 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7382 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7383 0x01d6,
7384 0x01d7},
7385 {
7386 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7387 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7388 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7389 0x01d5,
7390 0x01d6},
7391 {
7392 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7393 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7394 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7395 0x01d4,
7396 0x01d5},
7397 {
7398 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7399 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7400 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7401 0x01d3,
7402 0x01d4},
7403 {
7404 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7405 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7406 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7407 0x01d2,
7408 0x01d3},
7409 {
7410 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7411 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7412 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7413 0x01d2,
7414 0x01d2},
7415 {
7416 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7417 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7418 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7419 0x01d1,
7420 0x01d2},
7421 {
7422 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7423 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7424 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7425 0x01d0,
7426 0x01d1},
7427 {
7428 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7429 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7430 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7431 0x01cf,
7432 0x01d0},
7433 {
7434 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7435 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7436 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7437 0x01ce,
7438 0x01cf},
7439 {
7440 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7441 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7442 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7443 0x01ce,
7444 0x01ce},
7445 {
7446 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7447 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7448 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7449 0x01cd,
7450 0x01ce},
7451 {
7452 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7453 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7454 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7455 0x01cc,
7456 0x01cd},
7457 {
7458 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7459 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7460 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7461 0x01cb,
7462 0x01cc},
7463 {
7464 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7465 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7466 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7467 0x01ca,
7468 0x01cb},
7469 {
7470 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7471 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7472 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7473 0x01ca,
7474 0x01cb},
7475 {
7476 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7477 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7478 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7479 0x01c9,
7480 0x01ca},
7481 {
7482 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7483 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7484 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7485 0x01c9,
7486 0x01ca},
7487 {
7488 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7489 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7490 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7491 0x01c9,
7492 0x01c9},
7493 {
7494 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7495 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7496 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7497 0x01c8,
7498 0x01c9},
7499 {
7500 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7501 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7502 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7503 0x01c8,
7504 0x01c9},
7505 {
7506 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7507 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7508 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7509 0x01c8,
7510 0x01c8},
7511 {
7512 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7513 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7514 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7515 0x01c7,
7516 0x01c8},
7517 {
7518 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7519 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7520 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7521 0x01c7,
7522 0x01c8},
7523 {
7524 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7525 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7526 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7527 0x01c6,
7528 0x01c7},
7529 {
7530 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7531 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7532 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7533 0x01c6,
7534 0x01c7},
7535 {
7536 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7537 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7538 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7539 0x01c6,
7540 0x01c6},
7541 {
7542 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7543 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7544 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7545 0x01c5,
7546 0x01c6},
7547 {
7548 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7549 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7550 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7551 0x01c5,
7552 0x01c6},
7553 {
7554 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7555 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7556 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7557 0x01c4,
7558 0x01c5},
7559 {
7560 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7561 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7562 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7563 0x01c4,
7564 0x01c5},
7565 {
7566 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7567 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7568 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7569 0x01c4,
7570 0x01c4},
7571 {
7572 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7573 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7574 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7575 0x01c3,
7576 0x01c4},
7577 {
7578 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7579 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7580 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7581 0x01c3,
7582 0x01c4},
7583 {
7584 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7585 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7586 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7587 0x01c2,
7588 0x01c3},
7589 {
7590 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7591 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7592 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7593 0x01c2,
7594 0x01c3},
7595 {
7596 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7597 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7598 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7599 0x01c2,
7600 0x01c2},
7601 {
7602 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7603 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7604 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7605 0x01c1,
7606 0x01c2},
7607 {
7608 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7609 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7610 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7611 0x01c0,
7612 0x01c1},
7613 {
7614 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7615 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7616 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7617 0x01bf,
7618 0x01c0},
7619 {
7620 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7621 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7622 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7623 0x01bf,
7624 0x01bf},
7625 {
7626 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7627 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7628 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7629 0x01be,
7630 0x01bf},
7631 {
7632 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7633 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7634 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7635 0x01bd,
7636 0x01be},
7637 {
7638 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7639 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7640 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7641 0x01bc,
7642 0x01bd},
7643 {
7644 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7645 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7646 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7647 0x043f,
7648 0x0443},
7649 {
7650 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7651 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7652 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7653 0x043d,
7654 0x0441},
7655 {
7656 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7657 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7658 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7659 0x043a,
7660 0x043f},
7661 {
7662 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7663 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7664 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7665 0x0438,
7666 0x043d},
7667 {
7668 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7669 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7670 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7671 0x0436,
7672 0x043a},
7673 {
7674 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7675 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7676 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7677 0x0434,
7678 0x0438},
7679 {
7680 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7681 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7682 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7683 0x0431,
7684 0x0436},
7685 {
7686 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7687 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7688 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7689 0x042f,
7690 0x0434},
7691 {
7692 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7693 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7694 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7695 0x042d,
7696 0x0431},
7697 {
7698 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7699 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7700 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7701 0x042b,
7702 0x042f},
7703 {
7704 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7705 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7706 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7707 0x0429,
7708 0x042d},
7709 {
7710 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7711 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7712 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7713 0x0427,
7714 0x042b},
7715 {
7716 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7717 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7718 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7719 0x0424,
7720 0x0429},
7721 {
7722 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7723 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7724 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7725 0x041f,
7726 0x0424}
7727};
7728
7729radio_regs_t regs_2055[] = {
7730 {0x02, 0x80, 0x80, 0, 0},
7731 {0x03, 0, 0, 0, 0},
7732 {0x04, 0x27, 0x27, 0, 0},
7733 {0x05, 0, 0, 0, 0},
7734 {0x06, 0x27, 0x27, 0, 0},
7735 {0x07, 0x7f, 0x7f, 1, 1},
7736 {0x08, 0x7, 0x7, 1, 1},
7737 {0x09, 0x7f, 0x7f, 1, 1},
7738 {0x0A, 0x7, 0x7, 1, 1},
7739 {0x0B, 0x15, 0x15, 0, 0},
7740 {0x0C, 0x15, 0x15, 0, 0},
7741 {0x0D, 0x4f, 0x4f, 1, 1},
7742 {0x0E, 0x5, 0x5, 1, 1},
7743 {0x0F, 0x4f, 0x4f, 1, 1},
7744 {0x10, 0x5, 0x5, 1, 1},
7745 {0x11, 0xd0, 0xd0, 0, 0},
7746 {0x12, 0x2, 0x2, 0, 0},
7747 {0x13, 0, 0, 0, 0},
7748 {0x14, 0x40, 0x40, 0, 0},
7749 {0x15, 0, 0, 0, 0},
7750 {0x16, 0, 0, 0, 0},
7751 {0x17, 0, 0, 0, 0},
7752 {0x18, 0, 0, 0, 0},
7753 {0x19, 0, 0, 0, 0},
7754 {0x1A, 0, 0, 0, 0},
7755 {0x1B, 0, 0, 0, 0},
7756 {0x1C, 0, 0, 0, 0},
7757 {0x1D, 0xc0, 0xc0, 0, 0},
7758 {0x1E, 0xff, 0xff, 0, 0},
7759 {0x1F, 0xc0, 0xc0, 0, 0},
7760 {0x20, 0xff, 0xff, 0, 0},
7761 {0x21, 0xc0, 0xc0, 0, 0},
7762 {0x22, 0, 0, 0, 0},
7763 {0x23, 0x2c, 0x2c, 0, 0},
7764 {0x24, 0, 0, 0, 0},
7765 {0x25, 0, 0, 0, 0},
7766 {0x26, 0, 0, 0, 0},
7767 {0x27, 0, 0, 0, 0},
7768 {0x28, 0, 0, 0, 0},
7769 {0x29, 0, 0, 0, 0},
7770 {0x2A, 0, 0, 0, 0},
7771 {0x2B, 0, 0, 0, 0},
7772 {0x2C, 0, 0, 0, 0},
7773 {0x2D, 0xa4, 0xa4, 0, 0},
7774 {0x2E, 0x38, 0x38, 0, 0},
7775 {0x2F, 0, 0, 0, 0},
7776 {0x30, 0x4, 0x4, 1, 1},
7777 {0x31, 0, 0, 0, 0},
7778 {0x32, 0xa, 0xa, 0, 0},
7779 {0x33, 0x87, 0x87, 0, 0},
7780 {0x34, 0x9, 0x9, 0, 0},
7781 {0x35, 0x70, 0x70, 0, 0},
7782 {0x36, 0x11, 0x11, 0, 0},
7783 {0x37, 0x18, 0x18, 1, 1},
7784 {0x38, 0x6, 0x6, 0, 0},
7785 {0x39, 0x4, 0x4, 1, 1},
7786 {0x3A, 0x6, 0x6, 0, 0},
7787 {0x3B, 0x9e, 0x9e, 0, 0},
7788 {0x3C, 0x9, 0x9, 0, 0},
7789 {0x3D, 0xc8, 0xc8, 1, 1},
7790 {0x3E, 0x88, 0x88, 0, 0},
7791 {0x3F, 0, 0, 0, 0},
7792 {0x40, 0, 0, 0, 0},
7793 {0x41, 0, 0, 0, 0},
7794 {0x42, 0x1, 0x1, 0, 0},
7795 {0x43, 0x2, 0x2, 0, 0},
7796 {0x44, 0x96, 0x96, 0, 0},
7797 {0x45, 0x3e, 0x3e, 0, 0},
7798 {0x46, 0x3e, 0x3e, 0, 0},
7799 {0x47, 0x13, 0x13, 0, 0},
7800 {0x48, 0x2, 0x2, 0, 0},
7801 {0x49, 0x15, 0x15, 0, 0},
7802 {0x4A, 0x7, 0x7, 0, 0},
7803 {0x4B, 0, 0, 0, 0},
7804 {0x4C, 0, 0, 0, 0},
7805 {0x4D, 0, 0, 0, 0},
7806 {0x4E, 0, 0, 0, 0},
7807 {0x4F, 0, 0, 0, 0},
7808 {0x50, 0x8, 0x8, 0, 0},
7809 {0x51, 0x8, 0x8, 0, 0},
7810 {0x52, 0x6, 0x6, 0, 0},
7811 {0x53, 0x84, 0x84, 1, 1},
7812 {0x54, 0xc3, 0xc3, 0, 0},
7813 {0x55, 0x8f, 0x8f, 0, 0},
7814 {0x56, 0xff, 0xff, 0, 0},
7815 {0x57, 0xff, 0xff, 0, 0},
7816 {0x58, 0x88, 0x88, 0, 0},
7817 {0x59, 0x88, 0x88, 0, 0},
7818 {0x5A, 0, 0, 0, 0},
7819 {0x5B, 0xcc, 0xcc, 0, 0},
7820 {0x5C, 0x6, 0x6, 0, 0},
7821 {0x5D, 0x80, 0x80, 0, 0},
7822 {0x5E, 0x80, 0x80, 0, 0},
7823 {0x5F, 0xf8, 0xf8, 0, 0},
7824 {0x60, 0x88, 0x88, 0, 0},
7825 {0x61, 0x88, 0x88, 0, 0},
7826 {0x62, 0x88, 0x8, 1, 1},
7827 {0x63, 0x88, 0x88, 0, 0},
7828 {0x64, 0, 0, 0, 0},
7829 {0x65, 0x1, 0x1, 1, 1},
7830 {0x66, 0x8a, 0x8a, 0, 0},
7831 {0x67, 0x8, 0x8, 0, 0},
7832 {0x68, 0x83, 0x83, 0, 0},
7833 {0x69, 0x6, 0x6, 0, 0},
7834 {0x6A, 0xa0, 0xa0, 0, 0},
7835 {0x6B, 0xa, 0xa, 0, 0},
7836 {0x6C, 0x87, 0x87, 1, 1},
7837 {0x6D, 0x2a, 0x2a, 0, 0},
7838 {0x6E, 0x2a, 0x2a, 0, 0},
7839 {0x6F, 0x2a, 0x2a, 0, 0},
7840 {0x70, 0x2a, 0x2a, 0, 0},
7841 {0x71, 0x18, 0x18, 0, 0},
7842 {0x72, 0x6a, 0x6a, 1, 1},
7843 {0x73, 0xab, 0xab, 1, 1},
7844 {0x74, 0x13, 0x13, 1, 1},
7845 {0x75, 0xc1, 0xc1, 1, 1},
7846 {0x76, 0xaa, 0xaa, 1, 1},
7847 {0x77, 0x87, 0x87, 1, 1},
7848 {0x78, 0, 0, 0, 0},
7849 {0x79, 0x6, 0x6, 0, 0},
7850 {0x7A, 0x7, 0x7, 0, 0},
7851 {0x7B, 0x7, 0x7, 0, 0},
7852 {0x7C, 0x15, 0x15, 0, 0},
7853 {0x7D, 0x55, 0x55, 0, 0},
7854 {0x7E, 0x97, 0x97, 1, 1},
7855 {0x7F, 0x8, 0x8, 0, 0},
7856 {0x80, 0x14, 0x14, 1, 1},
7857 {0x81, 0x33, 0x33, 0, 0},
7858 {0x82, 0x88, 0x88, 0, 0},
7859 {0x83, 0x6, 0x6, 0, 0},
7860 {0x84, 0x3, 0x3, 1, 1},
7861 {0x85, 0xa, 0xa, 0, 0},
7862 {0x86, 0x3, 0x3, 1, 1},
7863 {0x87, 0x2a, 0x2a, 0, 0},
7864 {0x88, 0xa4, 0xa4, 0, 0},
7865 {0x89, 0x18, 0x18, 0, 0},
7866 {0x8A, 0x28, 0x28, 0, 0},
7867 {0x8B, 0, 0, 0, 0},
7868 {0x8C, 0x4a, 0x4a, 0, 0},
7869 {0x8D, 0, 0, 0, 0},
7870 {0x8E, 0xf8, 0xf8, 0, 0},
7871 {0x8F, 0x88, 0x88, 0, 0},
7872 {0x90, 0x88, 0x88, 0, 0},
7873 {0x91, 0x88, 0x8, 1, 1},
7874 {0x92, 0x88, 0x88, 0, 0},
7875 {0x93, 0, 0, 0, 0},
7876 {0x94, 0x1, 0x1, 1, 1},
7877 {0x95, 0x8a, 0x8a, 0, 0},
7878 {0x96, 0x8, 0x8, 0, 0},
7879 {0x97, 0x83, 0x83, 0, 0},
7880 {0x98, 0x6, 0x6, 0, 0},
7881 {0x99, 0xa0, 0xa0, 0, 0},
7882 {0x9A, 0xa, 0xa, 0, 0},
7883 {0x9B, 0x87, 0x87, 1, 1},
7884 {0x9C, 0x2a, 0x2a, 0, 0},
7885 {0x9D, 0x2a, 0x2a, 0, 0},
7886 {0x9E, 0x2a, 0x2a, 0, 0},
7887 {0x9F, 0x2a, 0x2a, 0, 0},
7888 {0xA0, 0x18, 0x18, 0, 0},
7889 {0xA1, 0x6a, 0x6a, 1, 1},
7890 {0xA2, 0xab, 0xab, 1, 1},
7891 {0xA3, 0x13, 0x13, 1, 1},
7892 {0xA4, 0xc1, 0xc1, 1, 1},
7893 {0xA5, 0xaa, 0xaa, 1, 1},
7894 {0xA6, 0x87, 0x87, 1, 1},
7895 {0xA7, 0, 0, 0, 0},
7896 {0xA8, 0x6, 0x6, 0, 0},
7897 {0xA9, 0x7, 0x7, 0, 0},
7898 {0xAA, 0x7, 0x7, 0, 0},
7899 {0xAB, 0x15, 0x15, 0, 0},
7900 {0xAC, 0x55, 0x55, 0, 0},
7901 {0xAD, 0x97, 0x97, 1, 1},
7902 {0xAE, 0x8, 0x8, 0, 0},
7903 {0xAF, 0x14, 0x14, 1, 1},
7904 {0xB0, 0x33, 0x33, 0, 0},
7905 {0xB1, 0x88, 0x88, 0, 0},
7906 {0xB2, 0x6, 0x6, 0, 0},
7907 {0xB3, 0x3, 0x3, 1, 1},
7908 {0xB4, 0xa, 0xa, 0, 0},
7909 {0xB5, 0x3, 0x3, 1, 1},
7910 {0xB6, 0x2a, 0x2a, 0, 0},
7911 {0xB7, 0xa4, 0xa4, 0, 0},
7912 {0xB8, 0x18, 0x18, 0, 0},
7913 {0xB9, 0x28, 0x28, 0, 0},
7914 {0xBA, 0, 0, 0, 0},
7915 {0xBB, 0x4a, 0x4a, 0, 0},
7916 {0xBC, 0, 0, 0, 0},
7917 {0xBD, 0x71, 0x71, 0, 0},
7918 {0xBE, 0x72, 0x72, 0, 0},
7919 {0xBF, 0x73, 0x73, 0, 0},
7920 {0xC0, 0x74, 0x74, 0, 0},
7921 {0xC1, 0x75, 0x75, 0, 0},
7922 {0xC2, 0x76, 0x76, 0, 0},
7923 {0xC3, 0x77, 0x77, 0, 0},
7924 {0xC4, 0x78, 0x78, 0, 0},
7925 {0xC5, 0x79, 0x79, 0, 0},
7926 {0xC6, 0x7a, 0x7a, 0, 0},
7927 {0xC7, 0, 0, 0, 0},
7928 {0xC8, 0, 0, 0, 0},
7929 {0xC9, 0, 0, 0, 0},
7930 {0xCA, 0, 0, 0, 0},
7931 {0xCB, 0, 0, 0, 0},
7932 {0xCC, 0, 0, 0, 0},
7933 {0xCD, 0, 0, 0, 0},
7934 {0xCE, 0x6, 0x6, 0, 0},
7935 {0xCF, 0, 0, 0, 0},
7936 {0xD0, 0, 0, 0, 0},
7937 {0xD1, 0x18, 0x18, 0, 0},
7938 {0xD2, 0x88, 0x88, 0, 0},
7939 {0xD3, 0, 0, 0, 0},
7940 {0xD4, 0, 0, 0, 0},
7941 {0xD5, 0, 0, 0, 0},
7942 {0xD6, 0, 0, 0, 0},
7943 {0xD7, 0, 0, 0, 0},
7944 {0xD8, 0, 0, 0, 0},
7945 {0xD9, 0, 0, 0, 0},
7946 {0xDA, 0x6, 0x6, 0, 0},
7947 {0xDB, 0, 0, 0, 0},
7948 {0xDC, 0, 0, 0, 0},
7949 {0xDD, 0x18, 0x18, 0, 0},
7950 {0xDE, 0x88, 0x88, 0, 0},
7951 {0xDF, 0, 0, 0, 0},
7952 {0xE0, 0, 0, 0, 0},
7953 {0xE1, 0, 0, 0, 0},
7954 {0xE2, 0, 0, 0, 0},
7955 {0xFFFF, 0, 0, 0, 0},
7956};
7957
7958radio_regs_t regs_SYN_2056[] = {
7959 {0x02, 0, 0, 0, 0},
7960 {0x03, 0, 0, 0, 0},
7961 {0x04, 0, 0, 0, 0},
7962 {0x05, 0, 0, 0, 0},
7963 {0x06, 0, 0, 0, 0},
7964 {0x07, 0, 0, 0, 0},
7965 {0x08, 0, 0, 0, 0},
7966 {0x09, 0x1, 0x1, 0, 0},
7967 {0x0A, 0, 0, 0, 0},
7968 {0x0B, 0, 0, 0, 0},
7969 {0x0C, 0, 0, 0, 0},
7970 {0x0D, 0, 0, 0, 0},
7971 {0x0E, 0, 0, 0, 0},
7972 {0x0F, 0, 0, 0, 0},
7973 {0x10, 0, 0, 0, 0},
7974 {0x11, 0, 0, 0, 0},
7975 {0x12, 0, 0, 0, 0},
7976 {0x13, 0, 0, 0, 0},
7977 {0x14, 0, 0, 0, 0},
7978 {0x15, 0, 0, 0, 0},
7979 {0x16, 0, 0, 0, 0},
7980 {0x17, 0, 0, 0, 0},
7981 {0x18, 0, 0, 0, 0},
7982 {0x19, 0, 0, 0, 0},
7983 {0x1A, 0, 0, 0, 0},
7984 {0x1B, 0, 0, 0, 0},
7985 {0x1C, 0, 0, 0, 0},
7986 {0x1D, 0, 0, 0, 0},
7987 {0x1E, 0, 0, 0, 0},
7988 {0x1F, 0, 0, 0, 0},
7989 {0x20, 0, 0, 0, 0},
7990 {0x21, 0, 0, 0, 0},
7991 {0x22, 0x60, 0x60, 0, 0},
7992 {0x23, 0x6, 0x6, 0, 0},
7993 {0x24, 0xc, 0xc, 0, 0},
7994 {0x25, 0, 0, 0, 0},
7995 {0x26, 0, 0, 0, 0},
7996 {0x27, 0, 0, 0, 0},
7997 {0x28, 0x1, 0x1, 0, 0},
7998 {0x29, 0, 0, 0, 0},
7999 {0x2A, 0, 0, 0, 0},
8000 {0x2B, 0, 0, 0, 0},
8001 {0x2C, 0, 0, 0, 0},
8002 {0x2D, 0, 0, 0, 0},
8003 {0x2E, 0xd, 0xd, 0, 0},
8004 {0x2F, 0x1f, 0x1f, 0, 0},
8005 {0x30, 0x15, 0x15, 0, 0},
8006 {0x31, 0xf, 0xf, 0, 0},
8007 {0x32, 0, 0, 0, 0},
8008 {0x33, 0, 0, 0, 0},
8009 {0x34, 0, 0, 0, 0},
8010 {0x35, 0, 0, 0, 0},
8011 {0x36, 0, 0, 0, 0},
8012 {0x37, 0, 0, 0, 0},
8013 {0x38, 0, 0, 0, 0},
8014 {0x39, 0, 0, 0, 0},
8015 {0x3A, 0, 0, 0, 0},
8016 {0x3B, 0, 0, 0, 0},
8017 {0x3C, 0x13, 0x13, 0, 0},
8018 {0x3D, 0xf, 0xf, 0, 0},
8019 {0x3E, 0x18, 0x18, 0, 0},
8020 {0x3F, 0, 0, 0, 0},
8021 {0x40, 0, 0, 0, 0},
8022 {0x41, 0x20, 0x20, 0, 0},
8023 {0x42, 0x20, 0x20, 0, 0},
8024 {0x43, 0, 0, 0, 0},
8025 {0x44, 0x77, 0x77, 0, 0},
8026 {0x45, 0x7, 0x7, 0, 0},
8027 {0x46, 0x1, 0x1, 0, 0},
8028 {0x47, 0x4, 0x4, 0, 0},
8029 {0x48, 0xf, 0xf, 0, 0},
8030 {0x49, 0x30, 0x30, 0, 0},
8031 {0x4A, 0x32, 0x32, 0, 0},
8032 {0x4B, 0xd, 0xd, 0, 0},
8033 {0x4C, 0xd, 0xd, 0, 0},
8034 {0x4D, 0x4, 0x4, 0, 0},
8035 {0x4E, 0x6, 0x6, 0, 0},
8036 {0x4F, 0x1, 0x1, 0, 0},
8037 {0x50, 0x1c, 0x1c, 0, 0},
8038 {0x51, 0x2, 0x2, 0, 0},
8039 {0x52, 0x2, 0x2, 0, 0},
8040 {0x53, 0xf7, 0xf7, 1, 1},
8041 {0x54, 0xb4, 0xb4, 0, 0},
8042 {0x55, 0xd2, 0xd2, 0, 0},
8043 {0x56, 0, 0, 0, 0},
8044 {0x57, 0, 0, 0, 0},
8045 {0x58, 0x4, 0x4, 0, 0},
8046 {0x59, 0x96, 0x96, 0, 0},
8047 {0x5A, 0x3e, 0x3e, 0, 0},
8048 {0x5B, 0x3e, 0x3e, 0, 0},
8049 {0x5C, 0x13, 0x13, 0, 0},
8050 {0x5D, 0x2, 0x2, 0, 0},
8051 {0x5E, 0, 0, 0, 0},
8052 {0x5F, 0x7, 0x7, 0, 0},
8053 {0x60, 0x7, 0x7, 1, 1},
8054 {0x61, 0x8, 0x8, 0, 0},
8055 {0x62, 0x3, 0x3, 0, 0},
8056 {0x63, 0, 0, 0, 0},
8057 {0x64, 0, 0, 0, 0},
8058 {0x65, 0, 0, 0, 0},
8059 {0x66, 0, 0, 0, 0},
8060 {0x67, 0, 0, 0, 0},
8061 {0x68, 0x40, 0x40, 0, 0},
8062 {0x69, 0, 0, 0, 0},
8063 {0x6A, 0, 0, 0, 0},
8064 {0x6B, 0, 0, 0, 0},
8065 {0x6C, 0, 0, 0, 0},
8066 {0x6D, 0x1, 0x1, 0, 0},
8067 {0x6E, 0, 0, 0, 0},
8068 {0x6F, 0, 0, 0, 0},
8069 {0x70, 0x60, 0x60, 0, 0},
8070 {0x71, 0x66, 0x66, 0, 0},
8071 {0x72, 0xc, 0xc, 0, 0},
8072 {0x73, 0x66, 0x66, 0, 0},
8073 {0x74, 0x8f, 0x8f, 1, 1},
8074 {0x75, 0, 0, 0, 0},
8075 {0x76, 0xcc, 0xcc, 0, 0},
8076 {0x77, 0x1, 0x1, 0, 0},
8077 {0x78, 0x66, 0x66, 0, 0},
8078 {0x79, 0x66, 0x66, 0, 0},
8079 {0x7A, 0, 0, 0, 0},
8080 {0x7B, 0, 0, 0, 0},
8081 {0x7C, 0, 0, 0, 0},
8082 {0x7D, 0, 0, 0, 0},
8083 {0x7E, 0, 0, 0, 0},
8084 {0x7F, 0, 0, 0, 0},
8085 {0x80, 0, 0, 0, 0},
8086 {0x81, 0, 0, 0, 0},
8087 {0x82, 0, 0, 0, 0},
8088 {0x83, 0, 0, 0, 0},
8089 {0x84, 0, 0, 0, 0},
8090 {0x85, 0xff, 0xff, 0, 0},
8091 {0x86, 0, 0, 0, 0},
8092 {0x87, 0, 0, 0, 0},
8093 {0x88, 0, 0, 0, 0},
8094 {0x89, 0, 0, 0, 0},
8095 {0x8A, 0, 0, 0, 0},
8096 {0x8B, 0, 0, 0, 0},
8097 {0x8C, 0, 0, 0, 0},
8098 {0x8D, 0, 0, 0, 0},
8099 {0x8E, 0, 0, 0, 0},
8100 {0x8F, 0, 0, 0, 0},
8101 {0x90, 0, 0, 0, 0},
8102 {0x91, 0, 0, 0, 0},
8103 {0x92, 0, 0, 0, 0},
8104 {0x93, 0, 0, 0, 0},
8105 {0x94, 0, 0, 0, 0},
8106 {0x95, 0, 0, 0, 0},
8107 {0x96, 0, 0, 0, 0},
8108 {0x97, 0, 0, 0, 0},
8109 {0x98, 0, 0, 0, 0},
8110 {0x99, 0, 0, 0, 0},
8111 {0x9A, 0, 0, 0, 0},
8112 {0x9B, 0, 0, 0, 0},
8113 {0x9C, 0, 0, 0, 0},
8114 {0x9D, 0, 0, 0, 0},
8115 {0x9E, 0, 0, 0, 0},
8116 {0x9F, 0x6, 0x6, 0, 0},
8117 {0xA0, 0x66, 0x66, 0, 0},
8118 {0xA1, 0x66, 0x66, 0, 0},
8119 {0xA2, 0x66, 0x66, 0, 0},
8120 {0xA3, 0x66, 0x66, 0, 0},
8121 {0xA4, 0x66, 0x66, 0, 0},
8122 {0xA5, 0x66, 0x66, 0, 0},
8123 {0xA6, 0x66, 0x66, 0, 0},
8124 {0xA7, 0x66, 0x66, 0, 0},
8125 {0xA8, 0x66, 0x66, 0, 0},
8126 {0xA9, 0x66, 0x66, 0, 0},
8127 {0xAA, 0x66, 0x66, 0, 0},
8128 {0xAB, 0x66, 0x66, 0, 0},
8129 {0xAC, 0x66, 0x66, 0, 0},
8130 {0xAD, 0x66, 0x66, 0, 0},
8131 {0xAE, 0x66, 0x66, 0, 0},
8132 {0xAF, 0x66, 0x66, 0, 0},
8133 {0xB0, 0x66, 0x66, 0, 0},
8134 {0xB1, 0x66, 0x66, 0, 0},
8135 {0xB2, 0x66, 0x66, 0, 0},
8136 {0xB3, 0xa, 0xa, 0, 0},
8137 {0xB4, 0, 0, 0, 0},
8138 {0xB5, 0, 0, 0, 0},
8139 {0xB6, 0, 0, 0, 0},
8140 {0xFFFF, 0, 0, 0, 0}
8141};
8142
8143radio_regs_t regs_TX_2056[] = {
8144 {0x02, 0, 0, 0, 0},
8145 {0x03, 0, 0, 0, 0},
8146 {0x04, 0, 0, 0, 0},
8147 {0x05, 0, 0, 0, 0},
8148 {0x06, 0, 0, 0, 0},
8149 {0x07, 0, 0, 0, 0},
8150 {0x08, 0, 0, 0, 0},
8151 {0x09, 0, 0, 0, 0},
8152 {0x0A, 0, 0, 0, 0},
8153 {0x0B, 0, 0, 0, 0},
8154 {0x0C, 0, 0, 0, 0},
8155 {0x0D, 0, 0, 0, 0},
8156 {0x0E, 0, 0, 0, 0},
8157 {0x0F, 0, 0, 0, 0},
8158 {0x10, 0, 0, 0, 0},
8159 {0x11, 0, 0, 0, 0},
8160 {0x12, 0, 0, 0, 0},
8161 {0x13, 0, 0, 0, 0},
8162 {0x14, 0, 0, 0, 0},
8163 {0x15, 0, 0, 0, 0},
8164 {0x16, 0, 0, 0, 0},
8165 {0x17, 0, 0, 0, 0},
8166 {0x18, 0, 0, 0, 0},
8167 {0x19, 0, 0, 0, 0},
8168 {0x1A, 0, 0, 0, 0},
8169 {0x1B, 0, 0, 0, 0},
8170 {0x1C, 0, 0, 0, 0},
8171 {0x1D, 0, 0, 0, 0},
8172 {0x1E, 0, 0, 0, 0},
8173 {0x1F, 0, 0, 0, 0},
8174 {0x20, 0, 0, 0, 0},
8175 {0x21, 0x88, 0x88, 0, 0},
8176 {0x22, 0x88, 0x88, 0, 0},
8177 {0x23, 0x88, 0x88, 0, 0},
8178 {0x24, 0x88, 0x88, 0, 0},
8179 {0x25, 0xc, 0xc, 0, 0},
8180 {0x26, 0, 0, 0, 0},
8181 {0x27, 0x3, 0x3, 0, 0},
8182 {0x28, 0, 0, 0, 0},
8183 {0x29, 0x3, 0x3, 0, 0},
8184 {0x2A, 0x37, 0x37, 0, 0},
8185 {0x2B, 0x3, 0x3, 0, 0},
8186 {0x2C, 0, 0, 0, 0},
8187 {0x2D, 0, 0, 0, 0},
8188 {0x2E, 0x1, 0x1, 0, 0},
8189 {0x2F, 0x1, 0x1, 0, 0},
8190 {0x30, 0, 0, 0, 0},
8191 {0x31, 0, 0, 0, 0},
8192 {0x32, 0, 0, 0, 0},
8193 {0x33, 0x11, 0x11, 0, 0},
8194 {0x34, 0x11, 0x11, 0, 0},
8195 {0x35, 0, 0, 0, 0},
8196 {0x36, 0, 0, 0, 0},
8197 {0x37, 0x3, 0x3, 0, 0},
8198 {0x38, 0xf, 0xf, 0, 0},
8199 {0x39, 0, 0, 0, 0},
8200 {0x3A, 0x2d, 0x2d, 0, 0},
8201 {0x3B, 0, 0, 0, 0},
8202 {0x3C, 0x6e, 0x6e, 0, 0},
8203 {0x3D, 0xf0, 0xf0, 1, 1},
8204 {0x3E, 0, 0, 0, 0},
8205 {0x3F, 0, 0, 0, 0},
8206 {0x40, 0, 0, 0, 0},
8207 {0x41, 0x3, 0x3, 0, 0},
8208 {0x42, 0x3, 0x3, 0, 0},
8209 {0x43, 0, 0, 0, 0},
8210 {0x44, 0x1e, 0x1e, 0, 0},
8211 {0x45, 0, 0, 0, 0},
8212 {0x46, 0x6e, 0x6e, 0, 0},
8213 {0x47, 0xf0, 0xf0, 1, 1},
8214 {0x48, 0, 0, 0, 0},
8215 {0x49, 0x2, 0x2, 0, 0},
8216 {0x4A, 0xff, 0xff, 1, 1},
8217 {0x4B, 0xc, 0xc, 0, 0},
8218 {0x4C, 0, 0, 0, 0},
8219 {0x4D, 0x38, 0x38, 0, 0},
8220 {0x4E, 0x70, 0x70, 1, 1},
8221 {0x4F, 0x2, 0x2, 0, 0},
8222 {0x50, 0x88, 0x88, 0, 0},
8223 {0x51, 0xc, 0xc, 0, 0},
8224 {0x52, 0, 0, 0, 0},
8225 {0x53, 0x8, 0x8, 0, 0},
8226 {0x54, 0x70, 0x70, 1, 1},
8227 {0x55, 0x2, 0x2, 0, 0},
8228 {0x56, 0xff, 0xff, 1, 1},
8229 {0x57, 0, 0, 0, 0},
8230 {0x58, 0x83, 0x83, 0, 0},
8231 {0x59, 0x77, 0x77, 1, 1},
8232 {0x5A, 0, 0, 0, 0},
8233 {0x5B, 0x2, 0x2, 0, 0},
8234 {0x5C, 0x88, 0x88, 0, 0},
8235 {0x5D, 0, 0, 0, 0},
8236 {0x5E, 0x8, 0x8, 0, 0},
8237 {0x5F, 0x77, 0x77, 1, 1},
8238 {0x60, 0x1, 0x1, 0, 0},
8239 {0x61, 0, 0, 0, 0},
8240 {0x62, 0x7, 0x7, 0, 0},
8241 {0x63, 0, 0, 0, 0},
8242 {0x64, 0x7, 0x7, 0, 0},
8243 {0x65, 0, 0, 0, 0},
8244 {0x66, 0, 0, 0, 0},
8245 {0x67, 0x74, 0x74, 1, 1},
8246 {0x68, 0, 0, 0, 0},
8247 {0x69, 0xa, 0xa, 0, 0},
8248 {0x6A, 0, 0, 0, 0},
8249 {0x6B, 0, 0, 0, 0},
8250 {0x6C, 0, 0, 0, 0},
8251 {0x6D, 0, 0, 0, 0},
8252 {0x6E, 0, 0, 0, 0},
8253 {0x6F, 0, 0, 0, 0},
8254 {0x70, 0, 0, 0, 0},
8255 {0x71, 0x2, 0x2, 0, 0},
8256 {0x72, 0, 0, 0, 0},
8257 {0x73, 0, 0, 0, 0},
8258 {0x74, 0xe, 0xe, 0, 0},
8259 {0x75, 0xe, 0xe, 0, 0},
8260 {0x76, 0xe, 0xe, 0, 0},
8261 {0x77, 0x13, 0x13, 0, 0},
8262 {0x78, 0x13, 0x13, 0, 0},
8263 {0x79, 0x1b, 0x1b, 0, 0},
8264 {0x7A, 0x1b, 0x1b, 0, 0},
8265 {0x7B, 0x55, 0x55, 0, 0},
8266 {0x7C, 0x5b, 0x5b, 0, 0},
8267 {0x7D, 0, 0, 0, 0},
8268 {0x7E, 0, 0, 0, 0},
8269 {0x7F, 0, 0, 0, 0},
8270 {0x80, 0, 0, 0, 0},
8271 {0x81, 0, 0, 0, 0},
8272 {0x82, 0, 0, 0, 0},
8273 {0x83, 0, 0, 0, 0},
8274 {0x84, 0, 0, 0, 0},
8275 {0x85, 0, 0, 0, 0},
8276 {0x86, 0, 0, 0, 0},
8277 {0x87, 0, 0, 0, 0},
8278 {0x88, 0, 0, 0, 0},
8279 {0x89, 0, 0, 0, 0},
8280 {0x8A, 0, 0, 0, 0},
8281 {0x8B, 0, 0, 0, 0},
8282 {0x8C, 0, 0, 0, 0},
8283 {0x8D, 0, 0, 0, 0},
8284 {0x8E, 0, 0, 0, 0},
8285 {0x8F, 0, 0, 0, 0},
8286 {0x90, 0, 0, 0, 0},
8287 {0x91, 0, 0, 0, 0},
8288 {0x92, 0, 0, 0, 0},
8289 {0xFFFF, 0, 0, 0, 0}
8290};
8291
8292radio_regs_t regs_RX_2056[] = {
8293 {0x02, 0, 0, 0, 0},
8294 {0x03, 0, 0, 0, 0},
8295 {0x04, 0, 0, 0, 0},
8296 {0x05, 0, 0, 0, 0},
8297 {0x06, 0, 0, 0, 0},
8298 {0x07, 0, 0, 0, 0},
8299 {0x08, 0, 0, 0, 0},
8300 {0x09, 0, 0, 0, 0},
8301 {0x0A, 0, 0, 0, 0},
8302 {0x0B, 0, 0, 0, 0},
8303 {0x0C, 0, 0, 0, 0},
8304 {0x0D, 0, 0, 0, 0},
8305 {0x0E, 0, 0, 0, 0},
8306 {0x0F, 0, 0, 0, 0},
8307 {0x10, 0, 0, 0, 0},
8308 {0x11, 0, 0, 0, 0},
8309 {0x12, 0, 0, 0, 0},
8310 {0x13, 0, 0, 0, 0},
8311 {0x14, 0, 0, 0, 0},
8312 {0x15, 0, 0, 0, 0},
8313 {0x16, 0, 0, 0, 0},
8314 {0x17, 0, 0, 0, 0},
8315 {0x18, 0, 0, 0, 0},
8316 {0x19, 0, 0, 0, 0},
8317 {0x1A, 0, 0, 0, 0},
8318 {0x1B, 0, 0, 0, 0},
8319 {0x1C, 0, 0, 0, 0},
8320 {0x1D, 0, 0, 0, 0},
8321 {0x1E, 0, 0, 0, 0},
8322 {0x1F, 0, 0, 0, 0},
8323 {0x20, 0x3, 0x3, 0, 0},
8324 {0x21, 0, 0, 0, 0},
8325 {0x22, 0, 0, 0, 0},
8326 {0x23, 0x90, 0x90, 0, 0},
8327 {0x24, 0x55, 0x55, 0, 0},
8328 {0x25, 0x15, 0x15, 0, 0},
8329 {0x26, 0x5, 0x5, 0, 0},
8330 {0x27, 0x15, 0x15, 0, 0},
8331 {0x28, 0x5, 0x5, 0, 0},
8332 {0x29, 0x20, 0x20, 0, 0},
8333 {0x2A, 0x11, 0x11, 0, 0},
8334 {0x2B, 0x90, 0x90, 0, 0},
8335 {0x2C, 0, 0, 0, 0},
8336 {0x2D, 0x88, 0x88, 0, 0},
8337 {0x2E, 0x32, 0x32, 0, 0},
8338 {0x2F, 0x77, 0x77, 0, 0},
8339 {0x30, 0x17, 0x17, 1, 1},
8340 {0x31, 0xff, 0xff, 1, 1},
8341 {0x32, 0x20, 0x20, 0, 0},
8342 {0x33, 0, 0, 0, 0},
8343 {0x34, 0x88, 0x88, 0, 0},
8344 {0x35, 0x32, 0x32, 0, 0},
8345 {0x36, 0x77, 0x77, 0, 0},
8346 {0x37, 0x17, 0x17, 1, 1},
8347 {0x38, 0xf0, 0xf0, 1, 1},
8348 {0x39, 0x20, 0x20, 0, 0},
8349 {0x3A, 0x8, 0x8, 0, 0},
8350 {0x3B, 0x99, 0x99, 0, 0},
8351 {0x3C, 0, 0, 0, 0},
8352 {0x3D, 0x44, 0x44, 1, 1},
8353 {0x3E, 0, 0, 0, 0},
8354 {0x3F, 0x44, 0x44, 0, 0},
8355 {0x40, 0xf, 0xf, 1, 1},
8356 {0x41, 0x6, 0x6, 0, 0},
8357 {0x42, 0x4, 0x4, 0, 0},
8358 {0x43, 0x50, 0x50, 1, 1},
8359 {0x44, 0x8, 0x8, 0, 0},
8360 {0x45, 0x99, 0x99, 0, 0},
8361 {0x46, 0, 0, 0, 0},
8362 {0x47, 0x11, 0x11, 0, 0},
8363 {0x48, 0, 0, 0, 0},
8364 {0x49, 0x44, 0x44, 0, 0},
8365 {0x4A, 0x7, 0x7, 0, 0},
8366 {0x4B, 0x6, 0x6, 0, 0},
8367 {0x4C, 0x4, 0x4, 0, 0},
8368 {0x4D, 0, 0, 0, 0},
8369 {0x4E, 0, 0, 0, 0},
8370 {0x4F, 0x66, 0x66, 0, 0},
8371 {0x50, 0x66, 0x66, 0, 0},
8372 {0x51, 0x57, 0x57, 0, 0},
8373 {0x52, 0x57, 0x57, 0, 0},
8374 {0x53, 0x44, 0x44, 0, 0},
8375 {0x54, 0, 0, 0, 0},
8376 {0x55, 0, 0, 0, 0},
8377 {0x56, 0x8, 0x8, 0, 0},
8378 {0x57, 0x8, 0x8, 0, 0},
8379 {0x58, 0x7, 0x7, 0, 0},
8380 {0x59, 0x22, 0x22, 0, 0},
8381 {0x5A, 0x22, 0x22, 0, 0},
8382 {0x5B, 0x2, 0x2, 0, 0},
8383 {0x5C, 0x23, 0x23, 0, 0},
8384 {0x5D, 0x7, 0x7, 0, 0},
8385 {0x5E, 0x55, 0x55, 0, 0},
8386 {0x5F, 0x23, 0x23, 0, 0},
8387 {0x60, 0x41, 0x41, 0, 0},
8388 {0x61, 0x1, 0x1, 0, 0},
8389 {0x62, 0xa, 0xa, 0, 0},
8390 {0x63, 0, 0, 0, 0},
8391 {0x64, 0, 0, 0, 0},
8392 {0x65, 0, 0, 0, 0},
8393 {0x66, 0, 0, 0, 0},
8394 {0x67, 0, 0, 0, 0},
8395 {0x68, 0, 0, 0, 0},
8396 {0x69, 0, 0, 0, 0},
8397 {0x6A, 0, 0, 0, 0},
8398 {0x6B, 0xc, 0xc, 0, 0},
8399 {0x6C, 0, 0, 0, 0},
8400 {0x6D, 0, 0, 0, 0},
8401 {0x6E, 0, 0, 0, 0},
8402 {0x6F, 0, 0, 0, 0},
8403 {0x70, 0, 0, 0, 0},
8404 {0x71, 0, 0, 0, 0},
8405 {0x72, 0x22, 0x22, 0, 0},
8406 {0x73, 0x22, 0x22, 0, 0},
8407 {0x74, 0x2, 0x2, 0, 0},
8408 {0x75, 0xa, 0xa, 0, 0},
8409 {0x76, 0x1, 0x1, 0, 0},
8410 {0x77, 0x22, 0x22, 0, 0},
8411 {0x78, 0x30, 0x30, 0, 0},
8412 {0x79, 0, 0, 0, 0},
8413 {0x7A, 0, 0, 0, 0},
8414 {0x7B, 0, 0, 0, 0},
8415 {0x7C, 0, 0, 0, 0},
8416 {0x7D, 0, 0, 0, 0},
8417 {0x7E, 0, 0, 0, 0},
8418 {0x7F, 0, 0, 0, 0},
8419 {0x80, 0, 0, 0, 0},
8420 {0x81, 0, 0, 0, 0},
8421 {0x82, 0, 0, 0, 0},
8422 {0x83, 0, 0, 0, 0},
8423 {0x84, 0, 0, 0, 0},
8424 {0x85, 0, 0, 0, 0},
8425 {0x86, 0, 0, 0, 0},
8426 {0x87, 0, 0, 0, 0},
8427 {0x88, 0, 0, 0, 0},
8428 {0x89, 0, 0, 0, 0},
8429 {0x8A, 0, 0, 0, 0},
8430 {0x8B, 0, 0, 0, 0},
8431 {0x8C, 0, 0, 0, 0},
8432 {0x8D, 0, 0, 0, 0},
8433 {0x8E, 0, 0, 0, 0},
8434 {0x8F, 0, 0, 0, 0},
8435 {0x90, 0, 0, 0, 0},
8436 {0x91, 0, 0, 0, 0},
8437 {0x92, 0, 0, 0, 0},
8438 {0x93, 0, 0, 0, 0},
8439 {0x94, 0, 0, 0, 0},
8440 {0xFFFF, 0, 0, 0, 0}
8441};
8442
8443radio_regs_t regs_SYN_2056_A1[] = {
8444 {0x02, 0, 0, 0, 0},
8445 {0x03, 0, 0, 0, 0},
8446 {0x04, 0, 0, 0, 0},
8447 {0x05, 0, 0, 0, 0},
8448 {0x06, 0, 0, 0, 0},
8449 {0x07, 0, 0, 0, 0},
8450 {0x08, 0, 0, 0, 0},
8451 {0x09, 0x1, 0x1, 0, 0},
8452 {0x0A, 0, 0, 0, 0},
8453 {0x0B, 0, 0, 0, 0},
8454 {0x0C, 0, 0, 0, 0},
8455 {0x0D, 0, 0, 0, 0},
8456 {0x0E, 0, 0, 0, 0},
8457 {0x0F, 0, 0, 0, 0},
8458 {0x10, 0, 0, 0, 0},
8459 {0x11, 0, 0, 0, 0},
8460 {0x12, 0, 0, 0, 0},
8461 {0x13, 0, 0, 0, 0},
8462 {0x14, 0, 0, 0, 0},
8463 {0x15, 0, 0, 0, 0},
8464 {0x16, 0, 0, 0, 0},
8465 {0x17, 0, 0, 0, 0},
8466 {0x18, 0, 0, 0, 0},
8467 {0x19, 0, 0, 0, 0},
8468 {0x1A, 0, 0, 0, 0},
8469 {0x1B, 0, 0, 0, 0},
8470 {0x1C, 0, 0, 0, 0},
8471 {0x1D, 0, 0, 0, 0},
8472 {0x1E, 0, 0, 0, 0},
8473 {0x1F, 0, 0, 0, 0},
8474 {0x20, 0, 0, 0, 0},
8475 {0x21, 0, 0, 0, 0},
8476 {0x22, 0x60, 0x60, 0, 0},
8477 {0x23, 0x6, 0x6, 0, 0},
8478 {0x24, 0xc, 0xc, 0, 0},
8479 {0x25, 0, 0, 0, 0},
8480 {0x26, 0, 0, 0, 0},
8481 {0x27, 0, 0, 0, 0},
8482 {0x28, 0x1, 0x1, 0, 0},
8483 {0x29, 0, 0, 0, 0},
8484 {0x2A, 0, 0, 0, 0},
8485 {0x2B, 0, 0, 0, 0},
8486 {0x2C, 0, 0, 0, 0},
8487 {0x2D, 0, 0, 0, 0},
8488 {0x2E, 0xd, 0xd, 0, 0},
8489 {0x2F, 0x1f, 0x1f, 0, 0},
8490 {0x30, 0x15, 0x15, 0, 0},
8491 {0x31, 0xf, 0xf, 0, 0},
8492 {0x32, 0, 0, 0, 0},
8493 {0x33, 0, 0, 0, 0},
8494 {0x34, 0, 0, 0, 0},
8495 {0x35, 0, 0, 0, 0},
8496 {0x36, 0, 0, 0, 0},
8497 {0x37, 0, 0, 0, 0},
8498 {0x38, 0, 0, 0, 0},
8499 {0x39, 0, 0, 0, 0},
8500 {0x3A, 0, 0, 0, 0},
8501 {0x3B, 0, 0, 0, 0},
8502 {0x3C, 0x13, 0x13, 0, 0},
8503 {0x3D, 0xf, 0xf, 0, 0},
8504 {0x3E, 0x18, 0x18, 0, 0},
8505 {0x3F, 0, 0, 0, 0},
8506 {0x40, 0, 0, 0, 0},
8507 {0x41, 0x20, 0x20, 0, 0},
8508 {0x42, 0x20, 0x20, 0, 0},
8509 {0x43, 0, 0, 0, 0},
8510 {0x44, 0x77, 0x77, 0, 0},
8511 {0x45, 0x7, 0x7, 0, 0},
8512 {0x46, 0x1, 0x1, 0, 0},
8513 {0x47, 0x4, 0x4, 0, 0},
8514 {0x48, 0xf, 0xf, 0, 0},
8515 {0x49, 0x30, 0x30, 0, 0},
8516 {0x4A, 0x32, 0x32, 0, 0},
8517 {0x4B, 0xd, 0xd, 0, 0},
8518 {0x4C, 0xd, 0xd, 0, 0},
8519 {0x4D, 0x4, 0x4, 0, 0},
8520 {0x4E, 0x6, 0x6, 0, 0},
8521 {0x4F, 0x1, 0x1, 0, 0},
8522 {0x50, 0x1c, 0x1c, 0, 0},
8523 {0x51, 0x2, 0x2, 0, 0},
8524 {0x52, 0x2, 0x2, 0, 0},
8525 {0x53, 0xf7, 0xf7, 1, 1},
8526 {0x54, 0xb4, 0xb4, 0, 0},
8527 {0x55, 0xd2, 0xd2, 0, 0},
8528 {0x56, 0, 0, 0, 0},
8529 {0x57, 0, 0, 0, 0},
8530 {0x58, 0x4, 0x4, 0, 0},
8531 {0x59, 0x96, 0x96, 0, 0},
8532 {0x5A, 0x3e, 0x3e, 0, 0},
8533 {0x5B, 0x3e, 0x3e, 0, 0},
8534 {0x5C, 0x13, 0x13, 0, 0},
8535 {0x5D, 0x2, 0x2, 0, 0},
8536 {0x5E, 0, 0, 0, 0},
8537 {0x5F, 0x7, 0x7, 0, 0},
8538 {0x60, 0x7, 0x7, 1, 1},
8539 {0x61, 0x8, 0x8, 0, 0},
8540 {0x62, 0x3, 0x3, 0, 0},
8541 {0x63, 0, 0, 0, 0},
8542 {0x64, 0, 0, 0, 0},
8543 {0x65, 0, 0, 0, 0},
8544 {0x66, 0, 0, 0, 0},
8545 {0x67, 0, 0, 0, 0},
8546 {0x68, 0x40, 0x40, 0, 0},
8547 {0x69, 0, 0, 0, 0},
8548 {0x6A, 0, 0, 0, 0},
8549 {0x6B, 0, 0, 0, 0},
8550 {0x6C, 0, 0, 0, 0},
8551 {0x6D, 0x1, 0x1, 0, 0},
8552 {0x6E, 0, 0, 0, 0},
8553 {0x6F, 0, 0, 0, 0},
8554 {0x70, 0x60, 0x60, 0, 0},
8555 {0x71, 0x66, 0x66, 0, 0},
8556 {0x72, 0xc, 0xc, 0, 0},
8557 {0x73, 0x66, 0x66, 0, 0},
8558 {0x74, 0x8f, 0x8f, 1, 1},
8559 {0x75, 0, 0, 0, 0},
8560 {0x76, 0xcc, 0xcc, 0, 0},
8561 {0x77, 0x1, 0x1, 0, 0},
8562 {0x78, 0x66, 0x66, 0, 0},
8563 {0x79, 0x66, 0x66, 0, 0},
8564 {0x7A, 0, 0, 0, 0},
8565 {0x7B, 0, 0, 0, 0},
8566 {0x7C, 0, 0, 0, 0},
8567 {0x7D, 0, 0, 0, 0},
8568 {0x7E, 0, 0, 0, 0},
8569 {0x7F, 0, 0, 0, 0},
8570 {0x80, 0, 0, 0, 0},
8571 {0x81, 0, 0, 0, 0},
8572 {0x82, 0, 0, 0, 0},
8573 {0x83, 0, 0, 0, 0},
8574 {0x84, 0, 0, 0, 0},
8575 {0x85, 0xff, 0xff, 0, 0},
8576 {0x86, 0, 0, 0, 0},
8577 {0x87, 0, 0, 0, 0},
8578 {0x88, 0, 0, 0, 0},
8579 {0x89, 0, 0, 0, 0},
8580 {0x8A, 0, 0, 0, 0},
8581 {0x8B, 0, 0, 0, 0},
8582 {0x8C, 0, 0, 0, 0},
8583 {0x8D, 0, 0, 0, 0},
8584 {0x8E, 0, 0, 0, 0},
8585 {0x8F, 0, 0, 0, 0},
8586 {0x90, 0, 0, 0, 0},
8587 {0x91, 0, 0, 0, 0},
8588 {0x92, 0, 0, 0, 0},
8589 {0x93, 0, 0, 0, 0},
8590 {0x94, 0, 0, 0, 0},
8591 {0x95, 0, 0, 0, 0},
8592 {0x96, 0, 0, 0, 0},
8593 {0x97, 0, 0, 0, 0},
8594 {0x98, 0, 0, 0, 0},
8595 {0x99, 0, 0, 0, 0},
8596 {0x9A, 0, 0, 0, 0},
8597 {0x9B, 0, 0, 0, 0},
8598 {0x9C, 0, 0, 0, 0},
8599 {0x9D, 0, 0, 0, 0},
8600 {0x9E, 0, 0, 0, 0},
8601 {0x9F, 0x6, 0x6, 0, 0},
8602 {0xA0, 0x66, 0x66, 0, 0},
8603 {0xA1, 0x66, 0x66, 0, 0},
8604 {0xA2, 0x66, 0x66, 0, 0},
8605 {0xA3, 0x66, 0x66, 0, 0},
8606 {0xA4, 0x66, 0x66, 0, 0},
8607 {0xA5, 0x66, 0x66, 0, 0},
8608 {0xA6, 0x66, 0x66, 0, 0},
8609 {0xA7, 0x66, 0x66, 0, 0},
8610 {0xA8, 0x66, 0x66, 0, 0},
8611 {0xA9, 0x66, 0x66, 0, 0},
8612 {0xAA, 0x66, 0x66, 0, 0},
8613 {0xAB, 0x66, 0x66, 0, 0},
8614 {0xAC, 0x66, 0x66, 0, 0},
8615 {0xAD, 0x66, 0x66, 0, 0},
8616 {0xAE, 0x66, 0x66, 0, 0},
8617 {0xAF, 0x66, 0x66, 0, 0},
8618 {0xB0, 0x66, 0x66, 0, 0},
8619 {0xB1, 0x66, 0x66, 0, 0},
8620 {0xB2, 0x66, 0x66, 0, 0},
8621 {0xB3, 0xa, 0xa, 0, 0},
8622 {0xB4, 0, 0, 0, 0},
8623 {0xB5, 0, 0, 0, 0},
8624 {0xB6, 0, 0, 0, 0},
8625 {0xFFFF, 0, 0, 0, 0}
8626};
8627
8628radio_regs_t regs_TX_2056_A1[] = {
8629 {0x02, 0, 0, 0, 0},
8630 {0x03, 0, 0, 0, 0},
8631 {0x04, 0, 0, 0, 0},
8632 {0x05, 0, 0, 0, 0},
8633 {0x06, 0, 0, 0, 0},
8634 {0x07, 0, 0, 0, 0},
8635 {0x08, 0, 0, 0, 0},
8636 {0x09, 0, 0, 0, 0},
8637 {0x0A, 0, 0, 0, 0},
8638 {0x0B, 0, 0, 0, 0},
8639 {0x0C, 0, 0, 0, 0},
8640 {0x0D, 0, 0, 0, 0},
8641 {0x0E, 0, 0, 0, 0},
8642 {0x0F, 0, 0, 0, 0},
8643 {0x10, 0, 0, 0, 0},
8644 {0x11, 0, 0, 0, 0},
8645 {0x12, 0, 0, 0, 0},
8646 {0x13, 0, 0, 0, 0},
8647 {0x14, 0, 0, 0, 0},
8648 {0x15, 0, 0, 0, 0},
8649 {0x16, 0, 0, 0, 0},
8650 {0x17, 0, 0, 0, 0},
8651 {0x18, 0, 0, 0, 0},
8652 {0x19, 0, 0, 0, 0},
8653 {0x1A, 0, 0, 0, 0},
8654 {0x1B, 0, 0, 0, 0},
8655 {0x1C, 0, 0, 0, 0},
8656 {0x1D, 0, 0, 0, 0},
8657 {0x1E, 0, 0, 0, 0},
8658 {0x1F, 0, 0, 0, 0},
8659 {0x20, 0, 0, 0, 0},
8660 {0x21, 0x88, 0x88, 0, 0},
8661 {0x22, 0x88, 0x88, 0, 0},
8662 {0x23, 0x88, 0x88, 0, 0},
8663 {0x24, 0x88, 0x88, 0, 0},
8664 {0x25, 0xc, 0xc, 0, 0},
8665 {0x26, 0, 0, 0, 0},
8666 {0x27, 0x3, 0x3, 0, 0},
8667 {0x28, 0, 0, 0, 0},
8668 {0x29, 0x3, 0x3, 0, 0},
8669 {0x2A, 0x37, 0x37, 0, 0},
8670 {0x2B, 0x3, 0x3, 0, 0},
8671 {0x2C, 0, 0, 0, 0},
8672 {0x2D, 0, 0, 0, 0},
8673 {0x2E, 0x1, 0x1, 0, 0},
8674 {0x2F, 0x1, 0x1, 0, 0},
8675 {0x30, 0, 0, 0, 0},
8676 {0x31, 0, 0, 0, 0},
8677 {0x32, 0, 0, 0, 0},
8678 {0x33, 0x11, 0x11, 0, 0},
8679 {0x34, 0x11, 0x11, 0, 0},
8680 {0x35, 0, 0, 0, 0},
8681 {0x36, 0, 0, 0, 0},
8682 {0x37, 0x3, 0x3, 0, 0},
8683 {0x38, 0xf, 0xf, 0, 0},
8684 {0x39, 0, 0, 0, 0},
8685 {0x3A, 0x2d, 0x2d, 0, 0},
8686 {0x3B, 0, 0, 0, 0},
8687 {0x3C, 0x6e, 0x6e, 0, 0},
8688 {0x3D, 0xf0, 0xf0, 1, 1},
8689 {0x3E, 0, 0, 0, 0},
8690 {0x3F, 0, 0, 0, 0},
8691 {0x40, 0, 0, 0, 0},
8692 {0x41, 0x3, 0x3, 0, 0},
8693 {0x42, 0x3, 0x3, 0, 0},
8694 {0x43, 0, 0, 0, 0},
8695 {0x44, 0x1e, 0x1e, 0, 0},
8696 {0x45, 0, 0, 0, 0},
8697 {0x46, 0x6e, 0x6e, 0, 0},
8698 {0x47, 0xf0, 0xf0, 1, 1},
8699 {0x48, 0, 0, 0, 0},
8700 {0x49, 0x2, 0x2, 0, 0},
8701 {0x4A, 0xff, 0xff, 1, 1},
8702 {0x4B, 0xc, 0xc, 0, 0},
8703 {0x4C, 0, 0, 0, 0},
8704 {0x4D, 0x38, 0x38, 0, 0},
8705 {0x4E, 0x70, 0x70, 1, 1},
8706 {0x4F, 0x2, 0x2, 0, 0},
8707 {0x50, 0x88, 0x88, 0, 0},
8708 {0x51, 0xc, 0xc, 0, 0},
8709 {0x52, 0, 0, 0, 0},
8710 {0x53, 0x8, 0x8, 0, 0},
8711 {0x54, 0x70, 0x70, 1, 1},
8712 {0x55, 0x2, 0x2, 0, 0},
8713 {0x56, 0xff, 0xff, 1, 1},
8714 {0x57, 0, 0, 0, 0},
8715 {0x58, 0x83, 0x83, 0, 0},
8716 {0x59, 0x77, 0x77, 1, 1},
8717 {0x5A, 0, 0, 0, 0},
8718 {0x5B, 0x2, 0x2, 0, 0},
8719 {0x5C, 0x88, 0x88, 0, 0},
8720 {0x5D, 0, 0, 0, 0},
8721 {0x5E, 0x8, 0x8, 0, 0},
8722 {0x5F, 0x77, 0x77, 1, 1},
8723 {0x60, 0x1, 0x1, 0, 0},
8724 {0x61, 0, 0, 0, 0},
8725 {0x62, 0x7, 0x7, 0, 0},
8726 {0x63, 0, 0, 0, 0},
8727 {0x64, 0x7, 0x7, 0, 0},
8728 {0x65, 0, 0, 0, 0},
8729 {0x66, 0, 0, 0, 0},
8730 {0x67, 0x72, 0x72, 1, 1},
8731 {0x68, 0, 0, 0, 0},
8732 {0x69, 0xa, 0xa, 0, 0},
8733 {0x6A, 0, 0, 0, 0},
8734 {0x6B, 0, 0, 0, 0},
8735 {0x6C, 0, 0, 0, 0},
8736 {0x6D, 0, 0, 0, 0},
8737 {0x6E, 0, 0, 0, 0},
8738 {0x6F, 0, 0, 0, 0},
8739 {0x70, 0, 0, 0, 0},
8740 {0x71, 0x2, 0x2, 0, 0},
8741 {0x72, 0, 0, 0, 0},
8742 {0x73, 0, 0, 0, 0},
8743 {0x74, 0xe, 0xe, 0, 0},
8744 {0x75, 0xe, 0xe, 0, 0},
8745 {0x76, 0xe, 0xe, 0, 0},
8746 {0x77, 0x13, 0x13, 0, 0},
8747 {0x78, 0x13, 0x13, 0, 0},
8748 {0x79, 0x1b, 0x1b, 0, 0},
8749 {0x7A, 0x1b, 0x1b, 0, 0},
8750 {0x7B, 0x55, 0x55, 0, 0},
8751 {0x7C, 0x5b, 0x5b, 0, 0},
8752 {0x7D, 0, 0, 0, 0},
8753 {0x7E, 0, 0, 0, 0},
8754 {0x7F, 0, 0, 0, 0},
8755 {0x80, 0, 0, 0, 0},
8756 {0x81, 0, 0, 0, 0},
8757 {0x82, 0, 0, 0, 0},
8758 {0x83, 0, 0, 0, 0},
8759 {0x84, 0, 0, 0, 0},
8760 {0x85, 0, 0, 0, 0},
8761 {0x86, 0, 0, 0, 0},
8762 {0x87, 0, 0, 0, 0},
8763 {0x88, 0, 0, 0, 0},
8764 {0x89, 0, 0, 0, 0},
8765 {0x8A, 0, 0, 0, 0},
8766 {0x8B, 0, 0, 0, 0},
8767 {0x8C, 0, 0, 0, 0},
8768 {0x8D, 0, 0, 0, 0},
8769 {0x8E, 0, 0, 0, 0},
8770 {0x8F, 0, 0, 0, 0},
8771 {0x90, 0, 0, 0, 0},
8772 {0x91, 0, 0, 0, 0},
8773 {0x92, 0, 0, 0, 0},
8774 {0xFFFF, 0, 0, 0, 0}
8775};
8776
8777radio_regs_t regs_RX_2056_A1[] = {
8778 {0x02, 0, 0, 0, 0},
8779 {0x03, 0, 0, 0, 0},
8780 {0x04, 0, 0, 0, 0},
8781 {0x05, 0, 0, 0, 0},
8782 {0x06, 0, 0, 0, 0},
8783 {0x07, 0, 0, 0, 0},
8784 {0x08, 0, 0, 0, 0},
8785 {0x09, 0, 0, 0, 0},
8786 {0x0A, 0, 0, 0, 0},
8787 {0x0B, 0, 0, 0, 0},
8788 {0x0C, 0, 0, 0, 0},
8789 {0x0D, 0, 0, 0, 0},
8790 {0x0E, 0, 0, 0, 0},
8791 {0x0F, 0, 0, 0, 0},
8792 {0x10, 0, 0, 0, 0},
8793 {0x11, 0, 0, 0, 0},
8794 {0x12, 0, 0, 0, 0},
8795 {0x13, 0, 0, 0, 0},
8796 {0x14, 0, 0, 0, 0},
8797 {0x15, 0, 0, 0, 0},
8798 {0x16, 0, 0, 0, 0},
8799 {0x17, 0, 0, 0, 0},
8800 {0x18, 0, 0, 0, 0},
8801 {0x19, 0, 0, 0, 0},
8802 {0x1A, 0, 0, 0, 0},
8803 {0x1B, 0, 0, 0, 0},
8804 {0x1C, 0, 0, 0, 0},
8805 {0x1D, 0, 0, 0, 0},
8806 {0x1E, 0, 0, 0, 0},
8807 {0x1F, 0, 0, 0, 0},
8808 {0x20, 0x3, 0x3, 0, 0},
8809 {0x21, 0, 0, 0, 0},
8810 {0x22, 0, 0, 0, 0},
8811 {0x23, 0x90, 0x90, 0, 0},
8812 {0x24, 0x55, 0x55, 0, 0},
8813 {0x25, 0x15, 0x15, 0, 0},
8814 {0x26, 0x5, 0x5, 0, 0},
8815 {0x27, 0x15, 0x15, 0, 0},
8816 {0x28, 0x5, 0x5, 0, 0},
8817 {0x29, 0x20, 0x20, 0, 0},
8818 {0x2A, 0x11, 0x11, 0, 0},
8819 {0x2B, 0x90, 0x90, 0, 0},
8820 {0x2C, 0, 0, 0, 0},
8821 {0x2D, 0x88, 0x88, 0, 0},
8822 {0x2E, 0x32, 0x32, 0, 0},
8823 {0x2F, 0x77, 0x77, 0, 0},
8824 {0x30, 0x17, 0x17, 1, 1},
8825 {0x31, 0xff, 0xff, 1, 1},
8826 {0x32, 0x20, 0x20, 0, 0},
8827 {0x33, 0, 0, 0, 0},
8828 {0x34, 0x88, 0x88, 0, 0},
8829 {0x35, 0x32, 0x32, 0, 0},
8830 {0x36, 0x77, 0x77, 0, 0},
8831 {0x37, 0x17, 0x17, 1, 1},
8832 {0x38, 0xf0, 0xf0, 1, 1},
8833 {0x39, 0x20, 0x20, 0, 0},
8834 {0x3A, 0x8, 0x8, 0, 0},
8835 {0x3B, 0x55, 0x55, 1, 1},
8836 {0x3C, 0, 0, 0, 0},
8837 {0x3D, 0x44, 0x44, 1, 1},
8838 {0x3E, 0, 0, 0, 0},
8839 {0x3F, 0x44, 0x44, 0, 0},
8840 {0x40, 0xf, 0xf, 1, 1},
8841 {0x41, 0x6, 0x6, 0, 0},
8842 {0x42, 0x4, 0x4, 0, 0},
8843 {0x43, 0x50, 0x50, 1, 1},
8844 {0x44, 0x8, 0x8, 0, 0},
8845 {0x45, 0x55, 0x55, 1, 1},
8846 {0x46, 0, 0, 0, 0},
8847 {0x47, 0x11, 0x11, 0, 0},
8848 {0x48, 0, 0, 0, 0},
8849 {0x49, 0x44, 0x44, 0, 0},
8850 {0x4A, 0x7, 0x7, 0, 0},
8851 {0x4B, 0x6, 0x6, 0, 0},
8852 {0x4C, 0x4, 0x4, 0, 0},
8853 {0x4D, 0, 0, 0, 0},
8854 {0x4E, 0, 0, 0, 0},
8855 {0x4F, 0x26, 0x26, 1, 1},
8856 {0x50, 0x26, 0x26, 1, 1},
8857 {0x51, 0xf, 0xf, 1, 1},
8858 {0x52, 0xf, 0xf, 1, 1},
8859 {0x53, 0x44, 0x44, 0, 0},
8860 {0x54, 0, 0, 0, 0},
8861 {0x55, 0, 0, 0, 0},
8862 {0x56, 0x8, 0x8, 0, 0},
8863 {0x57, 0x8, 0x8, 0, 0},
8864 {0x58, 0x7, 0x7, 0, 0},
8865 {0x59, 0x22, 0x22, 0, 0},
8866 {0x5A, 0x22, 0x22, 0, 0},
8867 {0x5B, 0x2, 0x2, 0, 0},
8868 {0x5C, 0x2f, 0x2f, 1, 1},
8869 {0x5D, 0x7, 0x7, 0, 0},
8870 {0x5E, 0x55, 0x55, 0, 0},
8871 {0x5F, 0x23, 0x23, 0, 0},
8872 {0x60, 0x41, 0x41, 0, 0},
8873 {0x61, 0x1, 0x1, 0, 0},
8874 {0x62, 0xa, 0xa, 0, 0},
8875 {0x63, 0, 0, 0, 0},
8876 {0x64, 0, 0, 0, 0},
8877 {0x65, 0, 0, 0, 0},
8878 {0x66, 0, 0, 0, 0},
8879 {0x67, 0, 0, 0, 0},
8880 {0x68, 0, 0, 0, 0},
8881 {0x69, 0, 0, 0, 0},
8882 {0x6A, 0, 0, 0, 0},
8883 {0x6B, 0xc, 0xc, 0, 0},
8884 {0x6C, 0, 0, 0, 0},
8885 {0x6D, 0, 0, 0, 0},
8886 {0x6E, 0, 0, 0, 0},
8887 {0x6F, 0, 0, 0, 0},
8888 {0x70, 0, 0, 0, 0},
8889 {0x71, 0, 0, 0, 0},
8890 {0x72, 0x22, 0x22, 0, 0},
8891 {0x73, 0x22, 0x22, 0, 0},
8892 {0x74, 0, 0, 1, 1},
8893 {0x75, 0xa, 0xa, 0, 0},
8894 {0x76, 0x1, 0x1, 0, 0},
8895 {0x77, 0x22, 0x22, 0, 0},
8896 {0x78, 0x30, 0x30, 0, 0},
8897 {0x79, 0, 0, 0, 0},
8898 {0x7A, 0, 0, 0, 0},
8899 {0x7B, 0, 0, 0, 0},
8900 {0x7C, 0, 0, 0, 0},
8901 {0x7D, 0, 0, 0, 0},
8902 {0x7E, 0, 0, 0, 0},
8903 {0x7F, 0, 0, 0, 0},
8904 {0x80, 0, 0, 0, 0},
8905 {0x81, 0, 0, 0, 0},
8906 {0x82, 0, 0, 0, 0},
8907 {0x83, 0, 0, 0, 0},
8908 {0x84, 0, 0, 0, 0},
8909 {0x85, 0, 0, 0, 0},
8910 {0x86, 0, 0, 0, 0},
8911 {0x87, 0, 0, 0, 0},
8912 {0x88, 0, 0, 0, 0},
8913 {0x89, 0, 0, 0, 0},
8914 {0x8A, 0, 0, 0, 0},
8915 {0x8B, 0, 0, 0, 0},
8916 {0x8C, 0, 0, 0, 0},
8917 {0x8D, 0, 0, 0, 0},
8918 {0x8E, 0, 0, 0, 0},
8919 {0x8F, 0, 0, 0, 0},
8920 {0x90, 0, 0, 0, 0},
8921 {0x91, 0, 0, 0, 0},
8922 {0x92, 0, 0, 0, 0},
8923 {0x93, 0, 0, 0, 0},
8924 {0x94, 0, 0, 0, 0},
8925 {0xFFFF, 0, 0, 0, 0}
8926};
8927
8928radio_regs_t regs_SYN_2056_rev5[] = {
8929 {0x02, 0, 0, 0, 0},
8930 {0x03, 0, 0, 0, 0},
8931 {0x04, 0, 0, 0, 0},
8932 {0x05, 0, 0, 0, 0},
8933 {0x06, 0, 0, 0, 0},
8934 {0x07, 0, 0, 0, 0},
8935 {0x08, 0, 0, 0, 0},
8936 {0x09, 0x1, 0x1, 0, 0},
8937 {0x0A, 0, 0, 0, 0},
8938 {0x0B, 0, 0, 0, 0},
8939 {0x0C, 0, 0, 0, 0},
8940 {0x0D, 0, 0, 0, 0},
8941 {0x0E, 0, 0, 0, 0},
8942 {0x0F, 0, 0, 0, 0},
8943 {0x10, 0, 0, 0, 0},
8944 {0x11, 0, 0, 0, 0},
8945 {0x12, 0, 0, 0, 0},
8946 {0x13, 0, 0, 0, 0},
8947 {0x14, 0, 0, 0, 0},
8948 {0x15, 0, 0, 0, 0},
8949 {0x16, 0, 0, 0, 0},
8950 {0x17, 0, 0, 0, 0},
8951 {0x18, 0, 0, 0, 0},
8952 {0x19, 0, 0, 0, 0},
8953 {0x1A, 0, 0, 0, 0},
8954 {0x1B, 0, 0, 0, 0},
8955 {0x1C, 0, 0, 0, 0},
8956 {0x1D, 0, 0, 0, 0},
8957 {0x1E, 0, 0, 0, 0},
8958 {0x1F, 0, 0, 0, 0},
8959 {0x20, 0, 0, 0, 0},
8960 {0x21, 0, 0, 0, 0},
8961 {0x22, 0x60, 0x60, 0, 0},
8962 {0x23, 0x6, 0x6, 0, 0},
8963 {0x24, 0xc, 0xc, 0, 0},
8964 {0x25, 0, 0, 0, 0},
8965 {0x26, 0, 0, 0, 0},
8966 {0x27, 0, 0, 0, 0},
8967 {0x28, 0x1, 0x1, 0, 0},
8968 {0x29, 0, 0, 0, 0},
8969 {0x2A, 0, 0, 0, 0},
8970 {0x2B, 0, 0, 0, 0},
8971 {0x2C, 0, 0, 0, 0},
8972 {0x2D, 0, 0, 0, 0},
8973 {0x2E, 0, 0, 0, 0},
8974 {0x2F, 0x1f, 0x1f, 0, 0},
8975 {0x30, 0x15, 0x15, 0, 0},
8976 {0x31, 0xf, 0xf, 0, 0},
8977 {0x32, 0, 0, 0, 0},
8978 {0x33, 0, 0, 0, 0},
8979 {0x34, 0, 0, 0, 0},
8980 {0x35, 0, 0, 0, 0},
8981 {0x36, 0, 0, 0, 0},
8982 {0x37, 0, 0, 0, 0},
8983 {0x38, 0, 0, 0, 0},
8984 {0x39, 0, 0, 0, 0},
8985 {0x3A, 0, 0, 0, 0},
8986 {0x3B, 0, 0, 0, 0},
8987 {0x3C, 0x13, 0x13, 0, 0},
8988 {0x3D, 0xf, 0xf, 0, 0},
8989 {0x3E, 0x18, 0x18, 0, 0},
8990 {0x3F, 0, 0, 0, 0},
8991 {0x40, 0, 0, 0, 0},
8992 {0x41, 0x20, 0x20, 0, 0},
8993 {0x42, 0x20, 0x20, 0, 0},
8994 {0x43, 0, 0, 0, 0},
8995 {0x44, 0x77, 0x77, 0, 0},
8996 {0x45, 0x7, 0x7, 0, 0},
8997 {0x46, 0x1, 0x1, 0, 0},
8998 {0x47, 0x4, 0x4, 0, 0},
8999 {0x48, 0xf, 0xf, 0, 0},
9000 {0x49, 0x30, 0x30, 0, 0},
9001 {0x4A, 0x32, 0x32, 0, 0},
9002 {0x4B, 0xd, 0xd, 0, 0},
9003 {0x4C, 0xd, 0xd, 0, 0},
9004 {0x4D, 0x4, 0x4, 0, 0},
9005 {0x4E, 0x6, 0x6, 0, 0},
9006 {0x4F, 0x1, 0x1, 0, 0},
9007 {0x50, 0x1c, 0x1c, 0, 0},
9008 {0x51, 0x2, 0x2, 0, 0},
9009 {0x52, 0x2, 0x2, 0, 0},
9010 {0x53, 0xf7, 0xf7, 1, 1},
9011 {0x54, 0xb4, 0xb4, 0, 0},
9012 {0x55, 0xd2, 0xd2, 0, 0},
9013 {0x56, 0, 0, 0, 0},
9014 {0x57, 0, 0, 0, 0},
9015 {0x58, 0x4, 0x4, 0, 0},
9016 {0x59, 0x96, 0x96, 0, 0},
9017 {0x5A, 0x3e, 0x3e, 0, 0},
9018 {0x5B, 0x3e, 0x3e, 0, 0},
9019 {0x5C, 0x13, 0x13, 0, 0},
9020 {0x5D, 0x2, 0x2, 0, 0},
9021 {0x5E, 0, 0, 0, 0},
9022 {0x5F, 0x7, 0x7, 0, 0},
9023 {0x60, 0x7, 0x7, 1, 1},
9024 {0x61, 0x8, 0x8, 0, 0},
9025 {0x62, 0x3, 0x3, 0, 0},
9026 {0x63, 0, 0, 0, 0},
9027 {0x64, 0, 0, 0, 0},
9028 {0x65, 0, 0, 0, 0},
9029 {0x66, 0, 0, 0, 0},
9030 {0x67, 0, 0, 0, 0},
9031 {0x68, 0x40, 0x40, 0, 0},
9032 {0x69, 0, 0, 0, 0},
9033 {0x6A, 0, 0, 0, 0},
9034 {0x6B, 0, 0, 0, 0},
9035 {0x6C, 0, 0, 0, 0},
9036 {0x6D, 0x1, 0x1, 0, 0},
9037 {0x6E, 0, 0, 0, 0},
9038 {0x6F, 0, 0, 0, 0},
9039 {0x70, 0x60, 0x60, 0, 0},
9040 {0x71, 0x66, 0x66, 0, 0},
9041 {0x72, 0xc, 0xc, 0, 0},
9042 {0x73, 0x66, 0x66, 0, 0},
9043 {0x74, 0x8f, 0x8f, 1, 1},
9044 {0x75, 0, 0, 0, 0},
9045 {0x76, 0xcc, 0xcc, 0, 0},
9046 {0x77, 0x1, 0x1, 0, 0},
9047 {0x78, 0x66, 0x66, 0, 0},
9048 {0x79, 0x66, 0x66, 0, 0},
9049 {0x7A, 0, 0, 0, 0},
9050 {0x7B, 0, 0, 0, 0},
9051 {0x7C, 0, 0, 0, 0},
9052 {0x7D, 0, 0, 0, 0},
9053 {0x7E, 0, 0, 0, 0},
9054 {0x7F, 0, 0, 0, 0},
9055 {0x80, 0, 0, 0, 0},
9056 {0x81, 0, 0, 0, 0},
9057 {0x82, 0, 0, 0, 0},
9058 {0x83, 0, 0, 0, 0},
9059 {0x84, 0, 0, 0, 0},
9060 {0x85, 0xff, 0xff, 0, 0},
9061 {0x86, 0, 0, 0, 0},
9062 {0x87, 0, 0, 0, 0},
9063 {0x88, 0, 0, 0, 0},
9064 {0x89, 0, 0, 0, 0},
9065 {0x8A, 0, 0, 0, 0},
9066 {0x8B, 0, 0, 0, 0},
9067 {0x8C, 0, 0, 0, 0},
9068 {0x8D, 0, 0, 0, 0},
9069 {0x8E, 0, 0, 0, 0},
9070 {0x8F, 0, 0, 0, 0},
9071 {0x90, 0, 0, 0, 0},
9072 {0x91, 0, 0, 0, 0},
9073 {0x92, 0, 0, 0, 0},
9074 {0x93, 0, 0, 0, 0},
9075 {0x94, 0, 0, 0, 0},
9076 {0x95, 0, 0, 0, 0},
9077 {0x96, 0, 0, 0, 0},
9078 {0x97, 0, 0, 0, 0},
9079 {0x98, 0, 0, 0, 0},
9080 {0x99, 0, 0, 0, 0},
9081 {0x9A, 0, 0, 0, 0},
9082 {0x9B, 0, 0, 0, 0},
9083 {0x9C, 0, 0, 0, 0},
9084 {0x9D, 0, 0, 0, 0},
9085 {0x9E, 0, 0, 0, 0},
9086 {0x9F, 0x6, 0x6, 0, 0},
9087 {0xA0, 0x66, 0x66, 0, 0},
9088 {0xA1, 0x66, 0x66, 0, 0},
9089 {0xA2, 0x66, 0x66, 0, 0},
9090 {0xA3, 0x66, 0x66, 0, 0},
9091 {0xA4, 0x66, 0x66, 0, 0},
9092 {0xA5, 0x66, 0x66, 0, 0},
9093 {0xA6, 0x66, 0x66, 0, 0},
9094 {0xA7, 0x66, 0x66, 0, 0},
9095 {0xA8, 0x66, 0x66, 0, 0},
9096 {0xA9, 0x66, 0x66, 0, 0},
9097 {0xAA, 0x66, 0x66, 0, 0},
9098 {0xAB, 0x66, 0x66, 0, 0},
9099 {0xAC, 0x66, 0x66, 0, 0},
9100 {0xAD, 0x66, 0x66, 0, 0},
9101 {0xAE, 0x66, 0x66, 0, 0},
9102 {0xAF, 0x66, 0x66, 0, 0},
9103 {0xB0, 0x66, 0x66, 0, 0},
9104 {0xB1, 0x66, 0x66, 0, 0},
9105 {0xB2, 0x66, 0x66, 0, 0},
9106 {0xB3, 0xa, 0xa, 0, 0},
9107 {0xB4, 0, 0, 0, 0},
9108 {0xB5, 0, 0, 0, 0},
9109 {0xB6, 0, 0, 0, 0},
9110 {0xFFFF, 0, 0, 0, 0}
9111};
9112
9113radio_regs_t regs_TX_2056_rev5[] = {
9114 {0x02, 0, 0, 0, 0},
9115 {0x03, 0, 0, 0, 0},
9116 {0x04, 0, 0, 0, 0},
9117 {0x05, 0, 0, 0, 0},
9118 {0x06, 0, 0, 0, 0},
9119 {0x07, 0, 0, 0, 0},
9120 {0x08, 0, 0, 0, 0},
9121 {0x09, 0, 0, 0, 0},
9122 {0x0A, 0, 0, 0, 0},
9123 {0x0B, 0, 0, 0, 0},
9124 {0x0C, 0, 0, 0, 0},
9125 {0x0D, 0, 0, 0, 0},
9126 {0x0E, 0, 0, 0, 0},
9127 {0x0F, 0, 0, 0, 0},
9128 {0x10, 0, 0, 0, 0},
9129 {0x11, 0, 0, 0, 0},
9130 {0x12, 0, 0, 0, 0},
9131 {0x13, 0, 0, 0, 0},
9132 {0x14, 0, 0, 0, 0},
9133 {0x15, 0, 0, 0, 0},
9134 {0x16, 0, 0, 0, 0},
9135 {0x17, 0, 0, 0, 0},
9136 {0x18, 0, 0, 0, 0},
9137 {0x19, 0, 0, 0, 0},
9138 {0x1A, 0, 0, 0, 0},
9139 {0x1B, 0, 0, 0, 0},
9140 {0x1C, 0, 0, 0, 0},
9141 {0x1D, 0, 0, 0, 0},
9142 {0x1E, 0, 0, 0, 0},
9143 {0x1F, 0, 0, 0, 0},
9144 {0x20, 0, 0, 0, 0},
9145 {0x21, 0x88, 0x88, 0, 0},
9146 {0x22, 0x88, 0x88, 0, 0},
9147 {0x23, 0x88, 0x88, 0, 0},
9148 {0x24, 0x88, 0x88, 0, 0},
9149 {0x25, 0xc, 0xc, 0, 0},
9150 {0x26, 0, 0, 0, 0},
9151 {0x27, 0x3, 0x3, 0, 0},
9152 {0x28, 0, 0, 0, 0},
9153 {0x29, 0x3, 0x3, 0, 0},
9154 {0x2A, 0x37, 0x37, 0, 0},
9155 {0x2B, 0x3, 0x3, 0, 0},
9156 {0x2C, 0, 0, 0, 0},
9157 {0x2D, 0, 0, 0, 0},
9158 {0x2E, 0x1, 0x1, 0, 0},
9159 {0x2F, 0x1, 0x1, 0, 0},
9160 {0x30, 0, 0, 0, 0},
9161 {0x31, 0, 0, 0, 0},
9162 {0x32, 0, 0, 0, 0},
9163 {0x33, 0x11, 0x11, 0, 0},
9164 {0x34, 0x11, 0x11, 0, 0},
9165 {0x35, 0, 0, 0, 0},
9166 {0x36, 0, 0, 0, 0},
9167 {0x37, 0x3, 0x3, 0, 0},
9168 {0x38, 0xf, 0xf, 0, 0},
9169 {0x39, 0, 0, 0, 0},
9170 {0x3A, 0x2d, 0x2d, 0, 0},
9171 {0x3B, 0, 0, 0, 0},
9172 {0x3C, 0x6e, 0x6e, 0, 0},
9173 {0x3D, 0xf0, 0xf0, 1, 1},
9174 {0x3E, 0, 0, 0, 0},
9175 {0x3F, 0, 0, 0, 0},
9176 {0x40, 0, 0, 0, 0},
9177 {0x41, 0x3, 0x3, 0, 0},
9178 {0x42, 0x3, 0x3, 0, 0},
9179 {0x43, 0, 0, 0, 0},
9180 {0x44, 0x1e, 0x1e, 0, 0},
9181 {0x45, 0, 0, 0, 0},
9182 {0x46, 0x6e, 0x6e, 0, 0},
9183 {0x47, 0xf0, 0xf0, 1, 1},
9184 {0x48, 0, 0, 0, 0},
9185 {0x49, 0x2, 0x2, 0, 0},
9186 {0x4A, 0xff, 0xff, 1, 1},
9187 {0x4B, 0xc, 0xc, 0, 0},
9188 {0x4C, 0, 0, 0, 0},
9189 {0x4D, 0x38, 0x38, 0, 0},
9190 {0x4E, 0x70, 0x70, 1, 1},
9191 {0x4F, 0x2, 0x2, 0, 0},
9192 {0x50, 0x88, 0x88, 0, 0},
9193 {0x51, 0xc, 0xc, 0, 0},
9194 {0x52, 0, 0, 0, 0},
9195 {0x53, 0x8, 0x8, 0, 0},
9196 {0x54, 0x70, 0x70, 1, 1},
9197 {0x55, 0x2, 0x2, 0, 0},
9198 {0x56, 0xff, 0xff, 1, 1},
9199 {0x57, 0, 0, 0, 0},
9200 {0x58, 0x83, 0x83, 0, 0},
9201 {0x59, 0x77, 0x77, 1, 1},
9202 {0x5A, 0, 0, 0, 0},
9203 {0x5B, 0x2, 0x2, 0, 0},
9204 {0x5C, 0x88, 0x88, 0, 0},
9205 {0x5D, 0, 0, 0, 0},
9206 {0x5E, 0x8, 0x8, 0, 0},
9207 {0x5F, 0x77, 0x77, 1, 1},
9208 {0x60, 0x1, 0x1, 0, 0},
9209 {0x61, 0, 0, 0, 0},
9210 {0x62, 0x7, 0x7, 0, 0},
9211 {0x63, 0, 0, 0, 0},
9212 {0x64, 0x7, 0x7, 0, 0},
9213 {0x65, 0, 0, 0, 0},
9214 {0x66, 0, 0, 0, 0},
9215 {0x67, 0, 0, 1, 1},
9216 {0x68, 0, 0, 0, 0},
9217 {0x69, 0xa, 0xa, 0, 0},
9218 {0x6A, 0, 0, 0, 0},
9219 {0x6B, 0, 0, 0, 0},
9220 {0x6C, 0, 0, 0, 0},
9221 {0x6D, 0, 0, 0, 0},
9222 {0x6E, 0, 0, 0, 0},
9223 {0x6F, 0, 0, 0, 0},
9224 {0x70, 0, 0, 0, 0},
9225 {0x71, 0x2, 0x2, 0, 0},
9226 {0x72, 0, 0, 0, 0},
9227 {0x73, 0, 0, 0, 0},
9228 {0x74, 0xe, 0xe, 0, 0},
9229 {0x75, 0xe, 0xe, 0, 0},
9230 {0x76, 0xe, 0xe, 0, 0},
9231 {0x77, 0x13, 0x13, 0, 0},
9232 {0x78, 0x13, 0x13, 0, 0},
9233 {0x79, 0x1b, 0x1b, 0, 0},
9234 {0x7A, 0x1b, 0x1b, 0, 0},
9235 {0x7B, 0x55, 0x55, 0, 0},
9236 {0x7C, 0x5b, 0x5b, 0, 0},
9237 {0x7D, 0, 0, 0, 0},
9238 {0x7E, 0, 0, 0, 0},
9239 {0x7F, 0, 0, 0, 0},
9240 {0x80, 0, 0, 0, 0},
9241 {0x81, 0, 0, 0, 0},
9242 {0x82, 0, 0, 0, 0},
9243 {0x83, 0, 0, 0, 0},
9244 {0x84, 0, 0, 0, 0},
9245 {0x85, 0, 0, 0, 0},
9246 {0x86, 0, 0, 0, 0},
9247 {0x87, 0, 0, 0, 0},
9248 {0x88, 0, 0, 0, 0},
9249 {0x89, 0, 0, 0, 0},
9250 {0x8A, 0, 0, 0, 0},
9251 {0x8B, 0, 0, 0, 0},
9252 {0x8C, 0, 0, 0, 0},
9253 {0x8D, 0, 0, 0, 0},
9254 {0x8E, 0, 0, 0, 0},
9255 {0x8F, 0, 0, 0, 0},
9256 {0x90, 0, 0, 0, 0},
9257 {0x91, 0, 0, 0, 0},
9258 {0x92, 0, 0, 0, 0},
9259 {0x93, 0x70, 0x70, 0, 0},
9260 {0x94, 0x70, 0x70, 0, 0},
9261 {0x95, 0x71, 0x71, 1, 1},
9262 {0x96, 0x71, 0x71, 1, 1},
9263 {0x97, 0x72, 0x72, 1, 1},
9264 {0x98, 0x73, 0x73, 1, 1},
9265 {0x99, 0x74, 0x74, 1, 1},
9266 {0x9A, 0x75, 0x75, 1, 1},
9267 {0xFFFF, 0, 0, 0, 0}
9268};
9269
9270radio_regs_t regs_RX_2056_rev5[] = {
9271 {0x02, 0, 0, 0, 0},
9272 {0x03, 0, 0, 0, 0},
9273 {0x04, 0, 0, 0, 0},
9274 {0x05, 0, 0, 0, 0},
9275 {0x06, 0, 0, 0, 0},
9276 {0x07, 0, 0, 0, 0},
9277 {0x08, 0, 0, 0, 0},
9278 {0x09, 0, 0, 0, 0},
9279 {0x0A, 0, 0, 0, 0},
9280 {0x0B, 0, 0, 0, 0},
9281 {0x0C, 0, 0, 0, 0},
9282 {0x0D, 0, 0, 0, 0},
9283 {0x0E, 0, 0, 0, 0},
9284 {0x0F, 0, 0, 0, 0},
9285 {0x10, 0, 0, 0, 0},
9286 {0x11, 0, 0, 0, 0},
9287 {0x12, 0, 0, 0, 0},
9288 {0x13, 0, 0, 0, 0},
9289 {0x14, 0, 0, 0, 0},
9290 {0x15, 0, 0, 0, 0},
9291 {0x16, 0, 0, 0, 0},
9292 {0x17, 0, 0, 0, 0},
9293 {0x18, 0, 0, 0, 0},
9294 {0x19, 0, 0, 0, 0},
9295 {0x1A, 0, 0, 0, 0},
9296 {0x1B, 0, 0, 0, 0},
9297 {0x1C, 0, 0, 0, 0},
9298 {0x1D, 0, 0, 0, 0},
9299 {0x1E, 0, 0, 0, 0},
9300 {0x1F, 0, 0, 0, 0},
9301 {0x20, 0x3, 0x3, 0, 0},
9302 {0x21, 0, 0, 0, 0},
9303 {0x22, 0, 0, 0, 0},
9304 {0x23, 0x90, 0x90, 0, 0},
9305 {0x24, 0x55, 0x55, 0, 0},
9306 {0x25, 0x15, 0x15, 0, 0},
9307 {0x26, 0x5, 0x5, 0, 0},
9308 {0x27, 0x15, 0x15, 0, 0},
9309 {0x28, 0x5, 0x5, 0, 0},
9310 {0x29, 0x20, 0x20, 0, 0},
9311 {0x2A, 0x11, 0x11, 0, 0},
9312 {0x2B, 0x90, 0x90, 0, 0},
9313 {0x2C, 0, 0, 0, 0},
9314 {0x2D, 0x88, 0x88, 0, 0},
9315 {0x2E, 0x32, 0x32, 0, 0},
9316 {0x2F, 0x77, 0x77, 0, 0},
9317 {0x30, 0x17, 0x17, 1, 1},
9318 {0x31, 0xff, 0xff, 1, 1},
9319 {0x32, 0x20, 0x20, 0, 0},
9320 {0x33, 0, 0, 0, 0},
9321 {0x34, 0x88, 0x88, 0, 0},
9322 {0x35, 0x32, 0x32, 0, 0},
9323 {0x36, 0x77, 0x77, 0, 0},
9324 {0x37, 0x17, 0x17, 1, 1},
9325 {0x38, 0xf0, 0xf0, 1, 1},
9326 {0x39, 0x20, 0x20, 0, 0},
9327 {0x3A, 0x8, 0x8, 0, 0},
9328 {0x3B, 0x55, 0x55, 1, 1},
9329 {0x3C, 0, 0, 0, 0},
9330 {0x3D, 0x88, 0x88, 1, 1},
9331 {0x3E, 0, 0, 0, 0},
9332 {0x3F, 0, 0, 1, 1},
9333 {0x40, 0x7, 0x7, 1, 1},
9334 {0x41, 0x6, 0x6, 0, 0},
9335 {0x42, 0x4, 0x4, 0, 0},
9336 {0x43, 0, 0, 0, 0},
9337 {0x44, 0x8, 0x8, 0, 0},
9338 {0x45, 0x55, 0x55, 1, 1},
9339 {0x46, 0, 0, 0, 0},
9340 {0x47, 0x11, 0x11, 0, 0},
9341 {0x48, 0, 0, 0, 0},
9342 {0x49, 0, 0, 1, 1},
9343 {0x4A, 0x7, 0x7, 0, 0},
9344 {0x4B, 0x6, 0x6, 0, 0},
9345 {0x4C, 0x4, 0x4, 0, 0},
9346 {0x4D, 0, 0, 0, 0},
9347 {0x4E, 0, 0, 0, 0},
9348 {0x4F, 0x26, 0x26, 1, 1},
9349 {0x50, 0x26, 0x26, 1, 1},
9350 {0x51, 0xf, 0xf, 1, 1},
9351 {0x52, 0xf, 0xf, 1, 1},
9352 {0x53, 0x44, 0x44, 0, 0},
9353 {0x54, 0, 0, 0, 0},
9354 {0x55, 0, 0, 0, 0},
9355 {0x56, 0x8, 0x8, 0, 0},
9356 {0x57, 0x8, 0x8, 0, 0},
9357 {0x58, 0x7, 0x7, 0, 0},
9358 {0x59, 0x22, 0x22, 0, 0},
9359 {0x5A, 0x22, 0x22, 0, 0},
9360 {0x5B, 0x2, 0x2, 0, 0},
9361 {0x5C, 0x4, 0x4, 1, 1},
9362 {0x5D, 0x7, 0x7, 0, 0},
9363 {0x5E, 0x55, 0x55, 0, 0},
9364 {0x5F, 0x23, 0x23, 0, 0},
9365 {0x60, 0x41, 0x41, 0, 0},
9366 {0x61, 0x1, 0x1, 0, 0},
9367 {0x62, 0xa, 0xa, 0, 0},
9368 {0x63, 0, 0, 0, 0},
9369 {0x64, 0, 0, 0, 0},
9370 {0x65, 0, 0, 0, 0},
9371 {0x66, 0, 0, 0, 0},
9372 {0x67, 0, 0, 0, 0},
9373 {0x68, 0, 0, 0, 0},
9374 {0x69, 0, 0, 0, 0},
9375 {0x6A, 0, 0, 0, 0},
9376 {0x6B, 0xc, 0xc, 0, 0},
9377 {0x6C, 0, 0, 0, 0},
9378 {0x6D, 0, 0, 0, 0},
9379 {0x6E, 0, 0, 0, 0},
9380 {0x6F, 0, 0, 0, 0},
9381 {0x70, 0, 0, 0, 0},
9382 {0x71, 0, 0, 0, 0},
9383 {0x72, 0x22, 0x22, 0, 0},
9384 {0x73, 0x22, 0x22, 0, 0},
9385 {0x74, 0, 0, 1, 1},
9386 {0x75, 0xa, 0xa, 0, 0},
9387 {0x76, 0x1, 0x1, 0, 0},
9388 {0x77, 0x22, 0x22, 0, 0},
9389 {0x78, 0x30, 0x30, 0, 0},
9390 {0x79, 0, 0, 0, 0},
9391 {0x7A, 0, 0, 0, 0},
9392 {0x7B, 0, 0, 0, 0},
9393 {0x7C, 0, 0, 0, 0},
9394 {0x7D, 0, 0, 0, 0},
9395 {0x7E, 0, 0, 0, 0},
9396 {0x7F, 0, 0, 0, 0},
9397 {0x80, 0, 0, 0, 0},
9398 {0x81, 0, 0, 0, 0},
9399 {0x82, 0, 0, 0, 0},
9400 {0x83, 0, 0, 0, 0},
9401 {0x84, 0, 0, 0, 0},
9402 {0x85, 0, 0, 0, 0},
9403 {0x86, 0, 0, 0, 0},
9404 {0x87, 0, 0, 0, 0},
9405 {0x88, 0, 0, 0, 0},
9406 {0x89, 0, 0, 0, 0},
9407 {0x8A, 0, 0, 0, 0},
9408 {0x8B, 0, 0, 0, 0},
9409 {0x8C, 0, 0, 0, 0},
9410 {0x8D, 0, 0, 0, 0},
9411 {0x8E, 0, 0, 0, 0},
9412 {0x8F, 0, 0, 0, 0},
9413 {0x90, 0, 0, 0, 0},
9414 {0x91, 0, 0, 0, 0},
9415 {0x92, 0, 0, 0, 0},
9416 {0x93, 0, 0, 0, 0},
9417 {0x94, 0, 0, 0, 0},
9418 {0xFFFF, 0, 0, 0, 0}
9419};
9420
9421radio_regs_t regs_SYN_2056_rev6[] = {
9422 {0x02, 0, 0, 0, 0},
9423 {0x03, 0, 0, 0, 0},
9424 {0x04, 0, 0, 0, 0},
9425 {0x05, 0, 0, 0, 0},
9426 {0x06, 0, 0, 0, 0},
9427 {0x07, 0, 0, 0, 0},
9428 {0x08, 0, 0, 0, 0},
9429 {0x09, 0x1, 0x1, 0, 0},
9430 {0x0A, 0, 0, 0, 0},
9431 {0x0B, 0, 0, 0, 0},
9432 {0x0C, 0, 0, 0, 0},
9433 {0x0D, 0, 0, 0, 0},
9434 {0x0E, 0, 0, 0, 0},
9435 {0x0F, 0, 0, 0, 0},
9436 {0x10, 0, 0, 0, 0},
9437 {0x11, 0, 0, 0, 0},
9438 {0x12, 0, 0, 0, 0},
9439 {0x13, 0, 0, 0, 0},
9440 {0x14, 0, 0, 0, 0},
9441 {0x15, 0, 0, 0, 0},
9442 {0x16, 0, 0, 0, 0},
9443 {0x17, 0, 0, 0, 0},
9444 {0x18, 0, 0, 0, 0},
9445 {0x19, 0, 0, 0, 0},
9446 {0x1A, 0, 0, 0, 0},
9447 {0x1B, 0, 0, 0, 0},
9448 {0x1C, 0, 0, 0, 0},
9449 {0x1D, 0, 0, 0, 0},
9450 {0x1E, 0, 0, 0, 0},
9451 {0x1F, 0, 0, 0, 0},
9452 {0x20, 0, 0, 0, 0},
9453 {0x21, 0, 0, 0, 0},
9454 {0x22, 0x60, 0x60, 0, 0},
9455 {0x23, 0x6, 0x6, 0, 0},
9456 {0x24, 0xc, 0xc, 0, 0},
9457 {0x25, 0, 0, 0, 0},
9458 {0x26, 0, 0, 0, 0},
9459 {0x27, 0, 0, 0, 0},
9460 {0x28, 0x1, 0x1, 0, 0},
9461 {0x29, 0, 0, 0, 0},
9462 {0x2A, 0, 0, 0, 0},
9463 {0x2B, 0, 0, 0, 0},
9464 {0x2C, 0, 0, 0, 0},
9465 {0x2D, 0, 0, 0, 0},
9466 {0x2E, 0, 0, 0, 0},
9467 {0x2F, 0x1f, 0x1f, 0, 0},
9468 {0x30, 0x15, 0x15, 0, 0},
9469 {0x31, 0xf, 0xf, 0, 0},
9470 {0x32, 0, 0, 0, 0},
9471 {0x33, 0, 0, 0, 0},
9472 {0x34, 0, 0, 0, 0},
9473 {0x35, 0, 0, 0, 0},
9474 {0x36, 0, 0, 0, 0},
9475 {0x37, 0, 0, 0, 0},
9476 {0x38, 0, 0, 0, 0},
9477 {0x39, 0, 0, 0, 0},
9478 {0x3A, 0, 0, 0, 0},
9479 {0x3B, 0, 0, 0, 0},
9480 {0x3C, 0x13, 0x13, 0, 0},
9481 {0x3D, 0xf, 0xf, 0, 0},
9482 {0x3E, 0x18, 0x18, 0, 0},
9483 {0x3F, 0, 0, 0, 0},
9484 {0x40, 0, 0, 0, 0},
9485 {0x41, 0x20, 0x20, 0, 0},
9486 {0x42, 0x20, 0x20, 0, 0},
9487 {0x43, 0, 0, 0, 0},
9488 {0x44, 0x77, 0x77, 0, 0},
9489 {0x45, 0x7, 0x7, 0, 0},
9490 {0x46, 0x1, 0x1, 0, 0},
9491 {0x47, 0x4, 0x4, 0, 0},
9492 {0x48, 0xf, 0xf, 0, 0},
9493 {0x49, 0x30, 0x30, 0, 0},
9494 {0x4A, 0x32, 0x32, 0, 0},
9495 {0x4B, 0xd, 0xd, 0, 0},
9496 {0x4C, 0xd, 0xd, 0, 0},
9497 {0x4D, 0x4, 0x4, 0, 0},
9498 {0x4E, 0x6, 0x6, 0, 0},
9499 {0x4F, 0x1, 0x1, 0, 0},
9500 {0x50, 0x1c, 0x1c, 0, 0},
9501 {0x51, 0x2, 0x2, 0, 0},
9502 {0x52, 0x2, 0x2, 0, 0},
9503 {0x53, 0xf7, 0xf7, 1, 1},
9504 {0x54, 0xb4, 0xb4, 0, 0},
9505 {0x55, 0xd2, 0xd2, 0, 0},
9506 {0x56, 0, 0, 0, 0},
9507 {0x57, 0, 0, 0, 0},
9508 {0x58, 0x4, 0x4, 0, 0},
9509 {0x59, 0x96, 0x96, 0, 0},
9510 {0x5A, 0x3e, 0x3e, 0, 0},
9511 {0x5B, 0x3e, 0x3e, 0, 0},
9512 {0x5C, 0x13, 0x13, 0, 0},
9513 {0x5D, 0x2, 0x2, 0, 0},
9514 {0x5E, 0, 0, 0, 0},
9515 {0x5F, 0x7, 0x7, 0, 0},
9516 {0x60, 0x7, 0x7, 1, 1},
9517 {0x61, 0x8, 0x8, 0, 0},
9518 {0x62, 0x3, 0x3, 0, 0},
9519 {0x63, 0, 0, 0, 0},
9520 {0x64, 0, 0, 0, 0},
9521 {0x65, 0, 0, 0, 0},
9522 {0x66, 0, 0, 0, 0},
9523 {0x67, 0, 0, 0, 0},
9524 {0x68, 0x40, 0x40, 0, 0},
9525 {0x69, 0, 0, 0, 0},
9526 {0x6A, 0, 0, 0, 0},
9527 {0x6B, 0, 0, 0, 0},
9528 {0x6C, 0, 0, 0, 0},
9529 {0x6D, 0x1, 0x1, 0, 0},
9530 {0x6E, 0, 0, 0, 0},
9531 {0x6F, 0, 0, 0, 0},
9532 {0x70, 0x60, 0x60, 0, 0},
9533 {0x71, 0x66, 0x66, 0, 0},
9534 {0x72, 0xc, 0xc, 0, 0},
9535 {0x73, 0x66, 0x66, 0, 0},
9536 {0x74, 0x8f, 0x8f, 1, 1},
9537 {0x75, 0, 0, 0, 0},
9538 {0x76, 0xcc, 0xcc, 0, 0},
9539 {0x77, 0x1, 0x1, 0, 0},
9540 {0x78, 0x66, 0x66, 0, 0},
9541 {0x79, 0x66, 0x66, 0, 0},
9542 {0x7A, 0, 0, 0, 0},
9543 {0x7B, 0, 0, 0, 0},
9544 {0x7C, 0, 0, 0, 0},
9545 {0x7D, 0, 0, 0, 0},
9546 {0x7E, 0, 0, 0, 0},
9547 {0x7F, 0, 0, 0, 0},
9548 {0x80, 0, 0, 0, 0},
9549 {0x81, 0, 0, 0, 0},
9550 {0x82, 0, 0, 0, 0},
9551 {0x83, 0, 0, 0, 0},
9552 {0x84, 0, 0, 0, 0},
9553 {0x85, 0xff, 0xff, 0, 0},
9554 {0x86, 0, 0, 0, 0},
9555 {0x87, 0, 0, 0, 0},
9556 {0x88, 0, 0, 0, 0},
9557 {0x89, 0, 0, 0, 0},
9558 {0x8A, 0, 0, 0, 0},
9559 {0x8B, 0, 0, 0, 0},
9560 {0x8C, 0, 0, 0, 0},
9561 {0x8D, 0, 0, 0, 0},
9562 {0x8E, 0, 0, 0, 0},
9563 {0x8F, 0, 0, 0, 0},
9564 {0x90, 0, 0, 0, 0},
9565 {0x91, 0, 0, 0, 0},
9566 {0x92, 0, 0, 0, 0},
9567 {0x93, 0, 0, 0, 0},
9568 {0x94, 0, 0, 0, 0},
9569 {0x95, 0, 0, 0, 0},
9570 {0x96, 0, 0, 0, 0},
9571 {0x97, 0, 0, 0, 0},
9572 {0x98, 0, 0, 0, 0},
9573 {0x99, 0, 0, 0, 0},
9574 {0x9A, 0, 0, 0, 0},
9575 {0x9B, 0, 0, 0, 0},
9576 {0x9C, 0, 0, 0, 0},
9577 {0x9D, 0, 0, 0, 0},
9578 {0x9E, 0, 0, 0, 0},
9579 {0x9F, 0x6, 0x6, 0, 0},
9580 {0xA0, 0x66, 0x66, 0, 0},
9581 {0xA1, 0x66, 0x66, 0, 0},
9582 {0xA2, 0x66, 0x66, 0, 0},
9583 {0xA3, 0x66, 0x66, 0, 0},
9584 {0xA4, 0x66, 0x66, 0, 0},
9585 {0xA5, 0x66, 0x66, 0, 0},
9586 {0xA6, 0x66, 0x66, 0, 0},
9587 {0xA7, 0x66, 0x66, 0, 0},
9588 {0xA8, 0x66, 0x66, 0, 0},
9589 {0xA9, 0x66, 0x66, 0, 0},
9590 {0xAA, 0x66, 0x66, 0, 0},
9591 {0xAB, 0x66, 0x66, 0, 0},
9592 {0xAC, 0x66, 0x66, 0, 0},
9593 {0xAD, 0x66, 0x66, 0, 0},
9594 {0xAE, 0x66, 0x66, 0, 0},
9595 {0xAF, 0x66, 0x66, 0, 0},
9596 {0xB0, 0x66, 0x66, 0, 0},
9597 {0xB1, 0x66, 0x66, 0, 0},
9598 {0xB2, 0x66, 0x66, 0, 0},
9599 {0xB3, 0xa, 0xa, 0, 0},
9600 {0xB4, 0, 0, 0, 0},
9601 {0xB5, 0, 0, 0, 0},
9602 {0xB6, 0, 0, 0, 0},
9603 {0xFFFF, 0, 0, 0, 0}
9604};
9605
9606radio_regs_t regs_TX_2056_rev6[] = {
9607 {0x02, 0, 0, 0, 0},
9608 {0x03, 0, 0, 0, 0},
9609 {0x04, 0, 0, 0, 0},
9610 {0x05, 0, 0, 0, 0},
9611 {0x06, 0, 0, 0, 0},
9612 {0x07, 0, 0, 0, 0},
9613 {0x08, 0, 0, 0, 0},
9614 {0x09, 0, 0, 0, 0},
9615 {0x0A, 0, 0, 0, 0},
9616 {0x0B, 0, 0, 0, 0},
9617 {0x0C, 0, 0, 0, 0},
9618 {0x0D, 0, 0, 0, 0},
9619 {0x0E, 0, 0, 0, 0},
9620 {0x0F, 0, 0, 0, 0},
9621 {0x10, 0, 0, 0, 0},
9622 {0x11, 0, 0, 0, 0},
9623 {0x12, 0, 0, 0, 0},
9624 {0x13, 0, 0, 0, 0},
9625 {0x14, 0, 0, 0, 0},
9626 {0x15, 0, 0, 0, 0},
9627 {0x16, 0, 0, 0, 0},
9628 {0x17, 0, 0, 0, 0},
9629 {0x18, 0, 0, 0, 0},
9630 {0x19, 0, 0, 0, 0},
9631 {0x1A, 0, 0, 0, 0},
9632 {0x1B, 0, 0, 0, 0},
9633 {0x1C, 0, 0, 0, 0},
9634 {0x1D, 0, 0, 0, 0},
9635 {0x1E, 0, 0, 0, 0},
9636 {0x1F, 0, 0, 0, 0},
9637 {0x20, 0, 0, 0, 0},
9638 {0x21, 0x88, 0x88, 0, 0},
9639 {0x22, 0x88, 0x88, 0, 0},
9640 {0x23, 0x88, 0x88, 0, 0},
9641 {0x24, 0x88, 0x88, 0, 0},
9642 {0x25, 0xc, 0xc, 0, 0},
9643 {0x26, 0, 0, 0, 0},
9644 {0x27, 0x3, 0x3, 0, 0},
9645 {0x28, 0, 0, 0, 0},
9646 {0x29, 0x3, 0x3, 0, 0},
9647 {0x2A, 0x37, 0x37, 0, 0},
9648 {0x2B, 0x3, 0x3, 0, 0},
9649 {0x2C, 0, 0, 0, 0},
9650 {0x2D, 0, 0, 0, 0},
9651 {0x2E, 0x1, 0x1, 0, 0},
9652 {0x2F, 0x1, 0x1, 0, 0},
9653 {0x30, 0, 0, 0, 0},
9654 {0x31, 0, 0, 0, 0},
9655 {0x32, 0, 0, 0, 0},
9656 {0x33, 0x11, 0x11, 0, 0},
9657 {0x34, 0xee, 0xee, 1, 1},
9658 {0x35, 0, 0, 0, 0},
9659 {0x36, 0, 0, 0, 0},
9660 {0x37, 0x3, 0x3, 0, 0},
9661 {0x38, 0x50, 0x50, 1, 1},
9662 {0x39, 0, 0, 0, 0},
9663 {0x3A, 0x50, 0x50, 1, 1},
9664 {0x3B, 0, 0, 0, 0},
9665 {0x3C, 0x6e, 0x6e, 0, 0},
9666 {0x3D, 0xf0, 0xf0, 1, 1},
9667 {0x3E, 0, 0, 0, 0},
9668 {0x3F, 0, 0, 0, 0},
9669 {0x40, 0, 0, 0, 0},
9670 {0x41, 0x3, 0x3, 0, 0},
9671 {0x42, 0x3, 0x3, 0, 0},
9672 {0x43, 0, 0, 0, 0},
9673 {0x44, 0x1e, 0x1e, 0, 0},
9674 {0x45, 0, 0, 0, 0},
9675 {0x46, 0x6e, 0x6e, 0, 0},
9676 {0x47, 0xf0, 0xf0, 1, 1},
9677 {0x48, 0, 0, 0, 0},
9678 {0x49, 0x2, 0x2, 0, 0},
9679 {0x4A, 0xff, 0xff, 1, 1},
9680 {0x4B, 0xc, 0xc, 0, 0},
9681 {0x4C, 0, 0, 0, 0},
9682 {0x4D, 0x38, 0x38, 0, 0},
9683 {0x4E, 0x70, 0x70, 1, 1},
9684 {0x4F, 0x2, 0x2, 0, 0},
9685 {0x50, 0x88, 0x88, 0, 0},
9686 {0x51, 0xc, 0xc, 0, 0},
9687 {0x52, 0, 0, 0, 0},
9688 {0x53, 0x8, 0x8, 0, 0},
9689 {0x54, 0x70, 0x70, 1, 1},
9690 {0x55, 0x2, 0x2, 0, 0},
9691 {0x56, 0xff, 0xff, 1, 1},
9692 {0x57, 0, 0, 0, 0},
9693 {0x58, 0x83, 0x83, 0, 0},
9694 {0x59, 0x77, 0x77, 1, 1},
9695 {0x5A, 0, 0, 0, 0},
9696 {0x5B, 0x2, 0x2, 0, 0},
9697 {0x5C, 0x88, 0x88, 0, 0},
9698 {0x5D, 0, 0, 0, 0},
9699 {0x5E, 0x8, 0x8, 0, 0},
9700 {0x5F, 0x77, 0x77, 1, 1},
9701 {0x60, 0x1, 0x1, 0, 0},
9702 {0x61, 0, 0, 0, 0},
9703 {0x62, 0x7, 0x7, 0, 0},
9704 {0x63, 0, 0, 0, 0},
9705 {0x64, 0x7, 0x7, 0, 0},
9706 {0x65, 0, 0, 0, 0},
9707 {0x66, 0, 0, 0, 0},
9708 {0x67, 0, 0, 1, 1},
9709 {0x68, 0, 0, 0, 0},
9710 {0x69, 0xa, 0xa, 0, 0},
9711 {0x6A, 0, 0, 0, 0},
9712 {0x6B, 0, 0, 0, 0},
9713 {0x6C, 0, 0, 0, 0},
9714 {0x6D, 0, 0, 0, 0},
9715 {0x6E, 0, 0, 0, 0},
9716 {0x6F, 0, 0, 0, 0},
9717 {0x70, 0, 0, 0, 0},
9718 {0x71, 0x2, 0x2, 0, 0},
9719 {0x72, 0, 0, 0, 0},
9720 {0x73, 0, 0, 0, 0},
9721 {0x74, 0xe, 0xe, 0, 0},
9722 {0x75, 0xe, 0xe, 0, 0},
9723 {0x76, 0xe, 0xe, 0, 0},
9724 {0x77, 0x13, 0x13, 0, 0},
9725 {0x78, 0x13, 0x13, 0, 0},
9726 {0x79, 0x1b, 0x1b, 0, 0},
9727 {0x7A, 0x1b, 0x1b, 0, 0},
9728 {0x7B, 0x55, 0x55, 0, 0},
9729 {0x7C, 0x5b, 0x5b, 0, 0},
9730 {0x7D, 0x30, 0x30, 1, 1},
9731 {0x7E, 0, 0, 0, 0},
9732 {0x7F, 0, 0, 0, 0},
9733 {0x80, 0, 0, 0, 0},
9734 {0x81, 0, 0, 0, 0},
9735 {0x82, 0, 0, 0, 0},
9736 {0x83, 0, 0, 0, 0},
9737 {0x84, 0, 0, 0, 0},
9738 {0x85, 0, 0, 0, 0},
9739 {0x86, 0, 0, 0, 0},
9740 {0x87, 0, 0, 0, 0},
9741 {0x88, 0, 0, 0, 0},
9742 {0x89, 0, 0, 0, 0},
9743 {0x8A, 0, 0, 0, 0},
9744 {0x8B, 0, 0, 0, 0},
9745 {0x8C, 0, 0, 0, 0},
9746 {0x8D, 0, 0, 0, 0},
9747 {0x8E, 0, 0, 0, 0},
9748 {0x8F, 0, 0, 0, 0},
9749 {0x90, 0, 0, 0, 0},
9750 {0x91, 0, 0, 0, 0},
9751 {0x92, 0, 0, 0, 0},
9752 {0x93, 0x70, 0x70, 0, 0},
9753 {0x94, 0x70, 0x70, 0, 0},
9754 {0x95, 0x70, 0x70, 0, 0},
9755 {0x96, 0x70, 0x70, 0, 0},
9756 {0x97, 0x70, 0x70, 0, 0},
9757 {0x98, 0x70, 0x70, 0, 0},
9758 {0x99, 0x70, 0x70, 0, 0},
9759 {0x9A, 0x70, 0x70, 0, 0},
9760 {0xFFFF, 0, 0, 0, 0}
9761};
9762
9763radio_regs_t regs_RX_2056_rev6[] = {
9764 {0x02, 0, 0, 0, 0},
9765 {0x03, 0, 0, 0, 0},
9766 {0x04, 0, 0, 0, 0},
9767 {0x05, 0, 0, 0, 0},
9768 {0x06, 0, 0, 0, 0},
9769 {0x07, 0, 0, 0, 0},
9770 {0x08, 0, 0, 0, 0},
9771 {0x09, 0, 0, 0, 0},
9772 {0x0A, 0, 0, 0, 0},
9773 {0x0B, 0, 0, 0, 0},
9774 {0x0C, 0, 0, 0, 0},
9775 {0x0D, 0, 0, 0, 0},
9776 {0x0E, 0, 0, 0, 0},
9777 {0x0F, 0, 0, 0, 0},
9778 {0x10, 0, 0, 0, 0},
9779 {0x11, 0, 0, 0, 0},
9780 {0x12, 0, 0, 0, 0},
9781 {0x13, 0, 0, 0, 0},
9782 {0x14, 0, 0, 0, 0},
9783 {0x15, 0, 0, 0, 0},
9784 {0x16, 0, 0, 0, 0},
9785 {0x17, 0, 0, 0, 0},
9786 {0x18, 0, 0, 0, 0},
9787 {0x19, 0, 0, 0, 0},
9788 {0x1A, 0, 0, 0, 0},
9789 {0x1B, 0, 0, 0, 0},
9790 {0x1C, 0, 0, 0, 0},
9791 {0x1D, 0, 0, 0, 0},
9792 {0x1E, 0, 0, 0, 0},
9793 {0x1F, 0, 0, 0, 0},
9794 {0x20, 0x3, 0x3, 0, 0},
9795 {0x21, 0, 0, 0, 0},
9796 {0x22, 0, 0, 0, 0},
9797 {0x23, 0x90, 0x90, 0, 0},
9798 {0x24, 0x55, 0x55, 0, 0},
9799 {0x25, 0x15, 0x15, 0, 0},
9800 {0x26, 0x5, 0x5, 0, 0},
9801 {0x27, 0x15, 0x15, 0, 0},
9802 {0x28, 0x5, 0x5, 0, 0},
9803 {0x29, 0x20, 0x20, 0, 0},
9804 {0x2A, 0x11, 0x11, 0, 0},
9805 {0x2B, 0x90, 0x90, 0, 0},
9806 {0x2C, 0, 0, 0, 0},
9807 {0x2D, 0x88, 0x88, 0, 0},
9808 {0x2E, 0x32, 0x32, 0, 0},
9809 {0x2F, 0x77, 0x77, 0, 0},
9810 {0x30, 0x17, 0x17, 1, 1},
9811 {0x31, 0xff, 0xff, 1, 1},
9812 {0x32, 0x20, 0x20, 0, 0},
9813 {0x33, 0, 0, 0, 0},
9814 {0x34, 0x88, 0x88, 0, 0},
9815 {0x35, 0x32, 0x32, 0, 0},
9816 {0x36, 0x77, 0x77, 0, 0},
9817 {0x37, 0x17, 0x17, 1, 1},
9818 {0x38, 0xf0, 0xf0, 1, 1},
9819 {0x39, 0x20, 0x20, 0, 0},
9820 {0x3A, 0x8, 0x8, 0, 0},
9821 {0x3B, 0x55, 0x55, 1, 1},
9822 {0x3C, 0, 0, 0, 0},
9823 {0x3D, 0x88, 0x88, 1, 1},
9824 {0x3E, 0, 0, 0, 0},
9825 {0x3F, 0x44, 0x44, 0, 0},
9826 {0x40, 0x7, 0x7, 1, 1},
9827 {0x41, 0x6, 0x6, 0, 0},
9828 {0x42, 0x4, 0x4, 0, 0},
9829 {0x43, 0, 0, 0, 0},
9830 {0x44, 0x8, 0x8, 0, 0},
9831 {0x45, 0x55, 0x55, 1, 1},
9832 {0x46, 0, 0, 0, 0},
9833 {0x47, 0x11, 0x11, 0, 0},
9834 {0x48, 0, 0, 0, 0},
9835 {0x49, 0x44, 0x44, 0, 0},
9836 {0x4A, 0x7, 0x7, 0, 0},
9837 {0x4B, 0x6, 0x6, 0, 0},
9838 {0x4C, 0x4, 0x4, 0, 0},
9839 {0x4D, 0, 0, 0, 0},
9840 {0x4E, 0, 0, 0, 0},
9841 {0x4F, 0x26, 0x26, 1, 1},
9842 {0x50, 0x26, 0x26, 1, 1},
9843 {0x51, 0xf, 0xf, 1, 1},
9844 {0x52, 0xf, 0xf, 1, 1},
9845 {0x53, 0x44, 0x44, 0, 0},
9846 {0x54, 0, 0, 0, 0},
9847 {0x55, 0, 0, 0, 0},
9848 {0x56, 0x8, 0x8, 0, 0},
9849 {0x57, 0x8, 0x8, 0, 0},
9850 {0x58, 0x7, 0x7, 0, 0},
9851 {0x59, 0x22, 0x22, 0, 0},
9852 {0x5A, 0x22, 0x22, 0, 0},
9853 {0x5B, 0x2, 0x2, 0, 0},
9854 {0x5C, 0x4, 0x4, 1, 1},
9855 {0x5D, 0x7, 0x7, 0, 0},
9856 {0x5E, 0x55, 0x55, 0, 0},
9857 {0x5F, 0x23, 0x23, 0, 0},
9858 {0x60, 0x41, 0x41, 0, 0},
9859 {0x61, 0x1, 0x1, 0, 0},
9860 {0x62, 0xa, 0xa, 0, 0},
9861 {0x63, 0, 0, 0, 0},
9862 {0x64, 0, 0, 0, 0},
9863 {0x65, 0, 0, 0, 0},
9864 {0x66, 0, 0, 0, 0},
9865 {0x67, 0, 0, 0, 0},
9866 {0x68, 0, 0, 0, 0},
9867 {0x69, 0, 0, 0, 0},
9868 {0x6A, 0, 0, 0, 0},
9869 {0x6B, 0xc, 0xc, 0, 0},
9870 {0x6C, 0, 0, 0, 0},
9871 {0x6D, 0, 0, 0, 0},
9872 {0x6E, 0, 0, 0, 0},
9873 {0x6F, 0, 0, 0, 0},
9874 {0x70, 0, 0, 0, 0},
9875 {0x71, 0, 0, 0, 0},
9876 {0x72, 0x22, 0x22, 0, 0},
9877 {0x73, 0x22, 0x22, 0, 0},
9878 {0x74, 0, 0, 1, 1},
9879 {0x75, 0xa, 0xa, 0, 0},
9880 {0x76, 0x1, 0x1, 0, 0},
9881 {0x77, 0x22, 0x22, 0, 0},
9882 {0x78, 0x30, 0x30, 0, 0},
9883 {0x79, 0, 0, 0, 0},
9884 {0x7A, 0, 0, 0, 0},
9885 {0x7B, 0, 0, 0, 0},
9886 {0x7C, 0, 0, 0, 0},
9887 {0x7D, 0x5, 0x5, 1, 1},
9888 {0x7E, 0, 0, 0, 0},
9889 {0x7F, 0, 0, 0, 0},
9890 {0x80, 0, 0, 0, 0},
9891 {0x81, 0, 0, 0, 0},
9892 {0x82, 0, 0, 0, 0},
9893 {0x83, 0, 0, 0, 0},
9894 {0x84, 0, 0, 0, 0},
9895 {0x85, 0, 0, 0, 0},
9896 {0x86, 0, 0, 0, 0},
9897 {0x87, 0, 0, 0, 0},
9898 {0x88, 0, 0, 0, 0},
9899 {0x89, 0, 0, 0, 0},
9900 {0x8A, 0, 0, 0, 0},
9901 {0x8B, 0, 0, 0, 0},
9902 {0x8C, 0, 0, 0, 0},
9903 {0x8D, 0, 0, 0, 0},
9904 {0x8E, 0, 0, 0, 0},
9905 {0x8F, 0, 0, 0, 0},
9906 {0x90, 0, 0, 0, 0},
9907 {0x91, 0, 0, 0, 0},
9908 {0x92, 0, 0, 0, 0},
9909 {0x93, 0, 0, 0, 0},
9910 {0x94, 0, 0, 0, 0},
9911 {0xFFFF, 0, 0, 0, 0}
9912};
9913
9914radio_regs_t regs_SYN_2056_rev7[] = {
9915 {0x02, 0, 0, 0, 0},
9916 {0x03, 0, 0, 0, 0},
9917 {0x04, 0, 0, 0, 0},
9918 {0x05, 0, 0, 0, 0},
9919 {0x06, 0, 0, 0, 0},
9920 {0x07, 0, 0, 0, 0},
9921 {0x08, 0, 0, 0, 0},
9922 {0x09, 0x1, 0x1, 0, 0},
9923 {0x0A, 0, 0, 0, 0},
9924 {0x0B, 0, 0, 0, 0},
9925 {0x0C, 0, 0, 0, 0},
9926 {0x0D, 0, 0, 0, 0},
9927 {0x0E, 0, 0, 0, 0},
9928 {0x0F, 0, 0, 0, 0},
9929 {0x10, 0, 0, 0, 0},
9930 {0x11, 0, 0, 0, 0},
9931 {0x12, 0, 0, 0, 0},
9932 {0x13, 0, 0, 0, 0},
9933 {0x14, 0, 0, 0, 0},
9934 {0x15, 0, 0, 0, 0},
9935 {0x16, 0, 0, 0, 0},
9936 {0x17, 0, 0, 0, 0},
9937 {0x18, 0, 0, 0, 0},
9938 {0x19, 0, 0, 0, 0},
9939 {0x1A, 0, 0, 0, 0},
9940 {0x1B, 0, 0, 0, 0},
9941 {0x1C, 0, 0, 0, 0},
9942 {0x1D, 0, 0, 0, 0},
9943 {0x1E, 0, 0, 0, 0},
9944 {0x1F, 0, 0, 0, 0},
9945 {0x20, 0, 0, 0, 0},
9946 {0x21, 0, 0, 0, 0},
9947 {0x22, 0x60, 0x60, 0, 0},
9948 {0x23, 0x6, 0x6, 0, 0},
9949 {0x24, 0xc, 0xc, 0, 0},
9950 {0x25, 0, 0, 0, 0},
9951 {0x26, 0, 0, 0, 0},
9952 {0x27, 0, 0, 0, 0},
9953 {0x28, 0x1, 0x1, 0, 0},
9954 {0x29, 0, 0, 0, 0},
9955 {0x2A, 0, 0, 0, 0},
9956 {0x2B, 0, 0, 0, 0},
9957 {0x2C, 0, 0, 0, 0},
9958 {0x2D, 0, 0, 0, 0},
9959 {0x2E, 0, 0, 0, 0},
9960 {0x2F, 0x1f, 0x1f, 0, 0},
9961 {0x30, 0x15, 0x15, 0, 0},
9962 {0x31, 0xf, 0xf, 0, 0},
9963 {0x32, 0, 0, 0, 0},
9964 {0x33, 0, 0, 0, 0},
9965 {0x34, 0, 0, 0, 0},
9966 {0x35, 0, 0, 0, 0},
9967 {0x36, 0, 0, 0, 0},
9968 {0x37, 0, 0, 0, 0},
9969 {0x38, 0, 0, 0, 0},
9970 {0x39, 0, 0, 0, 0},
9971 {0x3A, 0, 0, 0, 0},
9972 {0x3B, 0, 0, 0, 0},
9973 {0x3C, 0x13, 0x13, 0, 0},
9974 {0x3D, 0xf, 0xf, 0, 0},
9975 {0x3E, 0x18, 0x18, 0, 0},
9976 {0x3F, 0, 0, 0, 0},
9977 {0x40, 0, 0, 0, 0},
9978 {0x41, 0x20, 0x20, 0, 0},
9979 {0x42, 0x20, 0x20, 0, 0},
9980 {0x43, 0, 0, 0, 0},
9981 {0x44, 0x77, 0x77, 0, 0},
9982 {0x45, 0x7, 0x7, 0, 0},
9983 {0x46, 0x1, 0x1, 0, 0},
9984 {0x47, 0x4, 0x4, 0, 0},
9985 {0x48, 0xf, 0xf, 0, 0},
9986 {0x49, 0x30, 0x30, 0, 0},
9987 {0x4A, 0x32, 0x32, 0, 0},
9988 {0x4B, 0xd, 0xd, 0, 0},
9989 {0x4C, 0xd, 0xd, 0, 0},
9990 {0x4D, 0x4, 0x4, 0, 0},
9991 {0x4E, 0x6, 0x6, 0, 0},
9992 {0x4F, 0x1, 0x1, 0, 0},
9993 {0x50, 0x1c, 0x1c, 0, 0},
9994 {0x51, 0x2, 0x2, 0, 0},
9995 {0x52, 0x2, 0x2, 0, 0},
9996 {0x53, 0xf7, 0xf7, 1, 1},
9997 {0x54, 0xb4, 0xb4, 0, 0},
9998 {0x55, 0xd2, 0xd2, 0, 0},
9999 {0x56, 0, 0, 0, 0},
10000 {0x57, 0, 0, 0, 0},
10001 {0x58, 0x4, 0x4, 0, 0},
10002 {0x59, 0x96, 0x96, 0, 0},
10003 {0x5A, 0x3e, 0x3e, 0, 0},
10004 {0x5B, 0x3e, 0x3e, 0, 0},
10005 {0x5C, 0x13, 0x13, 0, 0},
10006 {0x5D, 0x2, 0x2, 0, 0},
10007 {0x5E, 0, 0, 0, 0},
10008 {0x5F, 0x7, 0x7, 0, 0},
10009 {0x60, 0x7, 0x7, 1, 1},
10010 {0x61, 0x8, 0x8, 0, 0},
10011 {0x62, 0x3, 0x3, 0, 0},
10012 {0x63, 0, 0, 0, 0},
10013 {0x64, 0, 0, 0, 0},
10014 {0x65, 0, 0, 0, 0},
10015 {0x66, 0, 0, 0, 0},
10016 {0x67, 0, 0, 0, 0},
10017 {0x68, 0x40, 0x40, 0, 0},
10018 {0x69, 0, 0, 0, 0},
10019 {0x6A, 0, 0, 0, 0},
10020 {0x6B, 0, 0, 0, 0},
10021 {0x6C, 0, 0, 0, 0},
10022 {0x6D, 0x1, 0x1, 0, 0},
10023 {0x6E, 0, 0, 0, 0},
10024 {0x6F, 0, 0, 0, 0},
10025 {0x70, 0x60, 0x60, 0, 0},
10026 {0x71, 0x66, 0x66, 0, 0},
10027 {0x72, 0xc, 0xc, 0, 0},
10028 {0x73, 0x66, 0x66, 0, 0},
10029 {0x74, 0x8f, 0x8f, 1, 1},
10030 {0x75, 0, 0, 0, 0},
10031 {0x76, 0xcc, 0xcc, 0, 0},
10032 {0x77, 0x1, 0x1, 0, 0},
10033 {0x78, 0x66, 0x66, 0, 0},
10034 {0x79, 0x66, 0x66, 0, 0},
10035 {0x7A, 0, 0, 0, 0},
10036 {0x7B, 0, 0, 0, 0},
10037 {0x7C, 0, 0, 0, 0},
10038 {0x7D, 0, 0, 0, 0},
10039 {0x7E, 0, 0, 0, 0},
10040 {0x7F, 0, 0, 0, 0},
10041 {0x80, 0, 0, 0, 0},
10042 {0x81, 0, 0, 0, 0},
10043 {0x82, 0, 0, 0, 0},
10044 {0x83, 0, 0, 0, 0},
10045 {0x84, 0, 0, 0, 0},
10046 {0x85, 0xff, 0xff, 0, 0},
10047 {0x86, 0, 0, 0, 0},
10048 {0x87, 0, 0, 0, 0},
10049 {0x88, 0, 0, 0, 0},
10050 {0x89, 0, 0, 0, 0},
10051 {0x8A, 0, 0, 0, 0},
10052 {0x8B, 0, 0, 0, 0},
10053 {0x8C, 0, 0, 0, 0},
10054 {0x8D, 0, 0, 0, 0},
10055 {0x8E, 0, 0, 0, 0},
10056 {0x8F, 0, 0, 0, 0},
10057 {0x90, 0, 0, 0, 0},
10058 {0x91, 0, 0, 0, 0},
10059 {0x92, 0, 0, 0, 0},
10060 {0x93, 0, 0, 0, 0},
10061 {0x94, 0, 0, 0, 0},
10062 {0x95, 0, 0, 0, 0},
10063 {0x96, 0, 0, 0, 0},
10064 {0x97, 0, 0, 0, 0},
10065 {0x98, 0, 0, 0, 0},
10066 {0x99, 0, 0, 0, 0},
10067 {0x9A, 0, 0, 0, 0},
10068 {0x9B, 0, 0, 0, 0},
10069 {0x9C, 0, 0, 0, 0},
10070 {0x9D, 0, 0, 0, 0},
10071 {0x9E, 0, 0, 0, 0},
10072 {0x9F, 0x6, 0x6, 0, 0},
10073 {0xA0, 0x66, 0x66, 0, 0},
10074 {0xA1, 0x66, 0x66, 0, 0},
10075 {0xA2, 0x66, 0x66, 0, 0},
10076 {0xA3, 0x66, 0x66, 0, 0},
10077 {0xA4, 0x66, 0x66, 0, 0},
10078 {0xA5, 0x66, 0x66, 0, 0},
10079 {0xA6, 0x66, 0x66, 0, 0},
10080 {0xA7, 0x66, 0x66, 0, 0},
10081 {0xA8, 0x66, 0x66, 0, 0},
10082 {0xA9, 0x66, 0x66, 0, 0},
10083 {0xAA, 0x66, 0x66, 0, 0},
10084 {0xAB, 0x66, 0x66, 0, 0},
10085 {0xAC, 0x66, 0x66, 0, 0},
10086 {0xAD, 0x66, 0x66, 0, 0},
10087 {0xAE, 0x66, 0x66, 0, 0},
10088 {0xAF, 0x66, 0x66, 0, 0},
10089 {0xB0, 0x66, 0x66, 0, 0},
10090 {0xB1, 0x66, 0x66, 0, 0},
10091 {0xB2, 0x66, 0x66, 0, 0},
10092 {0xB3, 0xa, 0xa, 0, 0},
10093 {0xB4, 0, 0, 0, 0},
10094 {0xB5, 0, 0, 0, 0},
10095 {0xB6, 0, 0, 0, 0},
10096 {0xFFFF, 0, 0, 0, 0},
10097};
10098
10099radio_regs_t regs_TX_2056_rev7[] = {
10100 {0x02, 0, 0, 0, 0},
10101 {0x03, 0, 0, 0, 0},
10102 {0x04, 0, 0, 0, 0},
10103 {0x05, 0, 0, 0, 0},
10104 {0x06, 0, 0, 0, 0},
10105 {0x07, 0, 0, 0, 0},
10106 {0x08, 0, 0, 0, 0},
10107 {0x09, 0, 0, 0, 0},
10108 {0x0A, 0, 0, 0, 0},
10109 {0x0B, 0, 0, 0, 0},
10110 {0x0C, 0, 0, 0, 0},
10111 {0x0D, 0, 0, 0, 0},
10112 {0x0E, 0, 0, 0, 0},
10113 {0x0F, 0, 0, 0, 0},
10114 {0x10, 0, 0, 0, 0},
10115 {0x11, 0, 0, 0, 0},
10116 {0x12, 0, 0, 0, 0},
10117 {0x13, 0, 0, 0, 0},
10118 {0x14, 0, 0, 0, 0},
10119 {0x15, 0, 0, 0, 0},
10120 {0x16, 0, 0, 0, 0},
10121 {0x17, 0, 0, 0, 0},
10122 {0x18, 0, 0, 0, 0},
10123 {0x19, 0, 0, 0, 0},
10124 {0x1A, 0, 0, 0, 0},
10125 {0x1B, 0, 0, 0, 0},
10126 {0x1C, 0, 0, 0, 0},
10127 {0x1D, 0, 0, 0, 0},
10128 {0x1E, 0, 0, 0, 0},
10129 {0x1F, 0, 0, 0, 0},
10130 {0x20, 0, 0, 0, 0},
10131 {0x21, 0x88, 0x88, 0, 0},
10132 {0x22, 0x88, 0x88, 0, 0},
10133 {0x23, 0x88, 0x88, 0, 0},
10134 {0x24, 0x88, 0x88, 0, 0},
10135 {0x25, 0xc, 0xc, 0, 0},
10136 {0x26, 0, 0, 0, 0},
10137 {0x27, 0x3, 0x3, 0, 0},
10138 {0x28, 0, 0, 0, 0},
10139 {0x29, 0x3, 0x3, 0, 0},
10140 {0x2A, 0x37, 0x37, 0, 0},
10141 {0x2B, 0x3, 0x3, 0, 0},
10142 {0x2C, 0, 0, 0, 0},
10143 {0x2D, 0, 0, 0, 0},
10144 {0x2E, 0x1, 0x1, 0, 0},
10145 {0x2F, 0x1, 0x1, 0, 0},
10146 {0x30, 0, 0, 0, 0},
10147 {0x31, 0, 0, 0, 0},
10148 {0x32, 0, 0, 0, 0},
10149 {0x33, 0x11, 0x11, 0, 0},
10150 {0x34, 0xee, 0xee, 1, 1},
10151 {0x35, 0, 0, 0, 0},
10152 {0x36, 0, 0, 0, 0},
10153 {0x37, 0x3, 0x3, 0, 0},
10154 {0x38, 0x50, 0x50, 1, 1},
10155 {0x39, 0, 0, 0, 0},
10156 {0x3A, 0x50, 0x50, 1, 1},
10157 {0x3B, 0, 0, 0, 0},
10158 {0x3C, 0x6e, 0x6e, 0, 0},
10159 {0x3D, 0xf0, 0xf0, 1, 1},
10160 {0x3E, 0, 0, 0, 0},
10161 {0x3F, 0, 0, 0, 0},
10162 {0x40, 0, 0, 0, 0},
10163 {0x41, 0x3, 0x3, 0, 0},
10164 {0x42, 0x3, 0x3, 0, 0},
10165 {0x43, 0, 0, 0, 0},
10166 {0x44, 0x1e, 0x1e, 0, 0},
10167 {0x45, 0, 0, 0, 0},
10168 {0x46, 0x6e, 0x6e, 0, 0},
10169 {0x47, 0xf0, 0xf0, 1, 1},
10170 {0x48, 0, 0, 0, 0},
10171 {0x49, 0x2, 0x2, 0, 0},
10172 {0x4A, 0xff, 0xff, 1, 1},
10173 {0x4B, 0xc, 0xc, 0, 0},
10174 {0x4C, 0, 0, 0, 0},
10175 {0x4D, 0x38, 0x38, 0, 0},
10176 {0x4E, 0x70, 0x70, 1, 1},
10177 {0x4F, 0x2, 0x2, 0, 0},
10178 {0x50, 0x88, 0x88, 0, 0},
10179 {0x51, 0xc, 0xc, 0, 0},
10180 {0x52, 0, 0, 0, 0},
10181 {0x53, 0x8, 0x8, 0, 0},
10182 {0x54, 0x70, 0x70, 1, 1},
10183 {0x55, 0x2, 0x2, 0, 0},
10184 {0x56, 0xff, 0xff, 1, 1},
10185 {0x57, 0, 0, 0, 0},
10186 {0x58, 0x83, 0x83, 0, 0},
10187 {0x59, 0x77, 0x77, 1, 1},
10188 {0x5A, 0, 0, 0, 0},
10189 {0x5B, 0x2, 0x2, 0, 0},
10190 {0x5C, 0x88, 0x88, 0, 0},
10191 {0x5D, 0, 0, 0, 0},
10192 {0x5E, 0x8, 0x8, 0, 0},
10193 {0x5F, 0x77, 0x77, 1, 1},
10194 {0x60, 0x1, 0x1, 0, 0},
10195 {0x61, 0, 0, 0, 0},
10196 {0x62, 0x7, 0x7, 0, 0},
10197 {0x63, 0, 0, 0, 0},
10198 {0x64, 0x7, 0x7, 0, 0},
10199 {0x65, 0, 0, 0, 0},
10200 {0x66, 0, 0, 0, 0},
10201 {0x67, 0, 0, 1, 1},
10202 {0x68, 0, 0, 0, 0},
10203 {0x69, 0xa, 0xa, 0, 0},
10204 {0x6A, 0, 0, 0, 0},
10205 {0x6B, 0, 0, 0, 0},
10206 {0x6C, 0, 0, 0, 0},
10207 {0x6D, 0, 0, 0, 0},
10208 {0x6E, 0, 0, 0, 0},
10209 {0x6F, 0, 0, 0, 0},
10210 {0x70, 0, 0, 0, 0},
10211 {0x71, 0x2, 0x2, 0, 0},
10212 {0x72, 0, 0, 0, 0},
10213 {0x73, 0, 0, 0, 0},
10214 {0x74, 0xe, 0xe, 0, 0},
10215 {0x75, 0xe, 0xe, 0, 0},
10216 {0x76, 0xe, 0xe, 0, 0},
10217 {0x77, 0x13, 0x13, 0, 0},
10218 {0x78, 0x13, 0x13, 0, 0},
10219 {0x79, 0x1b, 0x1b, 0, 0},
10220 {0x7A, 0x1b, 0x1b, 0, 0},
10221 {0x7B, 0x55, 0x55, 0, 0},
10222 {0x7C, 0x5b, 0x5b, 0, 0},
10223 {0x7D, 0x30, 0x30, 1, 1},
10224 {0x7E, 0, 0, 0, 0},
10225 {0x7F, 0, 0, 0, 0},
10226 {0x80, 0, 0, 0, 0},
10227 {0x81, 0, 0, 0, 0},
10228 {0x82, 0, 0, 0, 0},
10229 {0x83, 0, 0, 0, 0},
10230 {0x84, 0, 0, 0, 0},
10231 {0x85, 0, 0, 0, 0},
10232 {0x86, 0, 0, 0, 0},
10233 {0x87, 0, 0, 0, 0},
10234 {0x88, 0, 0, 0, 0},
10235 {0x89, 0, 0, 0, 0},
10236 {0x8A, 0, 0, 0, 0},
10237 {0x8B, 0, 0, 0, 0},
10238 {0x8C, 0, 0, 0, 0},
10239 {0x8D, 0, 0, 0, 0},
10240 {0x8E, 0, 0, 0, 0},
10241 {0x8F, 0, 0, 0, 0},
10242 {0x90, 0, 0, 0, 0},
10243 {0x91, 0, 0, 0, 0},
10244 {0x92, 0, 0, 0, 0},
10245 {0x93, 0x70, 0x70, 0, 0},
10246 {0x94, 0x70, 0x70, 0, 0},
10247 {0x95, 0x71, 0x71, 1, 1},
10248 {0x96, 0x71, 0x71, 1, 1},
10249 {0x97, 0x72, 0x72, 1, 1},
10250 {0x98, 0x73, 0x73, 1, 1},
10251 {0x99, 0x74, 0x74, 1, 1},
10252 {0x9A, 0x75, 0x75, 1, 1},
10253 {0xFFFF, 0, 0, 0, 0},
10254};
10255
10256radio_regs_t regs_RX_2056_rev7[] = {
10257 {0x02, 0, 0, 0, 0},
10258 {0x03, 0, 0, 0, 0},
10259 {0x04, 0, 0, 0, 0},
10260 {0x05, 0, 0, 0, 0},
10261 {0x06, 0, 0, 0, 0},
10262 {0x07, 0, 0, 0, 0},
10263 {0x08, 0, 0, 0, 0},
10264 {0x09, 0, 0, 0, 0},
10265 {0x0A, 0, 0, 0, 0},
10266 {0x0B, 0, 0, 0, 0},
10267 {0x0C, 0, 0, 0, 0},
10268 {0x0D, 0, 0, 0, 0},
10269 {0x0E, 0, 0, 0, 0},
10270 {0x0F, 0, 0, 0, 0},
10271 {0x10, 0, 0, 0, 0},
10272 {0x11, 0, 0, 0, 0},
10273 {0x12, 0, 0, 0, 0},
10274 {0x13, 0, 0, 0, 0},
10275 {0x14, 0, 0, 0, 0},
10276 {0x15, 0, 0, 0, 0},
10277 {0x16, 0, 0, 0, 0},
10278 {0x17, 0, 0, 0, 0},
10279 {0x18, 0, 0, 0, 0},
10280 {0x19, 0, 0, 0, 0},
10281 {0x1A, 0, 0, 0, 0},
10282 {0x1B, 0, 0, 0, 0},
10283 {0x1C, 0, 0, 0, 0},
10284 {0x1D, 0, 0, 0, 0},
10285 {0x1E, 0, 0, 0, 0},
10286 {0x1F, 0, 0, 0, 0},
10287 {0x20, 0x3, 0x3, 0, 0},
10288 {0x21, 0, 0, 0, 0},
10289 {0x22, 0, 0, 0, 0},
10290 {0x23, 0x90, 0x90, 0, 0},
10291 {0x24, 0x55, 0x55, 0, 0},
10292 {0x25, 0x15, 0x15, 0, 0},
10293 {0x26, 0x5, 0x5, 0, 0},
10294 {0x27, 0x15, 0x15, 0, 0},
10295 {0x28, 0x5, 0x5, 0, 0},
10296 {0x29, 0x20, 0x20, 0, 0},
10297 {0x2A, 0x11, 0x11, 0, 0},
10298 {0x2B, 0x90, 0x90, 0, 0},
10299 {0x2C, 0, 0, 0, 0},
10300 {0x2D, 0x88, 0x88, 0, 0},
10301 {0x2E, 0x32, 0x32, 0, 0},
10302 {0x2F, 0x77, 0x77, 0, 0},
10303 {0x30, 0x17, 0x17, 1, 1},
10304 {0x31, 0xff, 0xff, 1, 1},
10305 {0x32, 0x20, 0x20, 0, 0},
10306 {0x33, 0, 0, 0, 0},
10307 {0x34, 0x88, 0x88, 0, 0},
10308 {0x35, 0x32, 0x32, 0, 0},
10309 {0x36, 0x77, 0x77, 0, 0},
10310 {0x37, 0x17, 0x17, 1, 1},
10311 {0x38, 0xf0, 0xf0, 1, 1},
10312 {0x39, 0x20, 0x20, 0, 0},
10313 {0x3A, 0x8, 0x8, 0, 0},
10314 {0x3B, 0x55, 0x55, 1, 1},
10315 {0x3C, 0, 0, 0, 0},
10316 {0x3D, 0x88, 0x88, 1, 1},
10317 {0x3E, 0, 0, 0, 0},
10318 {0x3F, 0, 0, 1, 1},
10319 {0x40, 0x7, 0x7, 1, 1},
10320 {0x41, 0x6, 0x6, 0, 0},
10321 {0x42, 0x4, 0x4, 0, 0},
10322 {0x43, 0, 0, 0, 0},
10323 {0x44, 0x8, 0x8, 0, 0},
10324 {0x45, 0x55, 0x55, 1, 1},
10325 {0x46, 0, 0, 0, 0},
10326 {0x47, 0x11, 0x11, 0, 0},
10327 {0x48, 0, 0, 0, 0},
10328 {0x49, 0, 0, 1, 1},
10329 {0x4A, 0x7, 0x7, 0, 0},
10330 {0x4B, 0x6, 0x6, 0, 0},
10331 {0x4C, 0x4, 0x4, 0, 0},
10332 {0x4D, 0, 0, 0, 0},
10333 {0x4E, 0, 0, 0, 0},
10334 {0x4F, 0x26, 0x26, 1, 1},
10335 {0x50, 0x26, 0x26, 1, 1},
10336 {0x51, 0xf, 0xf, 1, 1},
10337 {0x52, 0xf, 0xf, 1, 1},
10338 {0x53, 0x44, 0x44, 0, 0},
10339 {0x54, 0, 0, 0, 0},
10340 {0x55, 0, 0, 0, 0},
10341 {0x56, 0x8, 0x8, 0, 0},
10342 {0x57, 0x8, 0x8, 0, 0},
10343 {0x58, 0x7, 0x7, 0, 0},
10344 {0x59, 0x22, 0x22, 0, 0},
10345 {0x5A, 0x22, 0x22, 0, 0},
10346 {0x5B, 0x2, 0x2, 0, 0},
10347 {0x5C, 0x4, 0x4, 1, 1},
10348 {0x5D, 0x7, 0x7, 0, 0},
10349 {0x5E, 0x55, 0x55, 0, 0},
10350 {0x5F, 0x23, 0x23, 0, 0},
10351 {0x60, 0x41, 0x41, 0, 0},
10352 {0x61, 0x1, 0x1, 0, 0},
10353 {0x62, 0xa, 0xa, 0, 0},
10354 {0x63, 0, 0, 0, 0},
10355 {0x64, 0, 0, 0, 0},
10356 {0x65, 0, 0, 0, 0},
10357 {0x66, 0, 0, 0, 0},
10358 {0x67, 0, 0, 0, 0},
10359 {0x68, 0, 0, 0, 0},
10360 {0x69, 0, 0, 0, 0},
10361 {0x6A, 0, 0, 0, 0},
10362 {0x6B, 0xc, 0xc, 0, 0},
10363 {0x6C, 0, 0, 0, 0},
10364 {0x6D, 0, 0, 0, 0},
10365 {0x6E, 0, 0, 0, 0},
10366 {0x6F, 0, 0, 0, 0},
10367 {0x70, 0, 0, 0, 0},
10368 {0x71, 0, 0, 0, 0},
10369 {0x72, 0x22, 0x22, 0, 0},
10370 {0x73, 0x22, 0x22, 0, 0},
10371 {0x74, 0, 0, 1, 1},
10372 {0x75, 0xa, 0xa, 0, 0},
10373 {0x76, 0x1, 0x1, 0, 0},
10374 {0x77, 0x22, 0x22, 0, 0},
10375 {0x78, 0x30, 0x30, 0, 0},
10376 {0x79, 0, 0, 0, 0},
10377 {0x7A, 0, 0, 0, 0},
10378 {0x7B, 0, 0, 0, 0},
10379 {0x7C, 0, 0, 0, 0},
10380 {0x7D, 0, 0, 0, 0},
10381 {0x7E, 0, 0, 0, 0},
10382 {0x7F, 0, 0, 0, 0},
10383 {0x80, 0, 0, 0, 0},
10384 {0x81, 0, 0, 0, 0},
10385 {0x82, 0, 0, 0, 0},
10386 {0x83, 0, 0, 0, 0},
10387 {0x84, 0, 0, 0, 0},
10388 {0x85, 0, 0, 0, 0},
10389 {0x86, 0, 0, 0, 0},
10390 {0x87, 0, 0, 0, 0},
10391 {0x88, 0, 0, 0, 0},
10392 {0x89, 0, 0, 0, 0},
10393 {0x8A, 0, 0, 0, 0},
10394 {0x8B, 0, 0, 0, 0},
10395 {0x8C, 0, 0, 0, 0},
10396 {0x8D, 0, 0, 0, 0},
10397 {0x8E, 0, 0, 0, 0},
10398 {0x8F, 0, 0, 0, 0},
10399 {0x90, 0, 0, 0, 0},
10400 {0x91, 0, 0, 0, 0},
10401 {0x92, 0, 0, 0, 0},
10402 {0x93, 0, 0, 0, 0},
10403 {0x94, 0, 0, 0, 0},
10404 {0xFFFF, 0, 0, 0, 0},
10405};
10406
10407radio_regs_t regs_SYN_2056_rev8[] = {
10408 {0x02, 0, 0, 0, 0},
10409 {0x03, 0, 0, 0, 0},
10410 {0x04, 0, 0, 0, 0},
10411 {0x05, 0, 0, 0, 0},
10412 {0x06, 0, 0, 0, 0},
10413 {0x07, 0, 0, 0, 0},
10414 {0x08, 0, 0, 0, 0},
10415 {0x09, 0x1, 0x1, 0, 0},
10416 {0x0A, 0, 0, 0, 0},
10417 {0x0B, 0, 0, 0, 0},
10418 {0x0C, 0, 0, 0, 0},
10419 {0x0D, 0, 0, 0, 0},
10420 {0x0E, 0, 0, 0, 0},
10421 {0x0F, 0, 0, 0, 0},
10422 {0x10, 0, 0, 0, 0},
10423 {0x11, 0, 0, 0, 0},
10424 {0x12, 0, 0, 0, 0},
10425 {0x13, 0, 0, 0, 0},
10426 {0x14, 0, 0, 0, 0},
10427 {0x15, 0, 0, 0, 0},
10428 {0x16, 0, 0, 0, 0},
10429 {0x17, 0, 0, 0, 0},
10430 {0x18, 0, 0, 0, 0},
10431 {0x19, 0, 0, 0, 0},
10432 {0x1A, 0, 0, 0, 0},
10433 {0x1B, 0, 0, 0, 0},
10434 {0x1C, 0, 0, 0, 0},
10435 {0x1D, 0, 0, 0, 0},
10436 {0x1E, 0, 0, 0, 0},
10437 {0x1F, 0, 0, 0, 0},
10438 {0x20, 0, 0, 0, 0},
10439 {0x21, 0, 0, 0, 0},
10440 {0x22, 0x60, 0x60, 0, 0},
10441 {0x23, 0x6, 0x6, 0, 0},
10442 {0x24, 0xc, 0xc, 0, 0},
10443 {0x25, 0, 0, 0, 0},
10444 {0x26, 0, 0, 0, 0},
10445 {0x27, 0, 0, 0, 0},
10446 {0x28, 0x1, 0x1, 0, 0},
10447 {0x29, 0, 0, 0, 0},
10448 {0x2A, 0, 0, 0, 0},
10449 {0x2B, 0, 0, 0, 0},
10450 {0x2C, 0, 0, 0, 0},
10451 {0x2D, 0, 0, 0, 0},
10452 {0x2E, 0, 0, 0, 0},
10453 {0x2F, 0x1f, 0x1f, 0, 0},
10454 {0x30, 0x15, 0x15, 0, 0},
10455 {0x31, 0xf, 0xf, 0, 0},
10456 {0x32, 0, 0, 0, 0},
10457 {0x33, 0, 0, 0, 0},
10458 {0x34, 0, 0, 0, 0},
10459 {0x35, 0, 0, 0, 0},
10460 {0x36, 0, 0, 0, 0},
10461 {0x37, 0, 0, 0, 0},
10462 {0x38, 0, 0, 0, 0},
10463 {0x39, 0, 0, 0, 0},
10464 {0x3A, 0, 0, 0, 0},
10465 {0x3B, 0, 0, 0, 0},
10466 {0x3C, 0x13, 0x13, 0, 0},
10467 {0x3D, 0xf, 0xf, 0, 0},
10468 {0x3E, 0x18, 0x18, 0, 0},
10469 {0x3F, 0, 0, 0, 0},
10470 {0x40, 0, 0, 0, 0},
10471 {0x41, 0x20, 0x20, 0, 0},
10472 {0x42, 0x20, 0x20, 0, 0},
10473 {0x43, 0, 0, 0, 0},
10474 {0x44, 0x77, 0x77, 0, 0},
10475 {0x45, 0x7, 0x7, 0, 0},
10476 {0x46, 0x1, 0x1, 0, 0},
10477 {0x47, 0x4, 0x4, 0, 0},
10478 {0x48, 0xf, 0xf, 0, 0},
10479 {0x49, 0x30, 0x30, 0, 0},
10480 {0x4A, 0x32, 0x32, 0, 0},
10481 {0x4B, 0xd, 0xd, 0, 0},
10482 {0x4C, 0xd, 0xd, 0, 0},
10483 {0x4D, 0x4, 0x4, 0, 0},
10484 {0x4E, 0x6, 0x6, 0, 0},
10485 {0x4F, 0x1, 0x1, 0, 0},
10486 {0x50, 0x1c, 0x1c, 0, 0},
10487 {0x51, 0x2, 0x2, 0, 0},
10488 {0x52, 0x2, 0x2, 0, 0},
10489 {0x53, 0xf7, 0xf7, 1, 1},
10490 {0x54, 0xb4, 0xb4, 0, 0},
10491 {0x55, 0xd2, 0xd2, 0, 0},
10492 {0x56, 0, 0, 0, 0},
10493 {0x57, 0, 0, 0, 0},
10494 {0x58, 0x4, 0x4, 0, 0},
10495 {0x59, 0x96, 0x96, 0, 0},
10496 {0x5A, 0x3e, 0x3e, 0, 0},
10497 {0x5B, 0x3e, 0x3e, 0, 0},
10498 {0x5C, 0x13, 0x13, 0, 0},
10499 {0x5D, 0x2, 0x2, 0, 0},
10500 {0x5E, 0, 0, 0, 0},
10501 {0x5F, 0x7, 0x7, 0, 0},
10502 {0x60, 0x7, 0x7, 1, 1},
10503 {0x61, 0x8, 0x8, 0, 0},
10504 {0x62, 0x3, 0x3, 0, 0},
10505 {0x63, 0, 0, 0, 0},
10506 {0x64, 0, 0, 0, 0},
10507 {0x65, 0, 0, 0, 0},
10508 {0x66, 0, 0, 0, 0},
10509 {0x67, 0, 0, 0, 0},
10510 {0x68, 0x40, 0x40, 0, 0},
10511 {0x69, 0, 0, 0, 0},
10512 {0x6A, 0, 0, 0, 0},
10513 {0x6B, 0, 0, 0, 0},
10514 {0x6C, 0, 0, 0, 0},
10515 {0x6D, 0x1, 0x1, 0, 0},
10516 {0x6E, 0, 0, 0, 0},
10517 {0x6F, 0, 0, 0, 0},
10518 {0x70, 0x60, 0x60, 0, 0},
10519 {0x71, 0x66, 0x66, 0, 0},
10520 {0x72, 0xc, 0xc, 0, 0},
10521 {0x73, 0x66, 0x66, 0, 0},
10522 {0x74, 0x8f, 0x8f, 1, 1},
10523 {0x75, 0, 0, 0, 0},
10524 {0x76, 0xcc, 0xcc, 0, 0},
10525 {0x77, 0x1, 0x1, 0, 0},
10526 {0x78, 0x66, 0x66, 0, 0},
10527 {0x79, 0x66, 0x66, 0, 0},
10528 {0x7A, 0, 0, 0, 0},
10529 {0x7B, 0, 0, 0, 0},
10530 {0x7C, 0, 0, 0, 0},
10531 {0x7D, 0, 0, 0, 0},
10532 {0x7E, 0, 0, 0, 0},
10533 {0x7F, 0, 0, 0, 0},
10534 {0x80, 0, 0, 0, 0},
10535 {0x81, 0, 0, 0, 0},
10536 {0x82, 0, 0, 0, 0},
10537 {0x83, 0, 0, 0, 0},
10538 {0x84, 0, 0, 0, 0},
10539 {0x85, 0xff, 0xff, 0, 0},
10540 {0x86, 0, 0, 0, 0},
10541 {0x87, 0, 0, 0, 0},
10542 {0x88, 0, 0, 0, 0},
10543 {0x89, 0, 0, 0, 0},
10544 {0x8A, 0, 0, 0, 0},
10545 {0x8B, 0, 0, 0, 0},
10546 {0x8C, 0, 0, 0, 0},
10547 {0x8D, 0, 0, 0, 0},
10548 {0x8E, 0, 0, 0, 0},
10549 {0x8F, 0, 0, 0, 0},
10550 {0x90, 0, 0, 0, 0},
10551 {0x91, 0, 0, 0, 0},
10552 {0x92, 0, 0, 0, 0},
10553 {0x93, 0, 0, 0, 0},
10554 {0x94, 0, 0, 0, 0},
10555 {0x95, 0, 0, 0, 0},
10556 {0x96, 0, 0, 0, 0},
10557 {0x97, 0, 0, 0, 0},
10558 {0x98, 0, 0, 0, 0},
10559 {0x99, 0, 0, 0, 0},
10560 {0x9A, 0, 0, 0, 0},
10561 {0x9B, 0, 0, 0, 0},
10562 {0x9C, 0, 0, 0, 0},
10563 {0x9D, 0, 0, 0, 0},
10564 {0x9E, 0, 0, 0, 0},
10565 {0x9F, 0x6, 0x6, 0, 0},
10566 {0xA0, 0x66, 0x66, 0, 0},
10567 {0xA1, 0x66, 0x66, 0, 0},
10568 {0xA2, 0x66, 0x66, 0, 0},
10569 {0xA3, 0x66, 0x66, 0, 0},
10570 {0xA4, 0x66, 0x66, 0, 0},
10571 {0xA5, 0x66, 0x66, 0, 0},
10572 {0xA6, 0x66, 0x66, 0, 0},
10573 {0xA7, 0x66, 0x66, 0, 0},
10574 {0xA8, 0x66, 0x66, 0, 0},
10575 {0xA9, 0x66, 0x66, 0, 0},
10576 {0xAA, 0x66, 0x66, 0, 0},
10577 {0xAB, 0x66, 0x66, 0, 0},
10578 {0xAC, 0x66, 0x66, 0, 0},
10579 {0xAD, 0x66, 0x66, 0, 0},
10580 {0xAE, 0x66, 0x66, 0, 0},
10581 {0xAF, 0x66, 0x66, 0, 0},
10582 {0xB0, 0x66, 0x66, 0, 0},
10583 {0xB1, 0x66, 0x66, 0, 0},
10584 {0xB2, 0x66, 0x66, 0, 0},
10585 {0xB3, 0xa, 0xa, 0, 0},
10586 {0xB4, 0, 0, 0, 0},
10587 {0xB5, 0, 0, 0, 0},
10588 {0xB6, 0, 0, 0, 0},
10589 {0xFFFF, 0, 0, 0, 0},
10590};
10591
10592radio_regs_t regs_TX_2056_rev8[] = {
10593 {0x02, 0, 0, 0, 0},
10594 {0x03, 0, 0, 0, 0},
10595 {0x04, 0, 0, 0, 0},
10596 {0x05, 0, 0, 0, 0},
10597 {0x06, 0, 0, 0, 0},
10598 {0x07, 0, 0, 0, 0},
10599 {0x08, 0, 0, 0, 0},
10600 {0x09, 0, 0, 0, 0},
10601 {0x0A, 0, 0, 0, 0},
10602 {0x0B, 0, 0, 0, 0},
10603 {0x0C, 0, 0, 0, 0},
10604 {0x0D, 0, 0, 0, 0},
10605 {0x0E, 0, 0, 0, 0},
10606 {0x0F, 0, 0, 0, 0},
10607 {0x10, 0, 0, 0, 0},
10608 {0x11, 0, 0, 0, 0},
10609 {0x12, 0, 0, 0, 0},
10610 {0x13, 0, 0, 0, 0},
10611 {0x14, 0, 0, 0, 0},
10612 {0x15, 0, 0, 0, 0},
10613 {0x16, 0, 0, 0, 0},
10614 {0x17, 0, 0, 0, 0},
10615 {0x18, 0, 0, 0, 0},
10616 {0x19, 0, 0, 0, 0},
10617 {0x1A, 0, 0, 0, 0},
10618 {0x1B, 0, 0, 0, 0},
10619 {0x1C, 0, 0, 0, 0},
10620 {0x1D, 0, 0, 0, 0},
10621 {0x1E, 0, 0, 0, 0},
10622 {0x1F, 0, 0, 0, 0},
10623 {0x20, 0, 0, 0, 0},
10624 {0x21, 0x88, 0x88, 0, 0},
10625 {0x22, 0x88, 0x88, 0, 0},
10626 {0x23, 0x88, 0x88, 0, 0},
10627 {0x24, 0x88, 0x88, 0, 0},
10628 {0x25, 0xc, 0xc, 0, 0},
10629 {0x26, 0, 0, 0, 0},
10630 {0x27, 0x3, 0x3, 0, 0},
10631 {0x28, 0, 0, 0, 0},
10632 {0x29, 0x3, 0x3, 0, 0},
10633 {0x2A, 0x37, 0x37, 0, 0},
10634 {0x2B, 0x3, 0x3, 0, 0},
10635 {0x2C, 0, 0, 0, 0},
10636 {0x2D, 0, 0, 0, 0},
10637 {0x2E, 0x1, 0x1, 0, 0},
10638 {0x2F, 0x1, 0x1, 0, 0},
10639 {0x30, 0, 0, 0, 0},
10640 {0x31, 0, 0, 0, 0},
10641 {0x32, 0, 0, 0, 0},
10642 {0x33, 0x11, 0x11, 0, 0},
10643 {0x34, 0xee, 0xee, 1, 1},
10644 {0x35, 0, 0, 0, 0},
10645 {0x36, 0, 0, 0, 0},
10646 {0x37, 0x3, 0x3, 0, 0},
10647 {0x38, 0x50, 0x50, 1, 1},
10648 {0x39, 0, 0, 0, 0},
10649 {0x3A, 0x50, 0x50, 1, 1},
10650 {0x3B, 0, 0, 0, 0},
10651 {0x3C, 0x6e, 0x6e, 0, 0},
10652 {0x3D, 0xf0, 0xf0, 1, 1},
10653 {0x3E, 0, 0, 0, 0},
10654 {0x3F, 0, 0, 0, 0},
10655 {0x40, 0, 0, 0, 0},
10656 {0x41, 0x3, 0x3, 0, 0},
10657 {0x42, 0x3, 0x3, 0, 0},
10658 {0x43, 0, 0, 0, 0},
10659 {0x44, 0x1e, 0x1e, 0, 0},
10660 {0x45, 0, 0, 0, 0},
10661 {0x46, 0x6e, 0x6e, 0, 0},
10662 {0x47, 0xf0, 0xf0, 1, 1},
10663 {0x48, 0, 0, 0, 0},
10664 {0x49, 0x2, 0x2, 0, 0},
10665 {0x4A, 0xff, 0xff, 1, 1},
10666 {0x4B, 0xc, 0xc, 0, 0},
10667 {0x4C, 0, 0, 0, 0},
10668 {0x4D, 0x38, 0x38, 0, 0},
10669 {0x4E, 0x70, 0x70, 1, 1},
10670 {0x4F, 0x2, 0x2, 0, 0},
10671 {0x50, 0x88, 0x88, 0, 0},
10672 {0x51, 0xc, 0xc, 0, 0},
10673 {0x52, 0, 0, 0, 0},
10674 {0x53, 0x8, 0x8, 0, 0},
10675 {0x54, 0x70, 0x70, 1, 1},
10676 {0x55, 0x2, 0x2, 0, 0},
10677 {0x56, 0xff, 0xff, 1, 1},
10678 {0x57, 0, 0, 0, 0},
10679 {0x58, 0x83, 0x83, 0, 0},
10680 {0x59, 0x77, 0x77, 1, 1},
10681 {0x5A, 0, 0, 0, 0},
10682 {0x5B, 0x2, 0x2, 0, 0},
10683 {0x5C, 0x88, 0x88, 0, 0},
10684 {0x5D, 0, 0, 0, 0},
10685 {0x5E, 0x8, 0x8, 0, 0},
10686 {0x5F, 0x77, 0x77, 1, 1},
10687 {0x60, 0x1, 0x1, 0, 0},
10688 {0x61, 0, 0, 0, 0},
10689 {0x62, 0x7, 0x7, 0, 0},
10690 {0x63, 0, 0, 0, 0},
10691 {0x64, 0x7, 0x7, 0, 0},
10692 {0x65, 0, 0, 0, 0},
10693 {0x66, 0, 0, 0, 0},
10694 {0x67, 0, 0, 1, 1},
10695 {0x68, 0, 0, 0, 0},
10696 {0x69, 0xa, 0xa, 0, 0},
10697 {0x6A, 0, 0, 0, 0},
10698 {0x6B, 0, 0, 0, 0},
10699 {0x6C, 0, 0, 0, 0},
10700 {0x6D, 0, 0, 0, 0},
10701 {0x6E, 0, 0, 0, 0},
10702 {0x6F, 0, 0, 0, 0},
10703 {0x70, 0, 0, 0, 0},
10704 {0x71, 0x2, 0x2, 0, 0},
10705 {0x72, 0, 0, 0, 0},
10706 {0x73, 0, 0, 0, 0},
10707 {0x74, 0xe, 0xe, 0, 0},
10708 {0x75, 0xe, 0xe, 0, 0},
10709 {0x76, 0xe, 0xe, 0, 0},
10710 {0x77, 0x13, 0x13, 0, 0},
10711 {0x78, 0x13, 0x13, 0, 0},
10712 {0x79, 0x1b, 0x1b, 0, 0},
10713 {0x7A, 0x1b, 0x1b, 0, 0},
10714 {0x7B, 0x55, 0x55, 0, 0},
10715 {0x7C, 0x5b, 0x5b, 0, 0},
10716 {0x7D, 0x30, 0x30, 1, 1},
10717 {0x7E, 0, 0, 0, 0},
10718 {0x7F, 0, 0, 0, 0},
10719 {0x80, 0, 0, 0, 0},
10720 {0x81, 0, 0, 0, 0},
10721 {0x82, 0, 0, 0, 0},
10722 {0x83, 0, 0, 0, 0},
10723 {0x84, 0, 0, 0, 0},
10724 {0x85, 0, 0, 0, 0},
10725 {0x86, 0, 0, 0, 0},
10726 {0x87, 0, 0, 0, 0},
10727 {0x88, 0, 0, 0, 0},
10728 {0x89, 0, 0, 0, 0},
10729 {0x8A, 0, 0, 0, 0},
10730 {0x8B, 0, 0, 0, 0},
10731 {0x8C, 0, 0, 0, 0},
10732 {0x8D, 0, 0, 0, 0},
10733 {0x8E, 0, 0, 0, 0},
10734 {0x8F, 0, 0, 0, 0},
10735 {0x90, 0, 0, 0, 0},
10736 {0x91, 0, 0, 0, 0},
10737 {0x92, 0, 0, 0, 0},
10738 {0x93, 0x70, 0x70, 0, 0},
10739 {0x94, 0x70, 0x70, 0, 0},
10740 {0x95, 0x70, 0x70, 0, 0},
10741 {0x96, 0x70, 0x70, 0, 0},
10742 {0x97, 0x70, 0x70, 0, 0},
10743 {0x98, 0x70, 0x70, 0, 0},
10744 {0x99, 0x70, 0x70, 0, 0},
10745 {0x9A, 0x70, 0x70, 0, 0},
10746 {0xFFFF, 0, 0, 0, 0},
10747};
10748
10749radio_regs_t regs_RX_2056_rev8[] = {
10750 {0x02, 0, 0, 0, 0},
10751 {0x03, 0, 0, 0, 0},
10752 {0x04, 0, 0, 0, 0},
10753 {0x05, 0, 0, 0, 0},
10754 {0x06, 0, 0, 0, 0},
10755 {0x07, 0, 0, 0, 0},
10756 {0x08, 0, 0, 0, 0},
10757 {0x09, 0, 0, 0, 0},
10758 {0x0A, 0, 0, 0, 0},
10759 {0x0B, 0, 0, 0, 0},
10760 {0x0C, 0, 0, 0, 0},
10761 {0x0D, 0, 0, 0, 0},
10762 {0x0E, 0, 0, 0, 0},
10763 {0x0F, 0, 0, 0, 0},
10764 {0x10, 0, 0, 0, 0},
10765 {0x11, 0, 0, 0, 0},
10766 {0x12, 0, 0, 0, 0},
10767 {0x13, 0, 0, 0, 0},
10768 {0x14, 0, 0, 0, 0},
10769 {0x15, 0, 0, 0, 0},
10770 {0x16, 0, 0, 0, 0},
10771 {0x17, 0, 0, 0, 0},
10772 {0x18, 0, 0, 0, 0},
10773 {0x19, 0, 0, 0, 0},
10774 {0x1A, 0, 0, 0, 0},
10775 {0x1B, 0, 0, 0, 0},
10776 {0x1C, 0, 0, 0, 0},
10777 {0x1D, 0, 0, 0, 0},
10778 {0x1E, 0, 0, 0, 0},
10779 {0x1F, 0, 0, 0, 0},
10780 {0x20, 0x3, 0x3, 0, 0},
10781 {0x21, 0, 0, 0, 0},
10782 {0x22, 0, 0, 0, 0},
10783 {0x23, 0x90, 0x90, 0, 0},
10784 {0x24, 0x55, 0x55, 0, 0},
10785 {0x25, 0x15, 0x15, 0, 0},
10786 {0x26, 0x5, 0x5, 0, 0},
10787 {0x27, 0x15, 0x15, 0, 0},
10788 {0x28, 0x5, 0x5, 0, 0},
10789 {0x29, 0x20, 0x20, 0, 0},
10790 {0x2A, 0x11, 0x11, 0, 0},
10791 {0x2B, 0x90, 0x90, 0, 0},
10792 {0x2C, 0, 0, 0, 0},
10793 {0x2D, 0x88, 0x88, 0, 0},
10794 {0x2E, 0x32, 0x32, 0, 0},
10795 {0x2F, 0x77, 0x77, 0, 0},
10796 {0x30, 0x17, 0x17, 1, 1},
10797 {0x31, 0xff, 0xff, 1, 1},
10798 {0x32, 0x20, 0x20, 0, 0},
10799 {0x33, 0, 0, 0, 0},
10800 {0x34, 0x88, 0x88, 0, 0},
10801 {0x35, 0x32, 0x32, 0, 0},
10802 {0x36, 0x77, 0x77, 0, 0},
10803 {0x37, 0x17, 0x17, 1, 1},
10804 {0x38, 0xf0, 0xf0, 1, 1},
10805 {0x39, 0x20, 0x20, 0, 0},
10806 {0x3A, 0x8, 0x8, 0, 0},
10807 {0x3B, 0x55, 0x55, 1, 1},
10808 {0x3C, 0, 0, 0, 0},
10809 {0x3D, 0x88, 0x88, 1, 1},
10810 {0x3E, 0, 0, 0, 0},
10811 {0x3F, 0x44, 0x44, 0, 0},
10812 {0x40, 0x7, 0x7, 1, 1},
10813 {0x41, 0x6, 0x6, 0, 0},
10814 {0x42, 0x4, 0x4, 0, 0},
10815 {0x43, 0, 0, 0, 0},
10816 {0x44, 0x8, 0x8, 0, 0},
10817 {0x45, 0x55, 0x55, 1, 1},
10818 {0x46, 0, 0, 0, 0},
10819 {0x47, 0x11, 0x11, 0, 0},
10820 {0x48, 0, 0, 0, 0},
10821 {0x49, 0x44, 0x44, 0, 0},
10822 {0x4A, 0x7, 0x7, 0, 0},
10823 {0x4B, 0x6, 0x6, 0, 0},
10824 {0x4C, 0x4, 0x4, 0, 0},
10825 {0x4D, 0, 0, 0, 0},
10826 {0x4E, 0, 0, 0, 0},
10827 {0x4F, 0x26, 0x26, 1, 1},
10828 {0x50, 0x26, 0x26, 1, 1},
10829 {0x51, 0xf, 0xf, 1, 1},
10830 {0x52, 0xf, 0xf, 1, 1},
10831 {0x53, 0x44, 0x44, 0, 0},
10832 {0x54, 0, 0, 0, 0},
10833 {0x55, 0, 0, 0, 0},
10834 {0x56, 0x8, 0x8, 0, 0},
10835 {0x57, 0x8, 0x8, 0, 0},
10836 {0x58, 0x7, 0x7, 0, 0},
10837 {0x59, 0x22, 0x22, 0, 0},
10838 {0x5A, 0x22, 0x22, 0, 0},
10839 {0x5B, 0x2, 0x2, 0, 0},
10840 {0x5C, 0x4, 0x4, 1, 1},
10841 {0x5D, 0x7, 0x7, 0, 0},
10842 {0x5E, 0x55, 0x55, 0, 0},
10843 {0x5F, 0x23, 0x23, 0, 0},
10844 {0x60, 0x41, 0x41, 0, 0},
10845 {0x61, 0x1, 0x1, 0, 0},
10846 {0x62, 0xa, 0xa, 0, 0},
10847 {0x63, 0, 0, 0, 0},
10848 {0x64, 0, 0, 0, 0},
10849 {0x65, 0, 0, 0, 0},
10850 {0x66, 0, 0, 0, 0},
10851 {0x67, 0, 0, 0, 0},
10852 {0x68, 0, 0, 0, 0},
10853 {0x69, 0, 0, 0, 0},
10854 {0x6A, 0, 0, 0, 0},
10855 {0x6B, 0xc, 0xc, 0, 0},
10856 {0x6C, 0, 0, 0, 0},
10857 {0x6D, 0, 0, 0, 0},
10858 {0x6E, 0, 0, 0, 0},
10859 {0x6F, 0, 0, 0, 0},
10860 {0x70, 0, 0, 0, 0},
10861 {0x71, 0, 0, 0, 0},
10862 {0x72, 0x22, 0x22, 0, 0},
10863 {0x73, 0x22, 0x22, 0, 0},
10864 {0x74, 0, 0, 1, 1},
10865 {0x75, 0xa, 0xa, 0, 0},
10866 {0x76, 0x1, 0x1, 0, 0},
10867 {0x77, 0x22, 0x22, 0, 0},
10868 {0x78, 0x30, 0x30, 0, 0},
10869 {0x79, 0, 0, 0, 0},
10870 {0x7A, 0, 0, 0, 0},
10871 {0x7B, 0, 0, 0, 0},
10872 {0x7C, 0, 0, 0, 0},
10873 {0x7D, 0x5, 0x5, 1, 1},
10874 {0x7E, 0, 0, 0, 0},
10875 {0x7F, 0, 0, 0, 0},
10876 {0x80, 0, 0, 0, 0},
10877 {0x81, 0, 0, 0, 0},
10878 {0x82, 0, 0, 0, 0},
10879 {0x83, 0, 0, 0, 0},
10880 {0x84, 0, 0, 0, 0},
10881 {0x85, 0, 0, 0, 0},
10882 {0x86, 0, 0, 0, 0},
10883 {0x87, 0, 0, 0, 0},
10884 {0x88, 0, 0, 0, 0},
10885 {0x89, 0, 0, 0, 0},
10886 {0x8A, 0, 0, 0, 0},
10887 {0x8B, 0, 0, 0, 0},
10888 {0x8C, 0, 0, 0, 0},
10889 {0x8D, 0, 0, 0, 0},
10890 {0x8E, 0, 0, 0, 0},
10891 {0x8F, 0, 0, 0, 0},
10892 {0x90, 0, 0, 0, 0},
10893 {0x91, 0, 0, 0, 0},
10894 {0x92, 0, 0, 0, 0},
10895 {0x93, 0, 0, 0, 0},
10896 {0x94, 0, 0, 0, 0},
10897 {0xFFFF, 0, 0, 0, 0},
10898};
10899
10900radio_regs_t regs_SYN_2056_rev11[] = {
10901 {0x02, 0, 0, 0, 0},
10902 {0x03, 0, 0, 0, 0},
10903 {0x04, 0, 0, 0, 0},
10904 {0x05, 0, 0, 0, 0},
10905 {0x06, 0, 0, 0, 0},
10906 {0x07, 0, 0, 0, 0},
10907 {0x08, 0, 0, 0, 0},
10908 {0x09, 0x1, 0x1, 0, 0},
10909 {0x0A, 0, 0, 0, 0},
10910 {0x0B, 0, 0, 0, 0},
10911 {0x0C, 0, 0, 0, 0},
10912 {0x0D, 0, 0, 0, 0},
10913 {0x0E, 0, 0, 0, 0},
10914 {0x0F, 0, 0, 0, 0},
10915 {0x10, 0, 0, 0, 0},
10916 {0x11, 0, 0, 0, 0},
10917 {0x12, 0, 0, 0, 0},
10918 {0x13, 0, 0, 0, 0},
10919 {0x14, 0, 0, 0, 0},
10920 {0x15, 0, 0, 0, 0},
10921 {0x16, 0, 0, 0, 0},
10922 {0x17, 0, 0, 0, 0},
10923 {0x18, 0, 0, 0, 0},
10924 {0x19, 0, 0, 0, 0},
10925 {0x1A, 0, 0, 0, 0},
10926 {0x1B, 0, 0, 0, 0},
10927 {0x1C, 0, 0, 0, 0},
10928 {0x1D, 0, 0, 0, 0},
10929 {0x1E, 0, 0, 0, 0},
10930 {0x1F, 0, 0, 0, 0},
10931 {0x20, 0, 0, 0, 0},
10932 {0x21, 0, 0, 0, 0},
10933 {0x22, 0x60, 0x60, 0, 0},
10934 {0x23, 0x6, 0x6, 0, 0},
10935 {0x24, 0xc, 0xc, 0, 0},
10936 {0x25, 0, 0, 0, 0},
10937 {0x26, 0, 0, 0, 0},
10938 {0x27, 0, 0, 0, 0},
10939 {0x28, 0x1, 0x1, 0, 0},
10940 {0x29, 0, 0, 0, 0},
10941 {0x2A, 0, 0, 0, 0},
10942 {0x2B, 0, 0, 0, 0},
10943 {0x2C, 0, 0, 0, 0},
10944 {0x2D, 0, 0, 0, 0},
10945 {0x2E, 0, 0, 0, 0},
10946 {0x2F, 0x1f, 0x1f, 0, 0},
10947 {0x30, 0x15, 0x15, 0, 0},
10948 {0x31, 0xf, 0xf, 0, 0},
10949 {0x32, 0, 0, 0, 0},
10950 {0x33, 0, 0, 0, 0},
10951 {0x34, 0, 0, 0, 0},
10952 {0x35, 0, 0, 0, 0},
10953 {0x36, 0, 0, 0, 0},
10954 {0x37, 0, 0, 0, 0},
10955 {0x38, 0, 0, 0, 0},
10956 {0x39, 0, 0, 0, 0},
10957 {0x3A, 0, 0, 0, 0},
10958 {0x3B, 0, 0, 0, 0},
10959 {0x3C, 0x13, 0x13, 0, 0},
10960 {0x3D, 0xf, 0xf, 0, 0},
10961 {0x3E, 0x18, 0x18, 0, 0},
10962 {0x3F, 0, 0, 0, 0},
10963 {0x40, 0, 0, 0, 0},
10964 {0x41, 0x20, 0x20, 0, 0},
10965 {0x42, 0x20, 0x20, 0, 0},
10966 {0x43, 0, 0, 0, 0},
10967 {0x44, 0x77, 0x77, 0, 0},
10968 {0x45, 0x7, 0x7, 0, 0},
10969 {0x46, 0x1, 0x1, 0, 0},
10970 {0x47, 0x6, 0x6, 1, 1},
10971 {0x48, 0xf, 0xf, 0, 0},
10972 {0x49, 0x3f, 0x3f, 1, 1},
10973 {0x4A, 0x32, 0x32, 0, 0},
10974 {0x4B, 0x6, 0x6, 1, 1},
10975 {0x4C, 0x6, 0x6, 1, 1},
10976 {0x4D, 0x4, 0x4, 0, 0},
10977 {0x4E, 0x2b, 0x2b, 1, 1},
10978 {0x4F, 0x1, 0x1, 0, 0},
10979 {0x50, 0x1c, 0x1c, 0, 0},
10980 {0x51, 0x2, 0x2, 0, 0},
10981 {0x52, 0x2, 0x2, 0, 0},
10982 {0x53, 0xf7, 0xf7, 1, 1},
10983 {0x54, 0xb4, 0xb4, 0, 0},
10984 {0x55, 0xd2, 0xd2, 0, 0},
10985 {0x56, 0, 0, 0, 0},
10986 {0x57, 0, 0, 0, 0},
10987 {0x58, 0x4, 0x4, 0, 0},
10988 {0x59, 0x96, 0x96, 0, 0},
10989 {0x5A, 0x3e, 0x3e, 0, 0},
10990 {0x5B, 0x3e, 0x3e, 0, 0},
10991 {0x5C, 0x13, 0x13, 0, 0},
10992 {0x5D, 0x2, 0x2, 0, 0},
10993 {0x5E, 0, 0, 0, 0},
10994 {0x5F, 0x7, 0x7, 0, 0},
10995 {0x60, 0x7, 0x7, 1, 1},
10996 {0x61, 0x8, 0x8, 0, 0},
10997 {0x62, 0x3, 0x3, 0, 0},
10998 {0x63, 0, 0, 0, 0},
10999 {0x64, 0, 0, 0, 0},
11000 {0x65, 0, 0, 0, 0},
11001 {0x66, 0, 0, 0, 0},
11002 {0x67, 0, 0, 0, 0},
11003 {0x68, 0x40, 0x40, 0, 0},
11004 {0x69, 0, 0, 0, 0},
11005 {0x6A, 0, 0, 0, 0},
11006 {0x6B, 0, 0, 0, 0},
11007 {0x6C, 0, 0, 0, 0},
11008 {0x6D, 0x1, 0x1, 0, 0},
11009 {0x6E, 0, 0, 0, 0},
11010 {0x6F, 0, 0, 0, 0},
11011 {0x70, 0x60, 0x60, 0, 0},
11012 {0x71, 0x66, 0x66, 0, 0},
11013 {0x72, 0xc, 0xc, 0, 0},
11014 {0x73, 0x66, 0x66, 0, 0},
11015 {0x74, 0x8f, 0x8f, 1, 1},
11016 {0x75, 0, 0, 0, 0},
11017 {0x76, 0xcc, 0xcc, 0, 0},
11018 {0x77, 0x1, 0x1, 0, 0},
11019 {0x78, 0x66, 0x66, 0, 0},
11020 {0x79, 0x66, 0x66, 0, 0},
11021 {0x7A, 0, 0, 0, 0},
11022 {0x7B, 0, 0, 0, 0},
11023 {0x7C, 0, 0, 0, 0},
11024 {0x7D, 0, 0, 0, 0},
11025 {0x7E, 0, 0, 0, 0},
11026 {0x7F, 0, 0, 0, 0},
11027 {0x80, 0, 0, 0, 0},
11028 {0x81, 0, 0, 0, 0},
11029 {0x82, 0, 0, 0, 0},
11030 {0x83, 0, 0, 0, 0},
11031 {0x84, 0, 0, 0, 0},
11032 {0x85, 0xff, 0xff, 0, 0},
11033 {0x86, 0, 0, 0, 0},
11034 {0x87, 0, 0, 0, 0},
11035 {0x88, 0, 0, 0, 0},
11036 {0x89, 0, 0, 0, 0},
11037 {0x8A, 0, 0, 0, 0},
11038 {0x8B, 0, 0, 0, 0},
11039 {0x8C, 0, 0, 0, 0},
11040 {0x8D, 0, 0, 0, 0},
11041 {0x8E, 0, 0, 0, 0},
11042 {0x8F, 0, 0, 0, 0},
11043 {0x90, 0, 0, 0, 0},
11044 {0x91, 0, 0, 0, 0},
11045 {0x92, 0, 0, 0, 0},
11046 {0x93, 0, 0, 0, 0},
11047 {0x94, 0, 0, 0, 0},
11048 {0x95, 0, 0, 0, 0},
11049 {0x96, 0, 0, 0, 0},
11050 {0x97, 0, 0, 0, 0},
11051 {0x98, 0, 0, 0, 0},
11052 {0x99, 0, 0, 0, 0},
11053 {0x9A, 0, 0, 0, 0},
11054 {0x9B, 0, 0, 0, 0},
11055 {0x9C, 0, 0, 0, 0},
11056 {0x9D, 0, 0, 0, 0},
11057 {0x9E, 0, 0, 0, 0},
11058 {0x9F, 0x6, 0x6, 0, 0},
11059 {0xA0, 0x66, 0x66, 0, 0},
11060 {0xA1, 0x66, 0x66, 0, 0},
11061 {0xA2, 0x66, 0x66, 0, 0},
11062 {0xA3, 0x66, 0x66, 0, 0},
11063 {0xA4, 0x66, 0x66, 0, 0},
11064 {0xA5, 0x66, 0x66, 0, 0},
11065 {0xA6, 0x66, 0x66, 0, 0},
11066 {0xA7, 0x66, 0x66, 0, 0},
11067 {0xA8, 0x66, 0x66, 0, 0},
11068 {0xA9, 0x66, 0x66, 0, 0},
11069 {0xAA, 0x66, 0x66, 0, 0},
11070 {0xAB, 0x66, 0x66, 0, 0},
11071 {0xAC, 0x66, 0x66, 0, 0},
11072 {0xAD, 0x66, 0x66, 0, 0},
11073 {0xAE, 0x66, 0x66, 0, 0},
11074 {0xAF, 0x66, 0x66, 0, 0},
11075 {0xB0, 0x66, 0x66, 0, 0},
11076 {0xB1, 0x66, 0x66, 0, 0},
11077 {0xB2, 0x66, 0x66, 0, 0},
11078 {0xB3, 0xa, 0xa, 0, 0},
11079 {0xB4, 0, 0, 0, 0},
11080 {0xB5, 0, 0, 0, 0},
11081 {0xB6, 0, 0, 0, 0},
11082 {0xFFFF, 0, 0, 0, 0},
11083};
11084
11085radio_regs_t regs_TX_2056_rev11[] = {
11086 {0x02, 0, 0, 0, 0},
11087 {0x03, 0, 0, 0, 0},
11088 {0x04, 0, 0, 0, 0},
11089 {0x05, 0, 0, 0, 0},
11090 {0x06, 0, 0, 0, 0},
11091 {0x07, 0, 0, 0, 0},
11092 {0x08, 0, 0, 0, 0},
11093 {0x09, 0, 0, 0, 0},
11094 {0x0A, 0, 0, 0, 0},
11095 {0x0B, 0, 0, 0, 0},
11096 {0x0C, 0, 0, 0, 0},
11097 {0x0D, 0, 0, 0, 0},
11098 {0x0E, 0, 0, 0, 0},
11099 {0x0F, 0, 0, 0, 0},
11100 {0x10, 0, 0, 0, 0},
11101 {0x11, 0, 0, 0, 0},
11102 {0x12, 0, 0, 0, 0},
11103 {0x13, 0, 0, 0, 0},
11104 {0x14, 0, 0, 0, 0},
11105 {0x15, 0, 0, 0, 0},
11106 {0x16, 0, 0, 0, 0},
11107 {0x17, 0, 0, 0, 0},
11108 {0x18, 0, 0, 0, 0},
11109 {0x19, 0, 0, 0, 0},
11110 {0x1A, 0, 0, 0, 0},
11111 {0x1B, 0, 0, 0, 0},
11112 {0x1C, 0, 0, 0, 0},
11113 {0x1D, 0, 0, 0, 0},
11114 {0x1E, 0, 0, 0, 0},
11115 {0x1F, 0, 0, 0, 0},
11116 {0x20, 0, 0, 0, 0},
11117 {0x21, 0x88, 0x88, 0, 0},
11118 {0x22, 0x88, 0x88, 0, 0},
11119 {0x23, 0x88, 0x88, 0, 0},
11120 {0x24, 0x88, 0x88, 0, 0},
11121 {0x25, 0xc, 0xc, 0, 0},
11122 {0x26, 0, 0, 0, 0},
11123 {0x27, 0x3, 0x3, 0, 0},
11124 {0x28, 0, 0, 0, 0},
11125 {0x29, 0x3, 0x3, 0, 0},
11126 {0x2A, 0x37, 0x37, 0, 0},
11127 {0x2B, 0x3, 0x3, 0, 0},
11128 {0x2C, 0, 0, 0, 0},
11129 {0x2D, 0, 0, 0, 0},
11130 {0x2E, 0x1, 0x1, 0, 0},
11131 {0x2F, 0x1, 0x1, 0, 0},
11132 {0x30, 0, 0, 0, 0},
11133 {0x31, 0, 0, 0, 0},
11134 {0x32, 0, 0, 0, 0},
11135 {0x33, 0x11, 0x11, 0, 0},
11136 {0x34, 0xee, 0xee, 1, 1},
11137 {0x35, 0, 0, 0, 0},
11138 {0x36, 0, 0, 0, 0},
11139 {0x37, 0x3, 0x3, 0, 0},
11140 {0x38, 0x50, 0x50, 1, 1},
11141 {0x39, 0, 0, 0, 0},
11142 {0x3A, 0x50, 0x50, 1, 1},
11143 {0x3B, 0, 0, 0, 0},
11144 {0x3C, 0x6e, 0x6e, 0, 0},
11145 {0x3D, 0xf0, 0xf0, 1, 1},
11146 {0x3E, 0, 0, 0, 0},
11147 {0x3F, 0, 0, 0, 0},
11148 {0x40, 0, 0, 0, 0},
11149 {0x41, 0x3, 0x3, 0, 0},
11150 {0x42, 0x3, 0x3, 0, 0},
11151 {0x43, 0, 0, 0, 0},
11152 {0x44, 0x1e, 0x1e, 0, 0},
11153 {0x45, 0, 0, 0, 0},
11154 {0x46, 0x6e, 0x6e, 0, 0},
11155 {0x47, 0xf0, 0xf0, 1, 1},
11156 {0x48, 0, 0, 0, 0},
11157 {0x49, 0x2, 0x2, 0, 0},
11158 {0x4A, 0xff, 0xff, 1, 1},
11159 {0x4B, 0xc, 0xc, 0, 0},
11160 {0x4C, 0, 0, 0, 0},
11161 {0x4D, 0x38, 0x38, 0, 0},
11162 {0x4E, 0x70, 0x70, 1, 1},
11163 {0x4F, 0x2, 0x2, 0, 0},
11164 {0x50, 0x88, 0x88, 0, 0},
11165 {0x51, 0xc, 0xc, 0, 0},
11166 {0x52, 0, 0, 0, 0},
11167 {0x53, 0x8, 0x8, 0, 0},
11168 {0x54, 0x70, 0x70, 1, 1},
11169 {0x55, 0x2, 0x2, 0, 0},
11170 {0x56, 0xff, 0xff, 1, 1},
11171 {0x57, 0, 0, 0, 0},
11172 {0x58, 0x83, 0x83, 0, 0},
11173 {0x59, 0x77, 0x77, 1, 1},
11174 {0x5A, 0, 0, 0, 0},
11175 {0x5B, 0x2, 0x2, 0, 0},
11176 {0x5C, 0x88, 0x88, 0, 0},
11177 {0x5D, 0, 0, 0, 0},
11178 {0x5E, 0x8, 0x8, 0, 0},
11179 {0x5F, 0x77, 0x77, 1, 1},
11180 {0x60, 0x1, 0x1, 0, 0},
11181 {0x61, 0, 0, 0, 0},
11182 {0x62, 0x7, 0x7, 0, 0},
11183 {0x63, 0, 0, 0, 0},
11184 {0x64, 0x7, 0x7, 0, 0},
11185 {0x65, 0, 0, 0, 0},
11186 {0x66, 0, 0, 0, 0},
11187 {0x67, 0, 0, 1, 1},
11188 {0x68, 0, 0, 0, 0},
11189 {0x69, 0xa, 0xa, 0, 0},
11190 {0x6A, 0, 0, 0, 0},
11191 {0x6B, 0, 0, 0, 0},
11192 {0x6C, 0, 0, 0, 0},
11193 {0x6D, 0, 0, 0, 0},
11194 {0x6E, 0, 0, 0, 0},
11195 {0x6F, 0, 0, 0, 0},
11196 {0x70, 0, 0, 0, 0},
11197 {0x71, 0x2, 0x2, 0, 0},
11198 {0x72, 0, 0, 0, 0},
11199 {0x73, 0, 0, 0, 0},
11200 {0x74, 0xe, 0xe, 0, 0},
11201 {0x75, 0xe, 0xe, 0, 0},
11202 {0x76, 0xe, 0xe, 0, 0},
11203 {0x77, 0x13, 0x13, 0, 0},
11204 {0x78, 0x13, 0x13, 0, 0},
11205 {0x79, 0x1b, 0x1b, 0, 0},
11206 {0x7A, 0x1b, 0x1b, 0, 0},
11207 {0x7B, 0x55, 0x55, 0, 0},
11208 {0x7C, 0x5b, 0x5b, 0, 0},
11209 {0x7D, 0x30, 0x30, 1, 1},
11210 {0x7E, 0, 0, 0, 0},
11211 {0x7F, 0, 0, 0, 0},
11212 {0x80, 0, 0, 0, 0},
11213 {0x81, 0, 0, 0, 0},
11214 {0x82, 0, 0, 0, 0},
11215 {0x83, 0, 0, 0, 0},
11216 {0x84, 0, 0, 0, 0},
11217 {0x85, 0, 0, 0, 0},
11218 {0x86, 0, 0, 0, 0},
11219 {0x87, 0, 0, 0, 0},
11220 {0x88, 0, 0, 0, 0},
11221 {0x89, 0, 0, 0, 0},
11222 {0x8A, 0, 0, 0, 0},
11223 {0x8B, 0, 0, 0, 0},
11224 {0x8C, 0, 0, 0, 0},
11225 {0x8D, 0, 0, 0, 0},
11226 {0x8E, 0, 0, 0, 0},
11227 {0x8F, 0, 0, 0, 0},
11228 {0x90, 0, 0, 0, 0},
11229 {0x91, 0, 0, 0, 0},
11230 {0x92, 0, 0, 0, 0},
11231 {0x93, 0x70, 0x70, 0, 0},
11232 {0x94, 0x70, 0x70, 0, 0},
11233 {0x95, 0x70, 0x70, 0, 0},
11234 {0x96, 0x70, 0x70, 0, 0},
11235 {0x97, 0x70, 0x70, 0, 0},
11236 {0x98, 0x70, 0x70, 0, 0},
11237 {0x99, 0x70, 0x70, 0, 0},
11238 {0x9A, 0x70, 0x70, 0, 0},
11239 {0xFFFF, 0, 0, 0, 0},
11240};
11241
11242radio_regs_t regs_RX_2056_rev11[] = {
11243 {0x02, 0, 0, 0, 0},
11244 {0x03, 0, 0, 0, 0},
11245 {0x04, 0, 0, 0, 0},
11246 {0x05, 0, 0, 0, 0},
11247 {0x06, 0, 0, 0, 0},
11248 {0x07, 0, 0, 0, 0},
11249 {0x08, 0, 0, 0, 0},
11250 {0x09, 0, 0, 0, 0},
11251 {0x0A, 0, 0, 0, 0},
11252 {0x0B, 0, 0, 0, 0},
11253 {0x0C, 0, 0, 0, 0},
11254 {0x0D, 0, 0, 0, 0},
11255 {0x0E, 0, 0, 0, 0},
11256 {0x0F, 0, 0, 0, 0},
11257 {0x10, 0, 0, 0, 0},
11258 {0x11, 0, 0, 0, 0},
11259 {0x12, 0, 0, 0, 0},
11260 {0x13, 0, 0, 0, 0},
11261 {0x14, 0, 0, 0, 0},
11262 {0x15, 0, 0, 0, 0},
11263 {0x16, 0, 0, 0, 0},
11264 {0x17, 0, 0, 0, 0},
11265 {0x18, 0, 0, 0, 0},
11266 {0x19, 0, 0, 0, 0},
11267 {0x1A, 0, 0, 0, 0},
11268 {0x1B, 0, 0, 0, 0},
11269 {0x1C, 0, 0, 0, 0},
11270 {0x1D, 0, 0, 0, 0},
11271 {0x1E, 0, 0, 0, 0},
11272 {0x1F, 0, 0, 0, 0},
11273 {0x20, 0x3, 0x3, 0, 0},
11274 {0x21, 0, 0, 0, 0},
11275 {0x22, 0, 0, 0, 0},
11276 {0x23, 0x90, 0x90, 0, 0},
11277 {0x24, 0x55, 0x55, 0, 0},
11278 {0x25, 0x15, 0x15, 0, 0},
11279 {0x26, 0x5, 0x5, 0, 0},
11280 {0x27, 0x15, 0x15, 0, 0},
11281 {0x28, 0x5, 0x5, 0, 0},
11282 {0x29, 0x20, 0x20, 0, 0},
11283 {0x2A, 0x11, 0x11, 0, 0},
11284 {0x2B, 0x90, 0x90, 0, 0},
11285 {0x2C, 0, 0, 0, 0},
11286 {0x2D, 0x88, 0x88, 0, 0},
11287 {0x2E, 0x32, 0x32, 0, 0},
11288 {0x2F, 0x77, 0x77, 0, 0},
11289 {0x30, 0x17, 0x17, 1, 1},
11290 {0x31, 0xff, 0xff, 1, 1},
11291 {0x32, 0x20, 0x20, 0, 0},
11292 {0x33, 0, 0, 0, 0},
11293 {0x34, 0x88, 0x88, 0, 0},
11294 {0x35, 0x32, 0x32, 0, 0},
11295 {0x36, 0x77, 0x77, 0, 0},
11296 {0x37, 0x17, 0x17, 1, 1},
11297 {0x38, 0xf0, 0xf0, 1, 1},
11298 {0x39, 0x20, 0x20, 0, 0},
11299 {0x3A, 0x8, 0x8, 0, 0},
11300 {0x3B, 0x55, 0x55, 1, 1},
11301 {0x3C, 0, 0, 0, 0},
11302 {0x3D, 0x88, 0x88, 1, 1},
11303 {0x3E, 0, 0, 0, 0},
11304 {0x3F, 0x44, 0x44, 0, 0},
11305 {0x40, 0x7, 0x7, 1, 1},
11306 {0x41, 0x6, 0x6, 0, 0},
11307 {0x42, 0x4, 0x4, 0, 0},
11308 {0x43, 0, 0, 0, 0},
11309 {0x44, 0x8, 0x8, 0, 0},
11310 {0x45, 0x55, 0x55, 1, 1},
11311 {0x46, 0, 0, 0, 0},
11312 {0x47, 0x11, 0x11, 0, 0},
11313 {0x48, 0, 0, 0, 0},
11314 {0x49, 0x44, 0x44, 0, 0},
11315 {0x4A, 0x7, 0x7, 0, 0},
11316 {0x4B, 0x6, 0x6, 0, 0},
11317 {0x4C, 0x4, 0x4, 0, 0},
11318 {0x4D, 0, 0, 0, 0},
11319 {0x4E, 0, 0, 0, 0},
11320 {0x4F, 0x26, 0x26, 1, 1},
11321 {0x50, 0x26, 0x26, 1, 1},
11322 {0x51, 0xf, 0xf, 1, 1},
11323 {0x52, 0xf, 0xf, 1, 1},
11324 {0x53, 0x44, 0x44, 0, 0},
11325 {0x54, 0, 0, 0, 0},
11326 {0x55, 0, 0, 0, 0},
11327 {0x56, 0x8, 0x8, 0, 0},
11328 {0x57, 0x8, 0x8, 0, 0},
11329 {0x58, 0x7, 0x7, 0, 0},
11330 {0x59, 0x22, 0x22, 0, 0},
11331 {0x5A, 0x22, 0x22, 0, 0},
11332 {0x5B, 0x2, 0x2, 0, 0},
11333 {0x5C, 0x4, 0x4, 1, 1},
11334 {0x5D, 0x7, 0x7, 0, 0},
11335 {0x5E, 0x55, 0x55, 0, 0},
11336 {0x5F, 0x23, 0x23, 0, 0},
11337 {0x60, 0x41, 0x41, 0, 0},
11338 {0x61, 0x1, 0x1, 0, 0},
11339 {0x62, 0xa, 0xa, 0, 0},
11340 {0x63, 0, 0, 0, 0},
11341 {0x64, 0, 0, 0, 0},
11342 {0x65, 0, 0, 0, 0},
11343 {0x66, 0, 0, 0, 0},
11344 {0x67, 0, 0, 0, 0},
11345 {0x68, 0, 0, 0, 0},
11346 {0x69, 0, 0, 0, 0},
11347 {0x6A, 0, 0, 0, 0},
11348 {0x6B, 0xc, 0xc, 0, 0},
11349 {0x6C, 0, 0, 0, 0},
11350 {0x6D, 0, 0, 0, 0},
11351 {0x6E, 0, 0, 0, 0},
11352 {0x6F, 0, 0, 0, 0},
11353 {0x70, 0, 0, 0, 0},
11354 {0x71, 0, 0, 0, 0},
11355 {0x72, 0x22, 0x22, 0, 0},
11356 {0x73, 0x22, 0x22, 0, 0},
11357 {0x74, 0, 0, 1, 1},
11358 {0x75, 0xa, 0xa, 0, 0},
11359 {0x76, 0x1, 0x1, 0, 0},
11360 {0x77, 0x22, 0x22, 0, 0},
11361 {0x78, 0x30, 0x30, 0, 0},
11362 {0x79, 0, 0, 0, 0},
11363 {0x7A, 0, 0, 0, 0},
11364 {0x7B, 0, 0, 0, 0},
11365 {0x7C, 0, 0, 0, 0},
11366 {0x7D, 0x5, 0x5, 1, 1},
11367 {0x7E, 0, 0, 0, 0},
11368 {0x7F, 0, 0, 0, 0},
11369 {0x80, 0, 0, 0, 0},
11370 {0x81, 0, 0, 0, 0},
11371 {0x82, 0, 0, 0, 0},
11372 {0x83, 0, 0, 0, 0},
11373 {0x84, 0, 0, 0, 0},
11374 {0x85, 0, 0, 0, 0},
11375 {0x86, 0, 0, 0, 0},
11376 {0x87, 0, 0, 0, 0},
11377 {0x88, 0, 0, 0, 0},
11378 {0x89, 0, 0, 0, 0},
11379 {0x8A, 0, 0, 0, 0},
11380 {0x8B, 0, 0, 0, 0},
11381 {0x8C, 0, 0, 0, 0},
11382 {0x8D, 0, 0, 0, 0},
11383 {0x8E, 0, 0, 0, 0},
11384 {0x8F, 0, 0, 0, 0},
11385 {0x90, 0, 0, 0, 0},
11386 {0x91, 0, 0, 0, 0},
11387 {0x92, 0, 0, 0, 0},
11388 {0x93, 0, 0, 0, 0},
11389 {0x94, 0, 0, 0, 0},
11390 {0xFFFF, 0, 0, 0, 0},
11391};
11392
11393radio_20xx_regs_t regs_2057_rev4[] = {
11394 {0x00, 0x84, 0},
11395 {0x01, 0, 0},
11396 {0x02, 0x60, 0},
11397 {0x03, 0x1f, 0},
11398 {0x04, 0x4, 0},
11399 {0x05, 0x2, 0},
11400 {0x06, 0x1, 0},
11401 {0x07, 0x1, 0},
11402 {0x08, 0x1, 0},
11403 {0x09, 0x69, 0},
11404 {0x0A, 0x66, 0},
11405 {0x0B, 0x6, 0},
11406 {0x0C, 0x18, 0},
11407 {0x0D, 0x3, 0},
11408 {0x0E, 0x20, 1},
11409 {0x0F, 0x20, 0},
11410 {0x10, 0, 0},
11411 {0x11, 0x7c, 0},
11412 {0x12, 0x42, 0},
11413 {0x13, 0xbd, 0},
11414 {0x14, 0x7, 0},
11415 {0x15, 0xf7, 0},
11416 {0x16, 0x8, 0},
11417 {0x17, 0x17, 0},
11418 {0x18, 0x7, 0},
11419 {0x19, 0, 0},
11420 {0x1A, 0x2, 0},
11421 {0x1B, 0x13, 0},
11422 {0x1C, 0x3e, 0},
11423 {0x1D, 0x3e, 0},
11424 {0x1E, 0x96, 0},
11425 {0x1F, 0x4, 0},
11426 {0x20, 0, 0},
11427 {0x21, 0, 0},
11428 {0x22, 0x17, 0},
11429 {0x23, 0x4, 0},
11430 {0x24, 0x1, 0},
11431 {0x25, 0x6, 0},
11432 {0x26, 0x4, 0},
11433 {0x27, 0xd, 0},
11434 {0x28, 0xd, 0},
11435 {0x29, 0x30, 0},
11436 {0x2A, 0x32, 0},
11437 {0x2B, 0x8, 0},
11438 {0x2C, 0x1c, 0},
11439 {0x2D, 0x2, 0},
11440 {0x2E, 0x4, 0},
11441 {0x2F, 0x7f, 0},
11442 {0x30, 0x27, 0},
11443 {0x31, 0, 1},
11444 {0x32, 0, 1},
11445 {0x33, 0, 1},
11446 {0x34, 0, 0},
11447 {0x35, 0x26, 1},
11448 {0x36, 0x18, 0},
11449 {0x37, 0x7, 0},
11450 {0x38, 0x66, 0},
11451 {0x39, 0x66, 0},
11452 {0x3A, 0x66, 0},
11453 {0x3B, 0x66, 0},
11454 {0x3C, 0xff, 1},
11455 {0x3D, 0xff, 1},
11456 {0x3E, 0xff, 1},
11457 {0x3F, 0xff, 1},
11458 {0x40, 0x16, 0},
11459 {0x41, 0x7, 0},
11460 {0x42, 0x19, 0},
11461 {0x43, 0x7, 0},
11462 {0x44, 0x6, 0},
11463 {0x45, 0x3, 0},
11464 {0x46, 0x1, 0},
11465 {0x47, 0x7, 0},
11466 {0x48, 0x33, 0},
11467 {0x49, 0x5, 0},
11468 {0x4A, 0x77, 0},
11469 {0x4B, 0x66, 0},
11470 {0x4C, 0x66, 0},
11471 {0x4D, 0, 0},
11472 {0x4E, 0x4, 0},
11473 {0x4F, 0xc, 0},
11474 {0x50, 0, 0},
11475 {0x51, 0x75, 0},
11476 {0x56, 0x7, 0},
11477 {0x57, 0, 0},
11478 {0x58, 0, 0},
11479 {0x59, 0xa8, 0},
11480 {0x5A, 0, 0},
11481 {0x5B, 0x1f, 0},
11482 {0x5C, 0x30, 0},
11483 {0x5D, 0x1, 0},
11484 {0x5E, 0x30, 0},
11485 {0x5F, 0x70, 0},
11486 {0x60, 0, 0},
11487 {0x61, 0, 0},
11488 {0x62, 0x33, 1},
11489 {0x63, 0x19, 0},
11490 {0x64, 0x62, 0},
11491 {0x65, 0, 0},
11492 {0x66, 0x11, 0},
11493 {0x69, 0, 0},
11494 {0x6A, 0x7e, 0},
11495 {0x6B, 0x3f, 0},
11496 {0x6C, 0x7f, 0},
11497 {0x6D, 0x78, 0},
11498 {0x6E, 0xc8, 0},
11499 {0x6F, 0x88, 0},
11500 {0x70, 0x8, 0},
11501 {0x71, 0xf, 0},
11502 {0x72, 0xbc, 0},
11503 {0x73, 0x8, 0},
11504 {0x74, 0x60, 0},
11505 {0x75, 0x1e, 0},
11506 {0x76, 0x70, 0},
11507 {0x77, 0, 0},
11508 {0x78, 0, 0},
11509 {0x79, 0, 0},
11510 {0x7A, 0x33, 0},
11511 {0x7B, 0x1e, 0},
11512 {0x7C, 0x62, 0},
11513 {0x7D, 0x11, 0},
11514 {0x80, 0x3c, 0},
11515 {0x81, 0x9c, 0},
11516 {0x82, 0xa, 0},
11517 {0x83, 0x9d, 0},
11518 {0x84, 0xa, 0},
11519 {0x85, 0, 0},
11520 {0x86, 0x40, 0},
11521 {0x87, 0x40, 0},
11522 {0x88, 0x88, 0},
11523 {0x89, 0x10, 0},
11524 {0x8A, 0xf0, 1},
11525 {0x8B, 0x10, 1},
11526 {0x8C, 0xf0, 1},
11527 {0x8D, 0, 0},
11528 {0x8E, 0, 0},
11529 {0x8F, 0x10, 0},
11530 {0x90, 0x55, 0},
11531 {0x91, 0x3f, 1},
11532 {0x92, 0x36, 1},
11533 {0x93, 0, 0},
11534 {0x94, 0, 0},
11535 {0x95, 0, 0},
11536 {0x96, 0x87, 0},
11537 {0x97, 0x11, 0},
11538 {0x98, 0, 0},
11539 {0x99, 0x33, 0},
11540 {0x9A, 0x88, 0},
11541 {0x9B, 0, 0},
11542 {0x9C, 0x87, 0},
11543 {0x9D, 0x11, 0},
11544 {0x9E, 0, 0},
11545 {0x9F, 0x33, 0},
11546 {0xA0, 0x88, 0},
11547 {0xA1, 0xe1, 0},
11548 {0xA2, 0x3f, 0},
11549 {0xA3, 0x44, 0},
11550 {0xA4, 0x8c, 1},
11551 {0xA5, 0x6d, 0},
11552 {0xA6, 0x22, 0},
11553 {0xA7, 0xbe, 0},
11554 {0xA8, 0x55, 1},
11555 {0xA9, 0xc, 0},
11556 {0xAA, 0xc, 0},
11557 {0xAB, 0xaa, 0},
11558 {0xAC, 0x2, 0},
11559 {0xAD, 0, 0},
11560 {0xAE, 0x10, 0},
11561 {0xAF, 0x1, 1},
11562 {0xB0, 0, 0},
11563 {0xB1, 0, 0},
11564 {0xB2, 0x80, 0},
11565 {0xB3, 0x60, 0},
11566 {0xB4, 0x44, 0},
11567 {0xB5, 0x55, 0},
11568 {0xB6, 0x1, 0},
11569 {0xB7, 0x55, 0},
11570 {0xB8, 0x1, 0},
11571 {0xB9, 0x5, 0},
11572 {0xBA, 0x55, 0},
11573 {0xBB, 0x55, 0},
11574 {0xC1, 0, 0},
11575 {0xC2, 0, 0},
11576 {0xC3, 0, 0},
11577 {0xC4, 0, 0},
11578 {0xC5, 0, 0},
11579 {0xC6, 0, 0},
11580 {0xC7, 0, 0},
11581 {0xC8, 0, 0},
11582 {0xC9, 0, 0},
11583 {0xCA, 0, 0},
11584 {0xCB, 0, 0},
11585 {0xCC, 0, 0},
11586 {0xCD, 0, 0},
11587 {0xCE, 0x5e, 0},
11588 {0xCF, 0xc, 0},
11589 {0xD0, 0xc, 0},
11590 {0xD1, 0xc, 0},
11591 {0xD2, 0, 0},
11592 {0xD3, 0x2b, 0},
11593 {0xD4, 0xc, 0},
11594 {0xD5, 0, 0},
11595 {0xD6, 0x75, 0},
11596 {0xDB, 0x7, 0},
11597 {0xDC, 0, 0},
11598 {0xDD, 0, 0},
11599 {0xDE, 0xa8, 0},
11600 {0xDF, 0, 0},
11601 {0xE0, 0x1f, 0},
11602 {0xE1, 0x30, 0},
11603 {0xE2, 0x1, 0},
11604 {0xE3, 0x30, 0},
11605 {0xE4, 0x70, 0},
11606 {0xE5, 0, 0},
11607 {0xE6, 0, 0},
11608 {0xE7, 0x33, 0},
11609 {0xE8, 0x19, 0},
11610 {0xE9, 0x62, 0},
11611 {0xEA, 0, 0},
11612 {0xEB, 0x11, 0},
11613 {0xEE, 0, 0},
11614 {0xEF, 0x7e, 0},
11615 {0xF0, 0x3f, 0},
11616 {0xF1, 0x7f, 0},
11617 {0xF2, 0x78, 0},
11618 {0xF3, 0xc8, 0},
11619 {0xF4, 0x88, 0},
11620 {0xF5, 0x8, 0},
11621 {0xF6, 0xf, 0},
11622 {0xF7, 0xbc, 0},
11623 {0xF8, 0x8, 0},
11624 {0xF9, 0x60, 0},
11625 {0xFA, 0x1e, 0},
11626 {0xFB, 0x70, 0},
11627 {0xFC, 0, 0},
11628 {0xFD, 0, 0},
11629 {0xFE, 0, 0},
11630 {0xFF, 0x33, 0},
11631 {0x100, 0x1e, 0},
11632 {0x101, 0x62, 0},
11633 {0x102, 0x11, 0},
11634 {0x105, 0x3c, 0},
11635 {0x106, 0x9c, 0},
11636 {0x107, 0xa, 0},
11637 {0x108, 0x9d, 0},
11638 {0x109, 0xa, 0},
11639 {0x10A, 0, 0},
11640 {0x10B, 0x40, 0},
11641 {0x10C, 0x40, 0},
11642 {0x10D, 0x88, 0},
11643 {0x10E, 0x10, 0},
11644 {0x10F, 0xf0, 1},
11645 {0x110, 0x10, 1},
11646 {0x111, 0xf0, 1},
11647 {0x112, 0, 0},
11648 {0x113, 0, 0},
11649 {0x114, 0x10, 0},
11650 {0x115, 0x55, 0},
11651 {0x116, 0x3f, 1},
11652 {0x117, 0x36, 1},
11653 {0x118, 0, 0},
11654 {0x119, 0, 0},
11655 {0x11A, 0, 0},
11656 {0x11B, 0x87, 0},
11657 {0x11C, 0x11, 0},
11658 {0x11D, 0, 0},
11659 {0x11E, 0x33, 0},
11660 {0x11F, 0x88, 0},
11661 {0x120, 0, 0},
11662 {0x121, 0x87, 0},
11663 {0x122, 0x11, 0},
11664 {0x123, 0, 0},
11665 {0x124, 0x33, 0},
11666 {0x125, 0x88, 0},
11667 {0x126, 0xe1, 0},
11668 {0x127, 0x3f, 0},
11669 {0x128, 0x44, 0},
11670 {0x129, 0x8c, 1},
11671 {0x12A, 0x6d, 0},
11672 {0x12B, 0x22, 0},
11673 {0x12C, 0xbe, 0},
11674 {0x12D, 0x55, 1},
11675 {0x12E, 0xc, 0},
11676 {0x12F, 0xc, 0},
11677 {0x130, 0xaa, 0},
11678 {0x131, 0x2, 0},
11679 {0x132, 0, 0},
11680 {0x133, 0x10, 0},
11681 {0x134, 0x1, 1},
11682 {0x135, 0, 0},
11683 {0x136, 0, 0},
11684 {0x137, 0x80, 0},
11685 {0x138, 0x60, 0},
11686 {0x139, 0x44, 0},
11687 {0x13A, 0x55, 0},
11688 {0x13B, 0x1, 0},
11689 {0x13C, 0x55, 0},
11690 {0x13D, 0x1, 0},
11691 {0x13E, 0x5, 0},
11692 {0x13F, 0x55, 0},
11693 {0x140, 0x55, 0},
11694 {0x146, 0, 0},
11695 {0x147, 0, 0},
11696 {0x148, 0, 0},
11697 {0x149, 0, 0},
11698 {0x14A, 0, 0},
11699 {0x14B, 0, 0},
11700 {0x14C, 0, 0},
11701 {0x14D, 0, 0},
11702 {0x14E, 0, 0},
11703 {0x14F, 0, 0},
11704 {0x150, 0, 0},
11705 {0x151, 0, 0},
11706 {0x152, 0, 0},
11707 {0x153, 0, 0},
11708 {0x154, 0xc, 0},
11709 {0x155, 0xc, 0},
11710 {0x156, 0xc, 0},
11711 {0x157, 0, 0},
11712 {0x158, 0x2b, 0},
11713 {0x159, 0x84, 0},
11714 {0x15A, 0x15, 0},
11715 {0x15B, 0xf, 0},
11716 {0x15C, 0, 0},
11717 {0x15D, 0, 0},
11718 {0x15E, 0, 1},
11719 {0x15F, 0, 1},
11720 {0x160, 0, 1},
11721 {0x161, 0, 1},
11722 {0x162, 0, 1},
11723 {0x163, 0, 1},
11724 {0x164, 0, 0},
11725 {0x165, 0, 0},
11726 {0x166, 0, 0},
11727 {0x167, 0, 0},
11728 {0x168, 0, 0},
11729 {0x169, 0x2, 1},
11730 {0x16A, 0, 1},
11731 {0x16B, 0, 1},
11732 {0x16C, 0, 1},
11733 {0x16D, 0, 0},
11734 {0x170, 0, 0},
11735 {0x171, 0x77, 0},
11736 {0x172, 0x77, 0},
11737 {0x173, 0x77, 0},
11738 {0x174, 0x77, 0},
11739 {0x175, 0, 0},
11740 {0x176, 0x3, 0},
11741 {0x177, 0x37, 0},
11742 {0x178, 0x3, 0},
11743 {0x179, 0, 0},
11744 {0x17A, 0x21, 0},
11745 {0x17B, 0x21, 0},
11746 {0x17C, 0, 0},
11747 {0x17D, 0xaa, 0},
11748 {0x17E, 0, 0},
11749 {0x17F, 0xaa, 0},
11750 {0x180, 0, 0},
11751 {0x190, 0, 0},
11752 {0x191, 0x77, 0},
11753 {0x192, 0x77, 0},
11754 {0x193, 0x77, 0},
11755 {0x194, 0x77, 0},
11756 {0x195, 0, 0},
11757 {0x196, 0x3, 0},
11758 {0x197, 0x37, 0},
11759 {0x198, 0x3, 0},
11760 {0x199, 0, 0},
11761 {0x19A, 0x21, 0},
11762 {0x19B, 0x21, 0},
11763 {0x19C, 0, 0},
11764 {0x19D, 0xaa, 0},
11765 {0x19E, 0, 0},
11766 {0x19F, 0xaa, 0},
11767 {0x1A0, 0, 0},
11768 {0x1A1, 0x2, 0},
11769 {0x1A2, 0xf, 0},
11770 {0x1A3, 0xf, 0},
11771 {0x1A4, 0, 1},
11772 {0x1A5, 0, 1},
11773 {0x1A6, 0, 1},
11774 {0x1A7, 0x2, 0},
11775 {0x1A8, 0xf, 0},
11776 {0x1A9, 0xf, 0},
11777 {0x1AA, 0, 1},
11778 {0x1AB, 0, 1},
11779 {0x1AC, 0, 1},
11780 {0xFFFF, 0, 0},
11781};
11782
11783radio_20xx_regs_t regs_2057_rev5[] = {
11784 {0x00, 0, 1},
11785 {0x01, 0x57, 1},
11786 {0x02, 0x20, 1},
11787 {0x03, 0x1f, 0},
11788 {0x04, 0x4, 0},
11789 {0x05, 0x2, 0},
11790 {0x06, 0x1, 0},
11791 {0x07, 0x1, 0},
11792 {0x08, 0x1, 0},
11793 {0x09, 0x69, 0},
11794 {0x0A, 0x66, 0},
11795 {0x0B, 0x6, 0},
11796 {0x0C, 0x18, 0},
11797 {0x0D, 0x3, 0},
11798 {0x0E, 0x20, 0},
11799 {0x0F, 0x20, 0},
11800 {0x10, 0, 0},
11801 {0x11, 0x7c, 0},
11802 {0x12, 0x42, 0},
11803 {0x13, 0xbd, 0},
11804 {0x14, 0x7, 0},
11805 {0x15, 0x87, 0},
11806 {0x16, 0x8, 0},
11807 {0x17, 0x17, 0},
11808 {0x18, 0x7, 0},
11809 {0x19, 0, 0},
11810 {0x1A, 0x2, 0},
11811 {0x1B, 0x13, 0},
11812 {0x1C, 0x3e, 0},
11813 {0x1D, 0x3e, 0},
11814 {0x1E, 0x96, 0},
11815 {0x1F, 0x4, 0},
11816 {0x20, 0, 0},
11817 {0x21, 0, 0},
11818 {0x22, 0x17, 0},
11819 {0x23, 0x6, 1},
11820 {0x24, 0x1, 0},
11821 {0x25, 0x6, 0},
11822 {0x26, 0x4, 0},
11823 {0x27, 0xd, 0},
11824 {0x28, 0xd, 0},
11825 {0x29, 0x30, 0},
11826 {0x2A, 0x32, 0},
11827 {0x2B, 0x8, 0},
11828 {0x2C, 0x1c, 0},
11829 {0x2D, 0x2, 0},
11830 {0x2E, 0x4, 0},
11831 {0x2F, 0x7f, 0},
11832 {0x30, 0x27, 0},
11833 {0x31, 0, 1},
11834 {0x32, 0, 1},
11835 {0x33, 0, 1},
11836 {0x34, 0, 0},
11837 {0x35, 0x20, 0},
11838 {0x36, 0x18, 0},
11839 {0x37, 0x7, 0},
11840 {0x38, 0x66, 0},
11841 {0x39, 0x66, 0},
11842 {0x3C, 0xff, 0},
11843 {0x3D, 0xff, 0},
11844 {0x40, 0x16, 0},
11845 {0x41, 0x7, 0},
11846 {0x45, 0x3, 0},
11847 {0x46, 0x1, 0},
11848 {0x47, 0x7, 0},
11849 {0x4B, 0x66, 0},
11850 {0x4C, 0x66, 0},
11851 {0x4D, 0, 0},
11852 {0x4E, 0x4, 0},
11853 {0x4F, 0xc, 0},
11854 {0x50, 0, 0},
11855 {0x51, 0x70, 1},
11856 {0x56, 0x7, 0},
11857 {0x57, 0, 0},
11858 {0x58, 0, 0},
11859 {0x59, 0x88, 1},
11860 {0x5A, 0, 0},
11861 {0x5B, 0x1f, 0},
11862 {0x5C, 0x20, 1},
11863 {0x5D, 0x1, 0},
11864 {0x5E, 0x30, 0},
11865 {0x5F, 0x70, 0},
11866 {0x60, 0, 0},
11867 {0x61, 0, 0},
11868 {0x62, 0x33, 1},
11869 {0x63, 0xf, 1},
11870 {0x64, 0xf, 1},
11871 {0x65, 0, 0},
11872 {0x66, 0x11, 0},
11873 {0x80, 0x3c, 0},
11874 {0x81, 0x1, 1},
11875 {0x82, 0xa, 0},
11876 {0x85, 0, 0},
11877 {0x86, 0x40, 0},
11878 {0x87, 0x40, 0},
11879 {0x88, 0x88, 0},
11880 {0x89, 0x10, 0},
11881 {0x8A, 0xf0, 0},
11882 {0x8B, 0x10, 0},
11883 {0x8C, 0xf0, 0},
11884 {0x8F, 0x10, 0},
11885 {0x90, 0x55, 0},
11886 {0x91, 0x3f, 1},
11887 {0x92, 0x36, 1},
11888 {0x93, 0, 0},
11889 {0x94, 0, 0},
11890 {0x95, 0, 0},
11891 {0x96, 0x87, 0},
11892 {0x97, 0x11, 0},
11893 {0x98, 0, 0},
11894 {0x99, 0x33, 0},
11895 {0x9A, 0x88, 0},
11896 {0xA1, 0x20, 1},
11897 {0xA2, 0x3f, 0},
11898 {0xA3, 0x44, 0},
11899 {0xA4, 0x8c, 0},
11900 {0xA5, 0x6c, 0},
11901 {0xA6, 0x22, 0},
11902 {0xA7, 0xbe, 0},
11903 {0xA8, 0x55, 0},
11904 {0xAA, 0xc, 0},
11905 {0xAB, 0xaa, 0},
11906 {0xAC, 0x2, 0},
11907 {0xAD, 0, 0},
11908 {0xAE, 0x10, 0},
11909 {0xAF, 0x1, 0},
11910 {0xB0, 0, 0},
11911 {0xB1, 0, 0},
11912 {0xB2, 0x80, 0},
11913 {0xB3, 0x60, 0},
11914 {0xB4, 0x44, 0},
11915 {0xB5, 0x55, 0},
11916 {0xB6, 0x1, 0},
11917 {0xB7, 0x55, 0},
11918 {0xB8, 0x1, 0},
11919 {0xB9, 0x5, 0},
11920 {0xBA, 0x55, 0},
11921 {0xBB, 0x55, 0},
11922 {0xC3, 0, 0},
11923 {0xC4, 0, 0},
11924 {0xC5, 0, 0},
11925 {0xC6, 0, 0},
11926 {0xC7, 0, 0},
11927 {0xC8, 0, 0},
11928 {0xC9, 0, 0},
11929 {0xCA, 0, 0},
11930 {0xCB, 0, 0},
11931 {0xCD, 0, 0},
11932 {0xCE, 0x5e, 0},
11933 {0xCF, 0xc, 0},
11934 {0xD0, 0xc, 0},
11935 {0xD1, 0xc, 0},
11936 {0xD2, 0, 0},
11937 {0xD3, 0x2b, 0},
11938 {0xD4, 0xc, 0},
11939 {0xD5, 0, 0},
11940 {0xD6, 0x70, 1},
11941 {0xDB, 0x7, 0},
11942 {0xDC, 0, 0},
11943 {0xDD, 0, 0},
11944 {0xDE, 0x88, 1},
11945 {0xDF, 0, 0},
11946 {0xE0, 0x1f, 0},
11947 {0xE1, 0x20, 1},
11948 {0xE2, 0x1, 0},
11949 {0xE3, 0x30, 0},
11950 {0xE4, 0x70, 0},
11951 {0xE5, 0, 0},
11952 {0xE6, 0, 0},
11953 {0xE7, 0x33, 0},
11954 {0xE8, 0xf, 1},
11955 {0xE9, 0xf, 1},
11956 {0xEA, 0, 0},
11957 {0xEB, 0x11, 0},
11958 {0x105, 0x3c, 0},
11959 {0x106, 0x1, 1},
11960 {0x107, 0xa, 0},
11961 {0x10A, 0, 0},
11962 {0x10B, 0x40, 0},
11963 {0x10C, 0x40, 0},
11964 {0x10D, 0x88, 0},
11965 {0x10E, 0x10, 0},
11966 {0x10F, 0xf0, 0},
11967 {0x110, 0x10, 0},
11968 {0x111, 0xf0, 0},
11969 {0x114, 0x10, 0},
11970 {0x115, 0x55, 0},
11971 {0x116, 0x3f, 1},
11972 {0x117, 0x36, 1},
11973 {0x118, 0, 0},
11974 {0x119, 0, 0},
11975 {0x11A, 0, 0},
11976 {0x11B, 0x87, 0},
11977 {0x11C, 0x11, 0},
11978 {0x11D, 0, 0},
11979 {0x11E, 0x33, 0},
11980 {0x11F, 0x88, 0},
11981 {0x126, 0x20, 1},
11982 {0x127, 0x3f, 0},
11983 {0x128, 0x44, 0},
11984 {0x129, 0x8c, 0},
11985 {0x12A, 0x6c, 0},
11986 {0x12B, 0x22, 0},
11987 {0x12C, 0xbe, 0},
11988 {0x12D, 0x55, 0},
11989 {0x12F, 0xc, 0},
11990 {0x130, 0xaa, 0},
11991 {0x131, 0x2, 0},
11992 {0x132, 0, 0},
11993 {0x133, 0x10, 0},
11994 {0x134, 0x1, 0},
11995 {0x135, 0, 0},
11996 {0x136, 0, 0},
11997 {0x137, 0x80, 0},
11998 {0x138, 0x60, 0},
11999 {0x139, 0x44, 0},
12000 {0x13A, 0x55, 0},
12001 {0x13B, 0x1, 0},
12002 {0x13C, 0x55, 0},
12003 {0x13D, 0x1, 0},
12004 {0x13E, 0x5, 0},
12005 {0x13F, 0x55, 0},
12006 {0x140, 0x55, 0},
12007 {0x148, 0, 0},
12008 {0x149, 0, 0},
12009 {0x14A, 0, 0},
12010 {0x14B, 0, 0},
12011 {0x14C, 0, 0},
12012 {0x14D, 0, 0},
12013 {0x14E, 0, 0},
12014 {0x14F, 0, 0},
12015 {0x150, 0, 0},
12016 {0x154, 0xc, 0},
12017 {0x155, 0xc, 0},
12018 {0x156, 0xc, 0},
12019 {0x157, 0, 0},
12020 {0x158, 0x2b, 0},
12021 {0x159, 0x84, 0},
12022 {0x15A, 0x15, 0},
12023 {0x15B, 0xf, 0},
12024 {0x15C, 0, 0},
12025 {0x15D, 0, 0},
12026 {0x15E, 0, 1},
12027 {0x15F, 0, 1},
12028 {0x160, 0, 1},
12029 {0x161, 0, 1},
12030 {0x162, 0, 1},
12031 {0x163, 0, 1},
12032 {0x164, 0, 0},
12033 {0x165, 0, 0},
12034 {0x166, 0, 0},
12035 {0x167, 0, 0},
12036 {0x168, 0, 0},
12037 {0x169, 0, 0},
12038 {0x16A, 0, 1},
12039 {0x16B, 0, 1},
12040 {0x16C, 0, 1},
12041 {0x16D, 0, 0},
12042 {0x170, 0, 0},
12043 {0x171, 0x77, 0},
12044 {0x172, 0x77, 0},
12045 {0x173, 0x77, 0},
12046 {0x174, 0x77, 0},
12047 {0x175, 0, 0},
12048 {0x176, 0x3, 0},
12049 {0x177, 0x37, 0},
12050 {0x178, 0x3, 0},
12051 {0x179, 0, 0},
12052 {0x17B, 0x21, 0},
12053 {0x17C, 0, 0},
12054 {0x17D, 0xaa, 0},
12055 {0x17E, 0, 0},
12056 {0x190, 0, 0},
12057 {0x191, 0x77, 0},
12058 {0x192, 0x77, 0},
12059 {0x193, 0x77, 0},
12060 {0x194, 0x77, 0},
12061 {0x195, 0, 0},
12062 {0x196, 0x3, 0},
12063 {0x197, 0x37, 0},
12064 {0x198, 0x3, 0},
12065 {0x199, 0, 0},
12066 {0x19B, 0x21, 0},
12067 {0x19C, 0, 0},
12068 {0x19D, 0xaa, 0},
12069 {0x19E, 0, 0},
12070 {0x1A1, 0x2, 0},
12071 {0x1A2, 0xf, 0},
12072 {0x1A3, 0xf, 0},
12073 {0x1A4, 0, 1},
12074 {0x1A5, 0, 1},
12075 {0x1A6, 0, 1},
12076 {0x1A7, 0x2, 0},
12077 {0x1A8, 0xf, 0},
12078 {0x1A9, 0xf, 0},
12079 {0x1AA, 0, 1},
12080 {0x1AB, 0, 1},
12081 {0x1AC, 0, 1},
12082 {0x1AD, 0x84, 0},
12083 {0x1AE, 0x60, 0},
12084 {0x1AF, 0x47, 0},
12085 {0x1B0, 0x47, 0},
12086 {0x1B1, 0, 0},
12087 {0x1B2, 0, 0},
12088 {0x1B3, 0, 0},
12089 {0x1B4, 0, 0},
12090 {0x1B5, 0, 0},
12091 {0x1B6, 0, 0},
12092 {0x1B7, 0xc, 1},
12093 {0x1B8, 0, 0},
12094 {0x1B9, 0, 0},
12095 {0x1BA, 0, 0},
12096 {0x1BB, 0, 0},
12097 {0x1BC, 0, 0},
12098 {0x1BD, 0, 0},
12099 {0x1BE, 0, 0},
12100 {0x1BF, 0, 0},
12101 {0x1C0, 0, 0},
12102 {0x1C1, 0x1, 1},
12103 {0x1C2, 0x80, 1},
12104 {0x1C3, 0, 0},
12105 {0x1C4, 0, 0},
12106 {0x1C5, 0, 0},
12107 {0x1C6, 0, 0},
12108 {0x1C7, 0, 0},
12109 {0x1C8, 0, 0},
12110 {0x1C9, 0, 0},
12111 {0x1CA, 0, 0},
12112 {0xFFFF, 0, 0}
12113};
12114
12115radio_20xx_regs_t regs_2057_rev5v1[] = {
12116 {0x00, 0x15, 1},
12117 {0x01, 0x57, 1},
12118 {0x02, 0x20, 1},
12119 {0x03, 0x1f, 0},
12120 {0x04, 0x4, 0},
12121 {0x05, 0x2, 0},
12122 {0x06, 0x1, 0},
12123 {0x07, 0x1, 0},
12124 {0x08, 0x1, 0},
12125 {0x09, 0x69, 0},
12126 {0x0A, 0x66, 0},
12127 {0x0B, 0x6, 0},
12128 {0x0C, 0x18, 0},
12129 {0x0D, 0x3, 0},
12130 {0x0E, 0x20, 0},
12131 {0x0F, 0x20, 0},
12132 {0x10, 0, 0},
12133 {0x11, 0x7c, 0},
12134 {0x12, 0x42, 0},
12135 {0x13, 0xbd, 0},
12136 {0x14, 0x7, 0},
12137 {0x15, 0x87, 0},
12138 {0x16, 0x8, 0},
12139 {0x17, 0x17, 0},
12140 {0x18, 0x7, 0},
12141 {0x19, 0, 0},
12142 {0x1A, 0x2, 0},
12143 {0x1B, 0x13, 0},
12144 {0x1C, 0x3e, 0},
12145 {0x1D, 0x3e, 0},
12146 {0x1E, 0x96, 0},
12147 {0x1F, 0x4, 0},
12148 {0x20, 0, 0},
12149 {0x21, 0, 0},
12150 {0x22, 0x17, 0},
12151 {0x23, 0x6, 1},
12152 {0x24, 0x1, 0},
12153 {0x25, 0x6, 0},
12154 {0x26, 0x4, 0},
12155 {0x27, 0xd, 0},
12156 {0x28, 0xd, 0},
12157 {0x29, 0x30, 0},
12158 {0x2A, 0x32, 0},
12159 {0x2B, 0x8, 0},
12160 {0x2C, 0x1c, 0},
12161 {0x2D, 0x2, 0},
12162 {0x2E, 0x4, 0},
12163 {0x2F, 0x7f, 0},
12164 {0x30, 0x27, 0},
12165 {0x31, 0, 1},
12166 {0x32, 0, 1},
12167 {0x33, 0, 1},
12168 {0x34, 0, 0},
12169 {0x35, 0x20, 0},
12170 {0x36, 0x18, 0},
12171 {0x37, 0x7, 0},
12172 {0x38, 0x66, 0},
12173 {0x39, 0x66, 0},
12174 {0x3C, 0xff, 0},
12175 {0x3D, 0xff, 0},
12176 {0x40, 0x16, 0},
12177 {0x41, 0x7, 0},
12178 {0x45, 0x3, 0},
12179 {0x46, 0x1, 0},
12180 {0x47, 0x7, 0},
12181 {0x4B, 0x66, 0},
12182 {0x4C, 0x66, 0},
12183 {0x4D, 0, 0},
12184 {0x4E, 0x4, 0},
12185 {0x4F, 0xc, 0},
12186 {0x50, 0, 0},
12187 {0x51, 0x70, 1},
12188 {0x56, 0x7, 0},
12189 {0x57, 0, 0},
12190 {0x58, 0, 0},
12191 {0x59, 0x88, 1},
12192 {0x5A, 0, 0},
12193 {0x5B, 0x1f, 0},
12194 {0x5C, 0x20, 1},
12195 {0x5D, 0x1, 0},
12196 {0x5E, 0x30, 0},
12197 {0x5F, 0x70, 0},
12198 {0x60, 0, 0},
12199 {0x61, 0, 0},
12200 {0x62, 0x33, 1},
12201 {0x63, 0xf, 1},
12202 {0x64, 0xf, 1},
12203 {0x65, 0, 0},
12204 {0x66, 0x11, 0},
12205 {0x80, 0x3c, 0},
12206 {0x81, 0x1, 1},
12207 {0x82, 0xa, 0},
12208 {0x85, 0, 0},
12209 {0x86, 0x40, 0},
12210 {0x87, 0x40, 0},
12211 {0x88, 0x88, 0},
12212 {0x89, 0x10, 0},
12213 {0x8A, 0xf0, 0},
12214 {0x8B, 0x10, 0},
12215 {0x8C, 0xf0, 0},
12216 {0x8F, 0x10, 0},
12217 {0x90, 0x55, 0},
12218 {0x91, 0x3f, 1},
12219 {0x92, 0x36, 1},
12220 {0x93, 0, 0},
12221 {0x94, 0, 0},
12222 {0x95, 0, 0},
12223 {0x96, 0x87, 0},
12224 {0x97, 0x11, 0},
12225 {0x98, 0, 0},
12226 {0x99, 0x33, 0},
12227 {0x9A, 0x88, 0},
12228 {0xA1, 0x20, 1},
12229 {0xA2, 0x3f, 0},
12230 {0xA3, 0x44, 0},
12231 {0xA4, 0x8c, 0},
12232 {0xA5, 0x6c, 0},
12233 {0xA6, 0x22, 0},
12234 {0xA7, 0xbe, 0},
12235 {0xA8, 0x55, 0},
12236 {0xAA, 0xc, 0},
12237 {0xAB, 0xaa, 0},
12238 {0xAC, 0x2, 0},
12239 {0xAD, 0, 0},
12240 {0xAE, 0x10, 0},
12241 {0xAF, 0x1, 0},
12242 {0xB0, 0, 0},
12243 {0xB1, 0, 0},
12244 {0xB2, 0x80, 0},
12245 {0xB3, 0x60, 0},
12246 {0xB4, 0x44, 0},
12247 {0xB5, 0x55, 0},
12248 {0xB6, 0x1, 0},
12249 {0xB7, 0x55, 0},
12250 {0xB8, 0x1, 0},
12251 {0xB9, 0x5, 0},
12252 {0xBA, 0x55, 0},
12253 {0xBB, 0x55, 0},
12254 {0xC3, 0, 0},
12255 {0xC4, 0, 0},
12256 {0xC5, 0, 0},
12257 {0xC6, 0, 0},
12258 {0xC7, 0, 0},
12259 {0xC8, 0, 0},
12260 {0xC9, 0x1, 1},
12261 {0xCA, 0, 0},
12262 {0xCB, 0, 0},
12263 {0xCD, 0, 0},
12264 {0xCE, 0x5e, 0},
12265 {0xCF, 0xc, 0},
12266 {0xD0, 0xc, 0},
12267 {0xD1, 0xc, 0},
12268 {0xD2, 0, 0},
12269 {0xD3, 0x2b, 0},
12270 {0xD4, 0xc, 0},
12271 {0xD5, 0, 0},
12272 {0xD6, 0x70, 1},
12273 {0xDB, 0x7, 0},
12274 {0xDC, 0, 0},
12275 {0xDD, 0, 0},
12276 {0xDE, 0x88, 1},
12277 {0xDF, 0, 0},
12278 {0xE0, 0x1f, 0},
12279 {0xE1, 0x20, 1},
12280 {0xE2, 0x1, 0},
12281 {0xE3, 0x30, 0},
12282 {0xE4, 0x70, 0},
12283 {0xE5, 0, 0},
12284 {0xE6, 0, 0},
12285 {0xE7, 0x33, 0},
12286 {0xE8, 0xf, 1},
12287 {0xE9, 0xf, 1},
12288 {0xEA, 0, 0},
12289 {0xEB, 0x11, 0},
12290 {0x105, 0x3c, 0},
12291 {0x106, 0x1, 1},
12292 {0x107, 0xa, 0},
12293 {0x10A, 0, 0},
12294 {0x10B, 0x40, 0},
12295 {0x10C, 0x40, 0},
12296 {0x10D, 0x88, 0},
12297 {0x10E, 0x10, 0},
12298 {0x10F, 0xf0, 0},
12299 {0x110, 0x10, 0},
12300 {0x111, 0xf0, 0},
12301 {0x114, 0x10, 0},
12302 {0x115, 0x55, 0},
12303 {0x116, 0x3f, 1},
12304 {0x117, 0x36, 1},
12305 {0x118, 0, 0},
12306 {0x119, 0, 0},
12307 {0x11A, 0, 0},
12308 {0x11B, 0x87, 0},
12309 {0x11C, 0x11, 0},
12310 {0x11D, 0, 0},
12311 {0x11E, 0x33, 0},
12312 {0x11F, 0x88, 0},
12313 {0x126, 0x20, 1},
12314 {0x127, 0x3f, 0},
12315 {0x128, 0x44, 0},
12316 {0x129, 0x8c, 0},
12317 {0x12A, 0x6c, 0},
12318 {0x12B, 0x22, 0},
12319 {0x12C, 0xbe, 0},
12320 {0x12D, 0x55, 0},
12321 {0x12F, 0xc, 0},
12322 {0x130, 0xaa, 0},
12323 {0x131, 0x2, 0},
12324 {0x132, 0, 0},
12325 {0x133, 0x10, 0},
12326 {0x134, 0x1, 0},
12327 {0x135, 0, 0},
12328 {0x136, 0, 0},
12329 {0x137, 0x80, 0},
12330 {0x138, 0x60, 0},
12331 {0x139, 0x44, 0},
12332 {0x13A, 0x55, 0},
12333 {0x13B, 0x1, 0},
12334 {0x13C, 0x55, 0},
12335 {0x13D, 0x1, 0},
12336 {0x13E, 0x5, 0},
12337 {0x13F, 0x55, 0},
12338 {0x140, 0x55, 0},
12339 {0x148, 0, 0},
12340 {0x149, 0, 0},
12341 {0x14A, 0, 0},
12342 {0x14B, 0, 0},
12343 {0x14C, 0, 0},
12344 {0x14D, 0, 0},
12345 {0x14E, 0x1, 1},
12346 {0x14F, 0, 0},
12347 {0x150, 0, 0},
12348 {0x154, 0xc, 0},
12349 {0x155, 0xc, 0},
12350 {0x156, 0xc, 0},
12351 {0x157, 0, 0},
12352 {0x158, 0x2b, 0},
12353 {0x159, 0x84, 0},
12354 {0x15A, 0x15, 0},
12355 {0x15B, 0xf, 0},
12356 {0x15C, 0, 0},
12357 {0x15D, 0, 0},
12358 {0x15E, 0, 1},
12359 {0x15F, 0, 1},
12360 {0x160, 0, 1},
12361 {0x161, 0, 1},
12362 {0x162, 0, 1},
12363 {0x163, 0, 1},
12364 {0x164, 0, 0},
12365 {0x165, 0, 0},
12366 {0x166, 0, 0},
12367 {0x167, 0, 0},
12368 {0x168, 0, 0},
12369 {0x169, 0, 0},
12370 {0x16A, 0, 1},
12371 {0x16B, 0, 1},
12372 {0x16C, 0, 1},
12373 {0x16D, 0, 0},
12374 {0x170, 0, 0},
12375 {0x171, 0x77, 0},
12376 {0x172, 0x77, 0},
12377 {0x173, 0x77, 0},
12378 {0x174, 0x77, 0},
12379 {0x175, 0, 0},
12380 {0x176, 0x3, 0},
12381 {0x177, 0x37, 0},
12382 {0x178, 0x3, 0},
12383 {0x179, 0, 0},
12384 {0x17B, 0x21, 0},
12385 {0x17C, 0, 0},
12386 {0x17D, 0xaa, 0},
12387 {0x17E, 0, 0},
12388 {0x190, 0, 0},
12389 {0x191, 0x77, 0},
12390 {0x192, 0x77, 0},
12391 {0x193, 0x77, 0},
12392 {0x194, 0x77, 0},
12393 {0x195, 0, 0},
12394 {0x196, 0x3, 0},
12395 {0x197, 0x37, 0},
12396 {0x198, 0x3, 0},
12397 {0x199, 0, 0},
12398 {0x19B, 0x21, 0},
12399 {0x19C, 0, 0},
12400 {0x19D, 0xaa, 0},
12401 {0x19E, 0, 0},
12402 {0x1A1, 0x2, 0},
12403 {0x1A2, 0xf, 0},
12404 {0x1A3, 0xf, 0},
12405 {0x1A4, 0, 1},
12406 {0x1A5, 0, 1},
12407 {0x1A6, 0, 1},
12408 {0x1A7, 0x2, 0},
12409 {0x1A8, 0xf, 0},
12410 {0x1A9, 0xf, 0},
12411 {0x1AA, 0, 1},
12412 {0x1AB, 0, 1},
12413 {0x1AC, 0, 1},
12414 {0x1AD, 0x84, 0},
12415 {0x1AE, 0x60, 0},
12416 {0x1AF, 0x47, 0},
12417 {0x1B0, 0x47, 0},
12418 {0x1B1, 0, 0},
12419 {0x1B2, 0, 0},
12420 {0x1B3, 0, 0},
12421 {0x1B4, 0, 0},
12422 {0x1B5, 0, 0},
12423 {0x1B6, 0, 0},
12424 {0x1B7, 0xc, 1},
12425 {0x1B8, 0, 0},
12426 {0x1B9, 0, 0},
12427 {0x1BA, 0, 0},
12428 {0x1BB, 0, 0},
12429 {0x1BC, 0, 0},
12430 {0x1BD, 0, 0},
12431 {0x1BE, 0, 0},
12432 {0x1BF, 0, 0},
12433 {0x1C0, 0, 0},
12434 {0x1C1, 0x1, 1},
12435 {0x1C2, 0x80, 1},
12436 {0x1C3, 0, 0},
12437 {0x1C4, 0, 0},
12438 {0x1C5, 0, 0},
12439 {0x1C6, 0, 0},
12440 {0x1C7, 0, 0},
12441 {0x1C8, 0, 0},
12442 {0x1C9, 0, 0},
12443 {0x1CA, 0, 0},
12444 {0xFFFF, 0, 0}
12445};
12446
12447radio_20xx_regs_t regs_2057_rev7[] = {
12448 {0x00, 0, 1},
12449 {0x01, 0x57, 1},
12450 {0x02, 0x20, 1},
12451 {0x03, 0x1f, 0},
12452 {0x04, 0x4, 0},
12453 {0x05, 0x2, 0},
12454 {0x06, 0x1, 0},
12455 {0x07, 0x1, 0},
12456 {0x08, 0x1, 0},
12457 {0x09, 0x69, 0},
12458 {0x0A, 0x66, 0},
12459 {0x0B, 0x6, 0},
12460 {0x0C, 0x18, 0},
12461 {0x0D, 0x3, 0},
12462 {0x0E, 0x20, 0},
12463 {0x0F, 0x20, 0},
12464 {0x10, 0, 0},
12465 {0x11, 0x7c, 0},
12466 {0x12, 0x42, 0},
12467 {0x13, 0xbd, 0},
12468 {0x14, 0x7, 0},
12469 {0x15, 0x87, 0},
12470 {0x16, 0x8, 0},
12471 {0x17, 0x17, 0},
12472 {0x18, 0x7, 0},
12473 {0x19, 0, 0},
12474 {0x1A, 0x2, 0},
12475 {0x1B, 0x13, 0},
12476 {0x1C, 0x3e, 0},
12477 {0x1D, 0x3e, 0},
12478 {0x1E, 0x96, 0},
12479 {0x1F, 0x4, 0},
12480 {0x20, 0, 0},
12481 {0x21, 0, 0},
12482 {0x22, 0x17, 0},
12483 {0x23, 0x6, 0},
12484 {0x24, 0x1, 0},
12485 {0x25, 0x6, 0},
12486 {0x26, 0x4, 0},
12487 {0x27, 0xd, 0},
12488 {0x28, 0xd, 0},
12489 {0x29, 0x30, 0},
12490 {0x2A, 0x32, 0},
12491 {0x2B, 0x8, 0},
12492 {0x2C, 0x1c, 0},
12493 {0x2D, 0x2, 0},
12494 {0x2E, 0x4, 0},
12495 {0x2F, 0x7f, 0},
12496 {0x30, 0x27, 0},
12497 {0x31, 0, 1},
12498 {0x32, 0, 1},
12499 {0x33, 0, 1},
12500 {0x34, 0, 0},
12501 {0x35, 0x20, 0},
12502 {0x36, 0x18, 0},
12503 {0x37, 0x7, 0},
12504 {0x38, 0x66, 0},
12505 {0x39, 0x66, 0},
12506 {0x3A, 0x66, 0},
12507 {0x3B, 0x66, 0},
12508 {0x3C, 0xff, 0},
12509 {0x3D, 0xff, 0},
12510 {0x3E, 0xff, 0},
12511 {0x3F, 0xff, 0},
12512 {0x40, 0x16, 0},
12513 {0x41, 0x7, 0},
12514 {0x42, 0x19, 0},
12515 {0x43, 0x7, 0},
12516 {0x44, 0x6, 0},
12517 {0x45, 0x3, 0},
12518 {0x46, 0x1, 0},
12519 {0x47, 0x7, 0},
12520 {0x48, 0x33, 0},
12521 {0x49, 0x5, 0},
12522 {0x4A, 0x77, 0},
12523 {0x4B, 0x66, 0},
12524 {0x4C, 0x66, 0},
12525 {0x4D, 0, 0},
12526 {0x4E, 0x4, 0},
12527 {0x4F, 0xc, 0},
12528 {0x50, 0, 0},
12529 {0x51, 0x70, 1},
12530 {0x56, 0x7, 0},
12531 {0x57, 0, 0},
12532 {0x58, 0, 0},
12533 {0x59, 0x88, 1},
12534 {0x5A, 0, 0},
12535 {0x5B, 0x1f, 0},
12536 {0x5C, 0x20, 1},
12537 {0x5D, 0x1, 0},
12538 {0x5E, 0x30, 0},
12539 {0x5F, 0x70, 0},
12540 {0x60, 0, 0},
12541 {0x61, 0, 0},
12542 {0x62, 0x33, 1},
12543 {0x63, 0xf, 1},
12544 {0x64, 0x13, 1},
12545 {0x65, 0, 0},
12546 {0x66, 0xee, 1},
12547 {0x69, 0, 0},
12548 {0x6A, 0x7e, 0},
12549 {0x6B, 0x3f, 0},
12550 {0x6C, 0x7f, 0},
12551 {0x6D, 0x78, 0},
12552 {0x6E, 0x58, 1},
12553 {0x6F, 0x88, 0},
12554 {0x70, 0x8, 0},
12555 {0x71, 0xf, 0},
12556 {0x72, 0xbc, 0},
12557 {0x73, 0x8, 0},
12558 {0x74, 0x60, 0},
12559 {0x75, 0x13, 1},
12560 {0x76, 0x70, 0},
12561 {0x77, 0, 0},
12562 {0x78, 0, 0},
12563 {0x79, 0, 0},
12564 {0x7A, 0x33, 0},
12565 {0x7B, 0x13, 1},
12566 {0x7C, 0x14, 1},
12567 {0x7D, 0xee, 1},
12568 {0x80, 0x3c, 0},
12569 {0x81, 0x1, 1},
12570 {0x82, 0xa, 0},
12571 {0x83, 0x9d, 0},
12572 {0x84, 0xa, 0},
12573 {0x85, 0, 0},
12574 {0x86, 0x40, 0},
12575 {0x87, 0x40, 0},
12576 {0x88, 0x88, 0},
12577 {0x89, 0x10, 0},
12578 {0x8A, 0xf0, 0},
12579 {0x8B, 0x10, 0},
12580 {0x8C, 0xf0, 0},
12581 {0x8D, 0, 0},
12582 {0x8E, 0, 0},
12583 {0x8F, 0x10, 0},
12584 {0x90, 0x55, 0},
12585 {0x91, 0x3f, 1},
12586 {0x92, 0x36, 1},
12587 {0x93, 0, 0},
12588 {0x94, 0, 0},
12589 {0x95, 0, 0},
12590 {0x96, 0x87, 0},
12591 {0x97, 0x11, 0},
12592 {0x98, 0, 0},
12593 {0x99, 0x33, 0},
12594 {0x9A, 0x88, 0},
12595 {0x9B, 0, 0},
12596 {0x9C, 0x87, 0},
12597 {0x9D, 0x11, 0},
12598 {0x9E, 0, 0},
12599 {0x9F, 0x33, 0},
12600 {0xA0, 0x88, 0},
12601 {0xA1, 0x20, 1},
12602 {0xA2, 0x3f, 0},
12603 {0xA3, 0x44, 0},
12604 {0xA4, 0x8c, 0},
12605 {0xA5, 0x6c, 0},
12606 {0xA6, 0x22, 0},
12607 {0xA7, 0xbe, 0},
12608 {0xA8, 0x55, 0},
12609 {0xAA, 0xc, 0},
12610 {0xAB, 0xaa, 0},
12611 {0xAC, 0x2, 0},
12612 {0xAD, 0, 0},
12613 {0xAE, 0x10, 0},
12614 {0xAF, 0x1, 0},
12615 {0xB0, 0, 0},
12616 {0xB1, 0, 0},
12617 {0xB2, 0x80, 0},
12618 {0xB3, 0x60, 0},
12619 {0xB4, 0x44, 0},
12620 {0xB5, 0x55, 0},
12621 {0xB6, 0x1, 0},
12622 {0xB7, 0x55, 0},
12623 {0xB8, 0x1, 0},
12624 {0xB9, 0x5, 0},
12625 {0xBA, 0x55, 0},
12626 {0xBB, 0x55, 0},
12627 {0xC1, 0, 0},
12628 {0xC2, 0, 0},
12629 {0xC3, 0, 0},
12630 {0xC4, 0, 0},
12631 {0xC5, 0, 0},
12632 {0xC6, 0, 0},
12633 {0xC7, 0, 0},
12634 {0xC8, 0, 0},
12635 {0xC9, 0, 0},
12636 {0xCA, 0, 0},
12637 {0xCB, 0, 0},
12638 {0xCC, 0, 0},
12639 {0xCD, 0, 0},
12640 {0xCE, 0x5e, 0},
12641 {0xCF, 0xc, 0},
12642 {0xD0, 0xc, 0},
12643 {0xD1, 0xc, 0},
12644 {0xD2, 0, 0},
12645 {0xD3, 0x2b, 0},
12646 {0xD4, 0xc, 0},
12647 {0xD5, 0, 0},
12648 {0xD6, 0x70, 1},
12649 {0xDB, 0x7, 0},
12650 {0xDC, 0, 0},
12651 {0xDD, 0, 0},
12652 {0xDE, 0x88, 1},
12653 {0xDF, 0, 0},
12654 {0xE0, 0x1f, 0},
12655 {0xE1, 0x20, 1},
12656 {0xE2, 0x1, 0},
12657 {0xE3, 0x30, 0},
12658 {0xE4, 0x70, 0},
12659 {0xE5, 0, 0},
12660 {0xE6, 0, 0},
12661 {0xE7, 0x33, 0},
12662 {0xE8, 0xf, 1},
12663 {0xE9, 0x13, 1},
12664 {0xEA, 0, 0},
12665 {0xEB, 0xee, 1},
12666 {0xEE, 0, 0},
12667 {0xEF, 0x7e, 0},
12668 {0xF0, 0x3f, 0},
12669 {0xF1, 0x7f, 0},
12670 {0xF2, 0x78, 0},
12671 {0xF3, 0x58, 1},
12672 {0xF4, 0x88, 0},
12673 {0xF5, 0x8, 0},
12674 {0xF6, 0xf, 0},
12675 {0xF7, 0xbc, 0},
12676 {0xF8, 0x8, 0},
12677 {0xF9, 0x60, 0},
12678 {0xFA, 0x13, 1},
12679 {0xFB, 0x70, 0},
12680 {0xFC, 0, 0},
12681 {0xFD, 0, 0},
12682 {0xFE, 0, 0},
12683 {0xFF, 0x33, 0},
12684 {0x100, 0x13, 1},
12685 {0x101, 0x14, 1},
12686 {0x102, 0xee, 1},
12687 {0x105, 0x3c, 0},
12688 {0x106, 0x1, 1},
12689 {0x107, 0xa, 0},
12690 {0x108, 0x9d, 0},
12691 {0x109, 0xa, 0},
12692 {0x10A, 0, 0},
12693 {0x10B, 0x40, 0},
12694 {0x10C, 0x40, 0},
12695 {0x10D, 0x88, 0},
12696 {0x10E, 0x10, 0},
12697 {0x10F, 0xf0, 0},
12698 {0x110, 0x10, 0},
12699 {0x111, 0xf0, 0},
12700 {0x112, 0, 0},
12701 {0x113, 0, 0},
12702 {0x114, 0x10, 0},
12703 {0x115, 0x55, 0},
12704 {0x116, 0x3f, 1},
12705 {0x117, 0x36, 1},
12706 {0x118, 0, 0},
12707 {0x119, 0, 0},
12708 {0x11A, 0, 0},
12709 {0x11B, 0x87, 0},
12710 {0x11C, 0x11, 0},
12711 {0x11D, 0, 0},
12712 {0x11E, 0x33, 0},
12713 {0x11F, 0x88, 0},
12714 {0x120, 0, 0},
12715 {0x121, 0x87, 0},
12716 {0x122, 0x11, 0},
12717 {0x123, 0, 0},
12718 {0x124, 0x33, 0},
12719 {0x125, 0x88, 0},
12720 {0x126, 0x20, 1},
12721 {0x127, 0x3f, 0},
12722 {0x128, 0x44, 0},
12723 {0x129, 0x8c, 0},
12724 {0x12A, 0x6c, 0},
12725 {0x12B, 0x22, 0},
12726 {0x12C, 0xbe, 0},
12727 {0x12D, 0x55, 0},
12728 {0x12F, 0xc, 0},
12729 {0x130, 0xaa, 0},
12730 {0x131, 0x2, 0},
12731 {0x132, 0, 0},
12732 {0x133, 0x10, 0},
12733 {0x134, 0x1, 0},
12734 {0x135, 0, 0},
12735 {0x136, 0, 0},
12736 {0x137, 0x80, 0},
12737 {0x138, 0x60, 0},
12738 {0x139, 0x44, 0},
12739 {0x13A, 0x55, 0},
12740 {0x13B, 0x1, 0},
12741 {0x13C, 0x55, 0},
12742 {0x13D, 0x1, 0},
12743 {0x13E, 0x5, 0},
12744 {0x13F, 0x55, 0},
12745 {0x140, 0x55, 0},
12746 {0x146, 0, 0},
12747 {0x147, 0, 0},
12748 {0x148, 0, 0},
12749 {0x149, 0, 0},
12750 {0x14A, 0, 0},
12751 {0x14B, 0, 0},
12752 {0x14C, 0, 0},
12753 {0x14D, 0, 0},
12754 {0x14E, 0, 0},
12755 {0x14F, 0, 0},
12756 {0x150, 0, 0},
12757 {0x151, 0, 0},
12758 {0x154, 0xc, 0},
12759 {0x155, 0xc, 0},
12760 {0x156, 0xc, 0},
12761 {0x157, 0, 0},
12762 {0x158, 0x2b, 0},
12763 {0x159, 0x84, 0},
12764 {0x15A, 0x15, 0},
12765 {0x15B, 0xf, 0},
12766 {0x15C, 0, 0},
12767 {0x15D, 0, 0},
12768 {0x15E, 0, 1},
12769 {0x15F, 0, 1},
12770 {0x160, 0, 1},
12771 {0x161, 0, 1},
12772 {0x162, 0, 1},
12773 {0x163, 0, 1},
12774 {0x164, 0, 0},
12775 {0x165, 0, 0},
12776 {0x166, 0, 0},
12777 {0x167, 0, 0},
12778 {0x168, 0, 0},
12779 {0x169, 0, 0},
12780 {0x16A, 0, 1},
12781 {0x16B, 0, 1},
12782 {0x16C, 0, 1},
12783 {0x16D, 0, 0},
12784 {0x170, 0, 0},
12785 {0x171, 0x77, 0},
12786 {0x172, 0x77, 0},
12787 {0x173, 0x77, 0},
12788 {0x174, 0x77, 0},
12789 {0x175, 0, 0},
12790 {0x176, 0x3, 0},
12791 {0x177, 0x37, 0},
12792 {0x178, 0x3, 0},
12793 {0x179, 0, 0},
12794 {0x17A, 0x21, 0},
12795 {0x17B, 0x21, 0},
12796 {0x17C, 0, 0},
12797 {0x17D, 0xaa, 0},
12798 {0x17E, 0, 0},
12799 {0x17F, 0xaa, 0},
12800 {0x180, 0, 0},
12801 {0x190, 0, 0},
12802 {0x191, 0x77, 0},
12803 {0x192, 0x77, 0},
12804 {0x193, 0x77, 0},
12805 {0x194, 0x77, 0},
12806 {0x195, 0, 0},
12807 {0x196, 0x3, 0},
12808 {0x197, 0x37, 0},
12809 {0x198, 0x3, 0},
12810 {0x199, 0, 0},
12811 {0x19A, 0x21, 0},
12812 {0x19B, 0x21, 0},
12813 {0x19C, 0, 0},
12814 {0x19D, 0xaa, 0},
12815 {0x19E, 0, 0},
12816 {0x19F, 0xaa, 0},
12817 {0x1A0, 0, 0},
12818 {0x1A1, 0x2, 0},
12819 {0x1A2, 0xf, 0},
12820 {0x1A3, 0xf, 0},
12821 {0x1A4, 0, 1},
12822 {0x1A5, 0, 1},
12823 {0x1A6, 0, 1},
12824 {0x1A7, 0x2, 0},
12825 {0x1A8, 0xf, 0},
12826 {0x1A9, 0xf, 0},
12827 {0x1AA, 0, 1},
12828 {0x1AB, 0, 1},
12829 {0x1AC, 0, 1},
12830 {0x1AD, 0x84, 0},
12831 {0x1AE, 0x60, 0},
12832 {0x1AF, 0x47, 0},
12833 {0x1B0, 0x47, 0},
12834 {0x1B1, 0, 0},
12835 {0x1B2, 0, 0},
12836 {0x1B3, 0, 0},
12837 {0x1B4, 0, 0},
12838 {0x1B5, 0, 0},
12839 {0x1B6, 0, 0},
12840 {0x1B7, 0x5, 1},
12841 {0x1B8, 0, 0},
12842 {0x1B9, 0, 0},
12843 {0x1BA, 0, 0},
12844 {0x1BB, 0, 0},
12845 {0x1BC, 0, 0},
12846 {0x1BD, 0, 0},
12847 {0x1BE, 0, 0},
12848 {0x1BF, 0, 0},
12849 {0x1C0, 0, 0},
12850 {0x1C1, 0, 0},
12851 {0x1C2, 0xa0, 1},
12852 {0x1C3, 0, 0},
12853 {0x1C4, 0, 0},
12854 {0x1C5, 0, 0},
12855 {0x1C6, 0, 0},
12856 {0x1C7, 0, 0},
12857 {0x1C8, 0, 0},
12858 {0x1C9, 0, 0},
12859 {0x1CA, 0, 0},
12860 {0xFFFF, 0, 0}
12861};
12862
12863radio_20xx_regs_t regs_2057_rev8[] = {
12864 {0x00, 0x8, 1},
12865 {0x01, 0x57, 1},
12866 {0x02, 0x20, 1},
12867 {0x03, 0x1f, 0},
12868 {0x04, 0x4, 0},
12869 {0x05, 0x2, 0},
12870 {0x06, 0x1, 0},
12871 {0x07, 0x1, 0},
12872 {0x08, 0x1, 0},
12873 {0x09, 0x69, 0},
12874 {0x0A, 0x66, 0},
12875 {0x0B, 0x6, 0},
12876 {0x0C, 0x18, 0},
12877 {0x0D, 0x3, 0},
12878 {0x0E, 0x20, 0},
12879 {0x0F, 0x20, 0},
12880 {0x10, 0, 0},
12881 {0x11, 0x7c, 0},
12882 {0x12, 0x42, 0},
12883 {0x13, 0xbd, 0},
12884 {0x14, 0x7, 0},
12885 {0x15, 0x87, 0},
12886 {0x16, 0x8, 0},
12887 {0x17, 0x17, 0},
12888 {0x18, 0x7, 0},
12889 {0x19, 0, 0},
12890 {0x1A, 0x2, 0},
12891 {0x1B, 0x13, 0},
12892 {0x1C, 0x3e, 0},
12893 {0x1D, 0x3e, 0},
12894 {0x1E, 0x96, 0},
12895 {0x1F, 0x4, 0},
12896 {0x20, 0, 0},
12897 {0x21, 0, 0},
12898 {0x22, 0x17, 0},
12899 {0x23, 0x6, 0},
12900 {0x24, 0x1, 0},
12901 {0x25, 0x6, 0},
12902 {0x26, 0x4, 0},
12903 {0x27, 0xd, 0},
12904 {0x28, 0xd, 0},
12905 {0x29, 0x30, 0},
12906 {0x2A, 0x32, 0},
12907 {0x2B, 0x8, 0},
12908 {0x2C, 0x1c, 0},
12909 {0x2D, 0x2, 0},
12910 {0x2E, 0x4, 0},
12911 {0x2F, 0x7f, 0},
12912 {0x30, 0x27, 0},
12913 {0x31, 0, 1},
12914 {0x32, 0, 1},
12915 {0x33, 0, 1},
12916 {0x34, 0, 0},
12917 {0x35, 0x20, 0},
12918 {0x36, 0x18, 0},
12919 {0x37, 0x7, 0},
12920 {0x38, 0x66, 0},
12921 {0x39, 0x66, 0},
12922 {0x3A, 0x66, 0},
12923 {0x3B, 0x66, 0},
12924 {0x3C, 0xff, 0},
12925 {0x3D, 0xff, 0},
12926 {0x3E, 0xff, 0},
12927 {0x3F, 0xff, 0},
12928 {0x40, 0x16, 0},
12929 {0x41, 0x7, 0},
12930 {0x42, 0x19, 0},
12931 {0x43, 0x7, 0},
12932 {0x44, 0x6, 0},
12933 {0x45, 0x3, 0},
12934 {0x46, 0x1, 0},
12935 {0x47, 0x7, 0},
12936 {0x48, 0x33, 0},
12937 {0x49, 0x5, 0},
12938 {0x4A, 0x77, 0},
12939 {0x4B, 0x66, 0},
12940 {0x4C, 0x66, 0},
12941 {0x4D, 0, 0},
12942 {0x4E, 0x4, 0},
12943 {0x4F, 0xc, 0},
12944 {0x50, 0, 0},
12945 {0x51, 0x70, 1},
12946 {0x56, 0x7, 0},
12947 {0x57, 0, 0},
12948 {0x58, 0, 0},
12949 {0x59, 0x88, 1},
12950 {0x5A, 0, 0},
12951 {0x5B, 0x1f, 0},
12952 {0x5C, 0x20, 1},
12953 {0x5D, 0x1, 0},
12954 {0x5E, 0x30, 0},
12955 {0x5F, 0x70, 0},
12956 {0x60, 0, 0},
12957 {0x61, 0, 0},
12958 {0x62, 0x33, 1},
12959 {0x63, 0xf, 1},
12960 {0x64, 0xf, 1},
12961 {0x65, 0, 0},
12962 {0x66, 0x11, 0},
12963 {0x69, 0, 0},
12964 {0x6A, 0x7e, 0},
12965 {0x6B, 0x3f, 0},
12966 {0x6C, 0x7f, 0},
12967 {0x6D, 0x78, 0},
12968 {0x6E, 0x58, 1},
12969 {0x6F, 0x88, 0},
12970 {0x70, 0x8, 0},
12971 {0x71, 0xf, 0},
12972 {0x72, 0xbc, 0},
12973 {0x73, 0x8, 0},
12974 {0x74, 0x60, 0},
12975 {0x75, 0x13, 1},
12976 {0x76, 0x70, 0},
12977 {0x77, 0, 0},
12978 {0x78, 0, 0},
12979 {0x79, 0, 0},
12980 {0x7A, 0x33, 0},
12981 {0x7B, 0x13, 1},
12982 {0x7C, 0xf, 1},
12983 {0x7D, 0xee, 1},
12984 {0x80, 0x3c, 0},
12985 {0x81, 0x1, 1},
12986 {0x82, 0xa, 0},
12987 {0x83, 0x9d, 0},
12988 {0x84, 0xa, 0},
12989 {0x85, 0, 0},
12990 {0x86, 0x40, 0},
12991 {0x87, 0x40, 0},
12992 {0x88, 0x88, 0},
12993 {0x89, 0x10, 0},
12994 {0x8A, 0xf0, 0},
12995 {0x8B, 0x10, 0},
12996 {0x8C, 0xf0, 0},
12997 {0x8D, 0, 0},
12998 {0x8E, 0, 0},
12999 {0x8F, 0x10, 0},
13000 {0x90, 0x55, 0},
13001 {0x91, 0x3f, 1},
13002 {0x92, 0x36, 1},
13003 {0x93, 0, 0},
13004 {0x94, 0, 0},
13005 {0x95, 0, 0},
13006 {0x96, 0x87, 0},
13007 {0x97, 0x11, 0},
13008 {0x98, 0, 0},
13009 {0x99, 0x33, 0},
13010 {0x9A, 0x88, 0},
13011 {0x9B, 0, 0},
13012 {0x9C, 0x87, 0},
13013 {0x9D, 0x11, 0},
13014 {0x9E, 0, 0},
13015 {0x9F, 0x33, 0},
13016 {0xA0, 0x88, 0},
13017 {0xA1, 0x20, 1},
13018 {0xA2, 0x3f, 0},
13019 {0xA3, 0x44, 0},
13020 {0xA4, 0x8c, 0},
13021 {0xA5, 0x6c, 0},
13022 {0xA6, 0x22, 0},
13023 {0xA7, 0xbe, 0},
13024 {0xA8, 0x55, 0},
13025 {0xAA, 0xc, 0},
13026 {0xAB, 0xaa, 0},
13027 {0xAC, 0x2, 0},
13028 {0xAD, 0, 0},
13029 {0xAE, 0x10, 0},
13030 {0xAF, 0x1, 0},
13031 {0xB0, 0, 0},
13032 {0xB1, 0, 0},
13033 {0xB2, 0x80, 0},
13034 {0xB3, 0x60, 0},
13035 {0xB4, 0x44, 0},
13036 {0xB5, 0x55, 0},
13037 {0xB6, 0x1, 0},
13038 {0xB7, 0x55, 0},
13039 {0xB8, 0x1, 0},
13040 {0xB9, 0x5, 0},
13041 {0xBA, 0x55, 0},
13042 {0xBB, 0x55, 0},
13043 {0xC1, 0, 0},
13044 {0xC2, 0, 0},
13045 {0xC3, 0, 0},
13046 {0xC4, 0, 0},
13047 {0xC5, 0, 0},
13048 {0xC6, 0, 0},
13049 {0xC7, 0, 0},
13050 {0xC8, 0, 0},
13051 {0xC9, 0x1, 1},
13052 {0xCA, 0, 0},
13053 {0xCB, 0, 0},
13054 {0xCC, 0, 0},
13055 {0xCD, 0, 0},
13056 {0xCE, 0x5e, 0},
13057 {0xCF, 0xc, 0},
13058 {0xD0, 0xc, 0},
13059 {0xD1, 0xc, 0},
13060 {0xD2, 0, 0},
13061 {0xD3, 0x2b, 0},
13062 {0xD4, 0xc, 0},
13063 {0xD5, 0, 0},
13064 {0xD6, 0x70, 1},
13065 {0xDB, 0x7, 0},
13066 {0xDC, 0, 0},
13067 {0xDD, 0, 0},
13068 {0xDE, 0x88, 1},
13069 {0xDF, 0, 0},
13070 {0xE0, 0x1f, 0},
13071 {0xE1, 0x20, 1},
13072 {0xE2, 0x1, 0},
13073 {0xE3, 0x30, 0},
13074 {0xE4, 0x70, 0},
13075 {0xE5, 0, 0},
13076 {0xE6, 0, 0},
13077 {0xE7, 0x33, 0},
13078 {0xE8, 0xf, 1},
13079 {0xE9, 0xf, 1},
13080 {0xEA, 0, 0},
13081 {0xEB, 0x11, 0},
13082 {0xEE, 0, 0},
13083 {0xEF, 0x7e, 0},
13084 {0xF0, 0x3f, 0},
13085 {0xF1, 0x7f, 0},
13086 {0xF2, 0x78, 0},
13087 {0xF3, 0x58, 1},
13088 {0xF4, 0x88, 0},
13089 {0xF5, 0x8, 0},
13090 {0xF6, 0xf, 0},
13091 {0xF7, 0xbc, 0},
13092 {0xF8, 0x8, 0},
13093 {0xF9, 0x60, 0},
13094 {0xFA, 0x13, 1},
13095 {0xFB, 0x70, 0},
13096 {0xFC, 0, 0},
13097 {0xFD, 0, 0},
13098 {0xFE, 0, 0},
13099 {0xFF, 0x33, 0},
13100 {0x100, 0x13, 1},
13101 {0x101, 0xf, 1},
13102 {0x102, 0xee, 1},
13103 {0x105, 0x3c, 0},
13104 {0x106, 0x1, 1},
13105 {0x107, 0xa, 0},
13106 {0x108, 0x9d, 0},
13107 {0x109, 0xa, 0},
13108 {0x10A, 0, 0},
13109 {0x10B, 0x40, 0},
13110 {0x10C, 0x40, 0},
13111 {0x10D, 0x88, 0},
13112 {0x10E, 0x10, 0},
13113 {0x10F, 0xf0, 0},
13114 {0x110, 0x10, 0},
13115 {0x111, 0xf0, 0},
13116 {0x112, 0, 0},
13117 {0x113, 0, 0},
13118 {0x114, 0x10, 0},
13119 {0x115, 0x55, 0},
13120 {0x116, 0x3f, 1},
13121 {0x117, 0x36, 1},
13122 {0x118, 0, 0},
13123 {0x119, 0, 0},
13124 {0x11A, 0, 0},
13125 {0x11B, 0x87, 0},
13126 {0x11C, 0x11, 0},
13127 {0x11D, 0, 0},
13128 {0x11E, 0x33, 0},
13129 {0x11F, 0x88, 0},
13130 {0x120, 0, 0},
13131 {0x121, 0x87, 0},
13132 {0x122, 0x11, 0},
13133 {0x123, 0, 0},
13134 {0x124, 0x33, 0},
13135 {0x125, 0x88, 0},
13136 {0x126, 0x20, 1},
13137 {0x127, 0x3f, 0},
13138 {0x128, 0x44, 0},
13139 {0x129, 0x8c, 0},
13140 {0x12A, 0x6c, 0},
13141 {0x12B, 0x22, 0},
13142 {0x12C, 0xbe, 0},
13143 {0x12D, 0x55, 0},
13144 {0x12F, 0xc, 0},
13145 {0x130, 0xaa, 0},
13146 {0x131, 0x2, 0},
13147 {0x132, 0, 0},
13148 {0x133, 0x10, 0},
13149 {0x134, 0x1, 0},
13150 {0x135, 0, 0},
13151 {0x136, 0, 0},
13152 {0x137, 0x80, 0},
13153 {0x138, 0x60, 0},
13154 {0x139, 0x44, 0},
13155 {0x13A, 0x55, 0},
13156 {0x13B, 0x1, 0},
13157 {0x13C, 0x55, 0},
13158 {0x13D, 0x1, 0},
13159 {0x13E, 0x5, 0},
13160 {0x13F, 0x55, 0},
13161 {0x140, 0x55, 0},
13162 {0x146, 0, 0},
13163 {0x147, 0, 0},
13164 {0x148, 0, 0},
13165 {0x149, 0, 0},
13166 {0x14A, 0, 0},
13167 {0x14B, 0, 0},
13168 {0x14C, 0, 0},
13169 {0x14D, 0, 0},
13170 {0x14E, 0x1, 1},
13171 {0x14F, 0, 0},
13172 {0x150, 0, 0},
13173 {0x151, 0, 0},
13174 {0x154, 0xc, 0},
13175 {0x155, 0xc, 0},
13176 {0x156, 0xc, 0},
13177 {0x157, 0, 0},
13178 {0x158, 0x2b, 0},
13179 {0x159, 0x84, 0},
13180 {0x15A, 0x15, 0},
13181 {0x15B, 0xf, 0},
13182 {0x15C, 0, 0},
13183 {0x15D, 0, 0},
13184 {0x15E, 0, 1},
13185 {0x15F, 0, 1},
13186 {0x160, 0, 1},
13187 {0x161, 0, 1},
13188 {0x162, 0, 1},
13189 {0x163, 0, 1},
13190 {0x164, 0, 0},
13191 {0x165, 0, 0},
13192 {0x166, 0, 0},
13193 {0x167, 0, 0},
13194 {0x168, 0, 0},
13195 {0x169, 0, 0},
13196 {0x16A, 0, 1},
13197 {0x16B, 0, 1},
13198 {0x16C, 0, 1},
13199 {0x16D, 0, 0},
13200 {0x170, 0, 0},
13201 {0x171, 0x77, 0},
13202 {0x172, 0x77, 0},
13203 {0x173, 0x77, 0},
13204 {0x174, 0x77, 0},
13205 {0x175, 0, 0},
13206 {0x176, 0x3, 0},
13207 {0x177, 0x37, 0},
13208 {0x178, 0x3, 0},
13209 {0x179, 0, 0},
13210 {0x17A, 0x21, 0},
13211 {0x17B, 0x21, 0},
13212 {0x17C, 0, 0},
13213 {0x17D, 0xaa, 0},
13214 {0x17E, 0, 0},
13215 {0x17F, 0xaa, 0},
13216 {0x180, 0, 0},
13217 {0x190, 0, 0},
13218 {0x191, 0x77, 0},
13219 {0x192, 0x77, 0},
13220 {0x193, 0x77, 0},
13221 {0x194, 0x77, 0},
13222 {0x195, 0, 0},
13223 {0x196, 0x3, 0},
13224 {0x197, 0x37, 0},
13225 {0x198, 0x3, 0},
13226 {0x199, 0, 0},
13227 {0x19A, 0x21, 0},
13228 {0x19B, 0x21, 0},
13229 {0x19C, 0, 0},
13230 {0x19D, 0xaa, 0},
13231 {0x19E, 0, 0},
13232 {0x19F, 0xaa, 0},
13233 {0x1A0, 0, 0},
13234 {0x1A1, 0x2, 0},
13235 {0x1A2, 0xf, 0},
13236 {0x1A3, 0xf, 0},
13237 {0x1A4, 0, 1},
13238 {0x1A5, 0, 1},
13239 {0x1A6, 0, 1},
13240 {0x1A7, 0x2, 0},
13241 {0x1A8, 0xf, 0},
13242 {0x1A9, 0xf, 0},
13243 {0x1AA, 0, 1},
13244 {0x1AB, 0, 1},
13245 {0x1AC, 0, 1},
13246 {0x1AD, 0x84, 0},
13247 {0x1AE, 0x60, 0},
13248 {0x1AF, 0x47, 0},
13249 {0x1B0, 0x47, 0},
13250 {0x1B1, 0, 0},
13251 {0x1B2, 0, 0},
13252 {0x1B3, 0, 0},
13253 {0x1B4, 0, 0},
13254 {0x1B5, 0, 0},
13255 {0x1B6, 0, 0},
13256 {0x1B7, 0x5, 1},
13257 {0x1B8, 0, 0},
13258 {0x1B9, 0, 0},
13259 {0x1BA, 0, 0},
13260 {0x1BB, 0, 0},
13261 {0x1BC, 0, 0},
13262 {0x1BD, 0, 0},
13263 {0x1BE, 0, 0},
13264 {0x1BF, 0, 0},
13265 {0x1C0, 0, 0},
13266 {0x1C1, 0, 0},
13267 {0x1C2, 0xa0, 1},
13268 {0x1C3, 0, 0},
13269 {0x1C4, 0, 0},
13270 {0x1C5, 0, 0},
13271 {0x1C6, 0, 0},
13272 {0x1C7, 0, 0},
13273 {0x1C8, 0, 0},
13274 {0x1C9, 0, 0},
13275 {0x1CA, 0, 0},
13276 {0xFFFF, 0, 0}
13277};
13278
13279static int16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
13280
13281static int32 nphy_lnagain_est0[] = { -315, 40370 };
13282static int32 nphy_lnagain_est1[] = { -224, 23242 };
13283
13284static const uint16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
13285 {
13286 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13287 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13288 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13289 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13290 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13291 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13292 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13293 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13294 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13295 },
13296 {
13297 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13298 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13299 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13300 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13301 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13302 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13303 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13304 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13305 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13306 }
13307};
13308
13309static const uint32 nphy_tpc_txgain[] = {
13310 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13311 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13312 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13313 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13314 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13315 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13316 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13317 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13318 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13319 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13320 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13321 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13322 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13323 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13324 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13325 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13326 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13327 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13328 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13329 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13330 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13331 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13332 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13333 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13334 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13335 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13336 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13337 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13338 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13339 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13340 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13341 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13342};
13343
13344static const uint16 nphy_tpc_loscale[] = {
13345 256, 256, 271, 271, 287, 256, 256, 271,
13346 271, 287, 287, 304, 304, 256, 256, 271,
13347 271, 287, 287, 304, 304, 322, 322, 341,
13348 341, 362, 362, 383, 383, 256, 256, 271,
13349 271, 287, 287, 304, 304, 322, 322, 256,
13350 256, 271, 271, 287, 287, 304, 304, 322,
13351 322, 341, 341, 362, 362, 256, 256, 271,
13352 271, 287, 287, 304, 304, 322, 322, 256,
13353 256, 271, 271, 287, 287, 304, 304, 322,
13354 322, 341, 341, 362, 362, 256, 256, 271,
13355 271, 287, 287, 304, 304, 322, 322, 341,
13356 341, 362, 362, 383, 383, 406, 406, 430,
13357 430, 455, 455, 482, 482, 511, 511, 541,
13358 541, 573, 573, 607, 607, 643, 643, 681,
13359 681, 722, 722, 764, 764, 810, 810, 858,
13360 858, 908, 908, 962, 962, 1019, 1019, 256
13361};
13362
13363static uint32 nphy_tpc_txgain_ipa[] = {
13364 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13365 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13366 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13367 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13368 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13369 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13370 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13371 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13372 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13373 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13374 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13375 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13376 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13377 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13378 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13379 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13380 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13381 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13382 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13383 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13384 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13385 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13386 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13387 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13388 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13389 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13390 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13391 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13392 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13393 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13394 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13395 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13396};
13397
13398static uint32 nphy_tpc_txgain_ipa_rev5[] = {
13399 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13400 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13401 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13402 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13403 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13404 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13405 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13406 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13407 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13408 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13409 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13410 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13411 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13412 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13413 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13414 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13415 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13416 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13417 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13418 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13419 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13420 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13421 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13422 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13423 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13424 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13425 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13426 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13427 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13428 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13429 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13430 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13431};
13432
13433static uint32 nphy_tpc_txgain_ipa_rev6[] = {
13434 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13435 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13436 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13437 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13438 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13439 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13440 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13441 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13442 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13443 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13444 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13445 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13446 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13447 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13448 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13449 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13450 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13451 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13452 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13453 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13454 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13455 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13456 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13457 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13458 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13459 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13460 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13461 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13462 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13463 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13464 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13465 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13466};
13467
13468static uint32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
13469 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13470 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13471 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13472 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13473 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13474 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13475 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13476 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13477 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13478 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13479 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13480 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13481 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13482 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13483 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13484 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13485 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13486 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13487 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13488 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13489 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13490 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13491 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13492 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13493 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13494 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13495 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13496 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13497 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13498 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13499 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13500 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13501};
13502
13503static uint32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
13504 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13505 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13506 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13507 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13508 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13509 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13510 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13511 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13512 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13513 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13514 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13515 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13516 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13517 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13518 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13519 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13520 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13521 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13522 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13523 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13524 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13525 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13526 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13527 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13528 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13529 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13530 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13531 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13532 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13533 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13534 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13535 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13536};
13537
13538static uint32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
13539 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13540 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13541 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13542 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13543 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13544 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13545 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13546 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13547 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13548 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13549 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13550 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13551 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13552 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13553 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13554 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13555 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13556 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13557 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13558 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13559 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13560 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13561 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13562 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13563 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13564 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13565 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13566 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13567 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13568 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13569 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13570 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13571};
13572
13573static uint32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
13574 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13575 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13576 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13577 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13578 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13579 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13580 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13581 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13582 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13583 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13584 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13585 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13586 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13587 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13588 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13589 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13590 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13591 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13592 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13593 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13594 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13595 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13596 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13597 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13598 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13599 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13606};
13607
13608static uint32 nphy_tpc_txgain_ipa_5g[] = {
13609 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13610 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13611 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13612 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13613 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13614 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13615 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13616 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13617 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13618 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13619 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13620 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13621 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13622 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13623 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13624 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13625 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13626 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13627 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13628 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13629 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13630 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13631 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13632 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13633 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13634 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13635 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13636 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13637 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13638 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13639 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13640 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13641};
13642
13643static uint32 nphy_tpc_txgain_ipa_5g_2057[] = {
13644 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13645 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13646 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13647 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13648 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13649 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13650 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13651 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13652 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13653 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13654 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13655 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13656 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13657 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13658 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13659 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13660 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13661 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13662 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13663 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13664 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13665 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13666 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13667 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13668 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13669 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13670 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13671 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13672 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13673 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13674 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13675 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13676};
13677
13678static uint32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
13679 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13680 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13681 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13682 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13683 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13684 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13685 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13686 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13687 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13688 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13689 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13690 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13691 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13692 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13693 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13694 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13695 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13696 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13697 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13698 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13699 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13700 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13701 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13702 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13703 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13704 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13705 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13706 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13707 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13708 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13709 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13710 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13711};
13712
13713static int8 nphy_papd_pga_gain_delta_ipa_2g[] = {
13714 -114, -108, -98, -91, -84, -78, -70, -62,
13715 -54, -46, -39, -31, -23, -15, -8, 0
13716};
13717
13718static int8 nphy_papd_pga_gain_delta_ipa_5g[] = {
13719 -100, -95, -89, -83, -77, -70, -63, -56,
13720 -48, -41, -33, -25, -19, -12, -6, 0
13721};
13722
13723static int16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
13724 -159, -113, -86, -72, -62, -54, -48, -43,
13725 -39, -35, -31, -28, -25, -23, -20, -18,
13726 -17, -15, -13, -11, -10, -8, -7, -6,
13727 -5, -4, -3, -3, -2, -1, -1, 0
13728};
13729
13730static int16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
13731 -109, -109, -82, -68, -58, -50, -44, -39,
13732 -35, -31, -28, -26, -23, -21, -19, -17,
13733 -16, -14, -13, -11, -10, -9, -8, -7,
13734 -5, -5, -4, -3, -2, -1, -1, 0
13735};
13736
13737static int16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
13738 -122, -122, -95, -80, -69, -61, -54, -49,
13739 -43, -39, -35, -32, -28, -26, -23, -21,
13740 -18, -16, -15, -13, -11, -10, -8, -7,
13741 -6, -5, -4, -3, -2, -1, -1, 0
13742};
13743
13744static int8 nphy_papd_pgagain_dlt_5g_2057[] = {
13745 -107, -101, -92, -85, -78, -71, -62, -55,
13746 -47, -39, -32, -24, -19, -12, -6, 0
13747};
13748
13749static int8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
13750 -110, -104, -95, -88, -81, -74, -66, -58,
13751 -50, -44, -36, -28, -23, -15, -8, 0
13752};
13753
13754static uint8 pad_gain_codes_used_2057rev5[] = {
13755 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13756 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13757};
13758
13759static uint8 pad_gain_codes_used_2057rev7[] = {
13760 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13761 5, 4, 3, 2, 1
13762};
13763
13764static uint8 pad_all_gain_codes_2057[] = {
13765 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13766 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13767 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13768 1, 0
13769};
13770
13771static uint8 pga_all_gain_codes_2057[] = {
13772 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13773};
13774
13775static uint32 nphy_papd_scaltbl[] = {
13776 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13777 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13778 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13779 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13780 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13781 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13782 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13783 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13784 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13785 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13786 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13787 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13788 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13789 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13790 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13791 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13792};
13793
13794static uint32 nphy_tpc_txgain_rev3[] = {
13795 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13796 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13797 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13798 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13799 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13800 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13801 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13802 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13803 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13804 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13805 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13806 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13807 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13808 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13809 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13810 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13811 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13812 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13813 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13814 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13815 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13816 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13817 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13818 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13819 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13820 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13821 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13822 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13823 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13824 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13825 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13826 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13827};
13828
13829static uint32 nphy_tpc_txgain_HiPwrEPA[] = {
13830 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13831 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13832 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13833 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13834 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13835 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13836 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13837 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13838 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13839 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13840 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13841 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13842 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13843 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13844 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13845 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13846 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13847 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13848 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13849 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13850 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13851 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13852 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13853 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13854 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13855 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13856 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13857 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13858 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13859 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13860 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13861 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13862};
13863
13864static uint32 nphy_tpc_txgain_epa_2057rev3[] = {
13865 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13866 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13867 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13868 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13869 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13870 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13871 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13872 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13873 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13874 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13875 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13876 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13877 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13878 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13879 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13880 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13881 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13882 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13883 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13884 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13885 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13886 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13887 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13888 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13889 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13890 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13891 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13892 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13893 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13894 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13895 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13896 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13897};
13898
13899static uint32 nphy_tpc_txgain_epa_2057rev5[] = {
13900 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13901 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13902 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13903 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13904 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13905 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13906 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13907 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13908 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13909 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13910 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13911 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13912 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13913 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13914 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13915 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13916 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13917 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13918 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13919 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13920 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13921 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13922 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13923 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13924 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13925 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13926 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13927 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13928 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13929 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13930 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13931 0x10090001, 0x10090001, 0x10090001, 0x10090001
13932};
13933
13934static uint32 nphy_tpc_5GHz_txgain_rev3[] = {
13935 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13936 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13937 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13938 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13939 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13940 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13941 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13942 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13943 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13944 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13945 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13946 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13947 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13948 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13949 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13950 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13951 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13952 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13953 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13954 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13955 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13956 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13957 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13958 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13959 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13960 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13961 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13962 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13963 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13964 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13965 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13966 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13967};
13968
13969static uint32 nphy_tpc_5GHz_txgain_rev4[] = {
13970 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13971 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13972 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
13973 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
13974 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
13975 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
13976 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
13977 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
13978 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
13979 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
13980 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
13981 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
13982 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
13983 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
13984 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
13985 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
13986 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
13987 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
13988 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
13989 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
13990 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
13991 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
13992 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
13993 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
13994 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
13995 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
13996 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
13997 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
13998 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
13999 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14000 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14001 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14002};
14003
14004static uint32 nphy_tpc_5GHz_txgain_rev5[] = {
14005 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14006 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14007 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14008 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14009 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14010 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14011 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14012 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14013 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14014 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14015 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14016 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14017 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14018 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14019 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14020 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14021 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14022 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14023 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14024 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14025 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14026 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14027 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14028 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14029 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14030 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14031 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14032 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14033 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14034 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14035 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14036 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14037};
14038
14039static uint32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
14040 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14041 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14042 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14043 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14044 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14045 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14046 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14047 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14048 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14049 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14050 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14051 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14052 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14053 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14054 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14055 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14056 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14057 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14058 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14059 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14060 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14061 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14062 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14063 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14064 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14065 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14066 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14067 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14068 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14069 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14070 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14071 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14072};
14073
14074static uint8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14075static uint8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
e5c4536f
JC
14076static uint8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
14077 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a };
14078static uint8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
14079 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16 };
a9533e7e 14080
7cc4a4c0
JC
14081static bool wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
14082 chan_info_nphy_radio2057_t **t0,
14083 chan_info_nphy_radio205x_t **t1,
14084 chan_info_nphy_radio2057_rev5_t **t2,
14085 chan_info_nphy_2055_t **t3);
14086static void wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chans,
14087 const nphy_sfo_cfg_t *c);
14088
14089static void wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi,
a9533e7e 14090 uint16 reduction_factr);
7cc4a4c0
JC
14091static void wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *,
14092 uint32 *buf);
14093static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, uint8 minpwr);
14094static void wlc_phy_txlpfbw_nphy(phy_info_t *pi);
14095static void wlc_phy_spurwar_nphy(phy_info_t *pi);
14096
14097static void wlc_phy_radio_preinit_2055(phy_info_t *pi);
14098static void wlc_phy_radio_init_2055(phy_info_t *pi);
14099static void wlc_phy_radio_postinit_2055(phy_info_t *pi);
14100static void wlc_phy_radio_preinit_205x(phy_info_t *pi);
14101static void wlc_phy_radio_init_2056(phy_info_t *pi);
14102static void wlc_phy_radio_postinit_2056(phy_info_t *pi);
14103static void wlc_phy_radio_init_2057(phy_info_t *pi);
14104static void wlc_phy_radio_postinit_2057(phy_info_t *pi);
14105static void wlc_phy_workarounds_nphy(phy_info_t *pi);
14106static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi);
14107static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi);
14108static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi);
14109static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi);
14110
14111static void wlc_phy_restore_rssical_nphy(phy_info_t *pi);
14112static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi);
14113static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi);
14114static int wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t tg,
a9533e7e 14115 uint8 type, bool d);
7cc4a4c0
JC
14116static void wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, uint8 rxcore,
14117 uint16 *rg, uint8 type);
14118static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, int32 preamble);
14119static void wlc_phy_savecal_nphy(phy_info_t *pi);
14120static void wlc_phy_restorecal_nphy(phy_info_t *pi);
14121static void wlc_phy_resetcca_nphy(phy_info_t *pi);
14122
14123static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi);
14124static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi);
14125static void wlc_phy_precal_txgain_nphy(phy_info_t *pi);
14126static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, uint16 core);
14127
14128static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi);
14129static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi);
14130static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi);
14131static uint16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi);
14132static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, uint8 m0, uint8 m1);
14133static uint32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi);
14134
14135static void wlc_phy_a1_nphy(phy_info_t *pi, uint8 core, uint32 winsz, uint32,
a9533e7e 14136 uint32 e);
7cc4a4c0
JC
14137static uint8 wlc_phy_a3_nphy(phy_info_t *pi, uint8 start_gain, uint8 core);
14138static void wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *,
a9533e7e 14139 phy_cal_mode_t, uint8);
7cc4a4c0
JC
14140static void wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi,
14141 nphy_papd_restore_state *state);
14142static void wlc_phy_papd_cal_setup_nphy(phy_info_t *pi,
14143 nphy_papd_restore_state *state, uint8);
a9533e7e 14144
7cc4a4c0 14145static void wlc_phy_clip_det_nphy(phy_info_t *pi, uint8 write, uint16 *vals);
a9533e7e 14146
7cc4a4c0
JC
14147static void wlc_phy_set_rfseq_nphy(phy_info_t *pi, uint8 cmd, uint8 *evts,
14148 uint8 *dlys, uint8 len);
a9533e7e 14149
7cc4a4c0 14150static uint16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, uint16 offset);
a9533e7e
HP
14151
14152static void
7cc4a4c0 14153wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, uint16 field, uint16 value,
a9533e7e
HP
14154 uint8 core_mask, uint8 off,
14155 uint8 override_id);
14156
7cc4a4c0
JC
14157static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, uint8 rssi_type);
14158static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi);
a9533e7e 14159
7cc4a4c0
JC
14160static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi);
14161static void wlc_phy_txpwr_nphy_srom_convert(uint8 *srom_max,
14162 uint16 *pwr_offset,
a9533e7e
HP
14163 uint8 tmp_max_pwr, uint8 rate_start,
14164 uint8 rate_end);
14165
7cc4a4c0
JC
14166static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi);
14167static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi);
14168static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi);
14169static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi);
a9533e7e 14170
7cc4a4c0
JC
14171static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi);
14172static uint8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, uint8 core);
14173static void wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, uint8 idx0,
a9533e7e 14174 uint8 idx1);
7cc4a4c0 14175static void wlc_phy_a4(phy_info_t *pi, bool full_cal);
a9533e7e 14176
7cc4a4c0 14177static uint16 wlc_phy_radio205x_rcal(phy_info_t *pi);
a9533e7e 14178
7cc4a4c0 14179static uint16 wlc_phy_radio2057_rccal(phy_info_t *pi);
a9533e7e 14180
7cc4a4c0 14181static uint16 wlc_phy_gen_load_samples_nphy(phy_info_t *pi, uint32 f_kHz,
a9533e7e
HP
14182 uint16 max_val,
14183 uint8 dac_test_mode);
7cc4a4c0 14184static void wlc_phy_loadsampletable_nphy(phy_info_t *pi, cint32 *tone_buf,
a9533e7e 14185 uint16 num_samps);
7cc4a4c0 14186static void wlc_phy_runsamples_nphy(phy_info_t *pi, uint16 n, uint16 lps,
a9533e7e
HP
14187 uint16 wait, uint8 iq, uint8 dac_test_mode,
14188 bool modify_bbmult);
14189
7cc4a4c0 14190bool wlc_phy_bist_check_phy(wlc_phy_t *pih)
a9533e7e
HP
14191{
14192 phy_info_t *pi = (phy_info_t *) pih;
14193 uint32 phybist0, phybist1, phybist2, phybist3, phybist4;
14194
14195 if (NREV_GE(pi->pubpi.phy_rev, 16))
14196 return TRUE;
14197
14198 phybist0 = read_phy_reg(pi, 0x0e);
14199 phybist1 = read_phy_reg(pi, 0x0f);
14200 phybist2 = read_phy_reg(pi, 0xea);
14201 phybist3 = read_phy_reg(pi, 0xeb);
14202 phybist4 = read_phy_reg(pi, 0x156);
14203
14204 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14205 (phybist3 == 0) && (phybist4 == 0)) {
14206 return TRUE;
14207 }
14208
14209 return FALSE;
14210}
14211
a2627bc0
JC
14212static void WLBANDINITFN(wlc_phy_bphy_init_nphy) (phy_info_t *pi)
14213{
a9533e7e
HP
14214 uint16 addr, val;
14215
14216 ASSERT(ISNPHY(pi));
14217
14218 val = 0x1e1f;
14219 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14220 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14221 write_phy_reg(pi, addr, val);
14222 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14223 val = 0x3e3f;
14224 else
14225 val -= 0x0202;
14226 }
14227
14228 if (NORADIO_ENAB(pi->pubpi)) {
14229
14230 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_PHYCRSTH, 0x3206);
14231
14232 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_RSSI_TRESH, 0x281e);
14233
14234 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_LNA_GAIN_RANGE, 0x1a);
14235
14236 } else {
14237
14238 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14239 }
14240}
14241
14242void
7cc4a4c0 14243wlc_phy_table_write_nphy(phy_info_t *pi, uint32 id, uint32 len, uint32 offset,
a9533e7e
HP
14244 uint32 width, const void *data)
14245{
14246 mimophytbl_info_t tbl;
14247
14248 tbl.tbl_id = id;
14249 tbl.tbl_len = len;
14250 tbl.tbl_offset = offset;
14251 tbl.tbl_width = width;
14252 tbl.tbl_ptr = data;
14253 wlc_phy_write_table_nphy(pi, &tbl);
14254}
14255
14256void
7cc4a4c0 14257wlc_phy_table_read_nphy(phy_info_t *pi, uint32 id, uint32 len, uint32 offset,
a9533e7e
HP
14258 uint32 width, void *data)
14259{
14260 mimophytbl_info_t tbl;
14261
14262 tbl.tbl_id = id;
14263 tbl.tbl_len = len;
14264 tbl.tbl_offset = offset;
14265 tbl.tbl_width = width;
14266 tbl.tbl_ptr = data;
14267 wlc_phy_read_table_nphy(pi, &tbl);
14268}
14269
a2627bc0
JC
14270static void WLBANDINITFN(wlc_phy_static_table_download_nphy) (phy_info_t *pi)
14271{
a9533e7e
HP
14272 uint idx;
14273
14274 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14275 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14276 wlc_phy_write_table_nphy(pi,
14277 &mimophytbl_info_rev16[idx]);
14278 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14279 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14280 wlc_phy_write_table_nphy(pi,
14281 &mimophytbl_info_rev7[idx]);
14282 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14283 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14284 wlc_phy_write_table_nphy(pi,
14285 &mimophytbl_info_rev3[idx]);
14286 } else {
14287 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14288 wlc_phy_write_table_nphy(pi,
14289 &mimophytbl_info_rev0[idx]);
14290 }
14291}
14292
a2627bc0
JC
14293static void WLBANDINITFN(wlc_phy_tbl_init_nphy) (phy_info_t *pi)
14294{
a9533e7e
HP
14295 uint idx = 0;
14296 uint8 antswctrllut;
14297
14298 if (pi->phy_init_por)
14299 wlc_phy_static_table_download_nphy(pi);
14300
14301 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14302
14303 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14304 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.antswctrllut;
14305
14306 switch (antswctrllut) {
14307 case 0:
14308
14309 break;
14310
14311 case 1:
14312
14313 if (pi->aa2g == 7) {
14314
14315 wlc_phy_table_write_nphy(pi,
14316 NPHY_TBL_ID_ANTSWCTRLLUT,
14317 2, 0x21, 8,
14318 &ant_sw_ctrl_tbl_rev8_2o3
14319 [0]);
14320 } else {
14321 wlc_phy_table_write_nphy(pi,
14322 NPHY_TBL_ID_ANTSWCTRLLUT,
14323 2, 0x21, 8,
14324 &ant_sw_ctrl_tbl_rev8
14325 [0]);
14326 }
14327 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14328 2, 0x25, 8,
14329 &ant_sw_ctrl_tbl_rev8[2]);
14330 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14331 2, 0x29, 8,
14332 &ant_sw_ctrl_tbl_rev8[4]);
14333 break;
14334
14335 case 2:
14336
14337 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14338 2, 0x1, 8,
14339 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14340 [0]);
14341 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14342 2, 0x5, 8,
14343 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14344 [2]);
14345 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14346 2, 0x9, 8,
14347 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14348 [4]);
14349
14350 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14351 2, 0x21, 8,
14352 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14353 [0]);
14354 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14355 2, 0x25, 8,
14356 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14357 [2]);
14358 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14359 2, 0x29, 8,
14360 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14361 [4]);
14362 break;
14363
14364 default:
14365
14366 ASSERT(0);
14367 break;
14368 }
14369
14370 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14371 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14372
14373 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14374 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14375 pi->srom_fem2g.antswctrllut : pi->
14376 srom_fem5g.antswctrllut;
14377 switch (antswctrllut) {
14378 case 0:
14379 wlc_phy_write_table_nphy(pi,
14380 &mimophytbl_info_rev3_volatile
14381 [idx]);
14382 break;
14383 case 1:
14384 wlc_phy_write_table_nphy(pi,
14385 &mimophytbl_info_rev3_volatile1
14386 [idx]);
14387 break;
14388 case 2:
14389 wlc_phy_write_table_nphy(pi,
14390 &mimophytbl_info_rev3_volatile2
14391 [idx]);
14392 break;
14393 case 3:
14394 wlc_phy_write_table_nphy(pi,
14395 &mimophytbl_info_rev3_volatile3
14396 [idx]);
14397 break;
14398 default:
14399
14400 ASSERT(0);
14401 break;
14402 }
14403 } else {
14404 wlc_phy_write_table_nphy(pi,
14405 &mimophytbl_info_rev3_volatile
14406 [idx]);
14407 }
14408 }
14409 } else {
14410 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++) {
14411 wlc_phy_write_table_nphy(pi,
14412 &mimophytbl_info_rev0_volatile
14413 [idx]);
14414 }
14415 }
14416}
14417
14418static void
7cc4a4c0 14419wlc_phy_write_txmacreg_nphy(phy_info_t *pi, uint16 holdoff, uint16 delay)
a9533e7e
HP
14420{
14421 write_phy_reg(pi, 0x77, holdoff);
14422 write_phy_reg(pi, 0xb4, delay);
14423}
14424
7cc4a4c0 14425void wlc_phy_nphy_tkip_rifs_war(phy_info_t *pi, uint8 rifs)
a9533e7e
HP
14426{
14427 uint16 holdoff, delay;
14428
14429 if (rifs) {
14430
14431 holdoff = 0x10;
14432 delay = 0x258;
14433 } else {
14434
14435 holdoff = 0x15;
14436 delay = 0x320;
14437 }
14438
14439 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14440
14441 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs)) {
14442 pi->sh->_rifs_phy = rifs;
14443 }
14444}
14445
7cc4a4c0 14446bool wlc_phy_attach_nphy(phy_info_t *pi)
a9533e7e
HP
14447{
14448 uint i;
14449
14450 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6)) {
14451 pi->phyhang_avoid = TRUE;
14452 }
14453
14454 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14455
14456 pi->nphy_gband_spurwar_en = TRUE;
14457
14458 if (pi->sh->boardflags2 & BFL2_SPUR_WAR) {
14459 pi->nphy_aband_spurwar_en = TRUE;
14460 }
14461 }
14462 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14463
14464 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR) {
14465 pi->nphy_gband_spurwar2_en = TRUE;
14466 }
14467 }
14468
14469 pi->n_preamble_override = AUTO;
14470 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14471 pi->n_preamble_override = WLC_N_PREAMBLE_MIXEDMODE;
14472
14473 pi->nphy_txrx_chain = AUTO;
14474 pi->phy_scraminit = AUTO;
14475
14476 pi->nphy_rxcalparams = 0x010100B5;
14477
14478 pi->nphy_perical = PHY_PERICAL_MPHASE;
14479 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14480 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14481
14482 pi->nphy_gain_boost = TRUE;
14483 pi->nphy_elna_gain_config = FALSE;
14484 pi->radio_is_on = FALSE;
14485
14486 for (i = 0; i < pi->pubpi.phy_corenum; i++) {
14487 pi->nphy_txpwrindex[i].index = AUTO;
14488 }
14489
14490 wlc_phy_txpwrctrl_config_nphy(pi);
14491 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14492 pi->hwpwrctrl_capable = TRUE;
14493
14494 pi->pi_fptr.init = wlc_phy_init_nphy;
14495 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14496 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14497 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14498
14499 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14500 return FALSE;
14501
14502 return TRUE;
14503}
14504
a2627bc0
JC
14505static void BCMATTACHFN(wlc_phy_txpwrctrl_config_nphy) (phy_info_t *pi)
14506{
a9533e7e
HP
14507
14508 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14509 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14510 pi->phy_5g_pwrgain = TRUE;
14511 return;
14512 }
14513
14514 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14515 pi->phy_5g_pwrgain = FALSE;
14516
14517 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14518 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14519 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14520 else if ((pi->sh->sromrev >= 4)
14521 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14522 pi->phy_5g_pwrgain = TRUE;
14523}
14524
a2627bc0
JC
14525void WLBANDINITFN(wlc_phy_init_nphy) (phy_info_t *pi)
14526{
a9533e7e
HP
14527 uint16 val;
14528 uint16 clip1_ths[2];
14529 nphy_txgains_t target_gain;
14530 uint8 tx_pwr_ctrl_state;
14531 bool do_nphy_cal = FALSE;
14532 uint core;
14533 uint origidx, intr_val;
14534 d11regs_t *regs;
14535 uint32 d11_clk_ctl_st;
14536
14537 core = 0;
14538
14539 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN)) {
14540 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
14541 }
14542
14543 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
14544 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
14545 (pi->sh->chippkg == BCM4718_PKG_ID))) {
14546 if ((pi->sh->boardflags & BFL_EXTLNA) &&
14547 (CHSPEC_IS2G(pi->radio_chanspec))) {
14548 si_corereg(pi->sh->sih, SI_CC_IDX,
14549 OFFSETOF(chipcregs_t, chipcontrol), 0x40,
14550 0x40);
14551 }
14552 }
14553
14554 if ((!PHY_IPA(pi)) && (CHIPID(pi->sh->chip) == BCM5357_CHIP_ID)) {
14555 si_pmu_chipcontrol(pi->sh->sih, 1, CCTRL5357_EXTPA,
14556 CCTRL5357_EXTPA);
14557 }
14558
14559 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
14560 CHSPEC_IS40(pi->radio_chanspec)) {
14561
14562 regs = (d11regs_t *) si_switch_core(pi->sh->sih, D11_CORE_ID,
14563 &origidx, &intr_val);
14564 ASSERT(regs != NULL);
14565
14566 d11_clk_ctl_st = R_REG(pi->sh->osh, &regs->clk_ctl_st);
14567 AND_REG(pi->sh->osh, &regs->clk_ctl_st,
14568 ~(CCS_FORCEHT | CCS_HTAREQ));
14569
14570 W_REG(pi->sh->osh, &regs->clk_ctl_st, d11_clk_ctl_st);
14571
14572 si_restore_core(pi->sh->sih, origidx, intr_val);
14573 }
14574
14575 pi->use_int_tx_iqlo_cal_nphy =
14576 (PHY_IPA(pi) ||
14577 (NREV_GE(pi->pubpi.phy_rev, 7) ||
14578 (NREV_GE(pi->pubpi.phy_rev, 5)
14579 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
14580
14581 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = FALSE;
14582
14583 pi->nphy_deaf_count = 0;
14584
14585 wlc_phy_tbl_init_nphy(pi);
14586
14587 pi->nphy_crsminpwr_adjusted = FALSE;
14588 pi->nphy_noisevars_adjusted = FALSE;
14589
14590 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14591 write_phy_reg(pi, 0xe7, 0);
14592 write_phy_reg(pi, 0xec, 0);
14593 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14594 write_phy_reg(pi, 0x342, 0);
14595 write_phy_reg(pi, 0x343, 0);
14596 write_phy_reg(pi, 0x346, 0);
14597 write_phy_reg(pi, 0x347, 0);
14598 }
14599 write_phy_reg(pi, 0xe5, 0);
14600 write_phy_reg(pi, 0xe6, 0);
14601 } else {
14602 write_phy_reg(pi, 0xec, 0);
14603 }
14604
14605 write_phy_reg(pi, 0x91, 0);
14606 write_phy_reg(pi, 0x92, 0);
14607 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
14608 write_phy_reg(pi, 0x93, 0);
14609 write_phy_reg(pi, 0x94, 0);
14610 }
14611
14612 and_phy_reg(pi, 0xa1, ~3);
14613
14614 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14615 write_phy_reg(pi, 0x8f, 0);
14616 write_phy_reg(pi, 0xa5, 0);
14617 } else {
14618 write_phy_reg(pi, 0xa5, 0);
14619 }
14620
14621 if (NREV_IS(pi->pubpi.phy_rev, 2))
14622 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
14623 else if (NREV_LT(pi->pubpi.phy_rev, 2))
14624 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
14625
14626 write_phy_reg(pi, 0x203, 32);
14627 write_phy_reg(pi, 0x201, 32);
14628
14629 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
14630 write_phy_reg(pi, 0x20d, 160);
14631 else
14632 write_phy_reg(pi, 0x20d, 184);
14633
14634 write_phy_reg(pi, 0x13a, 200);
14635
14636 write_phy_reg(pi, 0x70, 80);
14637
14638 write_phy_reg(pi, 0x1ff, 48);
14639
14640 if (NREV_LT(pi->pubpi.phy_rev, 8)) {
14641 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
14642 }
14643
14644 wlc_phy_stf_chain_upd_nphy(pi);
14645
14646 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
14647 write_phy_reg(pi, 0x180, 0xaa8);
14648 write_phy_reg(pi, 0x181, 0x9a4);
14649 }
14650
14651 if (PHY_IPA(pi)) {
14652 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
14653
14654 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
14655 0x29b, (0x1 << 0), (1) << 0);
14656
14657 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
14658 0x29c, (0x1ff << 7),
14659 (pi->nphy_papd_epsilon_offset[core]) << 7);
14660
14661 }
14662
14663 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
14664 } else {
14665
14666 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
14667 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
14668 }
14669 }
14670
14671 wlc_phy_workarounds_nphy(pi);
14672
14673 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14674
14675 val = read_phy_reg(pi, 0x01);
14676 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14677 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14678 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14679
14680 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
14681
14682 wlc_phy_pa_override_nphy(pi, OFF);
14683 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
14684 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14685 wlc_phy_pa_override_nphy(pi, ON);
14686
14687 wlc_phy_classifier_nphy(pi, 0, 0);
14688 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
14689
14690 if (CHSPEC_IS2G(pi->radio_chanspec))
14691 wlc_phy_bphy_init_nphy(pi);
14692
14693 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
14694 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
14695
14696 wlc_phy_txpwr_fixpower_nphy(pi);
14697
14698 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
14699
14700 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
14701
14702 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14703 uint32 *tx_pwrctrl_tbl = NULL;
14704 uint16 idx;
14705 int16 pga_gn = 0;
14706 int16 pad_gn = 0;
14707 int32 rfpwr_offset = 0;
14708
14709 if (PHY_IPA(pi)) {
14710 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14711 } else {
14712 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14713 if NREV_IS
14714 (pi->pubpi.phy_rev, 3) {
14715 tx_pwrctrl_tbl =
14716 nphy_tpc_5GHz_txgain_rev3;
14717 } else if NREV_IS
14718 (pi->pubpi.phy_rev, 4) {
14719 tx_pwrctrl_tbl =
14720 (pi->srom_fem5g.extpagain == 3) ?
14721 nphy_tpc_5GHz_txgain_HiPwrEPA :
14722 nphy_tpc_5GHz_txgain_rev4;
14723 } else {
14724 tx_pwrctrl_tbl =
14725 nphy_tpc_5GHz_txgain_rev5;
14726 }
14727
14728 } else {
14729 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14730 if (pi->pubpi.radiorev == 5) {
14731 tx_pwrctrl_tbl =
14732 nphy_tpc_txgain_epa_2057rev5;
14733 } else if (pi->pubpi.radiorev == 3) {
14734 tx_pwrctrl_tbl =
14735 nphy_tpc_txgain_epa_2057rev3;
14736 }
14737
14738 } else {
14739 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14740 (pi->srom_fem2g.extpagain == 3)) {
14741 tx_pwrctrl_tbl =
14742 nphy_tpc_txgain_HiPwrEPA;
14743 } else {
14744 tx_pwrctrl_tbl =
14745 nphy_tpc_txgain_rev3;
14746 }
14747 }
14748 }
14749 }
14750
14751 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14752 192, 32, tx_pwrctrl_tbl);
14753 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14754 192, 32, tx_pwrctrl_tbl);
14755
14756 pi->nphy_gmval = (uint16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
14757
14758 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14759
14760 for (idx = 0; idx < 128; idx++) {
14761 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14762 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
14763
14764 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14765 if ((pi->pubpi.radiorev == 3) ||
14766 (pi->pubpi.radiorev == 4) ||
14767 (pi->pubpi.radiorev == 6)) {
14768 rfpwr_offset = (int16)
14769 nphy_papd_padgain_dlt_2g_2057rev3n4
14770 [pad_gn];
14771 } else if (pi->pubpi.radiorev == 5) {
14772 rfpwr_offset = (int16)
14773 nphy_papd_padgain_dlt_2g_2057rev5
14774 [pad_gn];
14775 } else if ((pi->pubpi.radiorev == 7)
14776 || (pi->pubpi.radiorev ==
14777 8)) {
14778 rfpwr_offset = (int16)
14779 nphy_papd_padgain_dlt_2g_2057rev7
14780 [pad_gn];
14781 } else {
14782 ASSERT(0);
14783 }
14784
14785 } else {
14786 if ((pi->pubpi.radiorev == 3) ||
14787 (pi->pubpi.radiorev == 4) ||
14788 (pi->pubpi.radiorev == 6)) {
14789 rfpwr_offset = (int16)
14790 nphy_papd_pgagain_dlt_5g_2057
14791 [pga_gn];
14792 } else if ((pi->pubpi.radiorev == 7)
14793 || (pi->pubpi.radiorev ==
14794 8)) {
14795 rfpwr_offset = (int16)
14796 nphy_papd_pgagain_dlt_5g_2057rev7
14797 [pga_gn];
14798 } else {
14799 ASSERT(0);
14800 }
14801 }
14802 wlc_phy_table_write_nphy(pi,
14803 NPHY_TBL_ID_CORE1TXPWRCTL,
14804 1, 576 + idx, 32,
14805 &rfpwr_offset);
14806 wlc_phy_table_write_nphy(pi,
14807 NPHY_TBL_ID_CORE2TXPWRCTL,
14808 1, 576 + idx, 32,
14809 &rfpwr_offset);
14810 }
14811 } else {
14812
14813 for (idx = 0; idx < 128; idx++) {
14814 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14815 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14816 rfpwr_offset = (int16)
14817 nphy_papd_pga_gain_delta_ipa_2g
14818 [pga_gn];
14819 } else {
14820 rfpwr_offset = (int16)
14821 nphy_papd_pga_gain_delta_ipa_5g
14822 [pga_gn];
14823 }
14824
14825 wlc_phy_table_write_nphy(pi,
14826 NPHY_TBL_ID_CORE1TXPWRCTL,
14827 1, 576 + idx, 32,
14828 &rfpwr_offset);
14829 wlc_phy_table_write_nphy(pi,
14830 NPHY_TBL_ID_CORE2TXPWRCTL,
14831 1, 576 + idx, 32,
14832 &rfpwr_offset);
14833 }
14834
14835 }
14836 } else {
14837
14838 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14839 192, 32, nphy_tpc_txgain);
14840 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14841 192, 32, nphy_tpc_txgain);
14842 }
14843
14844 if (pi->sh->phyrxchain != 0x3) {
14845 wlc_phy_rxcore_setstate_nphy((wlc_phy_t *) pi,
14846 pi->sh->phyrxchain);
14847 }
14848
14849 if (PHY_PERICAL_MPHASE_PENDING(pi)) {
14850 wlc_phy_cal_perical_mphase_restart(pi);
14851 }
14852
14853 if (!NORADIO_ENAB(pi->pubpi)) {
14854 bool do_rssi_cal = FALSE;
14855
14856 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14857 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14858 (pi->nphy_rssical_chanspec_2G == 0) :
14859 (pi->nphy_rssical_chanspec_5G == 0);
14860
14861 if (do_rssi_cal) {
14862 wlc_phy_rssi_cal_nphy(pi);
14863 } else {
14864 wlc_phy_restore_rssical_nphy(pi);
14865 }
14866 } else {
14867 wlc_phy_rssi_cal_nphy(pi);
14868 }
14869
14870 if (!SCAN_RM_IN_PROGRESS(pi)) {
14871 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14872 (pi->nphy_iqcal_chanspec_2G == 0) :
14873 (pi->nphy_iqcal_chanspec_5G == 0);
14874 }
14875
14876 if (!pi->do_initcal)
14877 do_nphy_cal = FALSE;
14878
14879 if (do_nphy_cal) {
14880
14881 target_gain = wlc_phy_get_tx_gain_nphy(pi);
14882
14883 if (pi->antsel_type == ANTSEL_2x3)
14884 wlc_phy_antsel_init((wlc_phy_t *) pi, TRUE);
14885
14886 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
14887 wlc_phy_rssi_cal_nphy(pi);
14888
14889 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14890 pi->nphy_cal_orig_pwr_idx[0] =
14891 pi->nphy_txpwrindex[PHY_CORE_0].
14892 index_internal;
14893 pi->nphy_cal_orig_pwr_idx[1] =
14894 pi->nphy_txpwrindex[PHY_CORE_1].
14895 index_internal;
14896
14897 wlc_phy_precal_txgain_nphy(pi);
14898 target_gain =
14899 wlc_phy_get_tx_gain_nphy(pi);
14900 }
14901
14902 if (wlc_phy_cal_txiqlo_nphy
14903 (pi, target_gain, TRUE, FALSE) == BCME_OK) {
14904 if (wlc_phy_cal_rxiq_nphy
14905 (pi, target_gain, 2,
14906 FALSE) == BCME_OK) {
14907 wlc_phy_savecal_nphy(pi);
14908
14909 }
14910 }
14911 } else if (pi->mphase_cal_phase_id ==
14912 MPHASE_CAL_STATE_IDLE) {
14913
14914 wlc_phy_cal_perical((wlc_phy_t *) pi,
14915 PHY_PERICAL_PHYINIT);
14916 }
14917 } else {
14918 wlc_phy_restorecal_nphy(pi);
14919 }
14920 }
14921
14922 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
14923
14924 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
14925
14926 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
14927
14928 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
14929
14930 write_phy_reg(pi, 0x70, 50);
14931
14932 wlc_phy_txlpfbw_nphy(pi);
14933
14934 wlc_phy_spurwar_nphy(pi);
14935
14936}
14937
7cc4a4c0 14938static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, int32 preamble)
a9533e7e
HP
14939{
14940 bool gf_preamble = FALSE;
14941 uint16 val;
14942
14943 if (preamble == WLC_N_PREAMBLE_GF) {
14944 gf_preamble = TRUE;
14945 }
14946
14947 val = read_phy_reg(pi, 0xed);
14948
14949 val |= RX_GF_MM_AUTO;
14950 val &= ~RX_GF_OR_MM;
14951 if (gf_preamble)
14952 val |= RX_GF_OR_MM;
14953
14954 write_phy_reg(pi, 0xed, val);
14955}
14956
7cc4a4c0 14957static void wlc_phy_resetcca_nphy(phy_info_t *pi)
a9533e7e
HP
14958{
14959 uint16 val;
14960
14961 ASSERT(0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
14962
14963 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14964
14965 val = read_phy_reg(pi, 0x01);
14966 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14967 OSL_DELAY(1);
14968 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14969
14970 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14971
14972 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14973}
14974
7cc4a4c0 14975void wlc_phy_pa_override_nphy(phy_info_t *pi, bool en)
a9533e7e
HP
14976{
14977 uint16 rfctrlintc_override_val;
14978
14979 if (!en) {
14980
14981 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
14982 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
14983
14984 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14985 rfctrlintc_override_val = 0x1480;
14986 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14987 rfctrlintc_override_val =
14988 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
14989 } else {
14990 rfctrlintc_override_val =
14991 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
14992 }
14993
14994 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
14995 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
14996 } else {
14997
14998 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
14999 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
15000 }
15001
15002}
15003
7cc4a4c0 15004void wlc_phy_stf_chain_upd_nphy(phy_info_t *pi)
a9533e7e
HP
15005{
15006
15007 uint16 txrx_chain =
15008 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
15009 bool CoreActv_override = FALSE;
15010
15011 if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN0) {
15012 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
15013 CoreActv_override = TRUE;
15014
15015 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15016 and_phy_reg(pi, 0xa0, ~0x20);
15017 }
15018 } else if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN1) {
15019 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
15020 CoreActv_override = TRUE;
15021
15022 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15023 or_phy_reg(pi, 0xa0, 0x20);
15024 }
15025 }
15026
15027 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
15028
15029 if (CoreActv_override) {
15030
15031 pi->nphy_perical = PHY_PERICAL_DISABLE;
15032 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
15033 } else {
15034 pi->nphy_perical = PHY_PERICAL_MPHASE;
15035 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
15036 }
15037}
15038
7cc4a4c0 15039void wlc_phy_rxcore_setstate_nphy(wlc_phy_t *pih, uint8 rxcore_bitmask)
a9533e7e
HP
15040{
15041 uint16 regval;
15042 uint16 tbl_buf[16];
15043 uint i;
15044 phy_info_t *pi = (phy_info_t *) pih;
15045 uint16 tbl_opcode;
15046 bool suspend;
15047
15048 pi->sh->phyrxchain = rxcore_bitmask;
15049
15050 if (!pi->sh->clk)
15051 return;
15052
15053 suspend =
15054 (0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
15055 if (!suspend)
15056 wlapi_suspend_mac_and_wait(pi->sh->physhim);
15057
15058 if (pi->phyhang_avoid)
15059 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
15060
15061 regval = read_phy_reg(pi, 0xa2);
15062 regval &= ~(0xf << 4);
15063 regval |= ((uint16) (rxcore_bitmask & 0x3)) << 4;
15064 write_phy_reg(pi, 0xa2, regval);
15065
15066 if ((rxcore_bitmask & 0x3) != 0x3) {
15067
15068 write_phy_reg(pi, 0x20e, 1);
15069
15070 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15071 if (pi->rx2tx_biasentry == -1) {
15072 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
15073 ARRAYSIZE(tbl_buf), 80,
15074 16, tbl_buf);
15075
15076 for (i = 0; i < ARRAYSIZE(tbl_buf); i++) {
15077 if (tbl_buf[i] ==
15078 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15079
15080 pi->rx2tx_biasentry = (uint8) i;
15081 tbl_opcode =
15082 NPHY_REV3_RFSEQ_CMD_NOP;
15083 wlc_phy_table_write_nphy(pi,
15084 NPHY_TBL_ID_RFSEQ,
15085 1, i,
15086 16,
15087 &tbl_opcode);
15088 break;
15089 } else if (tbl_buf[i] ==
15090 NPHY_REV3_RFSEQ_CMD_END) {
15091 break;
15092 }
15093 }
15094 }
15095 }
15096 } else {
15097
15098 write_phy_reg(pi, 0x20e, 30);
15099
15100 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15101 if (pi->rx2tx_biasentry != -1) {
15102 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
15103 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15104 1, pi->rx2tx_biasentry,
15105 16, &tbl_opcode);
15106 pi->rx2tx_biasentry = -1;
15107 }
15108 }
15109 }
15110
15111 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
15112
15113 if (pi->phyhang_avoid)
15114 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
15115
15116 if (!suspend)
15117 wlapi_enable_mac(pi->sh->physhim);
15118}
15119
7cc4a4c0 15120uint8 wlc_phy_rxcore_getstate_nphy(wlc_phy_t *pih)
a9533e7e
HP
15121{
15122 uint16 regval, rxen_bits;
15123 phy_info_t *pi = (phy_info_t *) pih;
15124
15125 regval = read_phy_reg(pi, 0xa2);
15126 rxen_bits = (regval >> 4) & 0xf;
15127
90ea2296 15128 return (uint8) rxen_bits;
a9533e7e
HP
15129}
15130
7cc4a4c0 15131bool wlc_phy_n_txpower_ipa_ison(phy_info_t *pi)
a9533e7e
HP
15132{
15133 return PHY_IPA(pi);
15134}
15135
7cc4a4c0 15136static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi)
a9533e7e
HP
15137{
15138 uint8 idx, idx2, i, delta_ind;
15139
15140 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++) {
15141 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
15142 }
15143
15144 for (i = 0; i < 4; i++) {
15145 idx2 = 0;
15146
15147 delta_ind = 0;
15148
15149 switch (i) {
15150 case 0:
15151
15152 if (CHSPEC_IS40(pi->radio_chanspec)
15153 && NPHY_IS_SROM_REINTERPRET) {
15154 idx = TXP_FIRST_MCS_40_SISO;
15155 } else {
15156 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15157 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15158 delta_ind = 1;
15159 }
15160 break;
15161
15162 case 1:
15163
15164 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15165 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15166 break;
15167
15168 case 2:
15169
15170 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15171 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15172 break;
15173
15174 case 3:
15175
15176 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15177 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15178 break;
15179 }
15180
15181 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15182 pi->tx_power_offset[idx];
15183 idx = idx + delta_ind;
15184 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15185 pi->tx_power_offset[idx];
15186 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15187 pi->tx_power_offset[idx];
15188 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15189 pi->tx_power_offset[idx++];
15190
15191 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15192 pi->tx_power_offset[idx++];
15193 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15194 pi->tx_power_offset[idx];
15195 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15196 pi->tx_power_offset[idx];
15197 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15198 pi->tx_power_offset[idx++];
15199
15200 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15201 pi->tx_power_offset[idx++];
15202 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15203 pi->tx_power_offset[idx];
15204 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15205 pi->tx_power_offset[idx];
15206 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15207 pi->tx_power_offset[idx++];
15208
15209 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15210 pi->tx_power_offset[idx];
15211 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15212 pi->tx_power_offset[idx++];
15213 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15214 pi->tx_power_offset[idx];
15215 idx = idx + 1 - delta_ind;
15216 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15217 pi->tx_power_offset[idx];
15218
15219 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15220 pi->tx_power_offset[idx];
15221 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15222 pi->tx_power_offset[idx];
15223 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15224 pi->tx_power_offset[idx];
15225 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15226 pi->tx_power_offset[idx];
15227 }
15228}
15229
7cc4a4c0 15230void wlc_phy_cal_init_nphy(phy_info_t *pi)
a9533e7e
HP
15231{
15232}
15233
7cc4a4c0 15234static void wlc_phy_war_force_trsw_to_R_cliplo_nphy(phy_info_t *pi, uint8 core)
a9533e7e
HP
15235{
15236 if (core == PHY_CORE_0) {
15237 write_phy_reg(pi, 0x38, 0x4);
15238 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15239 write_phy_reg(pi, 0x37, 0x0060);
15240 } else {
15241 write_phy_reg(pi, 0x37, 0x1080);
15242 }
15243 } else if (core == PHY_CORE_1) {
15244 write_phy_reg(pi, 0x2ae, 0x4);
15245 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15246 write_phy_reg(pi, 0x2ad, 0x0060);
15247 } else {
15248 write_phy_reg(pi, 0x2ad, 0x1080);
15249 }
15250 }
15251}
15252
7cc4a4c0 15253static void wlc_phy_war_txchain_upd_nphy(phy_info_t *pi, uint8 txchain)
a9533e7e
HP
15254{
15255 uint8 txchain0, txchain1;
15256
15257 txchain0 = txchain & 0x1;
15258 txchain1 = (txchain & 0x2) >> 1;
15259 if (!txchain0) {
15260 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15261 }
15262
15263 if (!txchain1) {
15264 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15265 }
15266}
15267
7cc4a4c0 15268static void wlc_phy_workarounds_nphy(phy_info_t *pi)
a9533e7e
HP
15269{
15270 uint8 rfseq_rx2tx_events[] = {
15271 NPHY_RFSEQ_CMD_NOP,
15272 NPHY_RFSEQ_CMD_RXG_FBW,
15273 NPHY_RFSEQ_CMD_TR_SWITCH,
15274 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15275 NPHY_RFSEQ_CMD_RXPD_TXPD,
15276 NPHY_RFSEQ_CMD_TX_GAIN,
15277 NPHY_RFSEQ_CMD_EXT_PA
15278 };
15279 uint8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
15280 uint8 rfseq_tx2rx_events[] = {
15281 NPHY_RFSEQ_CMD_NOP,
15282 NPHY_RFSEQ_CMD_EXT_PA,
15283 NPHY_RFSEQ_CMD_TX_GAIN,
15284 NPHY_RFSEQ_CMD_RXPD_TXPD,
15285 NPHY_RFSEQ_CMD_TR_SWITCH,
15286 NPHY_RFSEQ_CMD_RXG_FBW,
15287 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15288 };
15289 uint8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
15290 uint8 rfseq_tx2rx_events_rev3[] = {
15291 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15292 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15293 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15294 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15295 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15296 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15297 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15298 NPHY_REV3_RFSEQ_CMD_END
15299 };
15300 uint8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15301 uint8 rfseq_rx2tx_events_rev3[] = {
15302 NPHY_REV3_RFSEQ_CMD_NOP,
15303 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15304 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15305 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15306 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15307 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15308 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15309 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15310 NPHY_REV3_RFSEQ_CMD_END
15311 };
15312 uint8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
15313
15314 uint8 rfseq_rx2tx_events_rev3_ipa[] = {
15315 NPHY_REV3_RFSEQ_CMD_NOP,
15316 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15317 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15318 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15319 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15320 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15321 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
15322 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15323 NPHY_REV3_RFSEQ_CMD_END
15324 };
15325 uint8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
15326 uint16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
15327
15328 int16 alpha0, alpha1, alpha2;
15329 int16 beta0, beta1, beta2;
15330 uint32 leg_data_weights, ht_data_weights, nss1_data_weights,
15331 stbc_data_weights;
15332 uint8 chan_freq_range = 0;
15333 uint16 dac_control = 0x0002;
15334 uint16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
15335 uint16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15336 uint16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15337 uint16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15338 uint16 *aux_adc_vmid;
15339 uint16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
15340 uint16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
15341 uint16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
15342 uint16 *aux_adc_gain;
15343 uint16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15344 uint16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
15345 int32 min_nvar_val = 0x18d;
15346 int32 min_nvar_offset_6mbps = 20;
15347 uint8 pdetrange;
15348 uint8 triso;
15349 uint16 regval;
15350 uint16 afectrl_adc_ctrl1_rev7 = 0x20;
15351 uint16 afectrl_adc_ctrl2_rev7 = 0x0;
15352 uint16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
15353 uint16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
15354 uint16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
15355 uint16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
15356 uint16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15357 uint16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15358 uint16 ipalvlshift_3p3_war_en = 0;
15359 uint16 rccal_bcap_val, rccal_scap_val;
15360 uint16 rccal_tx20_11b_bcap = 0;
15361 uint16 rccal_tx20_11b_scap = 0;
15362 uint16 rccal_tx20_11n_bcap = 0;
15363 uint16 rccal_tx20_11n_scap = 0;
15364 uint16 rccal_tx40_11n_bcap = 0;
15365 uint16 rccal_tx40_11n_scap = 0;
15366 uint16 rx2tx_lpf_rc_lut_tx20_11b = 0;
15367 uint16 rx2tx_lpf_rc_lut_tx20_11n = 0;
15368 uint16 rx2tx_lpf_rc_lut_tx40_11n = 0;
15369 uint16 tx_lpf_bw_ofdm_20mhz = 0;
15370 uint16 tx_lpf_bw_ofdm_40mhz = 0;
15371 uint16 tx_lpf_bw_11b = 0;
15372 uint16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
15373 uint16 txgm_idac_bleed = 0;
15374 bool rccal_ovrd = FALSE;
15375 uint16 freq;
15376 int coreNum;
15377
15378 if (CHSPEC_IS5G(pi->radio_chanspec)) {
15379 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15380 } else {
15381 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
15382 }
15383
15384 if (pi->phyhang_avoid)
15385 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
15386
15387 if (!ISSIM_ENAB(pi->sh->sih)) {
15388 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
15389 }
15390
15391 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15392
15393 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
15394 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
15395
15396 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
15397 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
15398 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
15399 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
15400 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
15401 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
15402 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
15403 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
15404 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
15405 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
15406 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
15407 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
15408 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
15409 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
15410 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
15411 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
15412 }
15413
15414 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
15415 write_phy_reg(pi, 0x23f, 0x1b0);
15416 write_phy_reg(pi, 0x240, 0x1b0);
15417 }
15418
15419 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
15420 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
15421 }
15422
15423 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15424 &dac_control);
15425 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15426 &dac_control);
15427
15428 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15429 1, 0, 32, &leg_data_weights);
15430 leg_data_weights = leg_data_weights & 0xffffff;
15431 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15432 1, 0, 32, &leg_data_weights);
15433
15434 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15435 2, 0x15e, 16,
15436 rfseq_rx2tx_dacbufpu_rev7);
15437 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15438 rfseq_rx2tx_dacbufpu_rev7);
15439
15440 if (PHY_IPA(pi)) {
15441 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15442 rfseq_rx2tx_events_rev3_ipa,
15443 rfseq_rx2tx_dlys_rev3_ipa,
15444 sizeof
15445 (rfseq_rx2tx_events_rev3_ipa) /
15446 sizeof
15447 (rfseq_rx2tx_events_rev3_ipa
15448 [0]));
15449 }
15450
15451 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
15452 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
15453
15454 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
15455 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
15456 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
15457
15458 if (PHY_IPA(pi)) {
15459
15460 if (((pi->pubpi.radiorev == 5)
15461 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15462 || (pi->pubpi.radiorev == 7)
15463 || (pi->pubpi.radiorev == 8)) {
15464
15465 rccal_bcap_val =
15466 read_radio_reg(pi,
15467 RADIO_2057_RCCAL_BCAP_VAL);
15468 rccal_scap_val =
15469 read_radio_reg(pi,
15470 RADIO_2057_RCCAL_SCAP_VAL);
15471
15472 rccal_tx20_11b_bcap = rccal_bcap_val;
15473 rccal_tx20_11b_scap = rccal_scap_val;
15474
15475 if ((pi->pubpi.radiorev == 5) &&
15476 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
15477
15478 rccal_tx20_11n_bcap = rccal_bcap_val;
15479 rccal_tx20_11n_scap = rccal_scap_val;
15480 rccal_tx40_11n_bcap = 0xc;
15481 rccal_tx40_11n_scap = 0xc;
15482
15483 rccal_ovrd = TRUE;
15484
15485 } else if ((pi->pubpi.radiorev == 7)
15486 || (pi->pubpi.radiorev == 8)) {
15487
15488 tx_lpf_bw_ofdm_20mhz = 4;
15489 tx_lpf_bw_11b = 1;
15490
15491 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15492 rccal_tx20_11n_bcap = 0xc;
15493 rccal_tx20_11n_scap = 0xc;
15494 rccal_tx40_11n_bcap = 0xa;
15495 rccal_tx40_11n_scap = 0xa;
15496 } else {
15497 rccal_tx20_11n_bcap = 0x14;
15498 rccal_tx20_11n_scap = 0x14;
15499 rccal_tx40_11n_bcap = 0xf;
15500 rccal_tx40_11n_scap = 0xf;
15501 }
15502
15503 rccal_ovrd = TRUE;
15504 }
15505 }
15506
15507 } else {
15508
15509 if (pi->pubpi.radiorev == 5) {
15510
15511 tx_lpf_bw_ofdm_20mhz = 1;
15512 tx_lpf_bw_ofdm_40mhz = 3;
15513
15514 rccal_bcap_val =
15515 read_radio_reg(pi,
15516 RADIO_2057_RCCAL_BCAP_VAL);
15517 rccal_scap_val =
15518 read_radio_reg(pi,
15519 RADIO_2057_RCCAL_SCAP_VAL);
15520
15521 rccal_tx20_11b_bcap = rccal_bcap_val;
15522 rccal_tx20_11b_scap = rccal_scap_val;
15523
15524 rccal_tx20_11n_bcap = 0x13;
15525 rccal_tx20_11n_scap = 0x11;
15526 rccal_tx40_11n_bcap = 0x13;
15527 rccal_tx40_11n_scap = 0x11;
15528
15529 rccal_ovrd = TRUE;
15530 }
15531 }
15532
15533 if (rccal_ovrd) {
15534
15535 rx2tx_lpf_rc_lut_tx20_11b = (rccal_tx20_11b_bcap << 8) |
15536 (rccal_tx20_11b_scap << 3) | tx_lpf_bw_11b;
15537 rx2tx_lpf_rc_lut_tx20_11n = (rccal_tx20_11n_bcap << 8) |
15538 (rccal_tx20_11n_scap << 3) | tx_lpf_bw_ofdm_20mhz;
15539 rx2tx_lpf_rc_lut_tx40_11n = (rccal_tx40_11n_bcap << 8) |
15540 (rccal_tx40_11n_scap << 3) | tx_lpf_bw_ofdm_40mhz;
15541
15542 for (coreNum = 0; coreNum <= 1; coreNum++) {
15543 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15544 1,
15545 0x152 + coreNum * 0x10,
15546 16,
15547 &rx2tx_lpf_rc_lut_tx20_11b);
15548 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15549 1,
15550 0x153 + coreNum * 0x10,
15551 16,
15552 &rx2tx_lpf_rc_lut_tx20_11n);
15553 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15554 1,
15555 0x154 + coreNum * 0x10,
15556 16,
15557 &rx2tx_lpf_rc_lut_tx20_11n);
15558 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15559 1,
15560 0x155 + coreNum * 0x10,
15561 16,
15562 &rx2tx_lpf_rc_lut_tx40_11n);
15563 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15564 1,
15565 0x156 + coreNum * 0x10,
15566 16,
15567 &rx2tx_lpf_rc_lut_tx40_11n);
15568 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15569 1,
15570 0x157 + coreNum * 0x10,
15571 16,
15572 &rx2tx_lpf_rc_lut_tx40_11n);
15573 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15574 1,
15575 0x158 + coreNum * 0x10,
15576 16,
15577 &rx2tx_lpf_rc_lut_tx40_11n);
15578 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15579 1,
15580 0x159 + coreNum * 0x10,
15581 16,
15582 &rx2tx_lpf_rc_lut_tx40_11n);
15583 }
15584
15585 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
15586 1, 0x3, 0,
15587 NPHY_REV7_RFCTRLOVERRIDE_ID2);
15588 }
15589
15590 if (!NORADIO_ENAB(pi->pubpi)) {
15591 write_phy_reg(pi, 0x32f, 0x3);
15592 }
15593
15594 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
15595 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
15596 1, 0x3, 0,
15597 NPHY_REV7_RFCTRLOVERRIDE_ID0);
15598 }
15599
15600 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
15601 (pi->pubpi.radiorev == 6)) {
15602 if ((pi->sh->sromrev >= 8)
15603 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
15604 ipalvlshift_3p3_war_en = 1;
15605
15606 if (ipalvlshift_3p3_war_en) {
15607 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
15608 0x5);
15609 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15610 0x30);
15611 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15612 or_radio_reg(pi,
15613 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15614 0x1);
15615 or_radio_reg(pi,
15616 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15617 0x1);
15618
15619 ipa2g_mainbias = 0x1f;
15620
15621 ipa2g_casconv = 0x6f;
15622
15623 ipa2g_biasfilt = 0xaa;
15624 } else {
15625
15626 ipa2g_mainbias = 0x2b;
15627
15628 ipa2g_casconv = 0x7f;
15629
15630 ipa2g_biasfilt = 0xee;
15631 }
15632
15633 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15634 for (coreNum = 0; coreNum <= 1; coreNum++) {
15635 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15636 coreNum, IPA2G_IMAIN,
15637 ipa2g_mainbias);
15638 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15639 coreNum, IPA2G_CASCONV,
15640 ipa2g_casconv);
15641 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15642 coreNum,
15643 IPA2G_BIAS_FILTER,
15644 ipa2g_biasfilt);
15645 }
15646 }
15647 }
15648
15649 if (PHY_IPA(pi)) {
15650 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15651 if ((pi->pubpi.radiorev == 3)
15652 || (pi->pubpi.radiorev == 4)
15653 || (pi->pubpi.radiorev == 6)) {
15654
15655 txgm_idac_bleed = 0x7f;
15656 }
15657
15658 for (coreNum = 0; coreNum <= 1; coreNum++) {
15659 if (txgm_idac_bleed != 0)
15660 WRITE_RADIO_REG4(pi, RADIO_2057,
15661 CORE, coreNum,
15662 TXGM_IDAC_BLEED,
15663 txgm_idac_bleed);
15664 }
15665
15666 if (pi->pubpi.radiorev == 5) {
15667
15668 for (coreNum = 0; coreNum <= 1;
15669 coreNum++) {
15670 WRITE_RADIO_REG4(pi, RADIO_2057,
15671 CORE, coreNum,
15672 IPA2G_CASCONV,
15673 0x13);
15674 WRITE_RADIO_REG4(pi, RADIO_2057,
15675 CORE, coreNum,
15676 IPA2G_IMAIN,
15677 0x1f);
15678 WRITE_RADIO_REG4(pi, RADIO_2057,
15679 CORE, coreNum,
15680 IPA2G_BIAS_FILTER,
15681 0xee);
15682 WRITE_RADIO_REG4(pi, RADIO_2057,
15683 CORE, coreNum,
15684 PAD2G_IDACS,
15685 0x8a);
15686 WRITE_RADIO_REG4(pi, RADIO_2057,
15687 CORE, coreNum,
15688 PAD_BIAS_FILTER_BWS,
15689 0x3e);
15690 }
15691
15692 } else if ((pi->pubpi.radiorev == 7)
15693 || (pi->pubpi.radiorev == 8)) {
15694
15695 if (CHSPEC_IS40(pi->radio_chanspec) ==
15696 0) {
15697 WRITE_RADIO_REG4(pi, RADIO_2057,
15698 CORE, 0,
15699 IPA2G_IMAIN,
15700 0x14);
15701 WRITE_RADIO_REG4(pi, RADIO_2057,
15702 CORE, 1,
15703 IPA2G_IMAIN,
15704 0x12);
15705 } else {
15706 WRITE_RADIO_REG4(pi, RADIO_2057,
15707 CORE, 0,
15708 IPA2G_IMAIN,
15709 0x16);
15710 WRITE_RADIO_REG4(pi, RADIO_2057,
15711 CORE, 1,
15712 IPA2G_IMAIN,
15713 0x16);
15714 }
15715 }
15716
15717 } else {
15718 freq =
15719 CHAN5G_FREQ(CHSPEC_CHANNEL
15720 (pi->radio_chanspec));
15721 if (((freq >= 5180) && (freq <= 5230))
15722 || ((freq >= 5745) && (freq <= 5805))) {
15723 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15724 0, IPA5G_BIAS_FILTER,
15725 0xff);
15726 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15727 1, IPA5G_BIAS_FILTER,
15728 0xff);
15729 }
15730 }
15731 } else {
15732
15733 if (pi->pubpi.radiorev != 5) {
15734 for (coreNum = 0; coreNum <= 1; coreNum++) {
15735 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15736 coreNum,
15737 TXMIX2G_TUNE_BOOST_PU,
15738 0x61);
15739 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15740 coreNum,
15741 TXGM_IDAC_BLEED, 0x70);
15742 }
15743 }
15744 }
15745
15746 if (pi->pubpi.radiorev == 4) {
15747 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15748 0x05, 16,
15749 &afectrl_adc_ctrl1_rev7);
15750 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15751 0x15, 16,
15752 &afectrl_adc_ctrl1_rev7);
15753
15754 for (coreNum = 0; coreNum <= 1; coreNum++) {
15755 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15756 AFE_VCM_CAL_MASTER, 0x0);
15757 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15758 AFE_SET_VCM_I, 0x3f);
15759 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15760 AFE_SET_VCM_Q, 0x3f);
15761 }
15762 } else {
15763 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
15764 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
15765 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
15766 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
15767
15768 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
15769 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
15770 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
15771 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
15772
15773 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15774 0x05, 16,
15775 &afectrl_adc_ctrl2_rev7);
15776 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15777 0x15, 16,
15778 &afectrl_adc_ctrl2_rev7);
15779
15780 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
15781 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
15782 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
15783 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
15784 }
15785
15786 write_phy_reg(pi, 0x6a, 0x2);
15787
15788 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
15789 &min_nvar_offset_6mbps);
15790
15791 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
15792 &rfseq_pktgn_lpf_hpc_rev7);
15793
15794 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
15795 &rfseq_pktgn_lpf_h_hpc_rev7);
15796
15797 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
15798 &rfseq_htpktgn_lpf_hpc_rev7);
15799
15800 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
15801 &rfseq_cckpktgn_lpf_hpc_rev7);
15802
15803 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
15804 &rfseq_tx2rx_lpf_h_hpc_rev7);
15805
15806 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
15807 &rfseq_rx2tx_lpf_h_hpc_rev7);
15808
15809 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15810 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15811 32, &min_nvar_val);
15812 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15813 127, 32, &min_nvar_val);
15814 } else {
15815 min_nvar_val = noise_var_tbl_rev7[3];
15816 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15817 32, &min_nvar_val);
15818
15819 min_nvar_val = noise_var_tbl_rev7[127];
15820 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15821 127, 32, &min_nvar_val);
15822 }
15823
15824 wlc_phy_workarounds_nphy_gainctrl(pi);
15825
15826 pdetrange =
15827 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15828 pdetrange : pi->srom_fem2g.pdetrange;
15829
15830 if (pdetrange == 0) {
15831 chan_freq_range =
15832 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15833 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15834 aux_adc_vmid_rev7_core0[3] = 0x70;
15835 aux_adc_vmid_rev7_core1[3] = 0x70;
15836 aux_adc_gain_rev7[3] = 2;
15837 } else {
15838 aux_adc_vmid_rev7_core0[3] = 0x80;
15839 aux_adc_vmid_rev7_core1[3] = 0x80;
15840 aux_adc_gain_rev7[3] = 3;
15841 }
15842 } else if (pdetrange == 1) {
15843 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15844 aux_adc_vmid_rev7_core0[3] = 0x7c;
15845 aux_adc_vmid_rev7_core1[3] = 0x7c;
15846 aux_adc_gain_rev7[3] = 2;
15847 } else {
15848 aux_adc_vmid_rev7_core0[3] = 0x8c;
15849 aux_adc_vmid_rev7_core1[3] = 0x8c;
15850 aux_adc_gain_rev7[3] = 1;
15851 }
15852 } else if (pdetrange == 2) {
15853 if (pi->pubpi.radioid == BCM2057_ID) {
15854 if ((pi->pubpi.radiorev == 5)
15855 || (pi->pubpi.radiorev == 7)
15856 || (pi->pubpi.radiorev == 8)) {
15857 if (chan_freq_range ==
15858 WL_CHAN_FREQ_RANGE_2G) {
15859 aux_adc_vmid_rev7_core0[3] =
15860 0x8c;
15861 aux_adc_vmid_rev7_core1[3] =
15862 0x8c;
15863 aux_adc_gain_rev7[3] = 0;
15864 } else {
15865 aux_adc_vmid_rev7_core0[3] =
15866 0x96;
15867 aux_adc_vmid_rev7_core1[3] =
15868 0x96;
15869 aux_adc_gain_rev7[3] = 0;
15870 }
15871 }
15872 }
15873
15874 } else if (pdetrange == 3) {
15875 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
15876 aux_adc_vmid_rev7_core0[3] = 0x89;
15877 aux_adc_vmid_rev7_core1[3] = 0x89;
15878 aux_adc_gain_rev7[3] = 0;
15879 }
15880
15881 } else if (pdetrange == 5) {
15882
15883 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15884 aux_adc_vmid_rev7_core0[3] = 0x80;
15885 aux_adc_vmid_rev7_core1[3] = 0x80;
15886 aux_adc_gain_rev7[3] = 3;
15887 } else {
15888 aux_adc_vmid_rev7_core0[3] = 0x70;
15889 aux_adc_vmid_rev7_core1[3] = 0x70;
15890 aux_adc_gain_rev7[3] = 2;
15891 }
15892 }
15893
15894 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
15895 &aux_adc_vmid_rev7_core0);
15896 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
15897 &aux_adc_vmid_rev7_core1);
15898 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
15899 &aux_adc_gain_rev7);
15900 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
15901 &aux_adc_gain_rev7);
15902
15903 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15904
15905 write_phy_reg(pi, 0x23f, 0x1f8);
15906 write_phy_reg(pi, 0x240, 0x1f8);
15907
15908 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15909 1, 0, 32, &leg_data_weights);
15910 leg_data_weights = leg_data_weights & 0xffffff;
15911 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15912 1, 0, 32, &leg_data_weights);
15913
15914 alpha0 = 293;
15915 alpha1 = 435;
15916 alpha2 = 261;
15917 beta0 = 366;
15918 beta1 = 205;
15919 beta2 = 32;
15920 write_phy_reg(pi, 0x145, alpha0);
15921 write_phy_reg(pi, 0x146, alpha1);
15922 write_phy_reg(pi, 0x147, alpha2);
15923 write_phy_reg(pi, 0x148, beta0);
15924 write_phy_reg(pi, 0x149, beta1);
15925 write_phy_reg(pi, 0x14a, beta2);
15926
15927 write_phy_reg(pi, 0x38, 0xC);
15928 write_phy_reg(pi, 0x2ae, 0xC);
15929
15930 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
15931 rfseq_tx2rx_events_rev3,
15932 rfseq_tx2rx_dlys_rev3,
15933 sizeof(rfseq_tx2rx_events_rev3) /
15934 sizeof(rfseq_tx2rx_events_rev3[0]));
15935
15936 if (PHY_IPA(pi)) {
15937 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15938 rfseq_rx2tx_events_rev3_ipa,
15939 rfseq_rx2tx_dlys_rev3_ipa,
15940 sizeof
15941 (rfseq_rx2tx_events_rev3_ipa) /
15942 sizeof
15943 (rfseq_rx2tx_events_rev3_ipa
15944 [0]));
15945 }
15946
15947 if ((pi->sh->hw_phyrxchain != 0x3) &&
15948 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15949
15950 if (PHY_IPA(pi)) {
15951 rfseq_rx2tx_dlys_rev3[5] = 59;
15952 rfseq_rx2tx_dlys_rev3[6] = 1;
15953 rfseq_rx2tx_events_rev3[7] =
15954 NPHY_REV3_RFSEQ_CMD_END;
15955 }
15956
15957 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15958 rfseq_rx2tx_events_rev3,
15959 rfseq_rx2tx_dlys_rev3,
15960 sizeof(rfseq_rx2tx_events_rev3) /
15961 sizeof(rfseq_rx2tx_events_rev3
15962 [0]));
15963 }
15964
15965 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15966 write_phy_reg(pi, 0x6a, 0x2);
15967 } else {
15968 write_phy_reg(pi, 0x6a, 0x9c40);
15969 }
15970
15971 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
15972
15973 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15974 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15975 32, &min_nvar_val);
15976 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15977 127, 32, &min_nvar_val);
15978 } else {
15979 min_nvar_val = noise_var_tbl_rev3[3];
15980 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15981 32, &min_nvar_val);
15982
15983 min_nvar_val = noise_var_tbl_rev3[127];
15984 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15985 127, 32, &min_nvar_val);
15986 }
15987
15988 wlc_phy_workarounds_nphy_gainctrl(pi);
15989
15990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15991 &dac_control);
15992 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15993 &dac_control);
15994
15995 pdetrange =
15996 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15997 pdetrange : pi->srom_fem2g.pdetrange;
15998
15999 if (pdetrange == 0) {
16000 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16001 aux_adc_vmid = aux_adc_vmid_rev4;
16002 aux_adc_gain = aux_adc_gain_rev4;
16003 } else {
16004 aux_adc_vmid = aux_adc_vmid_rev3;
16005 aux_adc_gain = aux_adc_gain_rev3;
16006 }
16007 chan_freq_range =
16008 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16009 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16010 switch (chan_freq_range) {
16011 case WL_CHAN_FREQ_RANGE_5GL:
16012 aux_adc_vmid[3] = 0x89;
16013 aux_adc_gain[3] = 0;
16014 break;
16015 case WL_CHAN_FREQ_RANGE_5GM:
16016 aux_adc_vmid[3] = 0x89;
16017 aux_adc_gain[3] = 0;
16018 break;
16019 case WL_CHAN_FREQ_RANGE_5GH:
16020 aux_adc_vmid[3] = 0x89;
16021 aux_adc_gain[3] = 0;
16022 break;
16023 default:
16024 break;
16025 }
16026 }
16027 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16028 0x08, 16, aux_adc_vmid);
16029 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16030 0x18, 16, aux_adc_vmid);
16031 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16032 0x0c, 16, aux_adc_gain);
16033 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16034 0x1c, 16, aux_adc_gain);
16035 } else if (pdetrange == 1) {
16036 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16037 0x08, 16, sk_adc_vmid);
16038 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16039 0x18, 16, sk_adc_vmid);
16040 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16041 0x0c, 16, sk_adc_gain);
16042 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16043 0x1c, 16, sk_adc_gain);
16044 } else if (pdetrange == 2) {
16045
16046 uint16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16047 uint16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
16048
16049 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16050 chan_freq_range =
16051 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16052 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16053 bcm_adc_vmid[3] = 0x8e;
16054 bcm_adc_gain[3] = 0x03;
16055 } else {
16056 bcm_adc_vmid[3] = 0x94;
16057 bcm_adc_gain[3] = 0x03;
16058 }
16059 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16060 bcm_adc_vmid[3] = 0x84;
16061 bcm_adc_gain[3] = 0x02;
16062 }
16063
16064 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16065 0x08, 16, bcm_adc_vmid);
16066 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16067 0x18, 16, bcm_adc_vmid);
16068 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16069 0x0c, 16, bcm_adc_gain);
16070 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16071 0x1c, 16, bcm_adc_gain);
16072 } else if (pdetrange == 3) {
16073 chan_freq_range =
16074 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16075 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16076 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16077
e5c4536f
JC
16078 uint16 auxadc_vmid[] = {
16079 0xa2, 0xb4, 0xb4, 0x270 };
16080 uint16 auxadc_gain[] = {
16081 0x02, 0x02, 0x02, 0x00 };
a9533e7e
HP
16082
16083 wlc_phy_table_write_nphy(pi,
16084 NPHY_TBL_ID_AFECTRL, 4,
16085 0x08, 16, auxadc_vmid);
16086 wlc_phy_table_write_nphy(pi,
16087 NPHY_TBL_ID_AFECTRL, 4,
16088 0x18, 16, auxadc_vmid);
16089 wlc_phy_table_write_nphy(pi,
16090 NPHY_TBL_ID_AFECTRL, 4,
16091 0x0c, 16, auxadc_gain);
16092 wlc_phy_table_write_nphy(pi,
16093 NPHY_TBL_ID_AFECTRL, 4,
16094 0x1c, 16, auxadc_gain);
16095 }
16096 } else if ((pdetrange == 4) || (pdetrange == 5)) {
16097 uint16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16098 uint16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16099 uint16 Vmid[2], Av[2];
16100
16101 chan_freq_range =
16102 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16103 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16104 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16105 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16106 Av[0] = (pdetrange == 4) ? 2 : 0;
16107 Av[1] = (pdetrange == 4) ? 2 : 0;
16108 } else {
16109 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16110 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16111 Av[0] = (pdetrange == 4) ? 2 : 0;
16112 Av[1] = (pdetrange == 4) ? 2 : 0;
16113 }
16114
16115 bcm_adc_vmid[3] = Vmid[0];
16116 bcm_adc_gain[3] = Av[0];
16117 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16118 0x08, 16, bcm_adc_vmid);
16119 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16120 0x0c, 16, bcm_adc_gain);
16121
16122 bcm_adc_vmid[3] = Vmid[1];
16123 bcm_adc_gain[3] = Av[1];
16124 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16125 0x18, 16, bcm_adc_vmid);
16126 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16127 0x1c, 16, bcm_adc_gain);
16128 } else {
16129 ASSERT(0);
16130 }
16131
16132 write_radio_reg(pi,
16133 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16134 0x0);
16135 write_radio_reg(pi,
16136 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16137 0x0);
16138
16139 write_radio_reg(pi,
16140 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16141 0x6);
16142 write_radio_reg(pi,
16143 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16144 0x6);
16145
16146 write_radio_reg(pi,
16147 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16148 0x7);
16149 write_radio_reg(pi,
16150 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16151 0x7);
16152
16153 write_radio_reg(pi,
16154 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16155 0x88);
16156 write_radio_reg(pi,
16157 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16158 0x88);
16159
16160 write_radio_reg(pi,
16161 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16162 0x0);
16163 write_radio_reg(pi,
16164 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16165 0x0);
16166
16167 write_radio_reg(pi,
16168 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16169 0x0);
16170 write_radio_reg(pi,
16171 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16172 0x0);
16173
16174 triso =
16175 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16176 triso : pi->srom_fem2g.triso;
16177 if (triso == 7) {
16178 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16179 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16180 }
16181
16182 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16183
16184 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16185 (CHSPEC_IS5G(pi->radio_chanspec))) ||
16186 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16187 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16188 (CHSPEC_IS2G(pi->radio_chanspec)))) {
16189 nss1_data_weights = 0x00088888;
16190 ht_data_weights = 0x00088888;
16191 stbc_data_weights = 0x00088888;
16192 } else {
16193 nss1_data_weights = 0x88888888;
16194 ht_data_weights = 0x88888888;
16195 stbc_data_weights = 0x88888888;
16196 }
16197 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16198 1, 1, 32, &nss1_data_weights);
16199 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16200 1, 2, 32, &ht_data_weights);
16201 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16202 1, 3, 32, &stbc_data_weights);
16203
16204 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16205 if (CHSPEC_IS5G(pi->radio_chanspec)) {
16206 write_radio_reg(pi,
16207 RADIO_2056_TX_GMBB_IDAC |
16208 RADIO_2056_TX0, 0x70);
16209 write_radio_reg(pi,
16210 RADIO_2056_TX_GMBB_IDAC |
16211 RADIO_2056_TX1, 0x70);
16212 }
16213 }
16214
16215 if (!pi->edcrs_threshold_lock) {
16216 write_phy_reg(pi, 0x224, 0x3eb);
16217 write_phy_reg(pi, 0x225, 0x3eb);
16218 write_phy_reg(pi, 0x226, 0x341);
16219 write_phy_reg(pi, 0x227, 0x341);
16220 write_phy_reg(pi, 0x228, 0x42b);
16221 write_phy_reg(pi, 0x229, 0x42b);
16222 write_phy_reg(pi, 0x22a, 0x381);
16223 write_phy_reg(pi, 0x22b, 0x381);
16224 write_phy_reg(pi, 0x22c, 0x42b);
16225 write_phy_reg(pi, 0x22d, 0x42b);
16226 write_phy_reg(pi, 0x22e, 0x381);
16227 write_phy_reg(pi, 0x22f, 0x381);
16228 }
16229
16230 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16231
16232 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK) {
16233 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16234 MHF4_BPHY_TXCORE0,
16235 MHF4_BPHY_TXCORE0, WLC_BAND_ALL);
16236 }
16237 }
16238 } else {
16239
16240 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16241 (pi->sh->boardtype == 0x8b)) {
16242 uint i;
16243 uint8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
16244 for (i = 0; i < ARRAYSIZE(rfseq_rx2tx_dlys); i++)
16245 rfseq_rx2tx_dlys[i] = war_dlys[i];
16246 }
16247
16248 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16249 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16250 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16251 } else {
16252 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16253 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16254 }
16255
16256 regval = 0x000a;
16257 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16258 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16259
16260 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16261 regval = 0xcdaa;
16262 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16263 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16264 }
16265
16266 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16267 regval = 0x0000;
16268 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16269 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16270
16271 regval = 0x7aab;
16272 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16273 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16274
16275 regval = 0x0800;
16276 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16277 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
16278 }
16279
16280 write_phy_reg(pi, 0xf8, 0x02d8);
16281 write_phy_reg(pi, 0xf9, 0x0301);
16282 write_phy_reg(pi, 0xfa, 0x02d8);
16283 write_phy_reg(pi, 0xfb, 0x0301);
16284
16285 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16286 rfseq_rx2tx_dlys,
16287 sizeof(rfseq_rx2tx_events) /
16288 sizeof(rfseq_rx2tx_events[0]));
16289
16290 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16291 rfseq_tx2rx_dlys,
16292 sizeof(rfseq_tx2rx_events) /
16293 sizeof(rfseq_tx2rx_events[0]));
16294
16295 wlc_phy_workarounds_nphy_gainctrl(pi);
16296
16297 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16298
16299 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16300 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16301 MHF3_NPHY_MLADV_WAR,
16302 MHF3_NPHY_MLADV_WAR,
16303 WLC_BAND_ALL);
16304
16305 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16306 write_phy_reg(pi, 0x1e3, 0x0);
16307 write_phy_reg(pi, 0x1e4, 0x0);
16308 }
16309
16310 if (NREV_LT(pi->pubpi.phy_rev, 2))
16311 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
16312
16313 alpha0 = 293;
16314 alpha1 = 435;
16315 alpha2 = 261;
16316 beta0 = 366;
16317 beta1 = 205;
16318 beta2 = 32;
16319 write_phy_reg(pi, 0x145, alpha0);
16320 write_phy_reg(pi, 0x146, alpha1);
16321 write_phy_reg(pi, 0x147, alpha2);
16322 write_phy_reg(pi, 0x148, beta0);
16323 write_phy_reg(pi, 0x149, beta1);
16324 write_phy_reg(pi, 0x14a, beta2);
16325
16326 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16327 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
16328
16329 write_phy_reg(pi, 0x192, 0xb5);
16330 write_phy_reg(pi, 0x193, 0xa4);
16331 write_phy_reg(pi, 0x194, 0x0);
16332 }
16333
16334 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16335 mod_phy_reg(pi, 0x221,
16336 NPHY_FORCESIG_DECODEGATEDCLKS,
16337 NPHY_FORCESIG_DECODEGATEDCLKS);
16338 }
16339 }
16340
16341 if (pi->phyhang_avoid)
16342 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
16343}
16344
7cc4a4c0 16345static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi)
a9533e7e
HP
16346{
16347 uint16 w1th, hpf_code, currband;
16348 int ctr;
16349 uint8 rfseq_updategainu_events[] = {
16350 NPHY_RFSEQ_CMD_RX_GAIN,
16351 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16352 NPHY_RFSEQ_CMD_SET_HPF_BW
16353 };
16354 uint8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
16355 int8 lna1G_gain_db[] = { 7, 11, 16, 23 };
16356 int8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
16357 int8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
16358 int8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
16359 int8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
16360 int8 lna1A_gain_db[] = { 7, 11, 17, 23 };
16361 int8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
16362 int8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
16363 int8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
16364 int8 *lna1_gain_db = NULL;
16365 int8 lna2G_gain_db[] = { -5, 6, 10, 14 };
16366 int8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
16367 int8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
16368 int8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
16369 int8 lna2A_gain_db[] = { -6, 2, 6, 10 };
16370 int8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
16371 int8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
16372 int8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
16373 int8 *lna2_gain_db = NULL;
e5c4536f
JC
16374 int8 tiaG_gain_db[] = {
16375 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
16376 int8 tiaA_gain_db[] = {
16377 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
16378 int8 tiaA_gain_db_rev4[] = {
16379 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16380 int8 tiaA_gain_db_rev5[] = {
16381 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
16382 int8 tiaA_gain_db_rev6[] = {
16383 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
a9533e7e 16384 int8 *tia_gain_db;
e5c4536f
JC
16385 int8 tiaG_gainbits[] = {
16386 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
16387 int8 tiaA_gainbits[] = {
16388 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
16389 int8 tiaA_gainbits_rev4[] = {
16390 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16391 int8 tiaA_gainbits_rev5[] = {
16392 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
16393 int8 tiaA_gainbits_rev6[] = {
16394 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
a9533e7e
HP
16395 int8 *tia_gainbits;
16396 int8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16397 int8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
16398 uint16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16399 uint16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16400 uint16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
e5c4536f
JC
16401 uint16 rfseqG_init_gain_rev5_elna[] = {
16402 0x013f, 0x013f, 0x013f, 0x013f };
a9533e7e
HP
16403 uint16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
16404 uint16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
16405 uint16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
16406 uint16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16407 uint16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
e5c4536f
JC
16408 uint16 rfseqA_init_gain_rev4_elna[] = {
16409 0x314f, 0x314f, 0x314f, 0x314f };
a9533e7e
HP
16410 uint16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16411 uint16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
16412 uint16 *rfseq_init_gain;
16413 uint16 initG_gaincode = 0x627e;
16414 uint16 initG_gaincode_rev4 = 0x527e;
16415 uint16 initG_gaincode_rev5 = 0x427e;
16416 uint16 initG_gaincode_rev5_elna = 0x027e;
16417 uint16 initG_gaincode_rev6 = 0x527e;
16418 uint16 initG_gaincode_rev6_224B0 = 0x427e;
16419 uint16 initG_gaincode_rev6_elna = 0x127e;
16420 uint16 initA_gaincode = 0x52de;
16421 uint16 initA_gaincode_rev4 = 0x629e;
16422 uint16 initA_gaincode_rev4_elna = 0x329e;
16423 uint16 initA_gaincode_rev5 = 0x729e;
16424 uint16 initA_gaincode_rev6 = 0x729e;
16425 uint16 init_gaincode;
16426 uint16 clip1hiG_gaincode = 0x107e;
16427 uint16 clip1hiG_gaincode_rev4 = 0x007e;
16428 uint16 clip1hiG_gaincode_rev5 = 0x1076;
16429 uint16 clip1hiG_gaincode_rev6 = 0x007e;
16430 uint16 clip1hiA_gaincode = 0x00de;
16431 uint16 clip1hiA_gaincode_rev4 = 0x029e;
16432 uint16 clip1hiA_gaincode_rev5 = 0x029e;
16433 uint16 clip1hiA_gaincode_rev6 = 0x029e;
16434 uint16 clip1hi_gaincode;
16435 uint16 clip1mdG_gaincode = 0x0066;
16436 uint16 clip1mdA_gaincode = 0x00ca;
16437 uint16 clip1mdA_gaincode_rev4 = 0x1084;
16438 uint16 clip1mdA_gaincode_rev5 = 0x2084;
16439 uint16 clip1mdA_gaincode_rev6 = 0x2084;
16440 uint16 clip1md_gaincode = 0;
16441 uint16 clip1loG_gaincode = 0x0074;
16442 uint16 clip1loG_gaincode_rev5[] = {
16443 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16444 };
16445 uint16 clip1loG_gaincode_rev6[] = {
16446 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16447 };
16448 uint16 clip1loG_gaincode_rev6_224B0 = 0x1074;
16449 uint16 clip1loA_gaincode = 0x00cc;
16450 uint16 clip1loA_gaincode_rev4 = 0x0086;
16451 uint16 clip1loA_gaincode_rev5 = 0x2086;
16452 uint16 clip1loA_gaincode_rev6 = 0x2086;
16453 uint16 clip1lo_gaincode;
16454 uint8 crsminG_th = 0x18;
16455 uint8 crsminG_th_rev5 = 0x18;
16456 uint8 crsminG_th_rev6 = 0x18;
16457 uint8 crsminA_th = 0x1e;
16458 uint8 crsminA_th_rev4 = 0x24;
16459 uint8 crsminA_th_rev5 = 0x24;
16460 uint8 crsminA_th_rev6 = 0x24;
16461 uint8 crsmin_th;
16462 uint8 crsminlG_th = 0x18;
16463 uint8 crsminlG_th_rev5 = 0x18;
16464 uint8 crsminlG_th_rev6 = 0x18;
16465 uint8 crsminlA_th = 0x1e;
16466 uint8 crsminlA_th_rev4 = 0x24;
16467 uint8 crsminlA_th_rev5 = 0x24;
16468 uint8 crsminlA_th_rev6 = 0x24;
16469 uint8 crsminl_th = 0;
16470 uint8 crsminuG_th = 0x18;
16471 uint8 crsminuG_th_rev5 = 0x18;
16472 uint8 crsminuG_th_rev6 = 0x18;
16473 uint8 crsminuA_th = 0x1e;
16474 uint8 crsminuA_th_rev4 = 0x24;
16475 uint8 crsminuA_th_rev5 = 0x24;
16476 uint8 crsminuA_th_rev6 = 0x24;
16477 uint8 crsminuA_th_rev6_224B0 = 0x2d;
16478 uint8 crsminu_th;
16479 uint16 nbclipG_th = 0x20d;
16480 uint16 nbclipG_th_rev4 = 0x1a1;
16481 uint16 nbclipG_th_rev5 = 0x1d0;
16482 uint16 nbclipG_th_rev6 = 0x1d0;
16483 uint16 nbclipA_th = 0x1a1;
16484 uint16 nbclipA_th_rev4 = 0x107;
16485 uint16 nbclipA_th_rev5 = 0x0a9;
16486 uint16 nbclipA_th_rev6 = 0x0f0;
16487 uint16 nbclip_th = 0;
16488 uint8 w1clipG_th = 5;
16489 uint8 w1clipG_th_rev5 = 9;
16490 uint8 w1clipG_th_rev6 = 5;
16491 uint8 w1clipA_th = 25, w1clip_th;
16492 uint8 rssi_gain_default = 0x50;
16493 uint8 rssiG_gain_rev6_224B0 = 0x50;
16494 uint8 rssiA_gain_rev5 = 0x90;
16495 uint8 rssiA_gain_rev6 = 0x90;
16496 uint8 rssi_gain;
16497 uint16 regval[21];
16498 uint8 triso;
16499
16500 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
16501 pi->srom_fem2g.triso;
16502
16503 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16504 if (pi->pubpi.radiorev == 5) {
16505
16506 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
16507 } else if (pi->pubpi.radiorev == 7) {
16508 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16509
16510 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
16511 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
16512
16513 } else if ((pi->pubpi.radiorev == 3)
16514 || (pi->pubpi.radiorev == 8)) {
16515 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16516
16517 if (pi->pubpi.radiorev == 8) {
16518 mod_phy_reg(pi, 0x283,
16519 (0xff << 0), (0x44 << 0));
16520 mod_phy_reg(pi, 0x280,
16521 (0xff << 0), (0x44 << 0));
16522 }
16523 } else {
16524 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16525 }
16526 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16527
16528 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
16529
16530 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16531 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16532
16533 currband =
16534 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
16535 if (currband == 0) {
16536 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16537 if (pi->pubpi.radiorev == 11) {
16538 lna1_gain_db = lna1G_gain_db_rev6_224B0;
16539 lna2_gain_db = lna2G_gain_db_rev6_224B0;
16540 rfseq_init_gain =
16541 rfseqG_init_gain_rev6_224B0;
16542 init_gaincode =
16543 initG_gaincode_rev6_224B0;
16544 clip1hi_gaincode =
16545 clip1hiG_gaincode_rev6;
16546 clip1lo_gaincode =
16547 clip1loG_gaincode_rev6_224B0;
16548 nbclip_th = nbclipG_th_rev6;
16549 w1clip_th = w1clipG_th_rev6;
16550 crsmin_th = crsminG_th_rev6;
16551 crsminl_th = crsminlG_th_rev6;
16552 crsminu_th = crsminuG_th_rev6;
16553 rssi_gain = rssiG_gain_rev6_224B0;
16554 } else {
16555 lna1_gain_db = lna1G_gain_db_rev6;
16556 lna2_gain_db = lna2G_gain_db_rev6;
16557 if (pi->sh->boardflags & BFL_EXTLNA) {
16558
16559 rfseq_init_gain =
16560 rfseqG_init_gain_rev6_elna;
16561 init_gaincode =
16562 initG_gaincode_rev6_elna;
16563 } else {
16564 rfseq_init_gain =
16565 rfseqG_init_gain_rev6;
16566 init_gaincode =
16567 initG_gaincode_rev6;
16568 }
16569 clip1hi_gaincode =
16570 clip1hiG_gaincode_rev6;
16571 switch (triso) {
16572 case 0:
16573 clip1lo_gaincode =
16574 clip1loG_gaincode_rev6[0];
16575 break;
16576 case 1:
16577 clip1lo_gaincode =
16578 clip1loG_gaincode_rev6[1];
16579 break;
16580 case 2:
16581 clip1lo_gaincode =
16582 clip1loG_gaincode_rev6[2];
16583 break;
16584 case 3:
16585 default:
16586
16587 clip1lo_gaincode =
16588 clip1loG_gaincode_rev6[3];
16589 break;
16590 case 4:
16591 clip1lo_gaincode =
16592 clip1loG_gaincode_rev6[4];
16593 break;
16594 case 5:
16595 clip1lo_gaincode =
16596 clip1loG_gaincode_rev6[5];
16597 break;
16598 case 6:
16599 clip1lo_gaincode =
16600 clip1loG_gaincode_rev6[6];
16601 break;
16602 case 7:
16603 clip1lo_gaincode =
16604 clip1loG_gaincode_rev6[7];
16605 break;
16606 }
16607 nbclip_th = nbclipG_th_rev6;
16608 w1clip_th = w1clipG_th_rev6;
16609 crsmin_th = crsminG_th_rev6;
16610 crsminl_th = crsminlG_th_rev6;
16611 crsminu_th = crsminuG_th_rev6;
16612 rssi_gain = rssi_gain_default;
16613 }
16614 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16615 lna1_gain_db = lna1G_gain_db_rev5;
16616 lna2_gain_db = lna2G_gain_db_rev5;
16617 if (pi->sh->boardflags & BFL_EXTLNA) {
16618
16619 rfseq_init_gain =
16620 rfseqG_init_gain_rev5_elna;
16621 init_gaincode =
16622 initG_gaincode_rev5_elna;
16623 } else {
16624 rfseq_init_gain = rfseqG_init_gain_rev5;
16625 init_gaincode = initG_gaincode_rev5;
16626 }
16627 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16628 switch (triso) {
16629 case 0:
16630 clip1lo_gaincode =
16631 clip1loG_gaincode_rev5[0];
16632 break;
16633 case 1:
16634 clip1lo_gaincode =
16635 clip1loG_gaincode_rev5[1];
16636 break;
16637 case 2:
16638 clip1lo_gaincode =
16639 clip1loG_gaincode_rev5[2];
16640 break;
16641 case 3:
16642
16643 clip1lo_gaincode =
16644 clip1loG_gaincode_rev5[3];
16645 break;
16646 case 4:
16647 clip1lo_gaincode =
16648 clip1loG_gaincode_rev5[4];
16649 break;
16650 case 5:
16651 clip1lo_gaincode =
16652 clip1loG_gaincode_rev5[5];
16653 break;
16654 case 6:
16655 clip1lo_gaincode =
16656 clip1loG_gaincode_rev5[6];
16657 break;
16658 case 7:
16659 clip1lo_gaincode =
16660 clip1loG_gaincode_rev5[7];
16661 break;
16662 default:
16663 clip1lo_gaincode =
16664 clip1loG_gaincode_rev5[3];
16665 break;
16666 }
16667 nbclip_th = nbclipG_th_rev5;
16668 w1clip_th = w1clipG_th_rev5;
16669 crsmin_th = crsminG_th_rev5;
16670 crsminl_th = crsminlG_th_rev5;
16671 crsminu_th = crsminuG_th_rev5;
16672 rssi_gain = rssi_gain_default;
16673 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16674 lna1_gain_db = lna1G_gain_db_rev4;
16675 lna2_gain_db = lna2G_gain_db;
16676 rfseq_init_gain = rfseqG_init_gain_rev4;
16677 init_gaincode = initG_gaincode_rev4;
16678 clip1hi_gaincode = clip1hiG_gaincode_rev4;
16679 clip1lo_gaincode = clip1loG_gaincode;
16680 nbclip_th = nbclipG_th_rev4;
16681 w1clip_th = w1clipG_th;
16682 crsmin_th = crsminG_th;
16683 crsminl_th = crsminlG_th;
16684 crsminu_th = crsminuG_th;
16685 rssi_gain = rssi_gain_default;
16686 } else {
16687 lna1_gain_db = lna1G_gain_db;
16688 lna2_gain_db = lna2G_gain_db;
16689 rfseq_init_gain = rfseqG_init_gain;
16690 init_gaincode = initG_gaincode;
16691 clip1hi_gaincode = clip1hiG_gaincode;
16692 clip1lo_gaincode = clip1loG_gaincode;
16693 nbclip_th = nbclipG_th;
16694 w1clip_th = w1clipG_th;
16695 crsmin_th = crsminG_th;
16696 crsminl_th = crsminlG_th;
16697 crsminu_th = crsminuG_th;
16698 rssi_gain = rssi_gain_default;
16699 }
16700 tia_gain_db = tiaG_gain_db;
16701 tia_gainbits = tiaG_gainbits;
16702 clip1md_gaincode = clip1mdG_gaincode;
16703 } else {
16704 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16705 lna1_gain_db = lna1A_gain_db_rev6;
16706 lna2_gain_db = lna2A_gain_db_rev6;
16707 tia_gain_db = tiaA_gain_db_rev6;
16708 tia_gainbits = tiaA_gainbits_rev6;
16709 rfseq_init_gain = rfseqA_init_gain_rev6;
16710 init_gaincode = initA_gaincode_rev6;
16711 clip1hi_gaincode = clip1hiA_gaincode_rev6;
16712 clip1md_gaincode = clip1mdA_gaincode_rev6;
16713 clip1lo_gaincode = clip1loA_gaincode_rev6;
16714 crsmin_th = crsminA_th_rev6;
16715 crsminl_th = crsminlA_th_rev6;
16716 if ((pi->pubpi.radiorev == 11) &&
16717 (CHSPEC_IS40(pi->radio_chanspec) == 0)) {
16718 crsminu_th = crsminuA_th_rev6_224B0;
16719 } else {
16720 crsminu_th = crsminuA_th_rev6;
16721 }
16722 nbclip_th = nbclipA_th_rev6;
16723 rssi_gain = rssiA_gain_rev6;
16724 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16725 lna1_gain_db = lna1A_gain_db_rev5;
16726 lna2_gain_db = lna2A_gain_db_rev5;
16727 tia_gain_db = tiaA_gain_db_rev5;
16728 tia_gainbits = tiaA_gainbits_rev5;
16729 rfseq_init_gain = rfseqA_init_gain_rev5;
16730 init_gaincode = initA_gaincode_rev5;
16731 clip1hi_gaincode = clip1hiA_gaincode_rev5;
16732 clip1md_gaincode = clip1mdA_gaincode_rev5;
16733 clip1lo_gaincode = clip1loA_gaincode_rev5;
16734 crsmin_th = crsminA_th_rev5;
16735 crsminl_th = crsminlA_th_rev5;
16736 crsminu_th = crsminuA_th_rev5;
16737 nbclip_th = nbclipA_th_rev5;
16738 rssi_gain = rssiA_gain_rev5;
16739 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16740 lna1_gain_db = lna1A_gain_db_rev4;
16741 lna2_gain_db = lna2A_gain_db_rev4;
16742 tia_gain_db = tiaA_gain_db_rev4;
16743 tia_gainbits = tiaA_gainbits_rev4;
16744 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
16745
16746 rfseq_init_gain =
16747 rfseqA_init_gain_rev4_elna;
16748 init_gaincode =
16749 initA_gaincode_rev4_elna;
16750 } else {
16751 rfseq_init_gain = rfseqA_init_gain_rev4;
16752 init_gaincode = initA_gaincode_rev4;
16753 }
16754 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16755 clip1md_gaincode = clip1mdA_gaincode_rev4;
16756 clip1lo_gaincode = clip1loA_gaincode_rev4;
16757 crsmin_th = crsminA_th_rev4;
16758 crsminl_th = crsminlA_th_rev4;
16759 crsminu_th = crsminuA_th_rev4;
16760 nbclip_th = nbclipA_th_rev4;
16761 rssi_gain = rssi_gain_default;
16762 } else {
16763 lna1_gain_db = lna1A_gain_db;
16764 lna2_gain_db = lna2A_gain_db;
16765 tia_gain_db = tiaA_gain_db;
16766 tia_gainbits = tiaA_gainbits;
16767 rfseq_init_gain = rfseqA_init_gain;
16768 init_gaincode = initA_gaincode;
16769 clip1hi_gaincode = clip1hiA_gaincode;
16770 clip1md_gaincode = clip1mdA_gaincode;
16771 clip1lo_gaincode = clip1loA_gaincode;
16772 crsmin_th = crsminA_th;
16773 crsminl_th = crsminlA_th;
16774 crsminu_th = crsminuA_th;
16775 nbclip_th = nbclipA_th;
16776 rssi_gain = rssi_gain_default;
16777 }
16778 w1clip_th = w1clipA_th;
16779 }
16780
16781 write_radio_reg(pi,
16782 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16783 RADIO_2056_RX0), 0x17);
16784 write_radio_reg(pi,
16785 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16786 RADIO_2056_RX1), 0x17);
16787
16788 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16789 0xf0);
16790 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16791 0xf0);
16792
16793 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16794 0x0);
16795 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16796 0x0);
16797
16798 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16799 rssi_gain);
16800 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16801 rssi_gain);
16802
16803 write_radio_reg(pi,
16804 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16805 RADIO_2056_RX0), 0x17);
16806 write_radio_reg(pi,
16807 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16808 RADIO_2056_RX1), 0x17);
16809
16810 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16811 0xFF);
16812 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16813 0xFF);
16814
16815 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16816 8, lna1_gain_db);
16817 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16818 8, lna1_gain_db);
16819
16820 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16821 8, lna2_gain_db);
16822 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16823 8, lna2_gain_db);
16824
16825 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16826 8, tia_gain_db);
16827 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16828 8, tia_gain_db);
16829
16830 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16831 8, tia_gainbits);
16832 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16833 8, tia_gainbits);
16834
16835 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16836 8, &lpf_gain_db);
16837 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16838 8, &lpf_gain_db);
16839 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16840 8, &lpf_gainbits);
16841 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16842 8, &lpf_gainbits);
16843
16844 write_phy_reg(pi, 0x20, init_gaincode);
16845 write_phy_reg(pi, 0x2a7, init_gaincode);
16846
16847 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16848 pi->pubpi.phy_corenum, 0x106, 16,
16849 rfseq_init_gain);
16850
16851 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16852 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16853
16854 write_phy_reg(pi, 0x24, clip1md_gaincode);
16855 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16856
16857 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16858 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16859
16860 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16861 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16862 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16863
16864 write_phy_reg(pi, 0x2b, nbclip_th);
16865 write_phy_reg(pi, 0x41, nbclip_th);
16866
16867 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16868 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16869
16870 write_phy_reg(pi, 0x150, 0x809c);
16871
16872 } else {
16873
16874 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16875 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16876
16877 write_phy_reg(pi, 0x2b, 0x84);
16878 write_phy_reg(pi, 0x41, 0x84);
16879
16880 if (CHSPEC_IS20(pi->radio_chanspec)) {
16881 write_phy_reg(pi, 0x6b, 0x2b);
16882 write_phy_reg(pi, 0x6c, 0x2b);
16883 write_phy_reg(pi, 0x6d, 0x9);
16884 write_phy_reg(pi, 0x6e, 0x9);
16885 }
16886
16887 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16888 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16889 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16890
16891 if (CHSPEC_IS20(pi->radio_chanspec)) {
16892 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16893 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16894
16895 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16896 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16897 }
16898
16899 write_phy_reg(pi, 0x150, 0x809c);
16900
16901 if (pi->nphy_gain_boost)
16902 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16903 (CHSPEC_IS40(pi->radio_chanspec)))
16904 hpf_code = 4;
16905 else
16906 hpf_code = 5;
16907 else if (CHSPEC_IS40(pi->radio_chanspec))
16908 hpf_code = 6;
16909 else
16910 hpf_code = 7;
16911
16912 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16913 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16914
16915 for (ctr = 0; ctr < 4; ctr++) {
16916 regval[ctr] = (hpf_code << 8) | 0x7c;
16917 }
16918 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16919
16920 wlc_phy_adjust_lnagaintbl_nphy(pi);
16921
16922 if (pi->nphy_elna_gain_config) {
16923 regval[0] = 0;
16924 regval[1] = 1;
16925 regval[2] = 1;
16926 regval[3] = 1;
16927 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16928 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16929
16930 for (ctr = 0; ctr < 4; ctr++) {
16931 regval[ctr] = (hpf_code << 8) | 0x74;
16932 }
16933 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16934 }
16935
16936 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16937 for (ctr = 0; ctr < 21; ctr++) {
16938 regval[ctr] = 3 * ctr;
16939 }
16940 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16941 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16942
16943 for (ctr = 0; ctr < 21; ctr++) {
16944 regval[ctr] = (uint16) ctr;
16945 }
16946 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16947 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16948 }
16949
16950 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16951 rfseq_updategainu_events,
16952 rfseq_updategainu_dlys,
16953 sizeof(rfseq_updategainu_events) /
16954 sizeof(rfseq_updategainu_events[0]));
16955
16956 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16957
16958 if (CHSPEC_IS2G(pi->radio_chanspec))
16959 mod_phy_reg(pi,
16960 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16961 0x7f, 0x4);
16962 }
16963}
16964
7cc4a4c0 16965static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi)
a9533e7e
HP
16966{
16967 int8 lna1_gain_db[] = { 8, 13, 17, 22 };
16968 int8 lna2_gain_db[] = { -2, 7, 11, 15 };
16969 int8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
e5c4536f
JC
16970 int8 tia_gainbits[] = {
16971 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
a9533e7e
HP
16972
16973 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16974 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16975
16976 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
16977
16978 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
16979 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
16980
16981 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
16982 lna1_gain_db);
16983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16984 lna1_gain_db);
16985
16986 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16987 lna2_gain_db);
16988 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16989 lna2_gain_db);
16990
16991 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16992 tia_gain_db);
16993 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
16994 tia_gain_db);
16995
16996 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
16997 tia_gainbits);
16998 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
16999 tia_gainbits);
17000
17001 write_phy_reg(pi, 0x37, 0x74);
17002 write_phy_reg(pi, 0x2ad, 0x74);
17003 write_phy_reg(pi, 0x38, 0x18);
17004 write_phy_reg(pi, 0x2ae, 0x18);
17005
17006 write_phy_reg(pi, 0x2b, 0xe8);
17007 write_phy_reg(pi, 0x41, 0xe8);
17008
17009 if (CHSPEC_IS20(pi->radio_chanspec)) {
17010
17011 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
17012 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
17013 } else {
17014
17015 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
17016 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
17017 }
17018}
17019
7cc4a4c0 17020static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi)
a9533e7e
HP
17021{
17022 uint16 currband;
17023 int8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
17024 int8 *lna1_gain_db = NULL;
17025 int8 *lna1_gain_db_2 = NULL;
17026 int8 *lna2_gain_db = NULL;
17027 int8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17028 int8 *tia_gain_db;
17029 int8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17030 int8 *tia_gainbits;
17031 uint16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17032 uint16 *rfseq_init_gain;
17033 uint16 init_gaincode;
17034 uint16 clip1hi_gaincode;
17035 uint16 clip1md_gaincode = 0;
17036 uint16 clip1md_gaincode_B;
17037 uint16 clip1lo_gaincode;
17038 uint16 clip1lo_gaincode_B;
17039 uint8 crsminl_th = 0;
17040 uint8 crsminu_th;
17041 uint16 nbclip_th = 0;
17042 uint8 w1clip_th;
17043 uint16 freq;
17044 int8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
17045 uint8 chg_nbclip_th = 0;
17046
17047 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
17048 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
17049
17050 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
17051 if (currband == 0) {
17052
17053 lna1_gain_db = lna1G_gain_db_rev7;
17054
17055 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17056 lna1_gain_db);
17057 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17058 lna1_gain_db);
17059
17060 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
17061
17062 if (CHSPEC_IS40(pi->radio_chanspec)) {
17063 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
17064 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
17065 }
17066
17067 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
17068
17069 if (CHSPEC_IS20(pi->radio_chanspec)) {
17070 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
17071 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
17072 }
17073 } else {
17074
17075 init_gaincode = 0x9e;
17076 clip1hi_gaincode = 0x9e;
17077 clip1md_gaincode_B = 0x24;
17078 clip1lo_gaincode = 0x8a;
17079 clip1lo_gaincode_B = 8;
17080 rfseq_init_gain = rfseqA_init_gain_rev7;
17081
17082 tia_gain_db = tiaA_gain_db_rev7;
17083 tia_gainbits = tiaA_gainbits_rev7;
17084
17085 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
17086 if (CHSPEC_IS20(pi->radio_chanspec)) {
17087
17088 w1clip_th = 25;
17089 clip1md_gaincode = 0x82;
17090
17091 if ((freq <= 5080) || (freq == 5825)) {
17092
17093 int8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
e5c4536f
JC
17094 int8 lna1A_gain_db_2_rev7[] = {
17095 11, 17, 22, 25 };
a9533e7e
HP
17096 int8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17097
17098 crsminu_th = 0x3e;
17099 lna1_gain_db = lna1A_gain_db_rev7;
17100 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17101 lna2_gain_db = lna2A_gain_db_rev7;
17102 } else if ((freq >= 5500) && (freq <= 5700)) {
17103
17104 int8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
e5c4536f
JC
17105 int8 lna1A_gain_db_2_rev7[] = {
17106 12, 18, 22, 26 };
a9533e7e
HP
17107 int8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
17108
17109 crsminu_th = 0x45;
17110 clip1md_gaincode_B = 0x14;
17111 nbclip_th = 0xff;
17112 chg_nbclip_th = 1;
17113 lna1_gain_db = lna1A_gain_db_rev7;
17114 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17115 lna2_gain_db = lna2A_gain_db_rev7;
17116 } else {
17117
17118 int8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
e5c4536f
JC
17119 int8 lna1A_gain_db_2_rev7[] = {
17120 12, 18, 22, 26 };
a9533e7e
HP
17121 int8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
17122
17123 crsminu_th = 0x41;
17124 lna1_gain_db = lna1A_gain_db_rev7;
17125 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17126 lna2_gain_db = lna2A_gain_db_rev7;
17127 }
17128
17129 if (freq <= 4920) {
17130 nvar_baseline_offset0 = 5;
17131 nvar_baseline_offset1 = 5;
17132 } else if ((freq > 4920) && (freq <= 5320)) {
17133 nvar_baseline_offset0 = 3;
17134 nvar_baseline_offset1 = 5;
17135 } else if ((freq > 5320) && (freq <= 5700)) {
17136 nvar_baseline_offset0 = 3;
17137 nvar_baseline_offset1 = 2;
17138 } else {
17139 nvar_baseline_offset0 = 4;
17140 nvar_baseline_offset1 = 0;
17141 }
17142 } else {
17143
17144 crsminu_th = 0x3a;
17145 crsminl_th = 0x3a;
17146 w1clip_th = 20;
17147
17148 if ((freq >= 4920) && (freq <= 5320)) {
17149 nvar_baseline_offset0 = 4;
17150 nvar_baseline_offset1 = 5;
17151 } else if ((freq > 5320) && (freq <= 5550)) {
17152 nvar_baseline_offset0 = 4;
17153 nvar_baseline_offset1 = 2;
17154 } else {
17155 nvar_baseline_offset0 = 5;
17156 nvar_baseline_offset1 = 3;
17157 }
17158 }
17159
17160 write_phy_reg(pi, 0x20, init_gaincode);
17161 write_phy_reg(pi, 0x2a7, init_gaincode);
17162
17163 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
17164 pi->pubpi.phy_corenum, 0x106, 16,
17165 rfseq_init_gain);
17166
17167 write_phy_reg(pi, 0x22, clip1hi_gaincode);
17168 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
17169
17170 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
17171 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
17172
17173 write_phy_reg(pi, 0x37, clip1lo_gaincode);
17174 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
17175 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
17176 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
17177
17178 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
17179 tia_gain_db);
17180 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17181 tia_gain_db);
17182
17183 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17184 tia_gainbits);
17185 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17186 tia_gainbits);
17187
17188 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
17189
17190 if (chg_nbclip_th == 1) {
17191 write_phy_reg(pi, 0x2b, nbclip_th);
17192 write_phy_reg(pi, 0x41, nbclip_th);
17193 }
17194
17195 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
17196 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
17197
17198 mod_phy_reg(pi, 0x2e4,
17199 (0x3f << 0), (nvar_baseline_offset0 << 0));
17200
17201 mod_phy_reg(pi, 0x2e4,
17202 (0x3f << 6), (nvar_baseline_offset1 << 6));
17203
17204 if (CHSPEC_IS20(pi->radio_chanspec)) {
17205
17206 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17207 lna1_gain_db);
17208 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17209 lna1_gain_db_2);
17210
17211 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17212 8, lna2_gain_db);
17213 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17214 8, lna2_gain_db);
17215
17216 write_phy_reg(pi, 0x24, clip1md_gaincode);
17217 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17218 } else {
17219 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17220 }
17221
17222 }
17223
17224}
17225
7cc4a4c0 17226static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi)
a9533e7e
HP
17227{
17228 uint core;
17229 int ctr;
17230 int16 gain_delta[2];
17231 uint8 curr_channel;
17232 uint16 minmax_gain[2];
17233 uint16 regval[4];
17234
17235 if (pi->phyhang_avoid)
17236 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
17237
17238 if (pi->nphy_gain_boost) {
17239 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
17240
17241 gain_delta[0] = 6;
17242 gain_delta[1] = 6;
17243 } else {
17244
17245 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17246 gain_delta[0] =
17247 (int16)
17248 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17249 curr_channel) +
17250 nphy_lnagain_est0[1]), 13);
17251 gain_delta[1] =
17252 (int16)
17253 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17254 curr_channel) +
17255 nphy_lnagain_est1[1]), 13);
17256 }
17257 } else {
17258
17259 gain_delta[0] = 0;
17260 gain_delta[1] = 0;
17261 }
17262
17263 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17264 if (pi->nphy_elna_gain_config) {
17265
17266 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
17267 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
17268 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
17269 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
17270 } else {
17271 for (ctr = 0; ctr < 4; ctr++) {
17272 regval[ctr] =
17273 nphy_def_lnagains[ctr] + gain_delta[core];
17274 }
17275 }
17276 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
17277
17278 minmax_gain[core] =
17279 (uint16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
17280 }
17281
17282 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
17283 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
17284
17285 if (pi->phyhang_avoid)
17286 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
17287}
17288
7cc4a4c0 17289void wlc_phy_switch_radio_nphy(phy_info_t *pi, bool on)
a9533e7e
HP
17290{
17291 if (on) {
17292 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17293 if (!pi->radio_is_on) {
17294 wlc_phy_radio_preinit_205x(pi);
17295 wlc_phy_radio_init_2057(pi);
17296 wlc_phy_radio_postinit_2057(pi);
17297 }
17298
17299 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17300 pi->radio_chanspec);
17301 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17302 wlc_phy_radio_preinit_205x(pi);
17303 wlc_phy_radio_init_2056(pi);
17304 wlc_phy_radio_postinit_2056(pi);
17305
17306 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17307 pi->radio_chanspec);
17308 } else {
17309 wlc_phy_radio_preinit_2055(pi);
17310 wlc_phy_radio_init_2055(pi);
17311 wlc_phy_radio_postinit_2055(pi);
17312 }
17313
17314 pi->radio_is_on = TRUE;
17315
17316 } else {
17317
17318 if (NREV_GE(pi->pubpi.phy_rev, 3)
17319 && NREV_LT(pi->pubpi.phy_rev, 7)) {
17320 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17321 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
17322
17323 write_radio_reg(pi,
17324 RADIO_2056_TX_PADA_BOOST_TUNE |
17325 RADIO_2056_TX0, 0);
17326 write_radio_reg(pi,
17327 RADIO_2056_TX_PADG_BOOST_TUNE |
17328 RADIO_2056_TX0, 0);
17329 write_radio_reg(pi,
17330 RADIO_2056_TX_PGAA_BOOST_TUNE |
17331 RADIO_2056_TX0, 0);
17332 write_radio_reg(pi,
17333 RADIO_2056_TX_PGAG_BOOST_TUNE |
17334 RADIO_2056_TX0, 0);
17335 mod_radio_reg(pi,
17336 RADIO_2056_TX_MIXA_BOOST_TUNE |
17337 RADIO_2056_TX0, 0xf0, 0);
17338 write_radio_reg(pi,
17339 RADIO_2056_TX_MIXG_BOOST_TUNE |
17340 RADIO_2056_TX0, 0);
17341
17342 write_radio_reg(pi,
17343 RADIO_2056_TX_PADA_BOOST_TUNE |
17344 RADIO_2056_TX1, 0);
17345 write_radio_reg(pi,
17346 RADIO_2056_TX_PADG_BOOST_TUNE |
17347 RADIO_2056_TX1, 0);
17348 write_radio_reg(pi,
17349 RADIO_2056_TX_PGAA_BOOST_TUNE |
17350 RADIO_2056_TX1, 0);
17351 write_radio_reg(pi,
17352 RADIO_2056_TX_PGAG_BOOST_TUNE |
17353 RADIO_2056_TX1, 0);
17354 mod_radio_reg(pi,
17355 RADIO_2056_TX_MIXA_BOOST_TUNE |
17356 RADIO_2056_TX1, 0xf0, 0);
17357 write_radio_reg(pi,
17358 RADIO_2056_TX_MIXG_BOOST_TUNE |
17359 RADIO_2056_TX1, 0);
17360
17361 pi->radio_is_on = FALSE;
17362 }
17363
17364 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
17365 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17366 pi->radio_is_on = FALSE;
17367 }
17368
17369 }
17370}
17371
7cc4a4c0 17372static void wlc_phy_radio_preinit_2055(phy_info_t *pi)
a9533e7e
HP
17373{
17374
17375 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
17376 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
17377
17378 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
17379}
17380
7cc4a4c0 17381static void wlc_phy_radio_init_2055(phy_info_t *pi)
a9533e7e
HP
17382{
17383 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
17384}
17385
7cc4a4c0 17386static void wlc_phy_radio_postinit_2055(phy_info_t *pi)
a9533e7e
HP
17387{
17388
17389 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
17390 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
17391
17392 if (((pi->sh->sromrev >= 4)
17393 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
17394 || ((pi->sh->sromrev < 4))) {
17395 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
17396 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
17397 }
17398
17399 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
17400 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
17401
17402 and_radio_reg(pi, RADIO_2055_CAL_MISC,
17403 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
17404
17405 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
17406
17407 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
17408
17409 OSL_DELAY(1000);
17410
17411 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
17412
17413 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17414 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
17415
17416 ASSERT((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17417 RADIO_2055_RCAL_DONE) == RADIO_2055_RCAL_DONE);
17418
17419 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
17420 ~(RADIO_2055_CAL_LPO_ENABLE));
17421
17422 wlc_phy_chanspec_set((wlc_phy_t *) pi, pi->radio_chanspec);
17423
17424 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
17425 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
17426
17427 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
17428 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
17429
17430 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
17431 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17432 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
17433 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17434 if (pi->nphy_gain_boost) {
17435 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17436 ~(RADIO_2055_GAINBST_DISABLE));
17437 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17438 ~(RADIO_2055_GAINBST_DISABLE));
17439 } else {
17440 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17441 RADIO_2055_GAINBST_DISABLE);
17442 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17443 RADIO_2055_GAINBST_DISABLE);
17444 }
17445
17446 OSL_DELAY(2);
17447}
17448
7cc4a4c0 17449static void wlc_phy_radio_preinit_205x(phy_info_t *pi)
a9533e7e
HP
17450{
17451
17452 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17453 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
17454
17455 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
17456 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
17457
17458}
17459
7cc4a4c0 17460static void wlc_phy_radio_init_2056(phy_info_t *pi)
a9533e7e
HP
17461{
17462 radio_regs_t *regs_SYN_2056_ptr = NULL;
17463 radio_regs_t *regs_TX_2056_ptr = NULL;
17464 radio_regs_t *regs_RX_2056_ptr = NULL;
17465
17466 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17467 regs_SYN_2056_ptr = regs_SYN_2056;
17468 regs_TX_2056_ptr = regs_TX_2056;
17469 regs_RX_2056_ptr = regs_RX_2056;
17470 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17471 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17472 regs_TX_2056_ptr = regs_TX_2056_A1;
17473 regs_RX_2056_ptr = regs_RX_2056_A1;
17474 } else {
17475 switch (pi->pubpi.radiorev) {
17476 case 5:
17477 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17478 regs_TX_2056_ptr = regs_TX_2056_rev5;
17479 regs_RX_2056_ptr = regs_RX_2056_rev5;
17480 break;
17481
17482 case 6:
17483 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17484 regs_TX_2056_ptr = regs_TX_2056_rev6;
17485 regs_RX_2056_ptr = regs_RX_2056_rev6;
17486 break;
17487
17488 case 7:
17489 case 9:
17490 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17491 regs_TX_2056_ptr = regs_TX_2056_rev7;
17492 regs_RX_2056_ptr = regs_RX_2056_rev7;
17493 break;
17494
17495 case 8:
17496 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17497 regs_TX_2056_ptr = regs_TX_2056_rev8;
17498 regs_RX_2056_ptr = regs_RX_2056_rev8;
17499 break;
17500
17501 case 11:
17502 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17503 regs_TX_2056_ptr = regs_TX_2056_rev11;
17504 regs_RX_2056_ptr = regs_RX_2056_rev11;
17505 break;
17506
17507 default:
17508 ASSERT(0);
17509 break;
17510 }
17511 }
17512
17513 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (uint16) RADIO_2056_SYN);
17514
17515 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (uint16) RADIO_2056_TX0);
17516
17517 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (uint16) RADIO_2056_TX1);
17518
17519 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (uint16) RADIO_2056_RX0);
17520
17521 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (uint16) RADIO_2056_RX1);
17522}
17523
7cc4a4c0 17524static void wlc_phy_radio_postinit_2056(phy_info_t *pi)
a9533e7e
HP
17525{
17526 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
17527
17528 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
17529 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
17530 OSL_DELAY(1000);
17531 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
17532
17533 if ((pi->sh->boardflags2 & BFL2_LEGACY)
17534 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN)) {
17535
17536 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
17537 } else {
17538
17539 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
17540 }
17541
17542 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
17543
17544 if (pi->phy_init_por) {
17545 wlc_phy_radio205x_rcal(pi);
17546 }
17547}
17548
7cc4a4c0 17549static void wlc_phy_radio_init_2057(phy_info_t *pi)
a9533e7e
HP
17550{
17551 radio_20xx_regs_t *regs_2057_ptr = NULL;
17552
17553 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17554
17555 regs_2057_ptr = regs_2057_rev4;
17556 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17557 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17558 switch (pi->pubpi.radiorev) {
17559 case 5:
17560
17561 if (pi->pubpi.radiover == 0x0) {
17562
17563 regs_2057_ptr = regs_2057_rev5;
17564
17565 } else if (pi->pubpi.radiover == 0x1) {
17566
17567 regs_2057_ptr = regs_2057_rev5v1;
17568 } else {
17569 ASSERT(0);
17570 break;
17571 }
17572
17573 case 7:
17574
17575 regs_2057_ptr = regs_2057_rev7;
17576 break;
17577
17578 case 8:
17579
17580 regs_2057_ptr = regs_2057_rev8;
17581 break;
17582
17583 default:
17584 ASSERT(0);
17585 break;
17586 }
17587 } else {
17588 ASSERT(0);
17589 }
17590
17591 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
17592}
17593
7cc4a4c0 17594static void wlc_phy_radio_postinit_2057(phy_info_t *pi)
a9533e7e
HP
17595{
17596
17597 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
17598
17599 if (CHIPID(pi->sh->chip) == !BCM6362_CHIP_ID) {
17600
17601 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x2, 0x2);
17602 }
17603
17604 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
17605 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
17606 OSL_DELAY(2000);
17607 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
17608 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
17609
17610 if (pi->phy_init_por) {
17611 wlc_phy_radio205x_rcal(pi);
17612 wlc_phy_radio2057_rccal(pi);
17613 }
17614
17615 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
17616}
17617
17618static bool
7cc4a4c0
JC
17619wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
17620 chan_info_nphy_radio2057_t **t0,
17621 chan_info_nphy_radio205x_t **t1,
17622 chan_info_nphy_radio2057_rev5_t **t2,
17623 chan_info_nphy_2055_t **t3)
a9533e7e
HP
17624{
17625 uint i;
17626 chan_info_nphy_radio2057_t *chan_info_tbl_p_0 = NULL;
17627 chan_info_nphy_radio205x_t *chan_info_tbl_p_1 = NULL;
17628 chan_info_nphy_radio2057_rev5_t *chan_info_tbl_p_2 = NULL;
17629 uint32 tbl_len = 0;
17630
17631 int freq = 0;
17632
17633 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17634
17635 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17636
17637 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
17638 tbl_len = ARRAYSIZE(chan_info_nphyrev7_2057_rev4);
17639
17640 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17641 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17642 switch (pi->pubpi.radiorev) {
17643
17644 case 5:
17645
17646 if (pi->pubpi.radiover == 0x0) {
17647
17648 chan_info_tbl_p_2 =
17649 chan_info_nphyrev8_2057_rev5;
17650 tbl_len =
17651 ARRAYSIZE
17652 (chan_info_nphyrev8_2057_rev5);
17653
17654 } else if (pi->pubpi.radiover == 0x1) {
17655
17656 chan_info_tbl_p_2 =
17657 chan_info_nphyrev9_2057_rev5v1;
17658 tbl_len =
17659 ARRAYSIZE
17660 (chan_info_nphyrev9_2057_rev5v1);
17661
17662 }
17663 break;
17664
17665 case 7:
17666 chan_info_tbl_p_0 =
17667 chan_info_nphyrev8_2057_rev7;
17668 tbl_len =
17669 ARRAYSIZE(chan_info_nphyrev8_2057_rev7);
17670 break;
17671
17672 case 8:
17673 chan_info_tbl_p_0 =
17674 chan_info_nphyrev8_2057_rev8;
17675 tbl_len =
17676 ARRAYSIZE(chan_info_nphyrev8_2057_rev8);
17677 break;
17678
17679 default:
17680 if (NORADIO_ENAB(pi->pubpi)) {
17681 goto fail;
17682 }
17683 break;
17684 }
17685 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
17686
17687 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
17688 tbl_len = ARRAYSIZE(chan_info_nphyrev8_2057_rev8);
17689 } else {
17690 goto fail;
17691 }
17692
17693 for (i = 0; i < tbl_len; i++) {
17694 if (pi->pubpi.radiorev == 5) {
17695
17696 if (chan_info_tbl_p_2[i].chan == channel)
17697 break;
17698 } else {
17699
17700 if (chan_info_tbl_p_0[i].chan == channel)
17701 break;
17702 }
17703 }
17704
17705 if (i >= tbl_len) {
17706 ASSERT(i < tbl_len);
17707 goto fail;
17708 }
17709 if (pi->pubpi.radiorev == 5) {
17710 *t2 = &chan_info_tbl_p_2[i];
17711 freq = chan_info_tbl_p_2[i].freq;
17712 } else {
17713 *t0 = &chan_info_tbl_p_0[i];
17714 freq = chan_info_tbl_p_0[i].freq;
17715 }
17716
17717 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17718 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17719 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
17720 tbl_len = ARRAYSIZE(chan_info_nphyrev3_2056);
17721 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17722 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
17723 tbl_len = ARRAYSIZE(chan_info_nphyrev4_2056_A1);
17724 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
17725 || NREV_IS(pi->pubpi.phy_rev, 6)) {
17726 switch (pi->pubpi.radiorev) {
17727 case 5:
17728 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
17729 tbl_len = ARRAYSIZE(chan_info_nphyrev5_2056v5);
17730 break;
17731 case 6:
17732 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
17733 tbl_len = ARRAYSIZE(chan_info_nphyrev6_2056v6);
17734 break;
17735 case 7:
17736 case 9:
17737 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17738 tbl_len =
17739 ARRAYSIZE(chan_info_nphyrev5n6_2056v7);
17740 break;
17741 case 8:
17742 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
17743 tbl_len = ARRAYSIZE(chan_info_nphyrev6_2056v8);
17744 break;
17745 case 11:
17746 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
17747 tbl_len = ARRAYSIZE(chan_info_nphyrev6_2056v11);
17748 break;
17749 default:
17750 if (NORADIO_ENAB(pi->pubpi)) {
17751 goto fail;
17752 }
17753 break;
17754 }
17755 }
17756
17757 for (i = 0; i < tbl_len; i++) {
17758 if (chan_info_tbl_p_1[i].chan == channel)
17759 break;
17760 }
17761
17762 if (i >= tbl_len) {
17763 ASSERT(i < tbl_len);
17764 goto fail;
17765 }
17766 *t1 = &chan_info_tbl_p_1[i];
17767 freq = chan_info_tbl_p_1[i].freq;
17768
17769 } else {
17770 for (i = 0; i < ARRAYSIZE(chan_info_nphy_2055); i++)
17771 if (chan_info_nphy_2055[i].chan == channel)
17772 break;
17773
17774 if (i >= ARRAYSIZE(chan_info_nphy_2055)) {
17775 ASSERT(i < ARRAYSIZE(chan_info_nphy_2055));
17776 goto fail;
17777 }
17778 *t3 = &chan_info_nphy_2055[i];
17779 freq = chan_info_nphy_2055[i].freq;
17780 }
17781
17782 *f = freq;
17783 return TRUE;
17784
17785 fail:
17786 *f = WL_CHAN_FREQ_RANGE_2G;
17787 return FALSE;
17788}
17789
7cc4a4c0 17790uint8 wlc_phy_get_chan_freq_range_nphy(phy_info_t *pi, uint channel)
a9533e7e
HP
17791{
17792 int freq;
17793 chan_info_nphy_radio2057_t *t0 = NULL;
17794 chan_info_nphy_radio205x_t *t1 = NULL;
17795 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
17796 chan_info_nphy_2055_t *t3 = NULL;
17797
17798 if (NORADIO_ENAB(pi->pubpi))
17799 return WL_CHAN_FREQ_RANGE_2G;
17800
17801 if (channel == 0)
17802 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17803
17804 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
17805
17806 if (CHSPEC_IS2G(pi->radio_chanspec))
17807 return WL_CHAN_FREQ_RANGE_2G;
17808
17809 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN)) {
17810 return WL_CHAN_FREQ_RANGE_5GL;
17811 } else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN)) {
17812 return WL_CHAN_FREQ_RANGE_5GM;
17813 } else {
17814 return WL_CHAN_FREQ_RANGE_5GH;
17815 }
17816}
17817
17818static void
7cc4a4c0 17819wlc_phy_chanspec_radio2055_setup(phy_info_t *pi, chan_info_nphy_2055_t *ci)
a9533e7e
HP
17820{
17821
17822 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
17823 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
17824 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
17825 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
17826
17827 WLC_PHY_WAR_PR51571(pi);
17828
17829 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
17830 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
17831 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
17832 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
17833
17834 WLC_PHY_WAR_PR51571(pi);
17835
17836 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
17837 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
17838 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
17839 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
17840
17841 WLC_PHY_WAR_PR51571(pi);
17842
17843 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
17844 ci->RF_core1_lgbuf_a_tune);
17845 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
17846 ci->RF_core1_lgbuf_g_tune);
17847 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
17848 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
17849 ci->RF_core1_tx_pga_pad_tn);
17850
17851 WLC_PHY_WAR_PR51571(pi);
17852
17853 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
17854 ci->RF_core1_tx_mx_bgtrim);
17855 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
17856 ci->RF_core2_lgbuf_a_tune);
17857 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
17858 ci->RF_core2_lgbuf_g_tune);
17859 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
17860
17861 WLC_PHY_WAR_PR51571(pi);
17862
17863 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
17864 ci->RF_core2_tx_pga_pad_tn);
17865 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
17866 ci->RF_core2_tx_mx_bgtrim);
17867
17868 OSL_DELAY(50);
17869
17870 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
17871 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
17872
17873 WLC_PHY_WAR_PR51571(pi);
17874
17875 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
17876
17877 OSL_DELAY(300);
17878}
17879
17880static void
7cc4a4c0
JC
17881wlc_phy_chanspec_radio2056_setup(phy_info_t *pi,
17882 const chan_info_nphy_radio205x_t *ci)
a9533e7e
HP
17883{
17884 radio_regs_t *regs_SYN_2056_ptr = NULL;
17885
17886 write_radio_reg(pi,
17887 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
17888 ci->RF_SYN_pll_vcocal1);
17889 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
17890 ci->RF_SYN_pll_vcocal2);
17891 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
17892 ci->RF_SYN_pll_refdiv);
17893 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
17894 ci->RF_SYN_pll_mmd2);
17895 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
17896 ci->RF_SYN_pll_mmd1);
17897 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17898 ci->RF_SYN_pll_loopfilter1);
17899 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17900 ci->RF_SYN_pll_loopfilter2);
17901 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
17902 ci->RF_SYN_pll_loopfilter3);
17903 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17904 ci->RF_SYN_pll_loopfilter4);
17905 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
17906 ci->RF_SYN_pll_loopfilter5);
17907 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
17908 ci->RF_SYN_reserved_addr27);
17909 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
17910 ci->RF_SYN_reserved_addr28);
17911 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
17912 ci->RF_SYN_reserved_addr29);
17913 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
17914 ci->RF_SYN_logen_VCOBUF1);
17915 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
17916 ci->RF_SYN_logen_MIXER2);
17917 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
17918 ci->RF_SYN_logen_BUF3);
17919 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
17920 ci->RF_SYN_logen_BUF4);
17921
17922 write_radio_reg(pi,
17923 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
17924 ci->RF_RX0_lnaa_tune);
17925 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
17926 ci->RF_RX0_lnag_tune);
17927 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
17928 ci->RF_TX0_intpaa_boost_tune);
17929 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
17930 ci->RF_TX0_intpag_boost_tune);
17931 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
17932 ci->RF_TX0_pada_boost_tune);
17933 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
17934 ci->RF_TX0_padg_boost_tune);
17935 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
17936 ci->RF_TX0_pgaa_boost_tune);
17937 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
17938 ci->RF_TX0_pgag_boost_tune);
17939 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
17940 ci->RF_TX0_mixa_boost_tune);
17941 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
17942 ci->RF_TX0_mixg_boost_tune);
17943
17944 write_radio_reg(pi,
17945 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
17946 ci->RF_RX1_lnaa_tune);
17947 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
17948 ci->RF_RX1_lnag_tune);
17949 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
17950 ci->RF_TX1_intpaa_boost_tune);
17951 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
17952 ci->RF_TX1_intpag_boost_tune);
17953 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
17954 ci->RF_TX1_pada_boost_tune);
17955 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
17956 ci->RF_TX1_padg_boost_tune);
17957 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
17958 ci->RF_TX1_pgaa_boost_tune);
17959 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
17960 ci->RF_TX1_pgag_boost_tune);
17961 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
17962 ci->RF_TX1_mixa_boost_tune);
17963 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
17964 ci->RF_TX1_mixg_boost_tune);
17965
17966 if (NREV_IS(pi->pubpi.phy_rev, 3))
17967 regs_SYN_2056_ptr = regs_SYN_2056;
17968 else if (NREV_IS(pi->pubpi.phy_rev, 4))
17969 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17970 else {
17971 switch (pi->pubpi.radiorev) {
17972 case 5:
17973 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17974 break;
17975 case 6:
17976 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17977 break;
17978 case 7:
17979 case 9:
17980 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17981 break;
17982 case 8:
17983 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17984 break;
17985 case 11:
17986 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17987 break;
17988 }
17989 }
17990 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17991 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17992 RADIO_2056_SYN,
17993 (uint16) regs_SYN_2056_ptr[0x49 - 2].init_g);
17994 } else {
17995 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17996 RADIO_2056_SYN,
17997 (uint16) regs_SYN_2056_ptr[0x49 - 2].init_a);
17998 }
17999
18000 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
18001 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18002 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18003 RADIO_2056_SYN, 0x1f);
18004 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18005 RADIO_2056_SYN, 0x1f);
18006
18007 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
18008 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID)) {
18009
18010 write_radio_reg(pi,
18011 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18012 RADIO_2056_SYN, 0x14);
18013 write_radio_reg(pi,
18014 RADIO_2056_SYN_PLL_CP2 |
18015 RADIO_2056_SYN, 0x00);
18016 } else {
18017 write_radio_reg(pi,
18018 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18019 RADIO_2056_SYN, 0xb);
18020 write_radio_reg(pi,
18021 RADIO_2056_SYN_PLL_CP2 |
18022 RADIO_2056_SYN, 0x14);
18023 }
18024 }
18025 }
18026
18027 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
18028 (CHSPEC_IS2G(pi->radio_chanspec))) {
18029 write_radio_reg(pi,
18030 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
18031 0x1f);
18032 write_radio_reg(pi,
18033 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
18034 0x1f);
18035 write_radio_reg(pi,
18036 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
18037 0xb);
18038 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
18039 0x20);
18040 }
18041
18042 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
18043 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18044 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18045 RADIO_2056_SYN, 0x1f);
18046 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18047 RADIO_2056_SYN, 0x1f);
18048 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
18049 RADIO_2056_SYN, 0x5);
18050 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18051 RADIO_2056_SYN, 0xc);
18052 }
18053 }
18054
18055 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
18056 uint16 pag_boost_tune;
18057 uint16 padg_boost_tune;
18058 uint16 pgag_boost_tune;
18059 uint16 mixg_boost_tune;
18060 uint16 bias, cascbias;
18061 uint core;
18062
18063 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18064
18065 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
18066
18067 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18068 PADG_IDAC, 0xcc);
18069
18070 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
18071 (CHIPID(pi->sh->chip) ==
18072 BCM47162_CHIP_ID)) {
18073 bias = 0x40;
18074 cascbias = 0x45;
18075 pag_boost_tune = 0x5;
18076 pgag_boost_tune = 0x33;
18077 padg_boost_tune = 0x77;
18078 mixg_boost_tune = 0x55;
18079 } else {
18080 bias = 0x25;
18081 cascbias = 0x20;
18082
18083 if ((CHIPID(pi->sh->chip) ==
18084 BCM43224_CHIP_ID)
18085 || (CHIPID(pi->sh->chip) ==
18086 BCM43225_CHIP_ID)
18087 || (CHIPID(pi->sh->chip) ==
18088 BCM43421_CHIP_ID)) {
18089 if (pi->sh->chippkg ==
18090 BCM43224_FAB_SMIC) {
18091 bias = 0x2a;
18092 cascbias = 0x38;
18093 }
18094 }
18095
18096 pag_boost_tune = 0x4;
18097 pgag_boost_tune = 0x03;
18098 padg_boost_tune = 0x77;
18099 mixg_boost_tune = 0x65;
18100 }
18101
18102 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18103 INTPAG_IMAIN_STAT, bias);
18104 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18105 INTPAG_IAUX_STAT, bias);
18106 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18107 INTPAG_CASCBIAS, cascbias);
18108
18109 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18110 INTPAG_BOOST_TUNE,
18111 pag_boost_tune);
18112 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18113 PGAG_BOOST_TUNE,
18114 pgag_boost_tune);
18115 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18116 PADG_BOOST_TUNE,
18117 padg_boost_tune);
18118 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18119 MIXG_BOOST_TUNE,
18120 mixg_boost_tune);
18121 } else {
18122
18123 bias = IS40MHZ(pi) ? 0x40 : 0x20;
18124
18125 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18126 INTPAG_IMAIN_STAT, bias);
18127 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18128 INTPAG_IAUX_STAT, bias);
18129 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18130 INTPAG_CASCBIAS, 0x30);
18131 }
18132 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
18133 0xee);
18134 }
18135 }
18136
18137 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
18138 && CHSPEC_IS5G(pi->radio_chanspec)) {
18139 uint16 paa_boost_tune;
18140 uint16 pada_boost_tune;
18141 uint16 pgaa_boost_tune;
18142 uint16 mixa_boost_tune;
18143 uint16 freq, pabias, cascbias;
18144 uint core;
18145
18146 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18147
18148 if (freq < 5150) {
18149
18150 paa_boost_tune = 0xa;
18151 pada_boost_tune = 0x77;
18152 pgaa_boost_tune = 0xf;
18153 mixa_boost_tune = 0xf;
18154 } else if (freq < 5340) {
18155
18156 paa_boost_tune = 0x8;
18157 pada_boost_tune = 0x77;
18158 pgaa_boost_tune = 0xfb;
18159 mixa_boost_tune = 0xf;
18160 } else if (freq < 5650) {
18161
18162 paa_boost_tune = 0x0;
18163 pada_boost_tune = 0x77;
18164 pgaa_boost_tune = 0xb;
18165 mixa_boost_tune = 0xf;
18166 } else {
18167
18168 paa_boost_tune = 0x0;
18169 pada_boost_tune = 0x77;
18170 if (freq != 5825) {
18171 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18172 } else {
18173 pgaa_boost_tune = 6;
18174 }
18175 mixa_boost_tune = 0xf;
18176 }
18177
18178 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18179 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18180 INTPAA_BOOST_TUNE, paa_boost_tune);
18181 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18182 PADA_BOOST_TUNE, pada_boost_tune);
18183 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18184 PGAA_BOOST_TUNE, pgaa_boost_tune);
18185 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18186 MIXA_BOOST_TUNE, mixa_boost_tune);
18187
18188 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18189 TXSPARE1, 0x30);
18190 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18191 PA_SPARE2, 0xee);
18192
18193 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18194 PADA_CASCBIAS, 0x3);
18195
18196 cascbias = 0x30;
18197
18198 if ((CHIPID(pi->sh->chip) == BCM43224_CHIP_ID) ||
18199 (CHIPID(pi->sh->chip) == BCM43225_CHIP_ID) ||
18200 (CHIPID(pi->sh->chip) == BCM43421_CHIP_ID)) {
18201 if (pi->sh->chippkg == BCM43224_FAB_SMIC) {
18202 cascbias = 0x35;
18203 }
18204 }
18205
18206 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
18207
18208 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18209 INTPAA_IAUX_STAT, pabias);
18210 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18211 INTPAA_IMAIN_STAT, pabias);
18212 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18213 INTPAA_CASCBIAS, cascbias);
18214 }
18215 }
18216
18217 OSL_DELAY(50);
18218
18219 wlc_phy_radio205x_vcocal_nphy(pi);
18220}
18221
7cc4a4c0 18222void wlc_phy_radio205x_vcocal_nphy(phy_info_t *pi)
a9533e7e
HP
18223{
18224 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18225 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
18226 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
18227 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
18228 (1 << 2));
18229 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
18230 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18231 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
18232 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18233 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
18234 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18235 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
18236 }
18237
18238 OSL_DELAY(300);
18239}
18240
18241#define MAX_205x_RCAL_WAITLOOPS 10000
18242
7cc4a4c0 18243static uint16 wlc_phy_radio205x_rcal(phy_info_t *pi)
a9533e7e
HP
18244{
18245 uint16 rcal_reg = 0;
18246 int i;
18247
18248 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18249
18250 if (pi->pubpi.radiorev == 5) {
18251
18252 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18253
18254 OSL_DELAY(10);
18255
18256 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18257 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18258 0x1);
18259 }
18260 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18261
18262 OSL_DELAY(10);
18263
18264 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
18265
18266 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18267 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
18268 if (rcal_reg & 0x1) {
18269 break;
18270 }
18271 OSL_DELAY(100);
18272 }
18273
18274 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18275
18276 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
18277
18278 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
18279
18280 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
18281 if (pi->pubpi.radiorev == 5) {
18282
18283 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
18284 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18285 0x0);
18286 }
18287
18288 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18289
18290 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18291 rcal_reg);
18292 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18293 rcal_reg << 2);
18294 }
18295
18296 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
18297 uint16 savereg;
18298
18299 savereg =
18300 read_radio_reg(pi,
18301 RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN);
18302 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18303 savereg | 0x7);
18304 OSL_DELAY(10);
18305
18306 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18307 0x1);
18308 OSL_DELAY(10);
18309
18310 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18311 0x9);
18312
18313 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18314 rcal_reg = read_radio_reg(pi,
18315 RADIO_2056_SYN_RCAL_CODE_OUT |
18316 RADIO_2056_SYN);
18317 if (rcal_reg & 0x80) {
18318 break;
18319 }
18320 OSL_DELAY(100);
18321 }
18322
18323 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18324
18325 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18326 0x1);
18327
18328 rcal_reg =
18329 read_radio_reg(pi,
18330 RADIO_2056_SYN_RCAL_CODE_OUT |
18331 RADIO_2056_SYN);
18332
18333 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18334 0x0);
18335
18336 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18337 savereg);
18338
90ea2296 18339 return rcal_reg & 0x1f;
a9533e7e 18340 }
90ea2296 18341 return rcal_reg & 0x3e;
a9533e7e
HP
18342}
18343
18344static void
7cc4a4c0
JC
18345wlc_phy_chanspec_radio2057_setup(phy_info_t *pi,
18346 const chan_info_nphy_radio2057_t *ci,
18347 const chan_info_nphy_radio2057_rev5_t *ci2)
a9533e7e
HP
18348{
18349 int coreNum;
18350 uint16 txmix2g_tune_boost_pu = 0;
18351 uint16 pad2g_tune_pus = 0;
18352
18353 if (pi->pubpi.radiorev == 5) {
18354
18355 write_radio_reg(pi,
18356 RADIO_2057_VCOCAL_COUNTVAL0,
18357 ci2->RF_vcocal_countval0);
18358 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18359 ci2->RF_vcocal_countval1);
18360 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18361 ci2->RF_rfpll_refmaster_sparextalsize);
18362 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18363 ci2->RF_rfpll_loopfilter_r1);
18364 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18365 ci2->RF_rfpll_loopfilter_c2);
18366 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18367 ci2->RF_rfpll_loopfilter_c1);
18368 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
18369 ci2->RF_cp_kpd_idac);
18370 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
18371 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
18372 write_radio_reg(pi,
18373 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
18374 write_radio_reg(pi,
18375 RADIO_2057_LOGEN_MX2G_TUNE,
18376 ci2->RF_logen_mx2g_tune);
18377 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18378 ci2->RF_logen_indbuf2g_tune);
18379
18380 write_radio_reg(pi,
18381 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18382 ci2->RF_txmix2g_tune_boost_pu_core0);
18383 write_radio_reg(pi,
18384 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18385 ci2->RF_pad2g_tune_pus_core0);
18386 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18387 ci2->RF_lna2g_tune_core0);
18388
18389 write_radio_reg(pi,
18390 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18391 ci2->RF_txmix2g_tune_boost_pu_core1);
18392 write_radio_reg(pi,
18393 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18394 ci2->RF_pad2g_tune_pus_core1);
18395 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18396 ci2->RF_lna2g_tune_core1);
18397
18398 } else {
18399
18400 write_radio_reg(pi,
18401 RADIO_2057_VCOCAL_COUNTVAL0,
18402 ci->RF_vcocal_countval0);
18403 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18404 ci->RF_vcocal_countval1);
18405 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18406 ci->RF_rfpll_refmaster_sparextalsize);
18407 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18408 ci->RF_rfpll_loopfilter_r1);
18409 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18410 ci->RF_rfpll_loopfilter_c2);
18411 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18412 ci->RF_rfpll_loopfilter_c1);
18413 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
18414 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
18415 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
18416 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
18417 write_radio_reg(pi,
18418 RADIO_2057_LOGEN_MX2G_TUNE,
18419 ci->RF_logen_mx2g_tune);
18420 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
18421 ci->RF_logen_mx5g_tune);
18422 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18423 ci->RF_logen_indbuf2g_tune);
18424 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
18425 ci->RF_logen_indbuf5g_tune);
18426
18427 write_radio_reg(pi,
18428 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18429 ci->RF_txmix2g_tune_boost_pu_core0);
18430 write_radio_reg(pi,
18431 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18432 ci->RF_pad2g_tune_pus_core0);
18433 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
18434 ci->RF_pga_boost_tune_core0);
18435 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
18436 ci->RF_txmix5g_boost_tune_core0);
18437 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
18438 ci->RF_pad5g_tune_misc_pus_core0);
18439 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18440 ci->RF_lna2g_tune_core0);
18441 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
18442 ci->RF_lna5g_tune_core0);
18443
18444 write_radio_reg(pi,
18445 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18446 ci->RF_txmix2g_tune_boost_pu_core1);
18447 write_radio_reg(pi,
18448 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18449 ci->RF_pad2g_tune_pus_core1);
18450 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
18451 ci->RF_pga_boost_tune_core1);
18452 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
18453 ci->RF_txmix5g_boost_tune_core1);
18454 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
18455 ci->RF_pad5g_tune_misc_pus_core1);
18456 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18457 ci->RF_lna2g_tune_core1);
18458 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
18459 ci->RF_lna5g_tune_core1);
18460 }
18461
18462 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18463
18464 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18465 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18466 0x3f);
18467 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18468 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18469 0x8);
18470 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18471 0x8);
18472 } else {
18473 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18474 0x1f);
18475 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18476 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18477 0x8);
18478 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18479 0x8);
18480 }
18481 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
18482 (pi->pubpi.radiorev == 8)) {
18483
18484 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18485 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18486 0x1b);
18487 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18488 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18489 0xa);
18490 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18491 0xa);
18492 } else {
18493 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18494 0x1f);
18495 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18496 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18497 0x8);
18498 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18499 0x8);
18500 }
18501
18502 }
18503
18504 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18505 if (PHY_IPA(pi)) {
18506 if (pi->pubpi.radiorev == 3) {
18507 txmix2g_tune_boost_pu = 0x6b;
18508 }
18509
18510 if (pi->pubpi.radiorev == 5)
18511 pad2g_tune_pus = 0x73;
18512
18513 } else {
18514 if (pi->pubpi.radiorev != 5) {
18515 pad2g_tune_pus = 0x3;
18516
18517 txmix2g_tune_boost_pu = 0x61;
18518 }
18519 }
18520
18521 for (coreNum = 0; coreNum <= 1; coreNum++) {
18522
18523 if (txmix2g_tune_boost_pu != 0)
18524 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18525 TXMIX2G_TUNE_BOOST_PU,
18526 txmix2g_tune_boost_pu);
18527
18528 if (pad2g_tune_pus != 0)
18529 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18530 PAD2G_TUNE_PUS,
18531 pad2g_tune_pus);
18532 }
18533 }
18534
18535 OSL_DELAY(50);
18536
18537 wlc_phy_radio205x_vcocal_nphy(pi);
18538}
18539
7cc4a4c0 18540static uint16 wlc_phy_radio2057_rccal(phy_info_t *pi)
a9533e7e
HP
18541{
18542 uint16 rccal_valid;
18543 int i;
18544 bool chip43226_6362A0;
18545
18546 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18547 || (pi->pubpi.radiorev == 4)
18548 || (pi->pubpi.radiorev == 6));
18549
18550 rccal_valid = 0;
18551 if (chip43226_6362A0) {
18552 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18553 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18554 } else {
18555 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
18556
18557 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
18558 }
18559 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18560 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18561
18562 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18563 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18564 if (rccal_valid & 0x2) {
18565 break;
18566 }
18567 OSL_DELAY(500);
18568 }
18569
18570 ASSERT(rccal_valid & 0x2);
18571
18572 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18573
18574 rccal_valid = 0;
18575 if (chip43226_6362A0) {
18576 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18577 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18578 } else {
18579 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
18580
18581 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
18582 }
18583 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18584 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18585
18586 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18587 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18588 if (rccal_valid & 0x2) {
18589 break;
18590 }
18591 OSL_DELAY(500);
18592 }
18593
18594 ASSERT(rccal_valid & 0x2);
18595
18596 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18597
18598 rccal_valid = 0;
18599 if (chip43226_6362A0) {
18600 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
18601
18602 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
18603 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18604 } else {
18605 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
18606 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18607 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
18608 }
18609 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18610
18611 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18612 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18613 if (rccal_valid & 0x2) {
18614 break;
18615 }
18616 OSL_DELAY(500);
18617 }
18618
18619 ASSERT(rccal_valid & 0x2);
18620
18621 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18622
90ea2296 18623 return rccal_valid;
a9533e7e
HP
18624}
18625
18626static void
7cc4a4c0 18627wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi, uint16 reduction_factr)
a9533e7e
HP
18628{
18629 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18630 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18631 CHSPEC_IS40(pi->radio_chanspec)) {
18632 if (!pi->nphy_anarxlpf_adjusted) {
18633 write_radio_reg(pi,
18634 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18635 RADIO_2056_RX0),
18636 ((pi->nphy_rccal_value +
18637 reduction_factr) | 0x80));
18638
18639 pi->nphy_anarxlpf_adjusted = TRUE;
18640 }
18641 } else {
18642 if (pi->nphy_anarxlpf_adjusted) {
18643 write_radio_reg(pi,
18644 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18645 RADIO_2056_RX0),
18646 (pi->nphy_rccal_value | 0x80));
18647
18648 pi->nphy_anarxlpf_adjusted = FALSE;
18649 }
18650 }
18651 }
18652}
18653
18654static void
7cc4a4c0
JC
18655wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *tone_id_buf,
18656 uint32 *noise_var_buf)
a9533e7e
HP
18657{
18658 int i;
18659 uint32 offset;
18660 int tone_id;
18661 int tbllen =
18662 CHSPEC_IS40(pi->
18663 radio_chanspec) ? NPHY_NOISEVAR_TBLLEN40 :
18664 NPHY_NOISEVAR_TBLLEN20;
18665
18666 if (pi->nphy_noisevars_adjusted) {
18667 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18668 tone_id = pi->nphy_saved_noisevars.tone_id[i];
18669 offset = (tone_id >= 0) ?
18670 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18671 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18672 offset, 32,
18673 (void *)&pi->
18674 nphy_saved_noisevars.
18675 min_noise_vars[i]);
18676 }
18677
18678 pi->nphy_saved_noisevars.bufcount = 0;
18679 pi->nphy_noisevars_adjusted = FALSE;
18680 }
18681
18682 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18683 pi->nphy_saved_noisevars.bufcount = 0;
18684
18685 for (i = 0; i < ntones; i++) {
18686 tone_id = tone_id_buf[i];
18687 offset = (tone_id >= 0) ?
18688 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18689 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18690 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18691 offset, 32,
18692 &pi->nphy_saved_noisevars.
18693 min_noise_vars[i]);
18694 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18695 offset, 32,
18696 (void *)&noise_var_buf[i]);
18697 pi->nphy_saved_noisevars.bufcount++;
18698 }
18699
18700 pi->nphy_noisevars_adjusted = TRUE;
18701 }
18702}
18703
7cc4a4c0 18704static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, uint8 minpwr)
a9533e7e
HP
18705{
18706 uint16 regval;
18707
18708 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18709 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18710 CHSPEC_IS40(pi->radio_chanspec)) {
18711 if (!pi->nphy_crsminpwr_adjusted) {
18712 regval = read_phy_reg(pi, 0x27d);
18713 pi->nphy_crsminpwr[0] = regval & 0xff;
18714 regval &= 0xff00;
18715 regval |= (uint16) minpwr;
18716 write_phy_reg(pi, 0x27d, regval);
18717
18718 regval = read_phy_reg(pi, 0x280);
18719 pi->nphy_crsminpwr[1] = regval & 0xff;
18720 regval &= 0xff00;
18721 regval |= (uint16) minpwr;
18722 write_phy_reg(pi, 0x280, regval);
18723
18724 regval = read_phy_reg(pi, 0x283);
18725 pi->nphy_crsminpwr[2] = regval & 0xff;
18726 regval &= 0xff00;
18727 regval |= (uint16) minpwr;
18728 write_phy_reg(pi, 0x283, regval);
18729
18730 pi->nphy_crsminpwr_adjusted = TRUE;
18731 }
18732 } else {
18733 if (pi->nphy_crsminpwr_adjusted) {
18734 regval = read_phy_reg(pi, 0x27d);
18735 regval &= 0xff00;
18736 regval |= pi->nphy_crsminpwr[0];
18737 write_phy_reg(pi, 0x27d, regval);
18738
18739 regval = read_phy_reg(pi, 0x280);
18740 regval &= 0xff00;
18741 regval |= pi->nphy_crsminpwr[1];
18742 write_phy_reg(pi, 0x280, regval);
18743
18744 regval = read_phy_reg(pi, 0x283);
18745 regval &= 0xff00;
18746 regval |= pi->nphy_crsminpwr[2];
18747 write_phy_reg(pi, 0x283, regval);
18748
18749 pi->nphy_crsminpwr_adjusted = FALSE;
18750 }
18751 }
18752 }
18753}
18754
7cc4a4c0 18755static void wlc_phy_txlpfbw_nphy(phy_info_t *pi)
a9533e7e
HP
18756{
18757 uint8 tx_lpf_bw = 0;
18758
18759 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18760 if (CHSPEC_IS40(pi->radio_chanspec)) {
18761 tx_lpf_bw = 3;
18762 } else {
18763 tx_lpf_bw = 1;
18764 }
18765
18766 if (PHY_IPA(pi)) {
18767 if (CHSPEC_IS40(pi->radio_chanspec)) {
18768 tx_lpf_bw = 5;
18769 } else {
18770 tx_lpf_bw = 4;
18771 }
18772 }
18773 write_phy_reg(pi, 0xe8,
18774 (tx_lpf_bw << 0) |
18775 (tx_lpf_bw << 3) |
18776 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18777
18778 if (PHY_IPA(pi)) {
18779
18780 if (CHSPEC_IS40(pi->radio_chanspec)) {
18781 tx_lpf_bw = 4;
18782 } else {
18783 tx_lpf_bw = 1;
18784 }
18785
18786 write_phy_reg(pi, 0xe9,
18787 (tx_lpf_bw << 0) |
18788 (tx_lpf_bw << 3) |
18789 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18790 }
18791 }
18792}
18793
7cc4a4c0 18794static void wlc_phy_spurwar_nphy(phy_info_t *pi)
a9533e7e
HP
18795{
18796 uint16 cur_channel = 0;
18797 int nphy_adj_tone_id_buf[] = { 57, 58 };
18798 uint32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
18799 bool isAdjustNoiseVar = FALSE;
18800 uint numTonesAdjust = 0;
18801 uint32 tempval = 0;
18802
18803 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18804 if (pi->phyhang_avoid)
18805 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
18806
18807 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
18808
18809 if (pi->nphy_gband_spurwar_en) {
18810
18811 wlc_phy_adjust_rx_analpfbw_nphy(pi,
18812 NPHY_ANARXLPFBW_REDUCTIONFACT);
18813
18814 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18815 if ((cur_channel == 11)
18816 && CHSPEC_IS40(pi->radio_chanspec)) {
18817
18818 wlc_phy_adjust_min_noisevar_nphy(pi, 2,
18819 nphy_adj_tone_id_buf,
18820 nphy_adj_noise_var_buf);
18821 } else {
18822
18823 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18824 NULL,
18825 NULL);
18826 }
18827 }
18828 wlc_phy_adjust_crsminpwr_nphy(pi,
18829 NPHY_ADJUSTED_MINCRSPOWER);
18830 }
18831
18832 if ((pi->nphy_gband_spurwar2_en)
18833 && CHSPEC_IS2G(pi->radio_chanspec)) {
18834
18835 if (CHSPEC_IS40(pi->radio_chanspec)) {
18836 switch (cur_channel) {
18837 case 3:
18838 nphy_adj_tone_id_buf[0] = 57;
18839 nphy_adj_tone_id_buf[1] = 58;
18840 nphy_adj_noise_var_buf[0] = 0x22f;
18841 nphy_adj_noise_var_buf[1] = 0x25f;
18842 isAdjustNoiseVar = TRUE;
18843 break;
18844 case 4:
18845 nphy_adj_tone_id_buf[0] = 41;
18846 nphy_adj_tone_id_buf[1] = 42;
18847 nphy_adj_noise_var_buf[0] = 0x22f;
18848 nphy_adj_noise_var_buf[1] = 0x25f;
18849 isAdjustNoiseVar = TRUE;
18850 break;
18851 case 5:
18852 nphy_adj_tone_id_buf[0] = 25;
18853 nphy_adj_tone_id_buf[1] = 26;
18854 nphy_adj_noise_var_buf[0] = 0x24f;
18855 nphy_adj_noise_var_buf[1] = 0x25f;
18856 isAdjustNoiseVar = TRUE;
18857 break;
18858 case 6:
18859 nphy_adj_tone_id_buf[0] = 9;
18860 nphy_adj_tone_id_buf[1] = 10;
18861 nphy_adj_noise_var_buf[0] = 0x22f;
18862 nphy_adj_noise_var_buf[1] = 0x24f;
18863 isAdjustNoiseVar = TRUE;
18864 break;
18865 case 7:
18866 nphy_adj_tone_id_buf[0] = 121;
18867 nphy_adj_tone_id_buf[1] = 122;
18868 nphy_adj_noise_var_buf[0] = 0x18f;
18869 nphy_adj_noise_var_buf[1] = 0x24f;
18870 isAdjustNoiseVar = TRUE;
18871 break;
18872 case 8:
18873 nphy_adj_tone_id_buf[0] = 105;
18874 nphy_adj_tone_id_buf[1] = 106;
18875 nphy_adj_noise_var_buf[0] = 0x22f;
18876 nphy_adj_noise_var_buf[1] = 0x25f;
18877 isAdjustNoiseVar = TRUE;
18878 break;
18879 case 9:
18880 nphy_adj_tone_id_buf[0] = 89;
18881 nphy_adj_tone_id_buf[1] = 90;
18882 nphy_adj_noise_var_buf[0] = 0x22f;
18883 nphy_adj_noise_var_buf[1] = 0x24f;
18884 isAdjustNoiseVar = TRUE;
18885 break;
18886 case 10:
18887 nphy_adj_tone_id_buf[0] = 73;
18888 nphy_adj_tone_id_buf[1] = 74;
18889 nphy_adj_noise_var_buf[0] = 0x22f;
18890 nphy_adj_noise_var_buf[1] = 0x24f;
18891 isAdjustNoiseVar = TRUE;
18892 break;
18893 default:
18894 isAdjustNoiseVar = FALSE;
18895 break;
18896 }
18897 }
18898
18899 if (isAdjustNoiseVar) {
18900 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
18901 sizeof(nphy_adj_tone_id_buf[0]);
18902
18903 wlc_phy_adjust_min_noisevar_nphy(pi,
18904 numTonesAdjust,
18905 nphy_adj_tone_id_buf,
18906 nphy_adj_noise_var_buf);
18907
18908 tempval = 0;
18909
18910 } else {
18911
18912 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18913 NULL);
18914 }
18915 }
18916
18917 if ((pi->nphy_aband_spurwar_en) &&
18918 (CHSPEC_IS5G(pi->radio_chanspec))) {
18919 switch (cur_channel) {
18920 case 54:
18921 nphy_adj_tone_id_buf[0] = 32;
18922 nphy_adj_noise_var_buf[0] = 0x25f;
18923 break;
18924 case 38:
18925 case 102:
18926 case 118:
18927 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) &&
18928 (pi->sh->chippkg == BCM4717_PKG_ID)) {
18929 nphy_adj_tone_id_buf[0] = 32;
18930 nphy_adj_noise_var_buf[0] = 0x21f;
18931 } else {
18932 nphy_adj_tone_id_buf[0] = 0;
18933 nphy_adj_noise_var_buf[0] = 0x0;
18934 }
18935 break;
18936 case 134:
18937 nphy_adj_tone_id_buf[0] = 32;
18938 nphy_adj_noise_var_buf[0] = 0x21f;
18939 break;
18940 case 151:
18941 nphy_adj_tone_id_buf[0] = 16;
18942 nphy_adj_noise_var_buf[0] = 0x23f;
18943 break;
18944 case 153:
18945 case 161:
18946 nphy_adj_tone_id_buf[0] = 48;
18947 nphy_adj_noise_var_buf[0] = 0x23f;
18948 break;
18949 default:
18950 nphy_adj_tone_id_buf[0] = 0;
18951 nphy_adj_noise_var_buf[0] = 0x0;
18952 break;
18953 }
18954
18955 if (nphy_adj_tone_id_buf[0]
18956 && nphy_adj_noise_var_buf[0]) {
18957 wlc_phy_adjust_min_noisevar_nphy(pi, 1,
18958 nphy_adj_tone_id_buf,
18959 nphy_adj_noise_var_buf);
18960 } else {
18961 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18962 NULL);
18963 }
18964 }
18965
18966 if (pi->phyhang_avoid)
18967 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
18968 }
18969}
18970
18971static void
7cc4a4c0
JC
18972wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chanspec,
18973 const nphy_sfo_cfg_t *ci)
a9533e7e
HP
18974{
18975 uint16 val;
18976
18977 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
18978 if (CHSPEC_IS5G(chanspec) && !val) {
18979
18980 val = R_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param);
18981 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param,
18982 (val | MAC_PHY_FORCE_CLK));
18983
18984 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18985 (BBCFG_RESETCCA | BBCFG_RESETRX));
18986
18987 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param, val);
18988
18989 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
18990 } else if (!CHSPEC_IS5G(chanspec) && val) {
18991
18992 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
18993
18994 val = R_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param);
18995 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param,
18996 (val | MAC_PHY_FORCE_CLK));
18997
18998 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18999 (uint16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
19000
19001 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param, val);
19002 }
19003
19004 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
19005 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
19006 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
19007
19008 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
19009 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
19010 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
19011
19012 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
19013 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
19014
19015 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
19016 } else {
19017 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
19018 NPHY_ClassifierCtrl_ofdm_en);
19019
19020 if (CHSPEC_IS2G(chanspec))
19021 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
19022 }
19023
19024 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
19025 wlc_phy_txpwr_fixpower_nphy(pi);
19026 }
19027
19028 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
19029
19030 wlc_phy_adjust_lnagaintbl_nphy(pi);
19031 }
19032
19033 wlc_phy_txlpfbw_nphy(pi);
19034
19035 if (NREV_GE(pi->pubpi.phy_rev, 3)
19036 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
19037 uint8 spuravoid = 0;
19038
19039 val = CHSPEC_CHANNEL(chanspec);
19040 if (!CHSPEC_IS40(pi->radio_chanspec)) {
19041 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19042 if ((val == 13) || (val == 14) || (val == 153)) {
19043 spuravoid = 1;
19044 }
19045 } else {
19046
19047 if (((val >= 5) && (val <= 8)) || (val == 13)
19048 || (val == 14)) {
19049 spuravoid = 1;
19050 }
19051 }
19052 } else {
19053 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19054 if (val == 54) {
19055 spuravoid = 1;
19056 }
19057 } else {
19058
19059 if (pi->nphy_aband_spurwar_en &&
19060 ((val == 38) || (val == 102)
19061 || (val == 118))) {
19062 if ((CHIPID(pi->sh->chip) ==
19063 BCM4716_CHIP_ID)
19064 && (pi->sh->chippkg ==
19065 BCM4717_PKG_ID)) {
19066 spuravoid = 0;
19067 } else {
19068 spuravoid = 1;
19069 }
19070 }
19071 }
19072 }
19073
19074 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
19075 spuravoid = 1;
19076
19077 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
19078 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID)) {
19079 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
19080 } else {
19081 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, FALSE);
19082 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
19083 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, TRUE);
19084 }
19085
19086 if ((CHIPID(pi->sh->chip) == BCM43224_CHIP_ID) ||
19087 (CHIPID(pi->sh->chip) == BCM43225_CHIP_ID) ||
19088 (CHIPID(pi->sh->chip) == BCM43421_CHIP_ID)) {
19089
19090 if (spuravoid == 1) {
19091
19092 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_l,
19093 0x5341);
19094 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_h,
19095 0x8);
19096 } else {
19097
19098 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_l,
19099 0x8889);
19100 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_h,
19101 0x8);
19102 }
19103 }
19104
19105 if (!((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
19106 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID))) {
19107 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
19108 }
19109
19110 mod_phy_reg(pi, 0x01, (0x1 << 15),
19111 ((spuravoid > 0) ? (0x1 << 15) : 0));
19112
19113 wlc_phy_resetcca_nphy(pi);
19114
19115 pi->phy_isspuravoid = (spuravoid > 0);
19116 }
19117
19118 if (NREV_LT(pi->pubpi.phy_rev, 7))
19119 write_phy_reg(pi, 0x17e, 0x3830);
19120
19121 wlc_phy_spurwar_nphy(pi);
19122}
19123
7cc4a4c0 19124void wlc_phy_chanspec_set_nphy(phy_info_t *pi, chanspec_t chanspec)
a9533e7e
HP
19125{
19126 int freq;
19127 chan_info_nphy_radio2057_t *t0 = NULL;
19128 chan_info_nphy_radio205x_t *t1 = NULL;
19129 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
19130 chan_info_nphy_2055_t *t3 = NULL;
19131
19132 if (NORADIO_ENAB(pi->pubpi)) {
19133 return;
19134 }
19135
19136 if (!wlc_phy_chan2freq_nphy
19137 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19138 return;
19139
19140 wlc_phy_chanspec_radio_set((wlc_phy_t *) pi, chanspec);
19141
19142 if (CHSPEC_BW(chanspec) != pi->bw)
19143 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
19144
19145 if (CHSPEC_IS40(chanspec)) {
19146 if (CHSPEC_SB_UPPER(chanspec)) {
19147 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
19148 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19149 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
19150 }
19151 } else {
19152 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
19153 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19154 and_phy_reg(pi, 0x310,
19155 (~PRIM_SEL_UP20 & 0xffff));
19156 }
19157 }
19158 }
19159
19160 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19161 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19162
19163 if ((pi->pubpi.radiorev <= 4)
19164 || (pi->pubpi.radiorev == 6)) {
19165 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
19166 0x2,
19167 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19168 : 0));
19169 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19170 0x2,
19171 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19172 : 0));
19173 }
19174
19175 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
19176 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19177 (pi->pubpi.radiorev ==
19178 5) ? (const nphy_sfo_cfg_t
19179 *)&(t2->
19180 PHY_BW1a)
19181 : (const nphy_sfo_cfg_t *)
19182 &(t0->PHY_BW1a));
19183
19184 } else {
19185
19186 mod_radio_reg(pi,
19187 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19188 0x4,
19189 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
19190 wlc_phy_chanspec_radio2056_setup(pi, t1);
19191
19192 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19193 (const nphy_sfo_cfg_t *)
19194 &(t1->PHY_BW1a));
19195 }
19196
19197 } else {
19198
19199 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19200 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19201 : (0x05 << 4)));
19202
19203 wlc_phy_chanspec_radio2055_setup(pi, t3);
19204 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19205 (const nphy_sfo_cfg_t *)&(t3->
19206 PHY_BW1a));
19207 }
19208
19209}
19210
7cc4a4c0 19211static void wlc_phy_savecal_nphy(phy_info_t *pi)
a9533e7e
HP
19212{
19213 void *tbl_ptr;
19214 int coreNum;
19215 uint16 *txcal_radio_regs = NULL;
19216
19217 if (pi->phyhang_avoid)
19218 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
19219
19220 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19221
19222 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19223 &pi->calibration_cache.
19224 rxcal_coeffs_2G);
19225
19226 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19227 txcal_radio_regs =
19228 pi->calibration_cache.txcal_radio_regs_2G;
19229 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19230
19231 pi->calibration_cache.txcal_radio_regs_2G[0] =
19232 read_radio_reg(pi,
19233 RADIO_2056_TX_LOFT_FINE_I |
19234 RADIO_2056_TX0);
19235 pi->calibration_cache.txcal_radio_regs_2G[1] =
19236 read_radio_reg(pi,
19237 RADIO_2056_TX_LOFT_FINE_Q |
19238 RADIO_2056_TX0);
19239 pi->calibration_cache.txcal_radio_regs_2G[2] =
19240 read_radio_reg(pi,
19241 RADIO_2056_TX_LOFT_FINE_I |
19242 RADIO_2056_TX1);
19243 pi->calibration_cache.txcal_radio_regs_2G[3] =
19244 read_radio_reg(pi,
19245 RADIO_2056_TX_LOFT_FINE_Q |
19246 RADIO_2056_TX1);
19247
19248 pi->calibration_cache.txcal_radio_regs_2G[4] =
19249 read_radio_reg(pi,
19250 RADIO_2056_TX_LOFT_COARSE_I |
19251 RADIO_2056_TX0);
19252 pi->calibration_cache.txcal_radio_regs_2G[5] =
19253 read_radio_reg(pi,
19254 RADIO_2056_TX_LOFT_COARSE_Q |
19255 RADIO_2056_TX0);
19256 pi->calibration_cache.txcal_radio_regs_2G[6] =
19257 read_radio_reg(pi,
19258 RADIO_2056_TX_LOFT_COARSE_I |
19259 RADIO_2056_TX1);
19260 pi->calibration_cache.txcal_radio_regs_2G[7] =
19261 read_radio_reg(pi,
19262 RADIO_2056_TX_LOFT_COARSE_Q |
19263 RADIO_2056_TX1);
19264 } else {
19265 pi->calibration_cache.txcal_radio_regs_2G[0] =
19266 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19267 pi->calibration_cache.txcal_radio_regs_2G[1] =
19268 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19269 pi->calibration_cache.txcal_radio_regs_2G[2] =
19270 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19271 pi->calibration_cache.txcal_radio_regs_2G[3] =
19272 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19273 }
19274
19275 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
19276 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19277 } else {
19278
19279 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19280 &pi->calibration_cache.
19281 rxcal_coeffs_5G);
19282
19283 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19284 txcal_radio_regs =
19285 pi->calibration_cache.txcal_radio_regs_5G;
19286 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19287
19288 pi->calibration_cache.txcal_radio_regs_5G[0] =
19289 read_radio_reg(pi,
19290 RADIO_2056_TX_LOFT_FINE_I |
19291 RADIO_2056_TX0);
19292 pi->calibration_cache.txcal_radio_regs_5G[1] =
19293 read_radio_reg(pi,
19294 RADIO_2056_TX_LOFT_FINE_Q |
19295 RADIO_2056_TX0);
19296 pi->calibration_cache.txcal_radio_regs_5G[2] =
19297 read_radio_reg(pi,
19298 RADIO_2056_TX_LOFT_FINE_I |
19299 RADIO_2056_TX1);
19300 pi->calibration_cache.txcal_radio_regs_5G[3] =
19301 read_radio_reg(pi,
19302 RADIO_2056_TX_LOFT_FINE_Q |
19303 RADIO_2056_TX1);
19304
19305 pi->calibration_cache.txcal_radio_regs_5G[4] =
19306 read_radio_reg(pi,
19307 RADIO_2056_TX_LOFT_COARSE_I |
19308 RADIO_2056_TX0);
19309 pi->calibration_cache.txcal_radio_regs_5G[5] =
19310 read_radio_reg(pi,
19311 RADIO_2056_TX_LOFT_COARSE_Q |
19312 RADIO_2056_TX0);
19313 pi->calibration_cache.txcal_radio_regs_5G[6] =
19314 read_radio_reg(pi,
19315 RADIO_2056_TX_LOFT_COARSE_I |
19316 RADIO_2056_TX1);
19317 pi->calibration_cache.txcal_radio_regs_5G[7] =
19318 read_radio_reg(pi,
19319 RADIO_2056_TX_LOFT_COARSE_Q |
19320 RADIO_2056_TX1);
19321 } else {
19322 pi->calibration_cache.txcal_radio_regs_5G[0] =
19323 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19324 pi->calibration_cache.txcal_radio_regs_5G[1] =
19325 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19326 pi->calibration_cache.txcal_radio_regs_5G[2] =
19327 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19328 pi->calibration_cache.txcal_radio_regs_5G[3] =
19329 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19330 }
19331
19332 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
19333 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19334 }
19335 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19336 for (coreNum = 0; coreNum <= 1; coreNum++) {
19337
19338 txcal_radio_regs[2 * coreNum] =
19339 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19340 LOFT_FINE_I);
19341 txcal_radio_regs[2 * coreNum + 1] =
19342 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19343 LOFT_FINE_Q);
19344
19345 txcal_radio_regs[2 * coreNum + 4] =
19346 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19347 LOFT_COARSE_I);
19348 txcal_radio_regs[2 * coreNum + 5] =
19349 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19350 LOFT_COARSE_Q);
19351 }
19352 }
19353
19354 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
19355
19356 if (pi->phyhang_avoid)
19357 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
19358}
19359
7cc4a4c0 19360static void wlc_phy_restorecal_nphy(phy_info_t *pi)
a9533e7e
HP
19361{
19362 uint16 *loft_comp;
19363 uint16 txcal_coeffs_bphy[4];
19364 uint16 *tbl_ptr;
19365 int coreNum;
19366 uint16 *txcal_radio_regs = NULL;
19367
19368 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19369 if (pi->nphy_iqcal_chanspec_2G == 0)
19370 return;
19371
19372 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19373 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19374 } else {
19375 if (pi->nphy_iqcal_chanspec_5G == 0)
19376 return;
19377
19378 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19379 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
19380 }
19381
19382 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16,
19383 (void *)tbl_ptr);
19384
19385 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19386 txcal_coeffs_bphy[0] = tbl_ptr[0];
19387 txcal_coeffs_bphy[1] = tbl_ptr[1];
19388 txcal_coeffs_bphy[2] = tbl_ptr[2];
19389 txcal_coeffs_bphy[3] = tbl_ptr[3];
19390 } else {
19391 txcal_coeffs_bphy[0] = 0;
19392 txcal_coeffs_bphy[1] = 0;
19393 txcal_coeffs_bphy[2] = 0;
19394 txcal_coeffs_bphy[3] = 0;
19395 }
19396
19397 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
19398 txcal_coeffs_bphy);
19399
19400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
19401
19402 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
19403
19404 if (NREV_LT(pi->pubpi.phy_rev, 2))
19405 wlc_phy_tx_iq_war_nphy(pi);
19406
19407 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19408 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19409 txcal_radio_regs =
19410 pi->calibration_cache.txcal_radio_regs_2G;
19411 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19412
19413 write_radio_reg(pi,
19414 RADIO_2056_TX_LOFT_FINE_I |
19415 RADIO_2056_TX0,
19416 pi->calibration_cache.
19417 txcal_radio_regs_2G[0]);
19418 write_radio_reg(pi,
19419 RADIO_2056_TX_LOFT_FINE_Q |
19420 RADIO_2056_TX0,
19421 pi->calibration_cache.
19422 txcal_radio_regs_2G[1]);
19423 write_radio_reg(pi,
19424 RADIO_2056_TX_LOFT_FINE_I |
19425 RADIO_2056_TX1,
19426 pi->calibration_cache.
19427 txcal_radio_regs_2G[2]);
19428 write_radio_reg(pi,
19429 RADIO_2056_TX_LOFT_FINE_Q |
19430 RADIO_2056_TX1,
19431 pi->calibration_cache.
19432 txcal_radio_regs_2G[3]);
19433
19434 write_radio_reg(pi,
19435 RADIO_2056_TX_LOFT_COARSE_I |
19436 RADIO_2056_TX0,
19437 pi->calibration_cache.
19438 txcal_radio_regs_2G[4]);
19439 write_radio_reg(pi,
19440 RADIO_2056_TX_LOFT_COARSE_Q |
19441 RADIO_2056_TX0,
19442 pi->calibration_cache.
19443 txcal_radio_regs_2G[5]);
19444 write_radio_reg(pi,
19445 RADIO_2056_TX_LOFT_COARSE_I |
19446 RADIO_2056_TX1,
19447 pi->calibration_cache.
19448 txcal_radio_regs_2G[6]);
19449 write_radio_reg(pi,
19450 RADIO_2056_TX_LOFT_COARSE_Q |
19451 RADIO_2056_TX1,
19452 pi->calibration_cache.
19453 txcal_radio_regs_2G[7]);
19454 } else {
19455 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19456 pi->calibration_cache.
19457 txcal_radio_regs_2G[0]);
19458 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19459 pi->calibration_cache.
19460 txcal_radio_regs_2G[1]);
19461 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19462 pi->calibration_cache.
19463 txcal_radio_regs_2G[2]);
19464 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19465 pi->calibration_cache.
19466 txcal_radio_regs_2G[3]);
19467 }
19468
19469 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19470 &pi->calibration_cache.
19471 rxcal_coeffs_2G);
19472 } else {
19473 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19474 txcal_radio_regs =
19475 pi->calibration_cache.txcal_radio_regs_5G;
19476 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19477
19478 write_radio_reg(pi,
19479 RADIO_2056_TX_LOFT_FINE_I |
19480 RADIO_2056_TX0,
19481 pi->calibration_cache.
19482 txcal_radio_regs_5G[0]);
19483 write_radio_reg(pi,
19484 RADIO_2056_TX_LOFT_FINE_Q |
19485 RADIO_2056_TX0,
19486 pi->calibration_cache.
19487 txcal_radio_regs_5G[1]);
19488 write_radio_reg(pi,
19489 RADIO_2056_TX_LOFT_FINE_I |
19490 RADIO_2056_TX1,
19491 pi->calibration_cache.
19492 txcal_radio_regs_5G[2]);
19493 write_radio_reg(pi,
19494 RADIO_2056_TX_LOFT_FINE_Q |
19495 RADIO_2056_TX1,
19496 pi->calibration_cache.
19497 txcal_radio_regs_5G[3]);
19498
19499 write_radio_reg(pi,
19500 RADIO_2056_TX_LOFT_COARSE_I |
19501 RADIO_2056_TX0,
19502 pi->calibration_cache.
19503 txcal_radio_regs_5G[4]);
19504 write_radio_reg(pi,
19505 RADIO_2056_TX_LOFT_COARSE_Q |
19506 RADIO_2056_TX0,
19507 pi->calibration_cache.
19508 txcal_radio_regs_5G[5]);
19509 write_radio_reg(pi,
19510 RADIO_2056_TX_LOFT_COARSE_I |
19511 RADIO_2056_TX1,
19512 pi->calibration_cache.
19513 txcal_radio_regs_5G[6]);
19514 write_radio_reg(pi,
19515 RADIO_2056_TX_LOFT_COARSE_Q |
19516 RADIO_2056_TX1,
19517 pi->calibration_cache.
19518 txcal_radio_regs_5G[7]);
19519 } else {
19520 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19521 pi->calibration_cache.
19522 txcal_radio_regs_5G[0]);
19523 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19524 pi->calibration_cache.
19525 txcal_radio_regs_5G[1]);
19526 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19527 pi->calibration_cache.
19528 txcal_radio_regs_5G[2]);
19529 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19530 pi->calibration_cache.
19531 txcal_radio_regs_5G[3]);
19532 }
19533
19534 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19535 &pi->calibration_cache.
19536 rxcal_coeffs_5G);
19537 }
19538
19539 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19540 for (coreNum = 0; coreNum <= 1; coreNum++) {
19541
19542 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19543 LOFT_FINE_I,
19544 txcal_radio_regs[2 * coreNum]);
19545 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19546 LOFT_FINE_Q,
19547 txcal_radio_regs[2 * coreNum + 1]);
19548
19549 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19550 LOFT_COARSE_I,
19551 txcal_radio_regs[2 * coreNum + 4]);
19552 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19553 LOFT_COARSE_Q,
19554 txcal_radio_regs[2 * coreNum + 5]);
19555 }
19556 }
19557}
19558
7cc4a4c0 19559void wlc_phy_antsel_init(wlc_phy_t *ppi, bool lut_init)
a9533e7e
HP
19560{
19561 phy_info_t *pi = (phy_info_t *) ppi;
19562 uint16 mask = 0xfc00;
19563 uint32 mc = 0;
19564
19565 if (NREV_GE(pi->pubpi.phy_rev, 7))
19566 return;
19567
19568 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19569 uint16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
19570
19571 if (lut_init == FALSE)
19572 return;
19573
19574 if (pi->srom_fem2g.antswctrllut == 0) {
19575 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19576 1, 0x02, 16, &v0);
19577 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19578 1, 0x03, 16, &v1);
19579 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19580 1, 0x08, 16, &v2);
19581 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19582 1, 0x0C, 16, &v3);
19583 } else {
19584 ASSERT(0);
19585 }
19586
19587 if (pi->srom_fem5g.antswctrllut == 0) {
19588 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19589 1, 0x12, 16, &v0);
19590 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19591 1, 0x13, 16, &v1);
19592 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19593 1, 0x18, 16, &v2);
19594 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19595 1, 0x1C, 16, &v3);
19596 } else {
19597 ASSERT(0);
19598 }
19599 } else {
19600
19601 write_phy_reg(pi, 0xc8, 0x0);
19602 write_phy_reg(pi, 0xc9, 0x0);
19603
19604 si_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
19605
19606 mc = R_REG(pi->sh->osh, &pi->regs->maccontrol);
19607 mc &= ~MCTL_GPOUT_SEL_MASK;
19608 W_REG(pi->sh->osh, &pi->regs->maccontrol, mc);
19609
19610 OR_REG(pi->sh->osh, &pi->regs->psm_gpio_oe, mask);
19611
19612 AND_REG(pi->sh->osh, &pi->regs->psm_gpio_out, ~mask);
19613
19614 if (lut_init) {
19615 write_phy_reg(pi, 0xf8, 0x02d8);
19616 write_phy_reg(pi, 0xf9, 0x0301);
19617 write_phy_reg(pi, 0xfa, 0x02d8);
19618 write_phy_reg(pi, 0xfb, 0x0301);
19619 }
19620 }
19621}
19622
7cc4a4c0 19623uint16 wlc_phy_classifier_nphy(phy_info_t *pi, uint16 mask, uint16 val)
a9533e7e
HP
19624{
19625 uint16 curr_ctl, new_ctl;
19626 bool suspended = FALSE;
19627
19628 if (D11REV_IS(pi->sh->corerev, 16)) {
19629 suspended =
19630 (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC) ?
19631 FALSE : TRUE;
19632 if (!suspended)
19633 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19634 }
19635
19636 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
19637
19638 new_ctl = (curr_ctl & (~mask)) | (val & mask);
19639
19640 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
19641
19642 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
19643 wlapi_enable_mac(pi->sh->physhim);
19644
19645 return new_ctl;
19646}
19647
7cc4a4c0 19648static void wlc_phy_clip_det_nphy(phy_info_t *pi, uint8 write, uint16 *vals)
a9533e7e
HP
19649{
19650
19651 if (write == 0) {
19652 vals[0] = read_phy_reg(pi, 0x2c);
19653 vals[1] = read_phy_reg(pi, 0x42);
19654 } else {
19655 write_phy_reg(pi, 0x2c, vals[0]);
19656 write_phy_reg(pi, 0x42, vals[1]);
19657 }
19658}
19659
7cc4a4c0 19660void wlc_phy_force_rfseq_nphy(phy_info_t *pi, uint8 cmd)
a9533e7e
HP
19661{
19662 uint16 trigger_mask, status_mask;
19663 uint16 orig_RfseqCoreActv;
19664
19665 switch (cmd) {
19666 case NPHY_RFSEQ_RX2TX:
19667 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19668 status_mask = NPHY_RfseqStatus_rx2tx;
19669 break;
19670 case NPHY_RFSEQ_TX2RX:
19671 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19672 status_mask = NPHY_RfseqStatus_tx2rx;
19673 break;
19674 case NPHY_RFSEQ_RESET2RX:
19675 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19676 status_mask = NPHY_RfseqStatus_reset2rx;
19677 break;
19678 case NPHY_RFSEQ_UPDATEGAINH:
19679 trigger_mask = NPHY_RfseqTrigger_updategainh;
19680 status_mask = NPHY_RfseqStatus_updategainh;
19681 break;
19682 case NPHY_RFSEQ_UPDATEGAINL:
19683 trigger_mask = NPHY_RfseqTrigger_updategainl;
19684 status_mask = NPHY_RfseqStatus_updategainl;
19685 break;
19686 case NPHY_RFSEQ_UPDATEGAINU:
19687 trigger_mask = NPHY_RfseqTrigger_updategainu;
19688 status_mask = NPHY_RfseqStatus_updategainu;
19689 break;
19690 default:
19691 return;
19692 }
19693
19694 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
19695 or_phy_reg(pi, 0xa1,
19696 (NPHY_RfseqMode_CoreActv_override |
19697 NPHY_RfseqMode_Trigger_override));
19698 or_phy_reg(pi, 0xa3, trigger_mask);
19699 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
19700 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
19701
19702 ASSERT((read_phy_reg(pi, 0xa4) & status_mask) == 0);
19703}
19704
19705static void
7cc4a4c0 19706wlc_phy_set_rfseq_nphy(phy_info_t *pi, uint8 cmd, uint8 *events, uint8 *dlys,
a9533e7e
HP
19707 uint8 len)
19708{
19709 uint32 t1_offset, t2_offset;
19710 uint8 ctr;
19711 uint8 end_event =
19712 NREV_GE(pi->pubpi.phy_rev,
19713 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
19714 uint8 end_dly = 1;
19715
19716 ASSERT(len <= 16);
19717
19718 if (pi->phyhang_avoid)
19719 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
19720
19721 t1_offset = cmd << 4;
19722 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
19723 events);
19724 t2_offset = t1_offset + 0x080;
19725 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19726 dlys);
19727
19728 for (ctr = len; ctr < 16; ctr++) {
19729 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19730 t1_offset + ctr, 8, &end_event);
19731 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19732 t2_offset + ctr, 8, &end_dly);
19733 }
19734
19735 if (pi->phyhang_avoid)
19736 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
19737}
19738
7cc4a4c0 19739static uint16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, uint16 offset)
a9533e7e
HP
19740{
19741 uint16 lpf_bw_ctl_val = 0;
19742 uint16 rx2tx_lpf_rc_lut_offset = 0;
19743
19744 if (offset == 0) {
19745 if (CHSPEC_IS40(pi->radio_chanspec)) {
19746 rx2tx_lpf_rc_lut_offset = 0x159;
19747 } else {
19748 rx2tx_lpf_rc_lut_offset = 0x154;
19749 }
19750 } else {
19751 rx2tx_lpf_rc_lut_offset = offset;
19752 }
19753 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19754 (uint32) rx2tx_lpf_rc_lut_offset, 16,
19755 &lpf_bw_ctl_val);
19756
19757 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19758
19759 return lpf_bw_ctl_val;
19760}
19761
19762static void
7cc4a4c0 19763wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, uint16 field, uint16 value,
a9533e7e
HP
19764 uint8 core_mask, uint8 off, uint8 override_id)
19765{
19766 uint8 core_num;
19767 uint16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
19768 uint8 val_shift = 0;
19769
19770 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19771 en_mask = field;
19772 for (core_num = 0; core_num < 2; core_num++) {
19773 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19774
19775 switch (field) {
19776 case (0x1 << 2):
19777 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19778 val_addr = (core_num == 0) ? 0x7a :
19779 0x7d;
19780 val_mask = (0x1 << 1);
19781 val_shift = 1;
19782 break;
19783 case (0x1 << 3):
19784 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19785 val_addr = (core_num == 0) ? 0x7a :
19786 0x7d;
19787 val_mask = (0x1 << 2);
19788 val_shift = 2;
19789 break;
19790 case (0x1 << 4):
19791 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19792 val_addr = (core_num == 0) ? 0x7a :
19793 0x7d;
19794 val_mask = (0x1 << 4);
19795 val_shift = 4;
19796 break;
19797 case (0x1 << 5):
19798 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19799 val_addr = (core_num == 0) ? 0x7a :
19800 0x7d;
19801 val_mask = (0x1 << 5);
19802 val_shift = 5;
19803 break;
19804 case (0x1 << 6):
19805 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19806 val_addr = (core_num == 0) ? 0x7a :
19807 0x7d;
19808 val_mask = (0x1 << 6);
19809 val_shift = 6;
19810 break;
19811 case (0x1 << 7):
19812 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19813 val_addr = (core_num == 0) ? 0x7a :
19814 0x7d;
19815 val_mask = (0x1 << 7);
19816 val_shift = 7;
19817 break;
19818 case (0x1 << 10):
19819 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19820 val_addr = (core_num == 0) ? 0xf8 :
19821 0xfa;
19822 val_mask = (0x7 << 4);
19823 val_shift = 4;
19824 break;
19825 case (0x1 << 11):
19826 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19827 val_addr = (core_num == 0) ? 0x7b :
19828 0x7e;
19829 val_mask = (0xffff << 0);
19830 val_shift = 0;
19831 break;
19832 case (0x1 << 12):
19833 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19834 val_addr = (core_num == 0) ? 0x7c :
19835 0x7f;
19836 val_mask = (0xffff << 0);
19837 val_shift = 0;
19838 break;
19839 case (0x3 << 13):
19840 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19841 val_addr = (core_num == 0) ? 0x348 :
19842 0x349;
19843 val_mask = (0xff << 0);
19844 val_shift = 0;
19845 break;
19846 case (0x1 << 13):
19847 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19848 val_addr = (core_num == 0) ? 0x348 :
19849 0x349;
19850 val_mask = (0xf << 0);
19851 val_shift = 0;
19852 break;
19853 default:
19854 addr = 0xffff;
19855 break;
19856 }
19857 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19858
19859 switch (field) {
19860 case (0x1 << 1):
19861 en_addr = (core_num == 0) ? 0x342 :
19862 0x343;
19863 val_addr = (core_num == 0) ? 0x340 :
19864 0x341;
19865 val_mask = (0x1 << 1);
19866 val_shift = 1;
19867 break;
19868 case (0x1 << 3):
19869 en_addr = (core_num == 0) ? 0x342 :
19870 0x343;
19871 val_addr = (core_num == 0) ? 0x340 :
19872 0x341;
19873 val_mask = (0x1 << 3);
19874 val_shift = 3;
19875 break;
19876 case (0x1 << 5):
19877 en_addr = (core_num == 0) ? 0x342 :
19878 0x343;
19879 val_addr = (core_num == 0) ? 0x340 :
19880 0x341;
19881 val_mask = (0x1 << 5);
19882 val_shift = 5;
19883 break;
19884 case (0x1 << 4):
19885 en_addr = (core_num == 0) ? 0x342 :
19886 0x343;
19887 val_addr = (core_num == 0) ? 0x340 :
19888 0x341;
19889 val_mask = (0x1 << 4);
19890 val_shift = 4;
19891 break;
19892 case (0x1 << 2):
19893
19894 en_addr = (core_num == 0) ? 0x342 :
19895 0x343;
19896 val_addr = (core_num == 0) ? 0x340 :
19897 0x341;
19898 val_mask = (0x1 << 2);
19899 val_shift = 2;
19900 break;
19901 case (0x1 << 7):
19902
19903 en_addr = (core_num == 0) ? 0x342 :
19904 0x343;
19905 val_addr = (core_num == 0) ? 0x340 :
19906 0x341;
19907 val_mask = (0x7 << 8);
19908 val_shift = 8;
19909 break;
19910 case (0x1 << 11):
19911 en_addr = (core_num == 0) ? 0x342 :
19912 0x343;
19913 val_addr = (core_num == 0) ? 0x340 :
19914 0x341;
19915 val_mask = (0x1 << 14);
19916 val_shift = 14;
19917 break;
19918 case (0x1 << 10):
19919 en_addr = (core_num == 0) ? 0x342 :
19920 0x343;
19921 val_addr = (core_num == 0) ? 0x340 :
19922 0x341;
19923 val_mask = (0x1 << 13);
19924 val_shift = 13;
19925 break;
19926 case (0x1 << 9):
19927 en_addr = (core_num == 0) ? 0x342 :
19928 0x343;
19929 val_addr = (core_num == 0) ? 0x340 :
19930 0x341;
19931 val_mask = (0x1 << 12);
19932 val_shift = 12;
19933 break;
19934 case (0x1 << 8):
19935 en_addr = (core_num == 0) ? 0x342 :
19936 0x343;
19937 val_addr = (core_num == 0) ? 0x340 :
19938 0x341;
19939 val_mask = (0x1 << 11);
19940 val_shift = 11;
19941 break;
19942 case (0x1 << 6):
19943 en_addr = (core_num == 0) ? 0x342 :
19944 0x343;
19945 val_addr = (core_num == 0) ? 0x340 :
19946 0x341;
19947 val_mask = (0x1 << 6);
19948 val_shift = 6;
19949 break;
19950 case (0x1 << 0):
19951 en_addr = (core_num == 0) ? 0x342 :
19952 0x343;
19953 val_addr = (core_num == 0) ? 0x340 :
19954 0x341;
19955 val_mask = (0x1 << 0);
19956 val_shift = 0;
19957 break;
19958 default:
19959 addr = 0xffff;
19960 break;
19961 }
19962 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19963
19964 switch (field) {
19965 case (0x1 << 3):
19966 en_addr = (core_num == 0) ? 0x346 :
19967 0x347;
19968 val_addr = (core_num == 0) ? 0x344 :
19969 0x345;
19970 val_mask = (0x1 << 3);
19971 val_shift = 3;
19972 break;
19973 case (0x1 << 1):
19974 en_addr = (core_num == 0) ? 0x346 :
19975 0x347;
19976 val_addr = (core_num == 0) ? 0x344 :
19977 0x345;
19978 val_mask = (0x1 << 1);
19979 val_shift = 1;
19980 break;
19981 case (0x1 << 0):
19982 en_addr = (core_num == 0) ? 0x346 :
19983 0x347;
19984 val_addr = (core_num == 0) ? 0x344 :
19985 0x345;
19986 val_mask = (0x1 << 0);
19987 val_shift = 0;
19988 break;
19989 case (0x1 << 2):
19990 en_addr = (core_num == 0) ? 0x346 :
19991 0x347;
19992 val_addr = (core_num == 0) ? 0x344 :
19993 0x345;
19994 val_mask = (0x1 << 2);
19995 val_shift = 2;
19996 break;
19997 case (0x1 << 4):
19998 en_addr = (core_num == 0) ? 0x346 :
19999 0x347;
20000 val_addr = (core_num == 0) ? 0x344 :
20001 0x345;
20002 val_mask = (0x1 << 4);
20003 val_shift = 4;
20004 break;
20005 default:
20006 addr = 0xffff;
20007 break;
20008 }
20009 }
20010
20011 if (off) {
20012 and_phy_reg(pi, en_addr, ~en_mask);
20013 and_phy_reg(pi, val_addr, ~val_mask);
20014 } else {
20015
20016 if ((core_mask == 0)
20017 || (core_mask & (1 << core_num))) {
20018 or_phy_reg(pi, en_addr, en_mask);
20019
20020 if (addr != 0xffff) {
20021 mod_phy_reg(pi, val_addr,
20022 val_mask,
20023 (value <<
20024 val_shift));
20025 }
20026 }
20027 }
20028 }
20029 }
20030}
20031
20032static void
7cc4a4c0 20033wlc_phy_rfctrl_override_nphy(phy_info_t *pi, uint16 field, uint16 value,
a9533e7e
HP
20034 uint8 core_mask, uint8 off)
20035{
20036 uint8 core_num;
20037 uint16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
20038 0, val_mask = 0;
20039 uint8 shift = 0, val_shift = 0;
20040
20041 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
20042
20043 en_mask = field;
20044 for (core_num = 0; core_num < 2; core_num++) {
20045
20046 switch (field) {
20047 case (0x1 << 1):
20048 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20049 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20050 val_mask = (0x1 << 0);
20051 val_shift = 0;
20052 break;
20053 case (0x1 << 2):
20054 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20055 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20056 val_mask = (0x1 << 1);
20057 val_shift = 1;
20058 break;
20059 case (0x1 << 3):
20060 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20061 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20062 val_mask = (0x1 << 2);
20063 val_shift = 2;
20064 break;
20065 case (0x1 << 4):
20066 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20067 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20068 val_mask = (0x1 << 4);
20069 val_shift = 4;
20070 break;
20071 case (0x1 << 5):
20072 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20073 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20074 val_mask = (0x1 << 5);
20075 val_shift = 5;
20076 break;
20077 case (0x1 << 6):
20078 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20079 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20080 val_mask = (0x1 << 6);
20081 val_shift = 6;
20082 break;
20083 case (0x1 << 7):
20084 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20085 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20086 val_mask = (0x1 << 7);
20087 val_shift = 7;
20088 break;
20089 case (0x1 << 8):
20090 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20091 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20092 val_mask = (0x7 << 8);
20093 val_shift = 8;
20094 break;
20095 case (0x1 << 11):
20096 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20097 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20098 val_mask = (0x7 << 13);
20099 val_shift = 13;
20100 break;
20101
20102 case (0x1 << 9):
20103 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20104 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20105 val_mask = (0x7 << 0);
20106 val_shift = 0;
20107 break;
20108
20109 case (0x1 << 10):
20110 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20111 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20112 val_mask = (0x7 << 4);
20113 val_shift = 4;
20114 break;
20115
20116 case (0x1 << 12):
20117 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20118 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20119 val_mask = (0xffff << 0);
20120 val_shift = 0;
20121 break;
20122 case (0x1 << 13):
20123 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20124 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20125 val_mask = (0xffff << 0);
20126 val_shift = 0;
20127 break;
20128 case (0x1 << 14):
20129 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20130 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20131 val_mask = (0x3 << 6);
20132 val_shift = 6;
20133 break;
20134 case (0x1 << 0):
20135 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20136 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20137 val_mask = (0x1 << 15);
20138 val_shift = 15;
20139 break;
20140 default:
20141 addr = 0xffff;
20142 break;
20143 }
20144
20145 if (off) {
20146 and_phy_reg(pi, en_addr, ~en_mask);
20147 and_phy_reg(pi, val_addr, ~val_mask);
20148 } else {
20149
20150 if ((core_mask == 0)
20151 || (core_mask & (1 << core_num))) {
20152 or_phy_reg(pi, en_addr, en_mask);
20153
20154 if (addr != 0xffff) {
20155 mod_phy_reg(pi, val_addr,
20156 val_mask,
20157 (value <<
20158 val_shift));
20159 }
20160 }
20161 }
20162 }
20163 } else {
20164
20165 if (off) {
20166 and_phy_reg(pi, 0xec, ~field);
20167 value = 0x0;
20168 } else {
20169 or_phy_reg(pi, 0xec, field);
20170 }
20171
20172 for (core_num = 0; core_num < 2; core_num++) {
20173
20174 switch (field) {
20175 case (0x1 << 1):
20176 case (0x1 << 9):
20177 case (0x1 << 12):
20178 case (0x1 << 13):
20179 case (0x1 << 14):
20180 addr = 0x78;
20181
20182 core_mask = 0x1;
20183 break;
20184 case (0x1 << 2):
20185 case (0x1 << 3):
20186 case (0x1 << 4):
20187 case (0x1 << 5):
20188 case (0x1 << 6):
20189 case (0x1 << 7):
20190 case (0x1 << 8):
20191 addr = (core_num == 0) ? 0x7a : 0x7d;
20192 break;
20193 case (0x1 << 10):
20194 addr = (core_num == 0) ? 0x7b : 0x7e;
20195 break;
20196 case (0x1 << 11):
20197 addr = (core_num == 0) ? 0x7c : 0x7f;
20198 break;
20199 default:
20200 addr = 0xffff;
20201 }
20202
20203 switch (field) {
20204 case (0x1 << 1):
20205 mask = (0x7 << 3);
20206 shift = 3;
20207 break;
20208 case (0x1 << 9):
20209 mask = (0x1 << 2);
20210 shift = 2;
20211 break;
20212 case (0x1 << 12):
20213 mask = (0x1 << 8);
20214 shift = 8;
20215 break;
20216 case (0x1 << 13):
20217 mask = (0x1 << 9);
20218 shift = 9;
20219 break;
20220 case (0x1 << 14):
20221 mask = (0xf << 12);
20222 shift = 12;
20223 break;
20224 case (0x1 << 2):
20225 mask = (0x1 << 0);
20226 shift = 0;
20227 break;
20228 case (0x1 << 3):
20229 mask = (0x1 << 1);
20230 shift = 1;
20231 break;
20232 case (0x1 << 4):
20233 mask = (0x1 << 2);
20234 shift = 2;
20235 break;
20236 case (0x1 << 5):
20237 mask = (0x3 << 4);
20238 shift = 4;
20239 break;
20240 case (0x1 << 6):
20241 mask = (0x3 << 6);
20242 shift = 6;
20243 break;
20244 case (0x1 << 7):
20245 mask = (0x1 << 8);
20246 shift = 8;
20247 break;
20248 case (0x1 << 8):
20249 mask = (0x1 << 9);
20250 shift = 9;
20251 break;
20252 case (0x1 << 10):
20253 mask = 0x1fff;
20254 shift = 0x0;
20255 break;
20256 case (0x1 << 11):
20257 mask = 0x1fff;
20258 shift = 0x0;
20259 break;
20260 default:
20261 mask = 0x0;
20262 shift = 0x0;
20263 break;
20264 }
20265
20266 if ((addr != 0xffff) && (core_mask & (1 << core_num))) {
20267 mod_phy_reg(pi, addr, mask, (value << shift));
20268 }
20269 }
20270
20271 or_phy_reg(pi, 0xec, (0x1 << 0));
20272 or_phy_reg(pi, 0x78, (0x1 << 0));
20273 OSL_DELAY(1);
20274 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20275 }
20276}
20277
20278static void
7cc4a4c0 20279wlc_phy_rfctrl_override_1tomany_nphy(phy_info_t *pi, uint16 cmd, uint16 value,
a9533e7e
HP
20280 uint8 core_mask, uint8 off)
20281{
20282 uint16 rfmxgain = 0, lpfgain = 0;
20283 uint16 tgain = 0;
20284
20285 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20286
20287 switch (cmd) {
20288 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
20289 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
20290 value, core_mask, off,
20291 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20292 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), value,
20293 core_mask, off,
20294 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20295 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), value,
20296 core_mask, off,
20297 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20298 break;
20299 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
20300 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20301 value, core_mask, off,
20302 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20303 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20304 core_mask, off,
20305 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20306 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20307 core_mask, off,
20308 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20309 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20310 core_mask, off,
20311 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20312 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0,
20313 core_mask, off,
20314 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20315 break;
20316 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
20317 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20318 value, core_mask, off,
20319 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20320 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20321 core_mask, off,
20322 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20323 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20324 core_mask, off,
20325 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20326 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), value,
20327 core_mask, off,
20328 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20329 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1,
20330 core_mask, off,
20331 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20332 break;
20333 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
20334 rfmxgain = value & 0x000ff;
20335 lpfgain = value & 0x0ff00;
20336 lpfgain = lpfgain >> 8;
20337
20338 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
20339 rfmxgain, core_mask,
20340 off,
20341 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20342 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x3 << 13),
20343 lpfgain, core_mask,
20344 off,
20345 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20346 break;
20347 case NPHY_REV7_RfctrlOverride_cmd_txgain:
20348 tgain = value & 0x7fff;
20349 lpfgain = value & 0x8000;
20350 lpfgain = lpfgain >> 14;
20351
20352 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
20353 tgain, core_mask, off,
20354 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20355 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 13),
20356 lpfgain, core_mask,
20357 off,
20358 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20359 break;
20360 }
20361 }
20362}
20363
20364static void
7cc4a4c0 20365wlc_phy_scale_offset_rssi_nphy(phy_info_t *pi, uint16 scale, int8 offset,
a9533e7e
HP
20366 uint8 coresel, uint8 rail, uint8 rssi_type)
20367{
20368 uint16 valuetostuff;
20369
20370 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
20371 NPHY_RSSICAL_MAXREAD : offset;
20372 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
20373 -NPHY_RSSICAL_MAXREAD - 1 : offset;
20374
20375 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
20376
20377 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20378 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20379 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20380 write_phy_reg(pi, 0x1a6, valuetostuff);
20381 }
20382 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20383 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20384 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20385 write_phy_reg(pi, 0x1ac, valuetostuff);
20386 }
20387 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20388 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20389 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20390 write_phy_reg(pi, 0x1b2, valuetostuff);
20391 }
20392 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20393 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20394 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20395 write_phy_reg(pi, 0x1b8, valuetostuff);
20396 }
20397
20398 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20399 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20400 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20401 write_phy_reg(pi, 0x1a4, valuetostuff);
20402 }
20403 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20404 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20405 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20406 write_phy_reg(pi, 0x1aa, valuetostuff);
20407 }
20408 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20409 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20410 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20411 write_phy_reg(pi, 0x1b0, valuetostuff);
20412 }
20413 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20414 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20415 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20416 write_phy_reg(pi, 0x1b6, valuetostuff);
20417 }
20418
20419 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20420 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20421 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20422 write_phy_reg(pi, 0x1a5, valuetostuff);
20423 }
20424 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20425 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20426 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20427 write_phy_reg(pi, 0x1ab, valuetostuff);
20428 }
20429 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20430 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20431 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20432 write_phy_reg(pi, 0x1b1, valuetostuff);
20433 }
20434 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20435 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20436 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20437 write_phy_reg(pi, 0x1b7, valuetostuff);
20438 }
20439
20440 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20441 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20442 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20443 write_phy_reg(pi, 0x1a7, valuetostuff);
20444 }
20445 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20446 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20447 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20448 write_phy_reg(pi, 0x1ad, valuetostuff);
20449 }
20450 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20451 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20452 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20453 write_phy_reg(pi, 0x1b3, valuetostuff);
20454 }
20455 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20456 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20457 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20458 write_phy_reg(pi, 0x1b9, valuetostuff);
20459 }
20460
20461 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20462 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20463 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20464 write_phy_reg(pi, 0x1a8, valuetostuff);
20465 }
20466 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20467 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20468 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20469 write_phy_reg(pi, 0x1ae, valuetostuff);
20470 }
20471 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20472 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20473 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20474 write_phy_reg(pi, 0x1b4, valuetostuff);
20475 }
20476 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20477 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20478 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20479 write_phy_reg(pi, 0x1ba, valuetostuff);
20480 }
20481
20482 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20483 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20484 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20485 write_phy_reg(pi, 0x1a9, valuetostuff);
20486 }
20487 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20488 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20489 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20490 write_phy_reg(pi, 0x1b5, valuetostuff);
20491 }
20492
20493 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20494 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20495 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20496 write_phy_reg(pi, 0x1af, valuetostuff);
20497 }
20498 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20499 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20500 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20501 write_phy_reg(pi, 0x1bb, valuetostuff);
20502 }
20503}
20504
7cc4a4c0 20505void wlc_phy_rssisel_nphy(phy_info_t *pi, uint8 core_code, uint8 rssi_type)
a9533e7e
HP
20506{
20507 uint16 mask, val;
20508 uint16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
20509 startseq;
20510 uint16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
20511 rfctrlovr_trigger_val;
20512 uint16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
20513 uint16 rfctrlcmd_val, rfctrlovr_val;
20514 uint8 core;
20515
20516 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20517 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20518 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
20519 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
20520
20521 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
20522 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
20523
20524 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
20525 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
20526
20527 mask = (0x1 << 2) |
20528 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20529 mod_phy_reg(pi, 0xf9, mask, 0);
20530 mod_phy_reg(pi, 0xfb, mask, 0);
20531
20532 } else {
20533 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20534 if (core_code == RADIO_MIMO_CORESEL_CORE1
20535 && core == PHY_CORE_1)
20536 continue;
20537 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20538 && core == PHY_CORE_0)
20539 continue;
20540
20541 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20542 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20543
20544 if (rssi_type == NPHY_RSSI_SEL_W1 ||
20545 rssi_type == NPHY_RSSI_SEL_W2 ||
20546 rssi_type == NPHY_RSSI_SEL_NB) {
20547
20548 mod_phy_reg(pi,
20549 (core ==
20550 PHY_CORE_0) ? 0xa6 : 0xa7,
20551 (0x3 << 8), 0);
20552
20553 mask = (0x1 << 2) |
20554 (0x1 << 3) |
20555 (0x1 << 4) | (0x1 << 5);
20556 mod_phy_reg(pi,
20557 (core ==
20558 PHY_CORE_0) ? 0xf9 : 0xfb,
20559 mask, 0);
20560
20561 if (rssi_type == NPHY_RSSI_SEL_W1) {
20562 if (CHSPEC_IS5G
20563 (pi->radio_chanspec)) {
20564 mask = (0x1 << 2);
20565 val = 1 << 2;
20566 } else {
20567 mask = (0x1 << 3);
20568 val = 1 << 3;
20569 }
20570 } else if (rssi_type ==
20571 NPHY_RSSI_SEL_W2) {
20572 mask = (0x1 << 4);
20573 val = 1 << 4;
20574 } else {
20575 mask = (0x1 << 5);
20576 val = 1 << 5;
20577 }
20578 mod_phy_reg(pi,
20579 (core ==
20580 PHY_CORE_0) ? 0xf9 : 0xfb,
20581 mask, val);
20582
20583 mask = (0x1 << 5);
20584 val = 1 << 5;
20585 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20586 0xe5 : 0xe6, mask, val);
20587 } else {
20588 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20589
20590 mask = (0x3 << 8);
20591 val = 1 << 8;
20592 mod_phy_reg(pi,
20593 (core ==
20594 PHY_CORE_0) ? 0xa6
20595 : 0xa7, mask, val);
20596 mask = (0x3 << 10);
20597 val = 1 << 10;
20598 mod_phy_reg(pi,
20599 (core ==
20600 PHY_CORE_0) ? 0xa6
20601 : 0xa7, mask, val);
20602 } else if (rssi_type ==
20603 NPHY_RSSI_SEL_IQ) {
20604
20605 mask = (0x3 << 8);
20606 val = 2 << 8;
20607 mod_phy_reg(pi,
20608 (core ==
20609 PHY_CORE_0) ? 0xa6
20610 : 0xa7, mask, val);
20611 mask = (0x3 << 10);
20612 val = 2 << 10;
20613 mod_phy_reg(pi,
20614 (core ==
20615 PHY_CORE_0) ? 0xa6
20616 : 0xa7, mask, val);
20617 } else {
20618
20619 mask = (0x3 << 8);
20620 val = 3 << 8;
20621 mod_phy_reg(pi,
20622 (core ==
20623 PHY_CORE_0) ? 0xa6
20624 : 0xa7, mask, val);
20625 mask = (0x3 << 10);
20626 val = 3 << 10;
20627 mod_phy_reg(pi,
20628 (core ==
20629 PHY_CORE_0) ? 0xa6
20630 : 0xa7, mask, val);
20631
20632 if (PHY_IPA(pi)) {
20633 if (NREV_GE
20634 (pi->pubpi.phy_rev,
20635 7)) {
20636
20637 write_radio_reg
20638 (pi,
20639 ((core ==
20640 PHY_CORE_0)
20641 ?
20642 RADIO_2057_TX0_TX_SSI_MUX
20643 :
20644 RADIO_2057_TX1_TX_SSI_MUX),
20645 (CHSPEC_IS5G
20646 (pi->
20647 radio_chanspec)
20648 ? 0xc :
20649 0xe));
20650 } else {
20651 write_radio_reg
20652 (pi,
20653 RADIO_2056_TX_TX_SSI_MUX
20654 |
20655 ((core ==
20656 PHY_CORE_0)
20657 ?
20658 RADIO_2056_TX0
20659 :
20660 RADIO_2056_TX1),
20661 (CHSPEC_IS5G
20662 (pi->
20663 radio_chanspec)
20664 ? 0xc :
20665 0xe));
20666 }
20667 } else {
20668
20669 if (NREV_GE
20670 (pi->pubpi.phy_rev,
20671 7)) {
20672 write_radio_reg
20673 (pi,
20674 ((core ==
20675 PHY_CORE_0)
20676 ?
20677 RADIO_2057_TX0_TX_SSI_MUX
20678 :
20679 RADIO_2057_TX1_TX_SSI_MUX),
20680 0x11);
20681
20682 if (pi->pubpi.
20683 radioid ==
20684 BCM2057_ID)
20685 write_radio_reg
20686 (pi,
20687 RADIO_2057_IQTEST_SEL_PU,
20688 0x1);
20689
20690 } else {
20691 write_radio_reg
20692 (pi,
20693 RADIO_2056_TX_TX_SSI_MUX
20694 |
20695 ((core ==
20696 PHY_CORE_0)
20697 ?
20698 RADIO_2056_TX0
20699 :
20700 RADIO_2056_TX1),
20701 0x11);
20702 }
20703 }
20704
20705 afectrlovr_rssi_val = 1 << 9;
20706 mod_phy_reg(pi,
20707 (core ==
20708 PHY_CORE_0) ? 0x8f
20709 : 0xa5, (0x1 << 9),
20710 afectrlovr_rssi_val);
20711 }
20712 }
20713 }
20714 }
20715 } else {
20716
20717 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20718 (rssi_type == NPHY_RSSI_SEL_W2) ||
20719 (rssi_type == NPHY_RSSI_SEL_NB)) {
20720
20721 val = 0x0;
20722 } else if (rssi_type == NPHY_RSSI_SEL_TBD) {
20723
20724 val = 0x1;
20725 } else if (rssi_type == NPHY_RSSI_SEL_IQ) {
20726
20727 val = 0x2;
20728 } else {
20729
20730 val = 0x3;
20731 }
20732 mask = ((0x3 << 12) | (0x3 << 14));
20733 val = (val << 12) | (val << 14);
20734 mod_phy_reg(pi, 0xa6, mask, val);
20735 mod_phy_reg(pi, 0xa7, mask, val);
20736
20737 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20738 (rssi_type == NPHY_RSSI_SEL_W2) ||
20739 (rssi_type == NPHY_RSSI_SEL_NB)) {
20740 if (rssi_type == NPHY_RSSI_SEL_W1) {
20741 val = 0x1;
20742 }
20743 if (rssi_type == NPHY_RSSI_SEL_W2) {
20744 val = 0x2;
20745 }
20746 if (rssi_type == NPHY_RSSI_SEL_NB) {
20747 val = 0x3;
20748 }
20749 mask = (0x3 << 4);
20750 val = (val << 4);
20751 mod_phy_reg(pi, 0x7a, mask, val);
20752 mod_phy_reg(pi, 0x7d, mask, val);
20753 }
20754
20755 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20756 afectrlovr_rssi_val = 0;
20757 rfctrlcmd_rxen_val = 0;
20758 rfctrlcmd_coresel_val = 0;
20759 rfctrlovr_rssi_val = 0;
20760 rfctrlovr_rxen_val = 0;
20761 rfctrlovr_coresel_val = 0;
20762 rfctrlovr_trigger_val = 0;
20763 startseq = 0;
20764 } else {
20765 afectrlovr_rssi_val = 1;
20766 rfctrlcmd_rxen_val = 1;
20767 rfctrlcmd_coresel_val = core_code;
20768 rfctrlovr_rssi_val = 1;
20769 rfctrlovr_rxen_val = 1;
20770 rfctrlovr_coresel_val = 1;
20771 rfctrlovr_trigger_val = 1;
20772 startseq = 1;
20773 }
20774
20775 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
20776 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
20777 12) | (afectrlovr_rssi_val << 13);
20778 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
20779 afectrlovr_rssi_val);
20780
20781 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20782 (rssi_type == NPHY_RSSI_SEL_W2) ||
20783 (rssi_type == NPHY_RSSI_SEL_NB)) {
20784 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
20785 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
20786 (rfctrlcmd_coresel_val << 3);
20787
20788 rfctrlovr_mask = ((0x1 << 5) |
20789 (0x1 << 12) |
20790 (0x1 << 1) | (0x1 << 0));
20791 rfctrlovr_val = (rfctrlovr_rssi_val <<
20792 5) |
20793 (rfctrlovr_rxen_val << 12) |
20794 (rfctrlovr_coresel_val << 1) |
20795 (rfctrlovr_trigger_val << 0);
20796
20797 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
20798 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
20799
20800 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
20801 OSL_DELAY(20);
20802
20803 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
20804 }
20805 }
20806}
20807
20808int
7cc4a4c0 20809wlc_phy_poll_rssi_nphy(phy_info_t *pi, uint8 rssi_type, int32 *rssi_buf,
a9533e7e
HP
20810 uint8 nsamps)
20811{
20812 int16 rssi0, rssi1;
20813 uint16 afectrlCore1_save = 0;
20814 uint16 afectrlCore2_save = 0;
20815 uint16 afectrlOverride1_save = 0;
20816 uint16 afectrlOverride2_save = 0;
20817 uint16 rfctrlOverrideAux0_save = 0;
20818 uint16 rfctrlOverrideAux1_save = 0;
20819 uint16 rfctrlMiscReg1_save = 0;
20820 uint16 rfctrlMiscReg2_save = 0;
20821 uint16 rfctrlcmd_save = 0;
20822 uint16 rfctrloverride_save = 0;
20823 uint16 rfctrlrssiothers1_save = 0;
20824 uint16 rfctrlrssiothers2_save = 0;
20825 int8 tmp_buf[4];
20826 uint8 ctr = 0, samp = 0;
20827 int32 rssi_out_val;
20828 uint16 gpiosel_orig;
20829
20830 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20831 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20832 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20833 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
20834 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
20835 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
20836 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20837 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
20838 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
20839 } else {
20840 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
20841 rfctrlcmd_save = read_phy_reg(pi, 0x78);
20842 rfctrloverride_save = read_phy_reg(pi, 0xec);
20843 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
20844 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
20845 }
20846
20847 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
20848
20849 gpiosel_orig = read_phy_reg(pi, 0xca);
20850 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20851 write_phy_reg(pi, 0xca, 5);
20852 }
20853
20854 for (ctr = 0; ctr < 4; ctr++) {
20855 rssi_buf[ctr] = 0;
20856 }
20857
20858 for (samp = 0; samp < nsamps; samp++) {
20859 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20860 rssi0 = read_phy_reg(pi, 0x1c9);
20861 rssi1 = read_phy_reg(pi, 0x1ca);
20862 } else {
20863 rssi0 = read_phy_reg(pi, 0x219);
20864 rssi1 = read_phy_reg(pi, 0x21a);
20865 }
20866
20867 ctr = 0;
20868 tmp_buf[ctr++] = ((int8) ((rssi0 & 0x3f) << 2)) >> 2;
20869 tmp_buf[ctr++] = ((int8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
20870 tmp_buf[ctr++] = ((int8) ((rssi1 & 0x3f) << 2)) >> 2;
20871 tmp_buf[ctr++] = ((int8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
20872
20873 for (ctr = 0; ctr < 4; ctr++) {
20874 rssi_buf[ctr] += tmp_buf[ctr];
20875 }
20876
20877 }
20878
20879 rssi_out_val = rssi_buf[3] & 0xff;
20880 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
20881 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
20882 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
20883
20884 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20885 write_phy_reg(pi, 0xca, gpiosel_orig);
20886 }
20887
20888 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20889 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20890 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20891 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
20892 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
20893 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
20894 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20895 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
20896 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
20897 } else {
20898 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
20899 write_phy_reg(pi, 0x78, rfctrlcmd_save);
20900 write_phy_reg(pi, 0xec, rfctrloverride_save);
20901 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
20902 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
20903 }
20904
90ea2296 20905 return rssi_out_val;
a9533e7e
HP
20906}
20907
7cc4a4c0 20908int16 wlc_phy_tempsense_nphy(phy_info_t *pi)
a9533e7e
HP
20909{
20910 uint16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
20911 uint16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
20912 uint16 pwrdet_rxtx_core1_save;
20913 uint16 pwrdet_rxtx_core2_save;
20914 uint16 afectrlCore1_save;
20915 uint16 afectrlCore2_save;
20916 uint16 afectrlOverride_save;
20917 uint16 afectrlOverride2_save;
20918 uint16 pd_pll_ts_save;
20919 uint16 gpioSel_save;
20920 int32 radio_temp[4];
20921 int32 radio_temp2[4];
20922 uint16 syn_tempprocsense_save;
20923 int16 offset = 0;
20924
20925 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20926 uint16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
20927 uint16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
20928 uint16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
20929 int32 auxADC_Vl;
20930 uint16 RfctrlOverride5_save, RfctrlOverride6_save;
20931 uint16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
20932 uint16 RSSIMultCoef0QPowerDet_save;
20933 uint16 tempsense_Rcal;
20934
20935 syn_tempprocsense_save =
20936 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
20937
20938 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20939 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20940 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20941 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20942 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
20943 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
20944 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
20945 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
20946 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
20947
20948 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20949 &auxADC_Vmid_save);
20950 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20951 &auxADC_Av_save);
20952 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20953 &auxADC_rssi_ctrlL_save);
20954 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20955 &auxADC_rssi_ctrlH_save);
20956
20957 write_phy_reg(pi, 0x1ae, 0x0);
20958
20959 auxADC_rssi_ctrlL = 0x0;
20960 auxADC_rssi_ctrlH = 0x20;
20961 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20962 &auxADC_rssi_ctrlL);
20963 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20964 &auxADC_rssi_ctrlH);
20965
20966 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
20967
20968 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20969 tempsense_Rcal | 0x01);
20970
20971 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
20972 1, 0, 0,
20973 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20974 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
20975 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
20976 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
20977 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
20978
20979 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
20980 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
20981 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
20982 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
20983 OSL_DELAY(5);
20984 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
20985 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
20986 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
20987 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
20988 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
20989 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
20990 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
20991 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
20992 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
20993 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
20994
20995 auxADC_Vmid = 0xA3;
20996 auxADC_Av = 0x0;
20997 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20998 &auxADC_Vmid);
20999 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21000 &auxADC_Av);
21001
21002 OSL_DELAY(3);
21003
21004 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21005 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21006 tempsense_Rcal | 0x03);
21007
21008 OSL_DELAY(5);
21009 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21010
21011 auxADC_Av = 0x7;
21012 if (radio_temp[1] + radio_temp2[1] < -30) {
21013 auxADC_Vmid = 0x45;
21014 auxADC_Vl = 263;
21015 } else if (radio_temp[1] + radio_temp2[1] < -9) {
21016 auxADC_Vmid = 0x200;
21017 auxADC_Vl = 467;
21018 } else if (radio_temp[1] + radio_temp2[1] < 11) {
21019 auxADC_Vmid = 0x266;
21020 auxADC_Vl = 634;
21021 } else {
21022 auxADC_Vmid = 0x2D5;
21023 auxADC_Vl = 816;
21024 }
21025
21026 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21027 &auxADC_Vmid);
21028 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21029 &auxADC_Av);
21030
21031 OSL_DELAY(3);
21032
21033 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21034 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21035 tempsense_Rcal | 0x01);
21036
21037 OSL_DELAY(5);
21038 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21039
21040 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21041 syn_tempprocsense_save);
21042
21043 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21044 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21045 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21046 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21047 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
21048 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
21049 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
21050 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
21051 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
21052
21053 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21054 &auxADC_Vmid_save);
21055 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21056 &auxADC_Av_save);
21057 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
21058 &auxADC_rssi_ctrlL_save);
21059 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
21060 &auxADC_rssi_ctrlH_save);
21061
21062 if (CHIPID(pi->sh->chip) == BCM5357_CHIP_ID) {
21063 radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
21064 + 88 * (auxADC_Vl) - 27111 +
21065 128) / 256;
21066 } else if (CHIPID(pi->sh->chip) == BCM43236_CHIP_ID) {
21067 radio_temp[0] = (198 * (radio_temp[1] + radio_temp2[1])
21068 + 91 * (auxADC_Vl) - 27243 +
21069 128) / 256;
21070 } else {
21071 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
21072 + 82 * (auxADC_Vl) - 28861 +
21073 128) / 256;
21074 }
21075
21076 offset = (int16) pi->phy_tempsense_offset;
21077
21078 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21079 syn_tempprocsense_save =
21080 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
21081
21082 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21083 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21084 afectrlOverride_save = read_phy_reg(pi, 0x8f);
21085 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21086 gpioSel_save = read_phy_reg(pi, 0xca);
21087
21088 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21089
21090 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21091 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21092 } else {
21093 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
21094 }
21095
21096 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21097 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21098 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
21099 } else {
21100 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21101 }
21102
21103 radio_temp[0] =
21104 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
21105
21106 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
21107 syn_tempprocsense_save);
21108
21109 write_phy_reg(pi, 0xca, gpioSel_save);
21110 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21111 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21112 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21113 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21114
21115 offset = (int16) pi->phy_tempsense_offset;
21116 } else {
21117
21118 pwrdet_rxtx_core1_save =
21119 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
21120 pwrdet_rxtx_core2_save =
21121 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
21122 core1_txrf_iqcal1_save =
21123 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
21124 core1_txrf_iqcal2_save =
21125 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
21126 core2_txrf_iqcal1_save =
21127 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
21128 core2_txrf_iqcal2_save =
21129 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
21130 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
21131
21132 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21133 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21134 afectrlOverride_save = read_phy_reg(pi, 0xa5);
21135 gpioSel_save = read_phy_reg(pi, 0xca);
21136
21137 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
21138 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
21139 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
21140 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
21141 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
21142 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
21143 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
21144
21145 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21146 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21147
21148 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21149 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21150
21151 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21152 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21153
21154 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
21155 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
21156 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
21157 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
21158
21159 radio_temp[0] =
21160 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
21161 radio_temp[3]);
21162
21163 radio_temp[0] =
21164 (radio_temp[0] + (8 * 32)) * (950 - 350) / 63 + (350 * 8);
21165
21166 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
21167
21168 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
21169 pwrdet_rxtx_core1_save);
21170 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
21171 pwrdet_rxtx_core2_save);
21172 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
21173 core1_txrf_iqcal1_save);
21174 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
21175 core2_txrf_iqcal1_save);
21176 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
21177 core1_txrf_iqcal2_save);
21178 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
21179 core2_txrf_iqcal2_save);
21180 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
21181
21182 write_phy_reg(pi, 0xca, gpioSel_save);
21183 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21184 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21185 write_phy_reg(pi, 0xa5, afectrlOverride_save);
21186 }
21187
90ea2296 21188 return (int16) radio_temp[0] + offset;
a9533e7e
HP
21189}
21190
21191static void
7cc4a4c0 21192wlc_phy_set_rssi_2055_vcm(phy_info_t *pi, uint8 rssi_type, uint8 *vcm_buf)
a9533e7e
HP
21193{
21194 uint8 core;
21195
21196 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21197 if (rssi_type == NPHY_RSSI_SEL_NB) {
21198 if (core == PHY_CORE_0) {
21199 mod_radio_reg(pi,
21200 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21201 RADIO_2055_NBRSSI_VCM_I_MASK,
21202 vcm_buf[2 *
21203 core] <<
21204 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21205 mod_radio_reg(pi,
21206 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21207 RADIO_2055_NBRSSI_VCM_Q_MASK,
21208 vcm_buf[2 * core +
21209 1] <<
21210 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21211 } else {
21212 mod_radio_reg(pi,
21213 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21214 RADIO_2055_NBRSSI_VCM_I_MASK,
21215 vcm_buf[2 *
21216 core] <<
21217 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21218 mod_radio_reg(pi,
21219 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21220 RADIO_2055_NBRSSI_VCM_Q_MASK,
21221 vcm_buf[2 * core +
21222 1] <<
21223 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21224 }
21225 } else {
21226
21227 if (core == PHY_CORE_0) {
21228 mod_radio_reg(pi,
21229 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21230 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21231 vcm_buf[2 *
21232 core] <<
21233 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21234 } else {
21235 mod_radio_reg(pi,
21236 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21237 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21238 vcm_buf[2 *
21239 core] <<
21240 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21241 }
21242 }
21243 }
21244}
21245
7cc4a4c0 21246void wlc_phy_rssi_cal_nphy(phy_info_t *pi)
a9533e7e
HP
21247{
21248 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21249
21250 wlc_phy_rssi_cal_nphy_rev3(pi);
21251 } else {
21252 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
21253 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
21254 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
21255 }
21256}
21257
7cc4a4c0 21258static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, uint8 rssi_type)
a9533e7e
HP
21259{
21260 int32 target_code;
21261 uint16 classif_state;
21262 uint16 clip_state[2];
21263 uint16 rssi_ctrl_state[2], pd_state[2];
21264 uint16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
21265 uint16 rfctrlintc_override_val;
21266 uint16 clip_off[] = { 0xffff, 0xffff };
21267 uint16 rf_pd_val, pd_mask, rssi_ctrl_mask;
21268 uint8 vcm, min_vcm, vcm_tmp[4];
21269 uint8 vcm_final[4] = { 0, 0, 0, 0 };
21270 uint8 result_idx, ctr;
21271 int32 poll_results[4][4] = {
21272 {0, 0, 0, 0},
21273 {0, 0, 0, 0},
21274 {0, 0, 0, 0},
21275 {0, 0, 0, 0}
21276 };
21277 int32 poll_miniq[4][2] = {
21278 {0, 0},
21279 {0, 0},
21280 {0, 0},
21281 {0, 0}
21282 };
21283 int32 min_d, curr_d;
21284 int32 fine_digital_offset[4];
21285 int32 poll_results_min[4] = { 0, 0, 0, 0 };
21286 int32 min_poll;
21287
21288 switch (rssi_type) {
21289 case NPHY_RSSI_SEL_NB:
21290 target_code = NPHY_RSSICAL_NB_TARGET;
21291 break;
21292 case NPHY_RSSI_SEL_W1:
21293 target_code = NPHY_RSSICAL_W1_TARGET;
21294 break;
21295 case NPHY_RSSI_SEL_W2:
21296 target_code = NPHY_RSSICAL_W2_TARGET;
21297 break;
21298 default:
21299 return;
21300 break;
21301 }
21302
21303 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21304 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21305 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21306 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21307
21308 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
21309 rfctrlintc_override_val =
21310 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
21311
21312 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
21313 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
21314 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
21315 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
21316
21317 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
21318 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
21319 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
21320 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
21321
21322 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
21323 RADIO_2055_WBRSSI_G2_PD;
21324 pd_state[0] =
21325 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21326 pd_state[1] =
21327 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
21328 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
21329 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
21330 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
21331 RADIO_2055_WBRSSI_G2_SEL;
21332 rssi_ctrl_state[0] =
21333 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
21334 rssi_ctrl_state[1] =
21335 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
21336 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21337
21338 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21339 NPHY_RAIL_I, rssi_type);
21340 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21341 NPHY_RAIL_Q, rssi_type);
21342
21343 for (vcm = 0; vcm < 4; vcm++) {
21344
21345 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
21346 if (rssi_type != NPHY_RSSI_SEL_W2) {
21347 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
21348 }
21349
21350 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
21351 NPHY_RSSICAL_NPOLL);
21352
21353 if ((rssi_type == NPHY_RSSI_SEL_W1)
21354 || (rssi_type == NPHY_RSSI_SEL_W2)) {
21355 for (ctr = 0; ctr < 2; ctr++) {
21356 poll_miniq[vcm][ctr] =
21357 MIN(poll_results[vcm][ctr * 2 + 0],
21358 poll_results[vcm][ctr * 2 + 1]);
21359 }
21360 }
21361 }
21362
21363 for (result_idx = 0; result_idx < 4; result_idx++) {
21364 min_d = NPHY_RSSICAL_MAXD;
21365 min_vcm = 0;
21366 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
21367 for (vcm = 0; vcm < 4; vcm++) {
21368 curr_d = ABS(((rssi_type == NPHY_RSSI_SEL_NB) ?
21369 poll_results[vcm][result_idx] :
21370 poll_miniq[vcm][result_idx / 2]) -
21371 (target_code * NPHY_RSSICAL_NPOLL));
21372 if (curr_d < min_d) {
21373 min_d = curr_d;
21374 min_vcm = vcm;
21375 }
21376 if (poll_results[vcm][result_idx] < min_poll) {
21377 min_poll = poll_results[vcm][result_idx];
21378 }
21379 }
21380 vcm_final[result_idx] = min_vcm;
21381 poll_results_min[result_idx] = min_poll;
21382 }
21383
21384 if (rssi_type != NPHY_RSSI_SEL_W2) {
21385 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
21386 }
21387
21388 for (result_idx = 0; result_idx < 4; result_idx++) {
21389 fine_digital_offset[result_idx] =
21390 (target_code * NPHY_RSSICAL_NPOLL) -
21391 poll_results[vcm_final[result_idx]][result_idx];
21392 if (fine_digital_offset[result_idx] < 0) {
21393 fine_digital_offset[result_idx] =
21394 ABS(fine_digital_offset[result_idx]);
21395 fine_digital_offset[result_idx] +=
21396 (NPHY_RSSICAL_NPOLL / 2);
21397 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21398 fine_digital_offset[result_idx] =
21399 -fine_digital_offset[result_idx];
21400 } else {
21401 fine_digital_offset[result_idx] +=
21402 (NPHY_RSSICAL_NPOLL / 2);
21403 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21404 }
21405
21406 if (poll_results_min[result_idx] ==
21407 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21408 fine_digital_offset[result_idx] =
21409 (target_code - NPHY_RSSICAL_MAXREAD - 1);
21410 }
21411
21412 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
21413 (int8)
21414 fine_digital_offset[result_idx],
21415 (result_idx / 2 ==
21416 0) ? RADIO_MIMO_CORESEL_CORE1 :
21417 RADIO_MIMO_CORESEL_CORE2,
21418 (result_idx % 2 ==
21419 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21420 rssi_type);
21421 }
21422
21423 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
21424 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
21425 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL) {
21426 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21427 NPHY_RSSI_SEL_NB);
21428 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL) {
21429 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21430 NPHY_RSSI_SEL_W1);
21431 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL) {
21432 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21433 NPHY_RSSI_SEL_W2);
21434 } else {
21435 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21436 NPHY_RSSI_SEL_W2);
21437 }
21438 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL) {
21439 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21440 NPHY_RSSI_SEL_NB);
21441 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL) {
21442 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21443 NPHY_RSSI_SEL_W1);
21444 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL) {
21445 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21446 NPHY_RSSI_SEL_W2);
21447 } else {
21448 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21449 NPHY_RSSI_SEL_W2);
21450 }
21451
21452 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
21453
21454 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
21455 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
21456 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
21457 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
21458
21459 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
21460 wlc_phy_clip_det_nphy(pi, 1, clip_state);
21461
21462 wlc_phy_resetcca_nphy(pi);
21463}
21464
21465int BCMFASTPATH
7cc4a4c0 21466wlc_phy_rssi_compute_nphy(phy_info_t *pi, wlc_d11rxhdr_t *wlc_rxh)
a9533e7e
HP
21467{
21468 d11rxhdr_t *rxh = &wlc_rxh->rxhdr;
21469 int16 rxpwr, rxpwr0, rxpwr1;
21470 int16 phyRx0_l, phyRx2_l;
21471
21472 rxpwr = 0;
21473 rxpwr0 = ltoh16(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
21474 rxpwr1 = (ltoh16(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
21475
21476 if (rxpwr0 > 127)
21477 rxpwr0 -= 256;
21478 if (rxpwr1 > 127)
21479 rxpwr1 -= 256;
21480
21481 phyRx0_l = ltoh16(rxh->PhyRxStatus_0) & 0x00ff;
21482 phyRx2_l = ltoh16(rxh->PhyRxStatus_2) & 0x00ff;
21483 if (phyRx2_l > 127)
21484 phyRx2_l -= 256;
21485
21486 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21487 rxpwr0 = rxpwr1;
21488 rxpwr1 = phyRx2_l;
21489 }
21490
21491 wlc_rxh->rxpwr[0] = (int8) rxpwr0;
21492 wlc_rxh->rxpwr[1] = (int8) rxpwr1;
21493 wlc_rxh->do_rssi_ma = 0;
21494
21495 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
21496 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
21497 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
21498 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
21499 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
21500 rxpwr = (rxpwr0 + rxpwr1) >> 1;
21501 else
21502 ASSERT(0);
21503
21504 return rxpwr;
21505}
21506
21507static void
7cc4a4c0 21508wlc_phy_rfctrlintc_override_nphy(phy_info_t *pi, uint8 field, uint16 value,
a9533e7e
HP
21509 uint8 core_code)
21510{
21511 uint16 mask;
21512 uint16 val;
21513 uint8 core;
21514
21515 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21516 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21517 if (core_code == RADIO_MIMO_CORESEL_CORE1
21518 && core == PHY_CORE_1)
21519 continue;
21520 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21521 && core == PHY_CORE_0)
21522 continue;
21523
21524 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21525
21526 mask = (0x1 << 10);
21527 val = 1 << 10;
21528 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21529 0x92, mask, val);
21530 }
21531
21532 if (field == NPHY_RfctrlIntc_override_OFF) {
21533
21534 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21535 0x92, 0);
21536
21537 wlc_phy_force_rfseq_nphy(pi,
21538 NPHY_RFSEQ_RESET2RX);
21539 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
21540
21541 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21542
21543 mask = (0x1 << 6) | (0x1 << 7);
21544
21545 val = value << 6;
21546 mod_phy_reg(pi,
21547 (core ==
21548 PHY_CORE_0) ? 0x91 : 0x92,
21549 mask, val);
21550
21551 or_phy_reg(pi,
21552 (core ==
21553 PHY_CORE_0) ? 0x91 : 0x92,
21554 (0x1 << 10));
21555
21556 and_phy_reg(pi, 0x2ff, (uint16)
21557 ~ (0x3 << 14));
21558 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21559 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21560 } else {
21561
21562 mask = (0x1 << 6) |
21563 (0x1 << 7) |
21564 (0x1 << 8) | (0x1 << 9);
21565 val = value << 6;
21566 mod_phy_reg(pi,
21567 (core ==
21568 PHY_CORE_0) ? 0x91 : 0x92,
21569 mask, val);
21570
21571 mask = (0x1 << 0);
21572 val = 1 << 0;
21573 mod_phy_reg(pi,
21574 (core ==
21575 PHY_CORE_0) ? 0xe7 : 0xec,
21576 mask, val);
21577
21578 mask = (core == PHY_CORE_0) ? (0x1 << 0)
21579 : (0x1 << 1);
21580 val = 1 << ((core == PHY_CORE_0) ?
21581 0 : 1);
21582 mod_phy_reg(pi, 0x78, mask, val);
21583
21584 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21585 != 0), 10000);
21586 ASSERT((read_phy_reg(pi, 0x78) & val) ==
21587 0);
21588
21589 mask = (0x1 << 0);
21590 val = 0 << 0;
21591 mod_phy_reg(pi,
21592 (core ==
21593 PHY_CORE_0) ? 0xe7 : 0xec,
21594 mask, val);
21595 }
21596 } else if (field == NPHY_RfctrlIntc_override_PA) {
21597 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21598
21599 mask = (0x1 << 4) | (0x1 << 5);
21600
21601 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21602 val = value << 5;
21603 } else {
21604 val = value << 4;
21605 }
21606
21607 mod_phy_reg(pi,
21608 (core ==
21609 PHY_CORE_0) ? 0x91 : 0x92,
21610 mask, val);
21611
21612 or_phy_reg(pi,
21613 (core ==
21614 PHY_CORE_0) ? 0x91 : 0x92,
21615 (0x1 << 12));
21616 } else {
21617
21618 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21619 mask = (0x1 << 5);
21620 val = value << 5;
21621 } else {
21622 mask = (0x1 << 4);
21623 val = value << 4;
21624 }
21625 mod_phy_reg(pi,
21626 (core ==
21627 PHY_CORE_0) ? 0x91 : 0x92,
21628 mask, val);
21629 }
21630 } else if (field == NPHY_RfctrlIntc_override_EXT_LNA_PU) {
21631 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21632 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21633
21634 mask = (0x1 << 0);
21635 val = value << 0;
21636 mod_phy_reg(pi,
21637 (core ==
21638 PHY_CORE_0) ? 0x91
21639 : 0x92, mask, val);
21640
21641 mask = (0x1 << 2);
21642 mod_phy_reg(pi,
21643 (core ==
21644 PHY_CORE_0) ? 0x91
21645 : 0x92, mask, 0);
21646 } else {
21647
21648 mask = (0x1 << 2);
21649 val = value << 2;
21650 mod_phy_reg(pi,
21651 (core ==
21652 PHY_CORE_0) ? 0x91
21653 : 0x92, mask, val);
21654
21655 mask = (0x1 << 0);
21656 mod_phy_reg(pi,
21657 (core ==
21658 PHY_CORE_0) ? 0x91
21659 : 0x92, mask, 0);
21660 }
21661
21662 mask = (0x1 << 11);
21663 val = 1 << 11;
21664 mod_phy_reg(pi,
21665 (core ==
21666 PHY_CORE_0) ? 0x91 : 0x92,
21667 mask, val);
21668 } else {
21669
21670 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21671 mask = (0x1 << 0);
21672 val = value << 0;
21673 } else {
21674 mask = (0x1 << 2);
21675 val = value << 2;
21676 }
21677 mod_phy_reg(pi,
21678 (core ==
21679 PHY_CORE_0) ? 0x91 : 0x92,
21680 mask, val);
21681 }
21682 } else if (field ==
21683 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
21684 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21685 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21686
21687 mask = (0x1 << 1);
21688 val = value << 1;
21689 mod_phy_reg(pi,
21690 (core ==
21691 PHY_CORE_0) ? 0x91
21692 : 0x92, mask, val);
21693
21694 mask = (0x1 << 3);
21695 mod_phy_reg(pi,
21696 (core ==
21697 PHY_CORE_0) ? 0x91
21698 : 0x92, mask, 0);
21699 } else {
21700
21701 mask = (0x1 << 3);
21702 val = value << 3;
21703 mod_phy_reg(pi,
21704 (core ==
21705 PHY_CORE_0) ? 0x91
21706 : 0x92, mask, val);
21707
21708 mask = (0x1 << 1);
21709 mod_phy_reg(pi,
21710 (core ==
21711 PHY_CORE_0) ? 0x91
21712 : 0x92, mask, 0);
21713 }
21714
21715 mask = (0x1 << 11);
21716 val = 1 << 11;
21717 mod_phy_reg(pi,
21718 (core ==
21719 PHY_CORE_0) ? 0x91 : 0x92,
21720 mask, val);
21721 } else {
21722
21723 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21724 mask = (0x1 << 1);
21725 val = value << 1;
21726 } else {
21727 mask = (0x1 << 3);
21728 val = value << 3;
21729 }
21730 mod_phy_reg(pi,
21731 (core ==
21732 PHY_CORE_0) ? 0x91 : 0x92,
21733 mask, val);
21734 }
21735 }
21736 }
21737 } else {
21738 return;
21739 }
21740}
21741
7cc4a4c0 21742static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi)
a9533e7e
HP
21743{
21744 uint16 classif_state;
21745 uint16 clip_state[2];
21746 uint16 clip_off[] = { 0xffff, 0xffff };
21747 int32 target_code;
21748 uint8 vcm, min_vcm;
21749 uint8 vcm_final = 0;
21750 uint8 result_idx;
21751 int32 poll_results[8][4] = {
21752 {0, 0, 0, 0},
21753 {0, 0, 0, 0},
21754 {0, 0, 0, 0},
21755 {0, 0, 0, 0},
21756 {0, 0, 0, 0},
21757 {0, 0, 0, 0},
21758 {0, 0, 0, 0},
21759 {0, 0, 0, 0}
21760 };
21761 int32 poll_result_core[4] = { 0, 0, 0, 0 };
21762 int32 min_d = NPHY_RSSICAL_MAXD, curr_d;
21763 int32 fine_digital_offset[4];
21764 int32 poll_results_min[4] = { 0, 0, 0, 0 };
21765 int32 min_poll;
21766 uint8 vcm_level_max;
21767 uint8 core;
21768 uint8 wb_cnt;
21769 uint8 rssi_type;
21770 uint16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
21771 uint16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
21772 uint16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
21773 uint16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
21774 uint16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
21775 uint16 NPHY_RfctrlCmd_save;
21776 uint16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
21777 uint16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
21778 uint8 rxcore_state;
21779 uint16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
21780 uint16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
21781 uint16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
21782 uint16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
21783
21784 NPHY_REV7_RfctrlOverride3_save = NPHY_REV7_RfctrlOverride4_save =
21785 NPHY_REV7_RfctrlOverride5_save = NPHY_REV7_RfctrlOverride6_save =
21786 NPHY_REV7_RfctrlMiscReg3_save = NPHY_REV7_RfctrlMiscReg4_save =
21787 NPHY_REV7_RfctrlMiscReg5_save = NPHY_REV7_RfctrlMiscReg6_save = 0;
21788
21789 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21790 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21791 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21792 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21793
21794 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
21795 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
21796 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
21797 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
21798 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
21799 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
21800 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
21801 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
21802 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21803 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
21804 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
21805 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
21806 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
21807 }
21808 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21809 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21810 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
21811 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21812 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21813 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21814 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
21815 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
21816 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
21817 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
21818 }
21819 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
21820 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
21821
21822 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
21823 RADIO_MIMO_CORESEL_ALLRXTX);
21824 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
21825 RADIO_MIMO_CORESEL_ALLRXTX);
21826
21827 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21828 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21829 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
21830 0, 0, 0);
21831 } else {
21832 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
21833 }
21834
21835 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21836 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21837 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
21838 1, 0, 0);
21839 } else {
21840 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
21841 }
21842
21843 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21844 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
21845 1, 0, 0,
21846 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21847 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21848 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21849 } else {
21850 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
21851 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
21852 }
21853
21854 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21855 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21856 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
21857 0, 0, 0,
21858 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21859 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 1, 0,
21860 0,
21861 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21862 } else {
21863 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21864 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21865 }
21866
21867 } else {
21868 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21869 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
21870 0, 0, 0,
21871 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21872 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 1, 0,
21873 0,
21874 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21875 } else {
21876 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
21877 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
21878 }
21879 }
21880
21881 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
21882
21883 vcm_level_max = 8;
21884
21885 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21886
21887 if ((rxcore_state & (1 << core)) == 0)
21888 continue;
21889
21890 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21891 core ==
21892 PHY_CORE_0 ?
21893 RADIO_MIMO_CORESEL_CORE1 :
21894 RADIO_MIMO_CORESEL_CORE2,
21895 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
21896 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21897 core ==
21898 PHY_CORE_0 ?
21899 RADIO_MIMO_CORESEL_CORE1 :
21900 RADIO_MIMO_CORESEL_CORE2,
21901 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
21902
21903 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21904 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21905
21906 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21907 RADIO_2057_NB_MASTER_CORE0 :
21908 RADIO_2057_NB_MASTER_CORE1,
21909 RADIO_2057_VCM_MASK, vcm);
21910 } else {
21911
21912 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21913 ((core ==
21914 PHY_CORE_0) ? RADIO_2056_RX0 :
21915 RADIO_2056_RX1),
21916 RADIO_2056_VCM_MASK,
21917 vcm << RADIO_2056_RSSI_VCM_SHIFT);
21918 }
21919
21920 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
21921 &poll_results[vcm][0],
21922 NPHY_RSSICAL_NPOLL);
21923 }
21924
21925 for (result_idx = 0; result_idx < 4; result_idx++) {
21926 if ((core == result_idx / 2) && (result_idx % 2 == 0)) {
21927
21928 min_d = NPHY_RSSICAL_MAXD;
21929 min_vcm = 0;
21930 min_poll =
21931 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL +
21932 1;
21933 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21934 curr_d = poll_results[vcm][result_idx] *
21935 poll_results[vcm][result_idx] +
21936 poll_results[vcm][result_idx + 1] *
21937 poll_results[vcm][result_idx + 1];
21938 if (curr_d < min_d) {
21939 min_d = curr_d;
21940 min_vcm = vcm;
21941 }
21942 if (poll_results[vcm][result_idx] <
21943 min_poll) {
21944 min_poll =
21945 poll_results[vcm]
21946 [result_idx];
21947 }
21948 }
21949 vcm_final = min_vcm;
21950 poll_results_min[result_idx] = min_poll;
21951 }
21952 }
21953
21954 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21955 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21956 RADIO_2057_NB_MASTER_CORE0 :
21957 RADIO_2057_NB_MASTER_CORE1,
21958 RADIO_2057_VCM_MASK, vcm_final);
21959 } else {
21960 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21961 ((core ==
21962 PHY_CORE_0) ? RADIO_2056_RX0 :
21963 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
21964 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
21965 }
21966
21967 for (result_idx = 0; result_idx < 4; result_idx++) {
21968 if (core == result_idx / 2) {
21969 fine_digital_offset[result_idx] =
21970 (NPHY_RSSICAL_NB_TARGET *
21971 NPHY_RSSICAL_NPOLL) -
21972 poll_results[vcm_final][result_idx];
21973 if (fine_digital_offset[result_idx] < 0) {
21974 fine_digital_offset[result_idx] =
21975 ABS(fine_digital_offset
21976 [result_idx]);
21977 fine_digital_offset[result_idx] +=
21978 (NPHY_RSSICAL_NPOLL / 2);
21979 fine_digital_offset[result_idx] /=
21980 NPHY_RSSICAL_NPOLL;
21981 fine_digital_offset[result_idx] =
21982 -fine_digital_offset[result_idx];
21983 } else {
21984 fine_digital_offset[result_idx] +=
21985 (NPHY_RSSICAL_NPOLL / 2);
21986 fine_digital_offset[result_idx] /=
21987 NPHY_RSSICAL_NPOLL;
21988 }
21989
21990 if (poll_results_min[result_idx] ==
21991 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21992 fine_digital_offset[result_idx] =
21993 (NPHY_RSSICAL_NB_TARGET -
21994 NPHY_RSSICAL_MAXREAD - 1);
21995 }
21996
21997 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
21998 (int8)
21999 fine_digital_offset
22000 [result_idx],
22001 (result_idx /
22002 2 ==
22003 0) ?
22004 RADIO_MIMO_CORESEL_CORE1
22005 :
22006 RADIO_MIMO_CORESEL_CORE2,
22007 (result_idx %
22008 2 ==
22009 0) ? NPHY_RAIL_I
22010 : NPHY_RAIL_Q,
22011 NPHY_RSSI_SEL_NB);
22012 }
22013 }
22014
22015 }
22016
22017 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22018
22019 if ((rxcore_state & (1 << core)) == 0)
22020 continue;
22021
22022 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22023 if (wb_cnt == 0) {
22024 rssi_type = NPHY_RSSI_SEL_W1;
22025 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22026 } else {
22027 rssi_type = NPHY_RSSI_SEL_W2;
22028 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22029 }
22030
22031 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22032 core ==
22033 PHY_CORE_0 ?
22034 RADIO_MIMO_CORESEL_CORE1
22035 :
22036 RADIO_MIMO_CORESEL_CORE2,
22037 NPHY_RAIL_I, rssi_type);
22038 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22039 core ==
22040 PHY_CORE_0 ?
22041 RADIO_MIMO_CORESEL_CORE1
22042 :
22043 RADIO_MIMO_CORESEL_CORE2,
22044 NPHY_RAIL_Q, rssi_type);
22045
22046 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22047 NPHY_RSSICAL_NPOLL);
22048
22049 for (result_idx = 0; result_idx < 4; result_idx++) {
22050 if (core == result_idx / 2) {
22051 fine_digital_offset[result_idx] =
22052 (target_code * NPHY_RSSICAL_NPOLL) -
22053 poll_result_core[result_idx];
22054 if (fine_digital_offset[result_idx] < 0) {
22055 fine_digital_offset[result_idx]
22056 =
22057 ABS(fine_digital_offset
22058 [result_idx]);
22059 fine_digital_offset[result_idx]
22060 += (NPHY_RSSICAL_NPOLL / 2);
22061 fine_digital_offset[result_idx]
22062 /= NPHY_RSSICAL_NPOLL;
22063 fine_digital_offset[result_idx]
22064 =
22065 -fine_digital_offset
22066 [result_idx];
22067 } else {
22068 fine_digital_offset[result_idx]
22069 += (NPHY_RSSICAL_NPOLL / 2);
22070 fine_digital_offset[result_idx]
22071 /= NPHY_RSSICAL_NPOLL;
22072 }
22073
22074 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
22075 (int8)
22076 fine_digital_offset
22077 [core *
22078 2],
22079 (core ==
22080 PHY_CORE_0)
22081 ?
22082 RADIO_MIMO_CORESEL_CORE1
22083 :
22084 RADIO_MIMO_CORESEL_CORE2,
22085 (result_idx
22086 % 2 ==
22087 0) ?
22088 NPHY_RAIL_I
22089 :
22090 NPHY_RAIL_Q,
22091 rssi_type);
22092 }
22093 }
22094
22095 }
22096 }
22097
22098 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22099 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22100
22101 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22102
22103 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22104 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22105 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22106
22107 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22108 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22109 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22110
22111 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22112 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22113 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22114 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22115 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22116 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22117 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22118 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22119 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22120 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22121 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22122 }
22123 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22124 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22125 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22126 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22127 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22128 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22129 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22130 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22131 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22132 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22133 }
22134 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22135 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22136
22137 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22138 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22139 pi->rssical_cache.rssical_radio_regs_2G[0] =
22140 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22141 pi->rssical_cache.rssical_radio_regs_2G[1] =
22142 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22143 } else {
22144 pi->rssical_cache.rssical_radio_regs_2G[0] =
22145 read_radio_reg(pi,
22146 RADIO_2056_RX_RSSI_MISC |
22147 RADIO_2056_RX0);
22148 pi->rssical_cache.rssical_radio_regs_2G[1] =
22149 read_radio_reg(pi,
22150 RADIO_2056_RX_RSSI_MISC |
22151 RADIO_2056_RX1);
22152 }
22153
22154 pi->rssical_cache.rssical_phyregs_2G[0] =
22155 read_phy_reg(pi, 0x1a6);
22156 pi->rssical_cache.rssical_phyregs_2G[1] =
22157 read_phy_reg(pi, 0x1ac);
22158 pi->rssical_cache.rssical_phyregs_2G[2] =
22159 read_phy_reg(pi, 0x1b2);
22160 pi->rssical_cache.rssical_phyregs_2G[3] =
22161 read_phy_reg(pi, 0x1b8);
22162 pi->rssical_cache.rssical_phyregs_2G[4] =
22163 read_phy_reg(pi, 0x1a4);
22164 pi->rssical_cache.rssical_phyregs_2G[5] =
22165 read_phy_reg(pi, 0x1aa);
22166 pi->rssical_cache.rssical_phyregs_2G[6] =
22167 read_phy_reg(pi, 0x1b0);
22168 pi->rssical_cache.rssical_phyregs_2G[7] =
22169 read_phy_reg(pi, 0x1b6);
22170 pi->rssical_cache.rssical_phyregs_2G[8] =
22171 read_phy_reg(pi, 0x1a5);
22172 pi->rssical_cache.rssical_phyregs_2G[9] =
22173 read_phy_reg(pi, 0x1ab);
22174 pi->rssical_cache.rssical_phyregs_2G[10] =
22175 read_phy_reg(pi, 0x1b1);
22176 pi->rssical_cache.rssical_phyregs_2G[11] =
22177 read_phy_reg(pi, 0x1b7);
22178
22179 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22180 } else {
22181 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22182 pi->rssical_cache.rssical_radio_regs_5G[0] =
22183 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22184 pi->rssical_cache.rssical_radio_regs_5G[1] =
22185 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22186 } else {
22187 pi->rssical_cache.rssical_radio_regs_5G[0] =
22188 read_radio_reg(pi,
22189 RADIO_2056_RX_RSSI_MISC |
22190 RADIO_2056_RX0);
22191 pi->rssical_cache.rssical_radio_regs_5G[1] =
22192 read_radio_reg(pi,
22193 RADIO_2056_RX_RSSI_MISC |
22194 RADIO_2056_RX1);
22195 }
22196
22197 pi->rssical_cache.rssical_phyregs_5G[0] =
22198 read_phy_reg(pi, 0x1a6);
22199 pi->rssical_cache.rssical_phyregs_5G[1] =
22200 read_phy_reg(pi, 0x1ac);
22201 pi->rssical_cache.rssical_phyregs_5G[2] =
22202 read_phy_reg(pi, 0x1b2);
22203 pi->rssical_cache.rssical_phyregs_5G[3] =
22204 read_phy_reg(pi, 0x1b8);
22205 pi->rssical_cache.rssical_phyregs_5G[4] =
22206 read_phy_reg(pi, 0x1a4);
22207 pi->rssical_cache.rssical_phyregs_5G[5] =
22208 read_phy_reg(pi, 0x1aa);
22209 pi->rssical_cache.rssical_phyregs_5G[6] =
22210 read_phy_reg(pi, 0x1b0);
22211 pi->rssical_cache.rssical_phyregs_5G[7] =
22212 read_phy_reg(pi, 0x1b6);
22213 pi->rssical_cache.rssical_phyregs_5G[8] =
22214 read_phy_reg(pi, 0x1a5);
22215 pi->rssical_cache.rssical_phyregs_5G[9] =
22216 read_phy_reg(pi, 0x1ab);
22217 pi->rssical_cache.rssical_phyregs_5G[10] =
22218 read_phy_reg(pi, 0x1b1);
22219 pi->rssical_cache.rssical_phyregs_5G[11] =
22220 read_phy_reg(pi, 0x1b7);
22221
22222 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22223 }
22224
22225 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22226 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22227}
22228
7cc4a4c0 22229static void wlc_phy_restore_rssical_nphy(phy_info_t *pi)
a9533e7e
HP
22230{
22231 ASSERT(NREV_GE(pi->pubpi.phy_rev, 3));
22232
22233 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22234 if (pi->nphy_rssical_chanspec_2G == 0)
22235 return;
22236
22237 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22238 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22239 RADIO_2057_VCM_MASK,
22240 pi->rssical_cache.
22241 rssical_radio_regs_2G[0]);
22242 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22243 RADIO_2057_VCM_MASK,
22244 pi->rssical_cache.
22245 rssical_radio_regs_2G[1]);
22246 } else {
22247 mod_radio_reg(pi,
22248 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22249 RADIO_2056_VCM_MASK,
22250 pi->rssical_cache.
22251 rssical_radio_regs_2G[0]);
22252 mod_radio_reg(pi,
22253 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22254 RADIO_2056_VCM_MASK,
22255 pi->rssical_cache.
22256 rssical_radio_regs_2G[1]);
22257 }
22258
22259 write_phy_reg(pi, 0x1a6,
22260 pi->rssical_cache.rssical_phyregs_2G[0]);
22261 write_phy_reg(pi, 0x1ac,
22262 pi->rssical_cache.rssical_phyregs_2G[1]);
22263 write_phy_reg(pi, 0x1b2,
22264 pi->rssical_cache.rssical_phyregs_2G[2]);
22265 write_phy_reg(pi, 0x1b8,
22266 pi->rssical_cache.rssical_phyregs_2G[3]);
22267 write_phy_reg(pi, 0x1a4,
22268 pi->rssical_cache.rssical_phyregs_2G[4]);
22269 write_phy_reg(pi, 0x1aa,
22270 pi->rssical_cache.rssical_phyregs_2G[5]);
22271 write_phy_reg(pi, 0x1b0,
22272 pi->rssical_cache.rssical_phyregs_2G[6]);
22273 write_phy_reg(pi, 0x1b6,
22274 pi->rssical_cache.rssical_phyregs_2G[7]);
22275 write_phy_reg(pi, 0x1a5,
22276 pi->rssical_cache.rssical_phyregs_2G[8]);
22277 write_phy_reg(pi, 0x1ab,
22278 pi->rssical_cache.rssical_phyregs_2G[9]);
22279 write_phy_reg(pi, 0x1b1,
22280 pi->rssical_cache.rssical_phyregs_2G[10]);
22281 write_phy_reg(pi, 0x1b7,
22282 pi->rssical_cache.rssical_phyregs_2G[11]);
22283
22284 } else {
22285 if (pi->nphy_rssical_chanspec_5G == 0)
22286 return;
22287
22288 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22289 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22290 RADIO_2057_VCM_MASK,
22291 pi->rssical_cache.
22292 rssical_radio_regs_5G[0]);
22293 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22294 RADIO_2057_VCM_MASK,
22295 pi->rssical_cache.
22296 rssical_radio_regs_5G[1]);
22297 } else {
22298 mod_radio_reg(pi,
22299 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22300 RADIO_2056_VCM_MASK,
22301 pi->rssical_cache.
22302 rssical_radio_regs_5G[0]);
22303 mod_radio_reg(pi,
22304 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22305 RADIO_2056_VCM_MASK,
22306 pi->rssical_cache.
22307 rssical_radio_regs_5G[1]);
22308 }
22309
22310 write_phy_reg(pi, 0x1a6,
22311 pi->rssical_cache.rssical_phyregs_5G[0]);
22312 write_phy_reg(pi, 0x1ac,
22313 pi->rssical_cache.rssical_phyregs_5G[1]);
22314 write_phy_reg(pi, 0x1b2,
22315 pi->rssical_cache.rssical_phyregs_5G[2]);
22316 write_phy_reg(pi, 0x1b8,
22317 pi->rssical_cache.rssical_phyregs_5G[3]);
22318 write_phy_reg(pi, 0x1a4,
22319 pi->rssical_cache.rssical_phyregs_5G[4]);
22320 write_phy_reg(pi, 0x1aa,
22321 pi->rssical_cache.rssical_phyregs_5G[5]);
22322 write_phy_reg(pi, 0x1b0,
22323 pi->rssical_cache.rssical_phyregs_5G[6]);
22324 write_phy_reg(pi, 0x1b6,
22325 pi->rssical_cache.rssical_phyregs_5G[7]);
22326 write_phy_reg(pi, 0x1a5,
22327 pi->rssical_cache.rssical_phyregs_5G[8]);
22328 write_phy_reg(pi, 0x1ab,
22329 pi->rssical_cache.rssical_phyregs_5G[9]);
22330 write_phy_reg(pi, 0x1b1,
22331 pi->rssical_cache.rssical_phyregs_5G[10]);
22332 write_phy_reg(pi, 0x1b7,
22333 pi->rssical_cache.rssical_phyregs_5G[11]);
22334 }
22335}
22336
22337static uint16
7cc4a4c0 22338wlc_phy_gen_load_samples_nphy(phy_info_t *pi, uint32 f_kHz, uint16 max_val,
a9533e7e
HP
22339 uint8 dac_test_mode)
22340{
22341 uint8 phy_bw, is_phybw40;
22342 uint16 num_samps, t, spur;
22343 fixed theta = 0, rot = 0;
22344 uint32 tbl_len;
22345 cint32 *tone_buf = NULL;
22346
22347 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
22348 phy_bw = (is_phybw40 == 1) ? 40 : 20;
22349 tbl_len = (phy_bw << 3);
22350
22351 if (dac_test_mode == 1) {
22352 spur = read_phy_reg(pi, 0x01);
22353 spur = (spur >> 15) & 1;
22354 phy_bw = (spur == 1) ? 82 : 80;
22355 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
22356
22357 tbl_len = (phy_bw << 1);
22358 }
22359
ca8c1e59
JC
22360 tone_buf = (cint32 *) MALLOC(pi->sh->osh, sizeof(cint32) * tbl_len);
22361 if (tone_buf == NULL) {
a9533e7e
HP
22362 return 0;
22363 }
22364
22365 num_samps = (uint16) tbl_len;
22366 rot = FIXED((f_kHz * 36) / phy_bw) / 100;
22367 theta = 0;
22368
22369 for (t = 0; t < num_samps; t++) {
22370
22371 wlc_phy_cordic(theta, &tone_buf[t]);
22372
22373 theta += rot;
22374
22375 tone_buf[t].q = (int32) FLOAT(tone_buf[t].q * max_val);
22376 tone_buf[t].i = (int32) FLOAT(tone_buf[t].i * max_val);
22377 }
22378
22379 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
22380
22381 if (tone_buf != NULL)
22382 MFREE(pi->sh->osh, tone_buf, sizeof(cint32) * tbl_len);
22383
22384 return num_samps;
22385}
22386
22387int
7cc4a4c0 22388wlc_phy_tx_tone_nphy(phy_info_t *pi, uint32 f_kHz, uint16 max_val,
a9533e7e
HP
22389 uint8 iqmode, uint8 dac_test_mode, bool modify_bbmult)
22390{
22391 uint16 num_samps;
22392 uint16 loops = 0xffff;
22393 uint16 wait = 0;
22394
ca8c1e59
JC
22395 num_samps =
22396 wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val, dac_test_mode);
22397 if (num_samps == 0) {
a9533e7e
HP
22398 return BCME_ERROR;
22399 }
22400
22401 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22402 dac_test_mode, modify_bbmult);
22403
22404 return BCME_OK;
22405}
22406
22407static void
7cc4a4c0 22408wlc_phy_loadsampletable_nphy(phy_info_t *pi, cint32 *tone_buf,
a9533e7e
HP
22409 uint16 num_samps)
22410{
22411 uint16 t;
22412 uint32 *data_buf = NULL;
22413
ca8c1e59
JC
22414 data_buf = (uint32 *) MALLOC(pi->sh->osh, sizeof(uint32) * num_samps);
22415 if (data_buf == NULL) {
a9533e7e
HP
22416 return;
22417 }
22418
22419 if (pi->phyhang_avoid)
22420 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22421
22422 for (t = 0; t < num_samps; t++) {
22423 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
22424 (((unsigned int)tone_buf[t].q) & 0x3ff);
22425 }
22426 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
22427 data_buf);
22428
22429 if (data_buf != NULL)
22430 MFREE(pi->sh->osh, data_buf, sizeof(uint32) * num_samps);
22431
22432 if (pi->phyhang_avoid)
22433 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22434}
22435
22436static void
7cc4a4c0 22437wlc_phy_runsamples_nphy(phy_info_t *pi, uint16 num_samps, uint16 loops,
a9533e7e
HP
22438 uint16 wait, uint8 iqmode, uint8 dac_test_mode,
22439 bool modify_bbmult)
22440{
22441 uint16 bb_mult;
22442 uint8 phy_bw, sample_cmd;
22443 uint16 orig_RfseqCoreActv;
22444 uint16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
22445 lpf_bw_ctl_miscreg4;
22446
22447 if (pi->phyhang_avoid)
22448 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22449
22450 phy_bw = 20;
22451 if (CHSPEC_IS40(pi->radio_chanspec))
22452 phy_bw = 40;
22453
22454 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22455
22456 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
22457 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
22458 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
22459 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22460 (0x7 << 8);
22461 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22462 (0x7 << 8);
22463 } else {
22464 wlc_phy_rfctrl_override_nphy_rev7(pi,
22465 (0x1 << 7),
22466 wlc_phy_read_lpf_bw_ctl_nphy
22467 (pi, 0), 0, 0,
22468 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22469
22470 pi->nphy_sample_play_lpf_bw_ctl_ovr = TRUE;
22471
22472 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22473 (0x7 << 8);
22474 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22475 (0x7 << 8);
22476 }
22477 }
22478
22479 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
22480
22481 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22482 &bb_mult);
22483 pi->nphy_bb_mult_save =
22484 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
22485 }
22486
22487 if (modify_bbmult) {
22488 bb_mult = (phy_bw == 20) ? 100 : 71;
22489 bb_mult = (bb_mult << 8) + bb_mult;
22490 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22491 &bb_mult);
22492 }
22493
22494 if (pi->phyhang_avoid)
22495 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22496
22497 write_phy_reg(pi, 0xc6, num_samps - 1);
22498
22499 if (loops != 0xffff) {
22500 write_phy_reg(pi, 0xc4, loops - 1);
22501 } else {
22502 write_phy_reg(pi, 0xc4, loops);
22503 }
22504 write_phy_reg(pi, 0xc5, wait);
22505
22506 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
22507 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
22508 if (iqmode) {
22509
22510 and_phy_reg(pi, 0xc2, 0x7FFF);
22511
22512 or_phy_reg(pi, 0xc2, 0x8000);
22513 } else {
22514
22515 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
22516 write_phy_reg(pi, 0xc3, sample_cmd);
22517 }
22518
22519 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
22520
22521 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
22522}
22523
7cc4a4c0 22524void wlc_phy_stopplayback_nphy(phy_info_t *pi)
a9533e7e
HP
22525{
22526 uint16 playback_status;
22527 uint16 bb_mult;
22528
22529 if (pi->phyhang_avoid)
22530 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22531
22532 playback_status = read_phy_reg(pi, 0xc7);
22533 if (playback_status & 0x1) {
22534 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
22535 } else if (playback_status & 0x2) {
22536
22537 and_phy_reg(pi, 0xc2,
22538 (uint16) ~ NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
22539 }
22540
22541 and_phy_reg(pi, 0xc3, (uint16) ~ (0x1 << 2));
22542
22543 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
22544
22545 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
22546 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22547 &bb_mult);
22548
22549 pi->nphy_bb_mult_save = 0;
22550 }
22551
22552 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
22553 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
22554 wlc_phy_rfctrl_override_nphy_rev7(pi,
22555 (0x1 << 7),
22556 0, 0, 1,
22557 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22558 pi->nphy_sample_play_lpf_bw_ctl_ovr = FALSE;
22559 }
22560 }
22561
22562 if (pi->phyhang_avoid)
22563 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22564}
22565
7cc4a4c0 22566nphy_txgains_t wlc_phy_get_tx_gain_nphy(phy_info_t *pi)
a9533e7e
HP
22567{
22568 uint16 base_idx[2], curr_gain[2];
22569 uint8 core_no;
22570 nphy_txgains_t target_gain;
22571 uint32 *tx_pwrctrl_tbl = NULL;
22572
22573 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
22574 if (pi->phyhang_avoid)
22575 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22576
22577 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
22578 curr_gain);
22579
22580 if (pi->phyhang_avoid)
22581 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22582
22583 for (core_no = 0; core_no < 2; core_no++) {
22584 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22585 target_gain.ipa[core_no] =
22586 curr_gain[core_no] & 0x0007;
22587 target_gain.pad[core_no] =
22588 ((curr_gain[core_no] & 0x00F8) >> 3);
22589 target_gain.pga[core_no] =
22590 ((curr_gain[core_no] & 0x0F00) >> 8);
22591 target_gain.txgm[core_no] =
22592 ((curr_gain[core_no] & 0x7000) >> 12);
22593 target_gain.txlpf[core_no] =
22594 ((curr_gain[core_no] & 0x8000) >> 15);
22595 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22596 target_gain.ipa[core_no] =
22597 curr_gain[core_no] & 0x000F;
22598 target_gain.pad[core_no] =
22599 ((curr_gain[core_no] & 0x00F0) >> 4);
22600 target_gain.pga[core_no] =
22601 ((curr_gain[core_no] & 0x0F00) >> 8);
22602 target_gain.txgm[core_no] =
22603 ((curr_gain[core_no] & 0x7000) >> 12);
22604 } else {
22605 target_gain.ipa[core_no] =
22606 curr_gain[core_no] & 0x0003;
22607 target_gain.pad[core_no] =
22608 ((curr_gain[core_no] & 0x000C) >> 2);
22609 target_gain.pga[core_no] =
22610 ((curr_gain[core_no] & 0x0070) >> 4);
22611 target_gain.txgm[core_no] =
22612 ((curr_gain[core_no] & 0x0380) >> 7);
22613 }
22614 }
22615 } else {
22616 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
22617 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
22618 for (core_no = 0; core_no < 2; core_no++) {
22619 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22620 if (PHY_IPA(pi)) {
22621 tx_pwrctrl_tbl =
22622 wlc_phy_get_ipa_gaintbl_nphy(pi);
22623 } else {
22624 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22625 if NREV_IS
22626 (pi->pubpi.phy_rev, 3) {
22627 tx_pwrctrl_tbl =
22628 nphy_tpc_5GHz_txgain_rev3;
22629 } else if NREV_IS
22630 (pi->pubpi.phy_rev, 4) {
22631 tx_pwrctrl_tbl =
22632 (pi->srom_fem5g.
22633 extpagain ==
22634 3) ?
22635 nphy_tpc_5GHz_txgain_HiPwrEPA
22636 :
22637 nphy_tpc_5GHz_txgain_rev4;
22638 } else {
22639 tx_pwrctrl_tbl =
22640 nphy_tpc_5GHz_txgain_rev5;
22641 }
22642 } else {
22643 if (NREV_GE
22644 (pi->pubpi.phy_rev, 7)) {
22645 if (pi->pubpi.
22646 radiorev == 3) {
22647 tx_pwrctrl_tbl =
22648 nphy_tpc_txgain_epa_2057rev3;
22649 } else if (pi->pubpi.
22650 radiorev ==
22651 5) {
22652 tx_pwrctrl_tbl =
22653 nphy_tpc_txgain_epa_2057rev5;
22654 }
22655
22656 } else {
22657 if (NREV_GE
22658 (pi->pubpi.phy_rev,
22659 5)
22660 && (pi->srom_fem2g.
22661 extpagain ==
22662 3)) {
22663 tx_pwrctrl_tbl =
22664 nphy_tpc_txgain_HiPwrEPA;
22665 } else {
22666 tx_pwrctrl_tbl =
22667 nphy_tpc_txgain_rev3;
22668 }
22669 }
22670 }
22671 }
22672 if NREV_GE
22673 (pi->pubpi.phy_rev, 7) {
22674 target_gain.ipa[core_no] =
22675 (tx_pwrctrl_tbl[base_idx[core_no]]
22676 >> 16) & 0x7;
22677 target_gain.pad[core_no] =
22678 (tx_pwrctrl_tbl[base_idx[core_no]]
22679 >> 19) & 0x1f;
22680 target_gain.pga[core_no] =
22681 (tx_pwrctrl_tbl[base_idx[core_no]]
22682 >> 24) & 0xf;
22683 target_gain.txgm[core_no] =
22684 (tx_pwrctrl_tbl[base_idx[core_no]]
22685 >> 28) & 0x7;
22686 target_gain.txlpf[core_no] =
22687 (tx_pwrctrl_tbl[base_idx[core_no]]
22688 >> 31) & 0x1;
22689 } else {
22690 target_gain.ipa[core_no] =
22691 (tx_pwrctrl_tbl[base_idx[core_no]]
22692 >> 16) & 0xf;
22693 target_gain.pad[core_no] =
22694 (tx_pwrctrl_tbl[base_idx[core_no]]
22695 >> 20) & 0xf;
22696 target_gain.pga[core_no] =
22697 (tx_pwrctrl_tbl[base_idx[core_no]]
22698 >> 24) & 0xf;
22699 target_gain.txgm[core_no] =
22700 (tx_pwrctrl_tbl[base_idx[core_no]]
22701 >> 28) & 0x7;
22702 }
22703 } else {
22704 target_gain.ipa[core_no] =
22705 (nphy_tpc_txgain[base_idx[core_no]] >> 16) &
22706 0x3;
22707 target_gain.pad[core_no] =
22708 (nphy_tpc_txgain[base_idx[core_no]] >> 18) &
22709 0x3;
22710 target_gain.pga[core_no] =
22711 (nphy_tpc_txgain[base_idx[core_no]] >> 20) &
22712 0x7;
22713 target_gain.txgm[core_no] =
22714 (nphy_tpc_txgain[base_idx[core_no]] >> 23) &
22715 0x7;
22716 }
22717 }
22718 }
22719
90ea2296 22720 return target_gain;
a9533e7e
HP
22721}
22722
22723static void
7cc4a4c0 22724wlc_phy_iqcal_gainparams_nphy(phy_info_t *pi, uint16 core_no,
a9533e7e 22725 nphy_txgains_t target_gain,
7cc4a4c0 22726 nphy_iqcal_params_t *params)
a9533e7e
HP
22727{
22728 uint8 k;
22729 int idx;
22730 uint16 gain_index;
22731 uint8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
22732
22733 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22734 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22735 params->txlpf = target_gain.txlpf[core_no];
22736 }
22737 params->txgm = target_gain.txgm[core_no];
22738 params->pga = target_gain.pga[core_no];
22739 params->pad = target_gain.pad[core_no];
22740 params->ipa = target_gain.ipa[core_no];
22741 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22742 params->cal_gain =
22743 ((params->txlpf << 15) | (params->
22744 txgm << 12) | (params->
22745 pga << 8) |
22746 (params->pad << 3) | (params->ipa));
22747 } else {
22748 params->cal_gain =
22749 ((params->txgm << 12) | (params->
22750 pga << 8) | (params->
22751 pad << 4) |
22752 (params->ipa));
22753 }
22754 params->ncorr[0] = 0x79;
22755 params->ncorr[1] = 0x79;
22756 params->ncorr[2] = 0x79;
22757 params->ncorr[3] = 0x79;
22758 params->ncorr[4] = 0x79;
22759 } else {
22760
22761 gain_index = ((target_gain.pad[core_no] << 0) |
22762 (target_gain.pga[core_no] << 4) | (target_gain.
22763 txgm[core_no]
22764 << 8));
22765
22766 idx = -1;
22767 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22768 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22769 gain_index) {
22770 idx = k;
22771 break;
22772 }
22773 }
22774
22775 ASSERT(idx != -1);
22776
22777 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
22778 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
22779 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
22780 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
22781 (params->pad << 2));
22782 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
22783 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
22784 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
22785 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
22786 }
22787}
22788
7cc4a4c0 22789static void wlc_phy_txcal_radio_setup_nphy(phy_info_t *pi)
a9533e7e
HP
22790{
22791 uint16 jtag_core, core;
22792
22793 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22794
22795 for (core = 0; core <= 1; core++) {
22796
22797 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22798 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22799 TX_SSI_MASTER);
22800
22801 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22802 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22803 IQCAL_VCM_HG);
22804
22805 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22806 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22807 IQCAL_IDAC);
22808
22809 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22810 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM);
22811
22812 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
22813
22814 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22815 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22816 TX_SSI_MUX);
22817
22818 if (pi->pubpi.radiorev != 5)
22819 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22820 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22821 TSSIA);
22822
22823 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22824 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
22825
22826 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22827 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22828 TSSI_MISC1);
22829
22830 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22831 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22832 TX_SSI_MASTER, 0x0a);
22833 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22834 IQCAL_VCM_HG, 0x43);
22835 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22836 IQCAL_IDAC, 0x55);
22837 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22838 TSSI_VCM, 0x00);
22839 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22840 TSSIG, 0x00);
22841 if (pi->use_int_tx_iqlo_cal_nphy) {
22842 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22843 core, TX_SSI_MUX, 0x4);
22844 if (!
22845 (pi->
e5c4536f 22846 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22847
22848 WRITE_RADIO_REG3(pi, RADIO_2057,
22849 TX, core,
22850 TSSIA, 0x31);
22851 } else {
22852
22853 WRITE_RADIO_REG3(pi, RADIO_2057,
22854 TX, core,
22855 TSSIA, 0x21);
22856 }
22857 }
22858 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22859 TSSI_MISC1, 0x00);
22860 } else {
22861 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22862 TX_SSI_MASTER, 0x06);
22863 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22864 IQCAL_VCM_HG, 0x43);
22865 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22866 IQCAL_IDAC, 0x55);
22867 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22868 TSSI_VCM, 0x00);
22869
22870 if (pi->pubpi.radiorev != 5)
22871 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22872 core, TSSIA, 0x00);
22873 if (pi->use_int_tx_iqlo_cal_nphy) {
22874 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22875 core, TX_SSI_MUX,
22876 0x06);
22877 if (!
22878 (pi->
e5c4536f 22879 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22880
22881 WRITE_RADIO_REG3(pi, RADIO_2057,
22882 TX, core,
22883 TSSIG, 0x31);
22884 } else {
22885
22886 WRITE_RADIO_REG3(pi, RADIO_2057,
22887 TX, core,
22888 TSSIG, 0x21);
22889 }
22890 }
22891 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22892 TSSI_MISC1, 0x00);
22893 }
22894 }
22895 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22896
22897 for (core = 0; core <= 1; core++) {
22898 jtag_core =
22899 (core ==
22900 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22901
22902 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22903 read_radio_reg(pi,
22904 RADIO_2056_TX_TX_SSI_MASTER |
22905 jtag_core);
22906
22907 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22908 read_radio_reg(pi,
22909 RADIO_2056_TX_IQCAL_VCM_HG |
22910 jtag_core);
22911
22912 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22913 read_radio_reg(pi,
22914 RADIO_2056_TX_IQCAL_IDAC |
22915 jtag_core);
22916
22917 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22918 read_radio_reg(pi,
22919 RADIO_2056_TX_TSSI_VCM | jtag_core);
22920
22921 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22922 read_radio_reg(pi,
22923 RADIO_2056_TX_TX_AMP_DET |
22924 jtag_core);
22925
22926 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22927 read_radio_reg(pi,
22928 RADIO_2056_TX_TX_SSI_MUX |
22929 jtag_core);
22930
22931 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22932 read_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core);
22933
22934 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22935 read_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core);
22936
22937 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22938 read_radio_reg(pi,
22939 RADIO_2056_TX_TSSI_MISC1 |
22940 jtag_core);
22941
22942 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22943 read_radio_reg(pi,
22944 RADIO_2056_TX_TSSI_MISC2 |
22945 jtag_core);
22946
22947 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22948 read_radio_reg(pi,
22949 RADIO_2056_TX_TSSI_MISC3 |
22950 jtag_core);
22951
22952 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22953 write_radio_reg(pi,
22954 RADIO_2056_TX_TX_SSI_MASTER |
22955 jtag_core, 0x0a);
22956 write_radio_reg(pi,
22957 RADIO_2056_TX_IQCAL_VCM_HG |
22958 jtag_core, 0x40);
22959 write_radio_reg(pi,
22960 RADIO_2056_TX_IQCAL_IDAC |
22961 jtag_core, 0x55);
22962 write_radio_reg(pi,
22963 RADIO_2056_TX_TSSI_VCM |
22964 jtag_core, 0x00);
22965 write_radio_reg(pi,
22966 RADIO_2056_TX_TX_AMP_DET |
22967 jtag_core, 0x00);
22968
22969 if (PHY_IPA(pi)) {
22970 write_radio_reg(pi,
22971 RADIO_2056_TX_TX_SSI_MUX
22972 | jtag_core, 0x4);
22973 write_radio_reg(pi,
22974 RADIO_2056_TX_TSSIA |
22975 jtag_core, 0x1);
22976 } else {
22977 write_radio_reg(pi,
22978 RADIO_2056_TX_TX_SSI_MUX
22979 | jtag_core, 0x00);
22980 write_radio_reg(pi,
22981 RADIO_2056_TX_TSSIA |
22982 jtag_core, 0x2f);
22983 }
22984 write_radio_reg(pi,
22985 RADIO_2056_TX_TSSIG | jtag_core,
22986 0x00);
22987 write_radio_reg(pi,
22988 RADIO_2056_TX_TSSI_MISC1 |
22989 jtag_core, 0x00);
22990
22991 write_radio_reg(pi,
22992 RADIO_2056_TX_TSSI_MISC2 |
22993 jtag_core, 0x00);
22994 write_radio_reg(pi,
22995 RADIO_2056_TX_TSSI_MISC3 |
22996 jtag_core, 0x00);
22997 } else {
22998 write_radio_reg(pi,
22999 RADIO_2056_TX_TX_SSI_MASTER |
23000 jtag_core, 0x06);
23001 write_radio_reg(pi,
23002 RADIO_2056_TX_IQCAL_VCM_HG |
23003 jtag_core, 0x40);
23004 write_radio_reg(pi,
23005 RADIO_2056_TX_IQCAL_IDAC |
23006 jtag_core, 0x55);
23007 write_radio_reg(pi,
23008 RADIO_2056_TX_TSSI_VCM |
23009 jtag_core, 0x00);
23010 write_radio_reg(pi,
23011 RADIO_2056_TX_TX_AMP_DET |
23012 jtag_core, 0x00);
23013 write_radio_reg(pi,
23014 RADIO_2056_TX_TSSIA | jtag_core,
23015 0x00);
23016
23017 if (PHY_IPA(pi)) {
23018
23019 write_radio_reg(pi,
23020 RADIO_2056_TX_TX_SSI_MUX
23021 | jtag_core, 0x06);
23022 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23023
23024 write_radio_reg(pi,
23025 RADIO_2056_TX_TSSIG
23026 | jtag_core,
23027 0x11);
23028 } else {
23029
23030 write_radio_reg(pi,
23031 RADIO_2056_TX_TSSIG
23032 | jtag_core,
23033 0x1);
23034 }
23035 } else {
23036 write_radio_reg(pi,
23037 RADIO_2056_TX_TX_SSI_MUX
23038 | jtag_core, 0x00);
23039 write_radio_reg(pi,
23040 RADIO_2056_TX_TSSIG |
23041 jtag_core, 0x20);
23042 }
23043
23044 write_radio_reg(pi,
23045 RADIO_2056_TX_TSSI_MISC1 |
23046 jtag_core, 0x00);
23047 write_radio_reg(pi,
23048 RADIO_2056_TX_TSSI_MISC2 |
23049 jtag_core, 0x00);
23050 write_radio_reg(pi,
23051 RADIO_2056_TX_TSSI_MISC3 |
23052 jtag_core, 0x00);
23053 }
23054 }
23055 } else {
23056
23057 pi->tx_rx_cal_radio_saveregs[0] =
23058 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23059 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23060 pi->tx_rx_cal_radio_saveregs[1] =
23061 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23062 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23063
23064 pi->tx_rx_cal_radio_saveregs[2] =
23065 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23066 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23067 pi->tx_rx_cal_radio_saveregs[3] =
23068 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23069 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23070
23071 pi->tx_rx_cal_radio_saveregs[4] =
23072 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23073 pi->tx_rx_cal_radio_saveregs[5] =
23074 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23075
23076 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23077 0) {
23078
23079 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23080 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23081 } else {
23082
23083 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23084 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23085 }
23086
23087 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23088
23089 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23090 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23091 } else {
23092
23093 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23094 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23095 }
23096 }
23097}
23098
7cc4a4c0 23099static void wlc_phy_txcal_radio_cleanup_nphy(phy_info_t *pi)
a9533e7e
HP
23100{
23101 uint16 jtag_core, core;
23102
23103 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23104 for (core = 0; core <= 1; core++) {
23105
23106 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23107 TX_SSI_MASTER,
23108 pi->
23109 tx_rx_cal_radio_saveregs[(core * 11) +
23110 0]);
23111
23112 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23113 pi->
23114 tx_rx_cal_radio_saveregs[(core * 11) +
23115 1]);
23116
23117 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23118 pi->
23119 tx_rx_cal_radio_saveregs[(core * 11) +
23120 2]);
23121
23122 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23123 pi->
23124 tx_rx_cal_radio_saveregs[(core * 11) +
23125 3]);
23126
23127 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23128 pi->
23129 tx_rx_cal_radio_saveregs[(core * 11) +
23130 5]);
23131
23132 if (pi->pubpi.radiorev != 5)
23133 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23134 TSSIA,
23135 pi->
23136 tx_rx_cal_radio_saveregs[(core
23137 *
23138 11) +
23139 6]);
23140
23141 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23142 pi->
23143 tx_rx_cal_radio_saveregs[(core * 11) +
23144 7]);
23145
23146 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23147 pi->
23148 tx_rx_cal_radio_saveregs[(core * 11) +
23149 8]);
23150 }
23151 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23152 for (core = 0; core <= 1; core++) {
23153 jtag_core =
23154 (core ==
23155 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23156
23157 write_radio_reg(pi,
23158 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23159 pi->
23160 tx_rx_cal_radio_saveregs[(core * 11) +
23161 0]);
23162
23163 write_radio_reg(pi,
23164 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23165 pi->
23166 tx_rx_cal_radio_saveregs[(core * 11) +
23167 1]);
23168
23169 write_radio_reg(pi,
23170 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23171 pi->
23172 tx_rx_cal_radio_saveregs[(core * 11) +
23173 2]);
23174
23175 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23176 pi->
23177 tx_rx_cal_radio_saveregs[(core * 11) +
23178 3]);
23179
23180 write_radio_reg(pi,
23181 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23182 pi->
23183 tx_rx_cal_radio_saveregs[(core * 11) +
23184 4]);
23185
23186 write_radio_reg(pi,
23187 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23188 pi->
23189 tx_rx_cal_radio_saveregs[(core * 11) +
23190 5]);
23191
23192 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23193 pi->
23194 tx_rx_cal_radio_saveregs[(core * 11) +
23195 6]);
23196
23197 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23198 pi->
23199 tx_rx_cal_radio_saveregs[(core * 11) +
23200 7]);
23201
23202 write_radio_reg(pi,
23203 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23204 pi->
23205 tx_rx_cal_radio_saveregs[(core * 11) +
23206 8]);
23207
23208 write_radio_reg(pi,
23209 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23210 pi->
23211 tx_rx_cal_radio_saveregs[(core * 11) +
23212 9]);
23213
23214 write_radio_reg(pi,
23215 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23216 pi->
23217 tx_rx_cal_radio_saveregs[(core * 11) +
23218 10]);
23219 }
23220 } else {
23221
23222 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23223 pi->tx_rx_cal_radio_saveregs[0]);
23224 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23225 pi->tx_rx_cal_radio_saveregs[1]);
23226 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23227 pi->tx_rx_cal_radio_saveregs[2]);
23228 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23229 pi->tx_rx_cal_radio_saveregs[3]);
23230 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23231 pi->tx_rx_cal_radio_saveregs[4]);
23232 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23233 pi->tx_rx_cal_radio_saveregs[5]);
23234 }
23235}
23236
7cc4a4c0 23237static void wlc_phy_txcal_physetup_nphy(phy_info_t *pi)
a9533e7e
HP
23238{
23239 uint16 val, mask;
23240
23241 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23242 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23243 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23244
23245 mask = ((0x3 << 8) | (0x3 << 10));
23246 val = (0x2 << 8);
23247 val |= (0x2 << 10);
23248 mod_phy_reg(pi, 0xa6, mask, val);
23249 mod_phy_reg(pi, 0xa7, mask, val);
23250
23251 val = read_phy_reg(pi, 0x8f);
23252 pi->tx_rx_cal_phy_saveregs[2] = val;
23253 val |= ((0x1 << 9) | (0x1 << 10));
23254 write_phy_reg(pi, 0x8f, val);
23255
23256 val = read_phy_reg(pi, 0xa5);
23257 pi->tx_rx_cal_phy_saveregs[3] = val;
23258 val |= ((0x1 << 9) | (0x1 << 10));
23259 write_phy_reg(pi, 0xa5, val);
23260
23261 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23262 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23263
23264 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23265 &val);
23266 pi->tx_rx_cal_phy_saveregs[5] = val;
23267 val = 0;
23268 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23269 &val);
23270
23271 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23272 &val);
23273 pi->tx_rx_cal_phy_saveregs[6] = val;
23274 val = 0;
23275 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23276 &val);
23277
23278 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23279 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23280
23281 if (!(pi->use_int_tx_iqlo_cal_nphy)) {
23282
23283 wlc_phy_rfctrlintc_override_nphy(pi,
23284 NPHY_RfctrlIntc_override_PA,
23285 1,
23286 RADIO_MIMO_CORESEL_CORE1
23287 |
23288 RADIO_MIMO_CORESEL_CORE2);
23289 } else {
23290
23291 wlc_phy_rfctrlintc_override_nphy(pi,
23292 NPHY_RfctrlIntc_override_PA,
23293 0,
23294 RADIO_MIMO_CORESEL_CORE1
23295 |
23296 RADIO_MIMO_CORESEL_CORE2);
23297 }
23298
23299 wlc_phy_rfctrlintc_override_nphy(pi,
23300 NPHY_RfctrlIntc_override_TRSW,
23301 0x2, RADIO_MIMO_CORESEL_CORE1);
23302 wlc_phy_rfctrlintc_override_nphy(pi,
23303 NPHY_RfctrlIntc_override_TRSW,
23304 0x8, RADIO_MIMO_CORESEL_CORE2);
23305
23306 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23307 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23308 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23309 0x29b, (0x1 << 0), (0) << 0);
23310
23311 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23312 0x29b, (0x1 << 0), (0) << 0);
23313
23314 if (NREV_IS(pi->pubpi.phy_rev, 7)
23315 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23316 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
23317 wlc_phy_read_lpf_bw_ctl_nphy
23318 (pi, 0), 0, 0,
23319 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23320 }
23321
23322 if (pi->use_int_tx_iqlo_cal_nphy
23323 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23324
23325 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23326
23327 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23328 1 << 4);
23329
23330 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23331 mod_radio_reg(pi,
23332 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23333 1, 0);
23334 mod_radio_reg(pi,
23335 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23336 1, 0);
23337 } else {
23338 mod_radio_reg(pi,
23339 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23340 1, 0);
23341 mod_radio_reg(pi,
23342 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23343 1, 0);
23344 }
23345 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23346 wlc_phy_rfctrl_override_nphy_rev7(pi,
23347 (0x1 << 3), 0,
23348 0x3, 0,
23349 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23350 }
23351 }
23352 } else {
23353 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23354 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23355
23356 mask = ((0x3 << 12) | (0x3 << 14));
23357 val = (0x2 << 12);
23358 val |= (0x2 << 14);
23359 mod_phy_reg(pi, 0xa6, mask, val);
23360 mod_phy_reg(pi, 0xa7, mask, val);
23361
23362 val = read_phy_reg(pi, 0xa5);
23363 pi->tx_rx_cal_phy_saveregs[2] = val;
23364 val |= ((0x1 << 12) | (0x1 << 13));
23365 write_phy_reg(pi, 0xa5, val);
23366
23367 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23368 &val);
23369 pi->tx_rx_cal_phy_saveregs[3] = val;
23370 val |= 0x2000;
23371 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23372 &val);
23373
23374 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23375 &val);
23376 pi->tx_rx_cal_phy_saveregs[4] = val;
23377 val |= 0x2000;
23378 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23379 &val);
23380
23381 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23382 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23383 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23384 write_phy_reg(pi, 0x91, val);
23385 write_phy_reg(pi, 0x92, val);
23386 }
23387}
23388
7cc4a4c0 23389static void wlc_phy_txcal_phycleanup_nphy(phy_info_t *pi)
a9533e7e
HP
23390{
23391 uint16 mask;
23392
23393 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23394 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23395 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23396 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23397 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23398 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23399
23400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23401 &pi->tx_rx_cal_phy_saveregs[5]);
23402 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23403 &pi->tx_rx_cal_phy_saveregs[6]);
23404
23405 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23406 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23407
23408 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23409 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23410
23411 if (NREV_IS(pi->pubpi.phy_rev, 7)
23412 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23413 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
23414 1,
23415 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23416 }
23417
23418 wlc_phy_resetcca_nphy(pi);
23419
23420 if (pi->use_int_tx_iqlo_cal_nphy
23421 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23422
23423 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23424 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23425 mod_radio_reg(pi,
23426 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23427 1, 1);
23428 mod_radio_reg(pi,
23429 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23430 1, 1);
23431 } else {
23432 mod_radio_reg(pi,
23433 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23434 1, 1);
23435 mod_radio_reg(pi,
23436 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23437 1, 1);
23438 }
23439
23440 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23441 0);
23442 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23443 wlc_phy_rfctrl_override_nphy_rev7(pi,
23444 (0x1 << 3), 0,
23445 0x3, 1,
23446 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23447 }
23448 }
23449 } else {
23450 mask = ((0x3 << 12) | (0x3 << 14));
23451 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23452 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23453 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23454
23455 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23456 &pi->tx_rx_cal_phy_saveregs[3]);
23457
23458 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23459 &pi->tx_rx_cal_phy_saveregs[4]);
23460
23461 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23462 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23463 }
23464}
23465
23466#define NPHY_CAL_TSSISAMPS 64
23467#define NPHY_TEST_TONE_FREQ_40MHz 4000
23468#define NPHY_TEST_TONE_FREQ_20MHz 2500
23469
23470void
7cc4a4c0 23471wlc_phy_est_tonepwr_nphy(phy_info_t *pi, int32 *qdBm_pwrbuf, uint8 num_samps)
a9533e7e
HP
23472{
23473 uint16 tssi_reg;
23474 int32 temp, pwrindex[2];
23475 int32 idle_tssi[2];
23476 int32 rssi_buf[4];
23477 int32 tssival[2];
23478 uint8 tssi_type;
23479
23480 tssi_reg = read_phy_reg(pi, 0x1e9);
23481
23482 temp = (int32) (tssi_reg & 0x3f);
23483 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23484
23485 temp = (int32) ((tssi_reg >> 8) & 0x3f);
23486 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23487
23488 tssi_type =
23489 CHSPEC_IS5G(pi->radio_chanspec) ?
23490 (uint8) NPHY_RSSI_SEL_TSSI_5G : (uint8) NPHY_RSSI_SEL_TSSI_2G;
23491
23492 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23493
23494 tssival[0] = rssi_buf[0] / ((int32) num_samps);
23495 tssival[1] = rssi_buf[2] / ((int32) num_samps);
23496
23497 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23498 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23499
23500 if (pwrindex[0] < 0) {
23501 pwrindex[0] = 0;
23502 } else if (pwrindex[0] > 63) {
23503 pwrindex[0] = 63;
23504 }
23505
23506 if (pwrindex[1] < 0) {
23507 pwrindex[1] = 0;
23508 } else if (pwrindex[1] > 63) {
23509 pwrindex[1] = 63;
23510 }
23511
23512 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
23513 (uint32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
23514 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
23515 (uint32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
23516}
23517
7cc4a4c0 23518static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi)
a9533e7e
HP
23519{
23520 uint16 txcal_gain[2];
23521
23522 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23523 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
23524 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], TRUE);
23525 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], TRUE);
23526
23527 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23528 txcal_gain);
23529
23530 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23531 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23532 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23533 } else {
23534 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23535 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23536 }
23537
23538 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23539 txcal_gain);
23540}
23541
7cc4a4c0 23542static void wlc_phy_precal_txgain_nphy(phy_info_t *pi)
a9533e7e
HP
23543{
23544 bool save_bbmult = FALSE;
23545 uint8 txcal_index_2057_rev5n7 = 0;
23546 uint8 txcal_index_2057_rev3n4n6 = 10;
23547
23548 if (pi->use_int_tx_iqlo_cal_nphy) {
23549 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23550 if ((pi->pubpi.radiorev == 3) ||
23551 (pi->pubpi.radiorev == 4) ||
23552 (pi->pubpi.radiorev == 6)) {
23553
23554 pi->nphy_txcal_pwr_idx[0] =
23555 txcal_index_2057_rev3n4n6;
23556 pi->nphy_txcal_pwr_idx[1] =
23557 txcal_index_2057_rev3n4n6;
23558 wlc_phy_txpwr_index_nphy(pi, 3,
23559 txcal_index_2057_rev3n4n6,
23560 FALSE);
23561 } else {
23562
23563 pi->nphy_txcal_pwr_idx[0] =
23564 txcal_index_2057_rev5n7;
23565 pi->nphy_txcal_pwr_idx[1] =
23566 txcal_index_2057_rev5n7;
23567 wlc_phy_txpwr_index_nphy(pi, 3,
23568 txcal_index_2057_rev5n7,
23569 FALSE);
23570 }
23571 save_bbmult = TRUE;
23572
23573 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23574 wlc_phy_cal_txgainctrl_nphy(pi, 11, FALSE);
23575 if (pi->sh->hw_phytxchain != 3) {
23576 pi->nphy_txcal_pwr_idx[1] =
23577 pi->nphy_txcal_pwr_idx[0];
23578 wlc_phy_txpwr_index_nphy(pi, 3,
23579 pi->
23580 nphy_txcal_pwr_idx[0],
23581 TRUE);
23582 save_bbmult = TRUE;
23583 }
23584
23585 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23586 if (PHY_IPA(pi)) {
23587 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23588 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23589 FALSE);
23590 } else {
23591 pi->nphy_txcal_pwr_idx[0] = 80;
23592 pi->nphy_txcal_pwr_idx[1] = 80;
23593 wlc_phy_txpwr_index_nphy(pi, 3, 80,
23594 FALSE);
23595 save_bbmult = TRUE;
23596 }
23597 } else {
23598
23599 wlc_phy_internal_cal_txgain_nphy(pi);
23600 save_bbmult = TRUE;
23601 }
23602
23603 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23604 if (PHY_IPA(pi)) {
23605 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23606 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23607 FALSE);
23608 } else {
23609 wlc_phy_cal_txgainctrl_nphy(pi, 14,
23610 FALSE);
23611 }
23612 } else {
23613
23614 wlc_phy_internal_cal_txgain_nphy(pi);
23615 save_bbmult = TRUE;
23616 }
23617 }
23618
23619 } else {
23620 wlc_phy_cal_txgainctrl_nphy(pi, 10, FALSE);
23621 }
23622
23623 if (save_bbmult) {
23624 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23625 &pi->nphy_txcal_bbmult);
23626 }
23627}
23628
23629void
7cc4a4c0 23630wlc_phy_cal_txgainctrl_nphy(phy_info_t *pi, int32 dBm_targetpower, bool debug)
a9533e7e
HP
23631{
23632 int gainctrl_loopidx;
23633 uint core;
23634 uint16 m0m1, curr_m0m1;
23635 int32 delta_power;
23636 int32 txpwrindex;
23637 int32 qdBm_power[2];
23638 uint16 orig_BBConfig;
23639 uint16 phy_saveregs[4];
23640 uint32 freq_test;
23641 uint16 ampl_test = 250;
23642 uint stepsize;
23643 bool phyhang_avoid_state = FALSE;
23644
23645 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23646
23647 stepsize = 2;
23648 } else {
23649
23650 stepsize = 1;
23651 }
23652
23653 if (CHSPEC_IS40(pi->radio_chanspec)) {
23654 freq_test = 5000;
23655 } else {
23656 freq_test = 2500;
23657 }
23658
23659 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], TRUE);
23660 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], TRUE);
23661
23662 if (pi->phyhang_avoid)
23663 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
23664
23665 phyhang_avoid_state = pi->phyhang_avoid;
23666 pi->phyhang_avoid = FALSE;
23667
23668 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23669 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23670 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23671 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23672 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23673 RADIO_MIMO_CORESEL_CORE1 |
23674 RADIO_MIMO_CORESEL_CORE2);
23675
23676 if (!debug) {
23677 wlc_phy_rfctrlintc_override_nphy(pi,
23678 NPHY_RfctrlIntc_override_TRSW,
23679 0x2, RADIO_MIMO_CORESEL_CORE1);
23680 wlc_phy_rfctrlintc_override_nphy(pi,
23681 NPHY_RfctrlIntc_override_TRSW,
23682 0x8, RADIO_MIMO_CORESEL_CORE2);
23683 } else {
23684 wlc_phy_rfctrlintc_override_nphy(pi,
23685 NPHY_RfctrlIntc_override_TRSW,
23686 0x1, RADIO_MIMO_CORESEL_CORE1);
23687 wlc_phy_rfctrlintc_override_nphy(pi,
23688 NPHY_RfctrlIntc_override_TRSW,
23689 0x7, RADIO_MIMO_CORESEL_CORE2);
23690 }
23691
23692 orig_BBConfig = read_phy_reg(pi, 0x01);
23693 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23694
23695 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23696
23697 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
23698 txpwrindex = (int32) pi->nphy_cal_orig_pwr_idx[core];
23699
23700 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23701 gainctrl_loopidx++) {
23702 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23703 FALSE);
23704
23705 if (core == PHY_CORE_0) {
23706 curr_m0m1 = m0m1 & 0xff00;
23707 } else {
23708 curr_m0m1 = m0m1 & 0x00ff;
23709 }
23710
23711 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23712 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23713
23714 OSL_DELAY(50);
23715
23716 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23717 NPHY_CAL_TSSISAMPS);
23718
23719 pi->nphy_bb_mult_save = 0;
23720 wlc_phy_stopplayback_nphy(pi);
23721
23722 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23723
23724 txpwrindex -= stepsize * delta_power;
23725 if (txpwrindex < 0) {
23726 txpwrindex = 0;
23727 } else if (txpwrindex > 127) {
23728 txpwrindex = 127;
23729 }
23730
23731 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23732 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23733 (pi->srom_fem5g.extpagain == 3)) {
23734 if (txpwrindex < 30) {
23735 txpwrindex = 30;
23736 }
23737 }
23738 } else {
23739 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23740 (pi->srom_fem2g.extpagain == 3)) {
23741 if (txpwrindex < 50) {
23742 txpwrindex = 50;
23743 }
23744 }
23745 }
23746
23747 wlc_phy_txpwr_index_nphy(pi, (1 << core),
23748 (uint8) txpwrindex, TRUE);
23749 }
23750
23751 pi->nphy_txcal_pwr_idx[core] = (uint8) txpwrindex;
23752
23753 if (debug) {
23754 uint16 radio_gain;
23755 uint16 dbg_m0m1;
23756
23757 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23758
23759 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23760 FALSE);
23761
23762 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23763 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23764
23765 OSL_DELAY(100);
23766
23767 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23768 NPHY_CAL_TSSISAMPS);
23769
23770 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23771 &radio_gain);
23772
23773 OSL_DELAY(4000000);
23774 pi->nphy_bb_mult_save = 0;
23775 wlc_phy_stopplayback_nphy(pi);
23776 }
23777 }
23778
23779 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], TRUE);
23780 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], TRUE);
23781
23782 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23783
23784 write_phy_reg(pi, 0x01, orig_BBConfig);
23785
23786 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23787 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23788 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23789 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23790
23791 pi->phyhang_avoid = phyhang_avoid_state;
23792
23793 if (pi->phyhang_avoid)
23794 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
23795}
23796
7cc4a4c0 23797static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, uint16 core)
a9533e7e
HP
23798{
23799 int index;
23800 uint32 bbmult_scale;
23801 uint16 bbmult;
23802 uint16 tblentry;
23803
23804 nphy_txiqcal_ladder_t ladder_lo[] = {
23805 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23806 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23807 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23808 };
23809
23810 nphy_txiqcal_ladder_t ladder_iq[] = {
23811 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23812 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23813 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23814 };
23815
23816 bbmult = (core == PHY_CORE_0) ?
23817 ((pi->nphy_txcal_bbmult >> 8) & 0xff) : (pi->
23818 nphy_txcal_bbmult & 0xff);
23819
23820 for (index = 0; index < 18; index++) {
23821 bbmult_scale = ladder_lo[index].percent * bbmult;
23822 bbmult_scale /= 100;
23823
23824 tblentry =
23825 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23826 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23827 &tblentry);
23828
23829 bbmult_scale = ladder_iq[index].percent * bbmult;
23830 bbmult_scale /= 100;
23831
23832 tblentry =
23833 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23834 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23835 16, &tblentry);
23836 }
23837}
23838
7cc4a4c0 23839void wlc_phy_cal_perical_nphy_run(phy_info_t *pi, uint8 caltype)
a9533e7e
HP
23840{
23841 nphy_txgains_t target_gain;
23842 uint8 tx_pwr_ctrl_state;
23843 bool fullcal = TRUE;
23844 bool restore_tx_gain = FALSE;
23845 bool mphase;
23846
23847 if (NORADIO_ENAB(pi->pubpi)) {
23848 wlc_phy_cal_perical_mphase_reset(pi);
23849 return;
23850 }
23851
23852 if (PHY_MUTED(pi))
23853 return;
23854
23855 ASSERT(pi->nphy_perical != PHY_PERICAL_DISABLE);
23856
23857 if (caltype == PHY_PERICAL_AUTO)
23858 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23859 else if (caltype == PHY_PERICAL_PARTIAL)
23860 fullcal = FALSE;
23861
23862 if (pi->cal_type_override != PHY_PERICAL_AUTO) {
23863 fullcal =
23864 (pi->cal_type_override == PHY_PERICAL_FULL) ? TRUE : FALSE;
23865 }
23866
23867 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23868 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23869 wlc_phy_cal_perical_mphase_restart(pi);
23870 }
23871
23872 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL)) {
23873 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23874 }
23875
23876 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23877
23878 wlc_phyreg_enter((wlc_phy_t *) pi);
23879
23880 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23881 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23882 pi->nphy_cal_orig_pwr_idx[0] =
23883 (uint8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
23884 pi->nphy_cal_orig_pwr_idx[1] =
23885 (uint8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
23886
23887 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23888 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23889 0x110, 16,
23890 pi->nphy_cal_orig_tx_gain);
23891 } else {
23892 pi->nphy_cal_orig_tx_gain[0] = 0;
23893 pi->nphy_cal_orig_tx_gain[1] = 0;
23894 }
23895 }
23896 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23897 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23898 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23899
23900 if (pi->antsel_type == ANTSEL_2x3)
23901 wlc_phy_antsel_init((wlc_phy_t *) pi, TRUE);
23902
23903 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23904 if (!mphase) {
23905
23906 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23907 wlc_phy_precal_txgain_nphy(pi);
23908 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23909 restore_tx_gain = TRUE;
23910
23911 target_gain = pi->nphy_cal_target_gain;
23912 }
23913 if (BCME_OK ==
23914 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal, mphase)) {
23915 if (PHY_IPA(pi))
23916 wlc_phy_a4(pi, TRUE);
23917
23918 wlc_phyreg_exit((wlc_phy_t *) pi);
23919 wlapi_enable_mac(pi->sh->physhim);
23920 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23921 10000);
23922 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23923 wlc_phyreg_enter((wlc_phy_t *) pi);
23924
23925 if (BCME_OK == wlc_phy_cal_rxiq_nphy(pi, target_gain,
23926 (pi->
23927 first_cal_after_assoc
23928 || (pi->
23929 cal_type_override
23930 ==
23931 PHY_PERICAL_FULL))
23932 ? 2 : 0, FALSE)) {
23933 wlc_phy_savecal_nphy(pi);
23934
23935 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23936
23937 pi->nphy_perical_last = pi->sh->now;
23938 }
23939 }
23940 if (caltype != PHY_PERICAL_AUTO) {
23941 wlc_phy_rssi_cal_nphy(pi);
23942 }
23943
23944 if (pi->first_cal_after_assoc
23945 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
23946 pi->first_cal_after_assoc = FALSE;
23947 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23948 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23949 }
23950
23951 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23952 wlc_phy_radio205x_vcocal_nphy(pi);
23953 }
23954 } else {
23955 ASSERT(pi->nphy_perical >= PHY_PERICAL_MPHASE);
23956
23957 switch (pi->mphase_cal_phase_id) {
23958 case MPHASE_CAL_STATE_INIT:
23959 pi->nphy_perical_last = pi->sh->now;
23960 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23961
23962 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23963 wlc_phy_precal_txgain_nphy(pi);
23964 }
23965 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23966 pi->mphase_cal_phase_id++;
23967 break;
23968
23969 case MPHASE_CAL_STATE_TXPHASE0:
23970 case MPHASE_CAL_STATE_TXPHASE1:
23971 case MPHASE_CAL_STATE_TXPHASE2:
23972 case MPHASE_CAL_STATE_TXPHASE3:
23973 case MPHASE_CAL_STATE_TXPHASE4:
23974 case MPHASE_CAL_STATE_TXPHASE5:
23975 if ((pi->radar_percal_mask & 0x10) != 0)
23976 pi->nphy_rxcal_active = TRUE;
23977
23978 if (wlc_phy_cal_txiqlo_nphy
23979 (pi, pi->nphy_cal_target_gain, fullcal,
23980 TRUE) != BCME_OK) {
23981
23982 wlc_phy_cal_perical_mphase_reset(pi);
23983 break;
23984 }
23985
23986 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23987 (pi->mphase_cal_phase_id ==
23988 MPHASE_CAL_STATE_TXPHASE4)) {
23989 pi->mphase_cal_phase_id += 2;
23990 } else {
23991 pi->mphase_cal_phase_id++;
23992 }
23993 break;
23994
23995 case MPHASE_CAL_STATE_PAPDCAL:
23996 if ((pi->radar_percal_mask & 0x2) != 0)
23997 pi->nphy_rxcal_active = TRUE;
23998
23999 if (PHY_IPA(pi)) {
24000 wlc_phy_a4(pi, TRUE);
24001 }
24002 pi->mphase_cal_phase_id++;
24003 break;
24004
24005 case MPHASE_CAL_STATE_RXCAL:
24006 if ((pi->radar_percal_mask & 0x1) != 0)
24007 pi->nphy_rxcal_active = TRUE;
24008 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
24009 (pi->first_cal_after_assoc ||
24010 (pi->cal_type_override ==
24011 PHY_PERICAL_FULL)) ? 2 : 0,
24012 FALSE) == BCME_OK) {
24013 wlc_phy_savecal_nphy(pi);
24014 }
24015
24016 pi->mphase_cal_phase_id++;
24017 break;
24018
24019 case MPHASE_CAL_STATE_RSSICAL:
24020 if ((pi->radar_percal_mask & 0x4) != 0)
24021 pi->nphy_rxcal_active = TRUE;
24022 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
24023 wlc_phy_rssi_cal_nphy(pi);
24024
24025 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24026 wlc_phy_radio205x_vcocal_nphy(pi);
24027 }
24028 restore_tx_gain = TRUE;
24029
24030 if (pi->first_cal_after_assoc) {
24031 pi->mphase_cal_phase_id++;
24032 } else {
24033 wlc_phy_cal_perical_mphase_reset(pi);
24034 }
24035
24036 break;
24037
24038 case MPHASE_CAL_STATE_IDLETSSI:
24039 if ((pi->radar_percal_mask & 0x8) != 0)
24040 pi->nphy_rxcal_active = TRUE;
24041
24042 if (pi->first_cal_after_assoc) {
24043 pi->first_cal_after_assoc = FALSE;
24044 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
24045 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
24046 }
24047
24048 wlc_phy_cal_perical_mphase_reset(pi);
24049 break;
24050
24051 default:
24052 ASSERT(0);
24053 wlc_phy_cal_perical_mphase_reset(pi);
24054 break;
24055 }
24056 }
24057
24058 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24059 if (restore_tx_gain) {
24060 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
24061
24062 wlc_phy_txpwr_index_nphy(pi, 1,
24063 pi->
24064 nphy_cal_orig_pwr_idx
24065 [0], FALSE);
24066 wlc_phy_txpwr_index_nphy(pi, 2,
24067 pi->
24068 nphy_cal_orig_pwr_idx
24069 [1], FALSE);
24070
24071 pi->nphy_txpwrindex[0].index = -1;
24072 pi->nphy_txpwrindex[1].index = -1;
24073 } else {
24074 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
24075 (int8) (pi->
24076 nphy_txpwrindex
24077 [0].
24078 index_internal),
24079 FALSE);
24080 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
24081 (int8) (pi->
24082 nphy_txpwrindex
24083 [1].
24084 index_internal),
24085 FALSE);
24086 }
24087 }
24088 }
24089
24090 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
24091 wlc_phyreg_exit((wlc_phy_t *) pi);
24092 wlapi_enable_mac(pi->sh->physhim);
24093}
24094
24095int
7cc4a4c0 24096wlc_phy_cal_txiqlo_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
24097 bool fullcal, bool mphase)
24098{
24099 uint16 val;
24100 uint16 tbl_buf[11];
24101 uint8 cal_cnt;
24102 uint16 cal_cmd;
24103 uint8 num_cals, max_cal_cmds;
24104 uint16 core_no, cal_type;
24105 uint16 diq_start = 0;
24106 uint8 phy_bw;
24107 uint16 max_val;
24108 uint16 tone_freq;
24109 uint16 gain_save[2];
24110 uint16 cal_gain[2];
24111 nphy_iqcal_params_t cal_params[2];
24112 uint32 tbl_len;
24113 void *tbl_ptr;
24114 bool ladder_updated[2];
24115 uint8 mphase_cal_lastphase = 0;
24116 int bcmerror = BCME_OK;
24117 bool phyhang_avoid_state = FALSE;
24118
24119 uint16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
24120 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
24121 0x1902,
24122 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24123 0x6407
24124 };
24125
24126 uint16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
24127 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24128 0x3200,
24129 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24130 0x6407
24131 };
24132
24133 uint16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
24134 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24135 0x1202,
24136 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24137 0x4707
24138 };
24139
24140 uint16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
24141 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24142 0x2300,
24143 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24144 0x4707
24145 };
24146
24147 uint16 tbl_tx_iqlo_cal_startcoefs[] = {
24148 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24149 0x0000
24150 };
24151
24152 uint16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
24153 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
24154 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
24155 };
24156
24157 uint16 tbl_tx_iqlo_cal_cmds_recal[] = {
24158 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
24159 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
24160 };
24161
24162 uint16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
24163 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24164 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24165 0x0000
24166 };
24167
24168 uint16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
24169 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
24170 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
24171 };
24172
24173 uint16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
24174 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
24175 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
24176 };
24177
24178 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
24179
24180 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24181 phyhang_avoid_state = pi->phyhang_avoid;
24182 pi->phyhang_avoid = FALSE;
24183 }
24184
24185 if (CHSPEC_IS40(pi->radio_chanspec)) {
24186 phy_bw = 40;
24187 } else {
24188 phy_bw = 20;
24189 }
24190
24191 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
24192
24193 for (core_no = 0; core_no <= 1; core_no++) {
24194 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
24195 &cal_params[core_no]);
24196 cal_gain[core_no] = cal_params[core_no].cal_gain;
24197 }
24198
24199 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
24200
24201 wlc_phy_txcal_radio_setup_nphy(pi);
24202
24203 wlc_phy_txcal_physetup_nphy(pi);
24204
24205 ladder_updated[0] = ladder_updated[1] = FALSE;
24206 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
24207 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
24208 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
24209
24210 if (phy_bw == 40) {
24211 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
24212 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_loft_ladder_40);
24213 } else {
24214 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
24215 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_loft_ladder_20);
24216 }
24217 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
24218 16, tbl_ptr);
24219
24220 if (phy_bw == 40) {
24221 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
24222 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
24223 } else {
24224 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
24225 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
24226 }
24227 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24228 16, tbl_ptr);
24229 }
24230
24231 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24232 write_phy_reg(pi, 0xc2, 0x8ad9);
24233 } else {
24234 write_phy_reg(pi, 0xc2, 0x8aa9);
24235 }
24236
24237 max_val = 250;
24238 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24239
24240 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24241 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, FALSE);
24242 bcmerror = BCME_OK;
24243 } else {
24244 bcmerror =
24245 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0, FALSE);
24246 }
24247
24248 if (bcmerror == BCME_OK) {
24249
24250 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24251 tbl_ptr = pi->mphase_txcal_bestcoeffs;
24252 tbl_len = ARRAYSIZE(pi->mphase_txcal_bestcoeffs);
24253 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24254
24255 tbl_len -= 2;
24256 }
24257 } else {
24258 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24259
24260 tbl_ptr = pi->nphy_txiqlocal_bestc;
24261 tbl_len = ARRAYSIZE(pi->nphy_txiqlocal_bestc);
24262 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24263
24264 tbl_len -= 2;
24265 }
24266 } else {
24267
24268 fullcal = TRUE;
24269
24270 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24271 tbl_ptr =
24272 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24273 tbl_len =
24274 ARRAYSIZE
24275 (tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24276 } else {
24277 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24278 tbl_len =
24279 ARRAYSIZE
24280 (tbl_tx_iqlo_cal_startcoefs);
24281 }
24282 }
24283 }
24284 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24285 16, tbl_ptr);
24286
24287 if (fullcal) {
24288 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24289 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24290 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_fullcal);
24291 } else {
24292 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24293 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24294 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_recal);
24295 }
24296
24297 if (mphase) {
24298 cal_cnt = pi->mphase_txcal_cmdidx;
24299 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds) {
24300 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24301 } else {
24302 num_cals = max_cal_cmds;
24303 }
24304 } else {
24305 cal_cnt = 0;
24306 num_cals = max_cal_cmds;
24307 }
24308
24309 for (; cal_cnt < num_cals; cal_cnt++) {
24310
24311 if (fullcal) {
24312 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24313 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24314 [cal_cnt] :
24315 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24316 } else {
24317 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24318 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[cal_cnt]
24319 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24320 }
24321
24322 core_no = ((cal_cmd & 0x3000) >> 12);
24323 cal_type = ((cal_cmd & 0x0F00) >> 8);
24324
24325 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24326 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24327 PHY_IPA(pi)
24328 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24329 if (!ladder_updated[core_no]) {
24330 wlc_phy_update_txcal_ladder_nphy(pi,
24331 core_no);
24332 ladder_updated[core_no] = TRUE;
24333 }
24334 }
24335
24336 val =
24337 (cal_params[core_no].
24338 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24339 write_phy_reg(pi, 0xc1, val);
24340
24341 if ((cal_type == 1) || (cal_type == 3)
24342 || (cal_type == 4)) {
24343
24344 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24345 1, 69 + core_no, 16,
24346 tbl_buf);
24347
24348 diq_start = tbl_buf[0];
24349
24350 tbl_buf[0] = 0;
24351 wlc_phy_table_write_nphy(pi,
24352 NPHY_TBL_ID_IQLOCAL, 1,
24353 69 + core_no, 16,
24354 tbl_buf);
24355 }
24356
24357 write_phy_reg(pi, 0xc0, cal_cmd);
24358
24359 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24360 20000);
24361 ASSERT((read_phy_reg(pi, 0xc0) & 0xc000) == 0);
24362
24363 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24364 tbl_len, 96, 16, tbl_buf);
24365 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24366 tbl_len, 64, 16, tbl_buf);
24367
24368 if ((cal_type == 1) || (cal_type == 3)
24369 || (cal_type == 4)) {
24370
24371 tbl_buf[0] = diq_start;
24372
24373 }
24374
24375 }
24376
24377 if (mphase) {
24378 pi->mphase_txcal_cmdidx = num_cals;
24379 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24380 pi->mphase_txcal_cmdidx = 0;
24381 }
24382
24383 mphase_cal_lastphase =
24384 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24385 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24386
24387 if (!mphase
24388 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24389
24390 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24391 16, tbl_buf);
24392 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24393 16, tbl_buf);
24394
24395 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24396
24397 tbl_buf[0] = 0;
24398 tbl_buf[1] = 0;
24399 tbl_buf[2] = 0;
24400 tbl_buf[3] = 0;
24401
24402 }
24403 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24404 16, tbl_buf);
24405
24406 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24407 16, tbl_buf);
24408 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24409 16, tbl_buf);
24410
24411 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24412 16, tbl_buf);
24413
24414 tbl_len = ARRAYSIZE(pi->nphy_txiqlocal_bestc);
24415 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24416
24417 tbl_len -= 2;
24418 }
24419 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24420 tbl_len, 96, 16,
24421 pi->nphy_txiqlocal_bestc);
24422
24423 pi->nphy_txiqlocal_coeffsvalid = TRUE;
24424 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24425 } else {
24426 tbl_len = ARRAYSIZE(pi->mphase_txcal_bestcoeffs);
24427 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24428
24429 tbl_len -= 2;
24430 }
24431 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24432 tbl_len, 96, 16,
24433 pi->mphase_txcal_bestcoeffs);
24434 }
24435
24436 wlc_phy_stopplayback_nphy(pi);
24437
24438 write_phy_reg(pi, 0xc2, 0x0000);
24439
24440 }
24441
24442 wlc_phy_txcal_phycleanup_nphy(pi);
24443
24444 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24445 gain_save);
24446
24447 wlc_phy_txcal_radio_cleanup_nphy(pi);
24448
24449 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24450 if (!mphase
24451 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24452 wlc_phy_tx_iq_war_nphy(pi);
24453 }
24454
24455 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24456 pi->phyhang_avoid = phyhang_avoid_state;
24457 }
24458
24459 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
24460
24461 return bcmerror;
24462}
24463
7cc4a4c0 24464static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi)
a9533e7e
HP
24465{
24466 uint16 tbl_buf[7];
24467
24468 ASSERT(NREV_LT(pi->pubpi.phy_rev, 2));
24469
24470 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24471 (pi->nphy_txiqlocal_coeffsvalid)) {
24472 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24473 ARRAYSIZE(tbl_buf), 80, 16, tbl_buf);
24474
24475 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24476 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24477 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24478 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24479
24480 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24481 16, pi->nphy_txiqlocal_bestc);
24482
24483 tbl_buf[0] = 0;
24484 tbl_buf[1] = 0;
24485 tbl_buf[2] = 0;
24486 tbl_buf[3] = 0;
24487 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24488 16, tbl_buf);
24489
24490 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24491 16,
24492 &pi->nphy_txiqlocal_bestc[5]);
24493
24494 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24495 16,
24496 &pi->nphy_txiqlocal_bestc[5]);
24497 }
24498 }
24499}
24500
7cc4a4c0 24501static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi)
a9533e7e
HP
24502{
24503 nphy_iq_comp_t tx_comp;
24504
24505 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, (void *)&tx_comp);
24506
24507 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24508 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24509 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24510 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24511}
24512
24513void
7cc4a4c0 24514wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, uint8 write, nphy_iq_comp_t *pcomp)
a9533e7e
HP
24515{
24516 if (write) {
24517 write_phy_reg(pi, 0x9a, pcomp->a0);
24518 write_phy_reg(pi, 0x9b, pcomp->b0);
24519 write_phy_reg(pi, 0x9c, pcomp->a1);
24520 write_phy_reg(pi, 0x9d, pcomp->b1);
24521 } else {
24522 pcomp->a0 = read_phy_reg(pi, 0x9a);
24523 pcomp->b0 = read_phy_reg(pi, 0x9b);
24524 pcomp->a1 = read_phy_reg(pi, 0x9c);
24525 pcomp->b1 = read_phy_reg(pi, 0x9d);
24526 }
24527}
24528
24529void
7cc4a4c0 24530wlc_phy_rx_iq_est_nphy(phy_info_t *pi, phy_iq_est_t *est, uint16 num_samps,
a9533e7e
HP
24531 uint8 wait_time, uint8 wait_for_crs)
24532{
24533 uint8 core;
24534
24535 write_phy_reg(pi, 0x12b, num_samps);
24536 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24537 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24538 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24539
24540 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24541
24542 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24543 10000);
24544 ASSERT((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0);
24545
24546 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24547 ASSERT(pi->pubpi.phy_corenum <= PHY_CORE_MAX);
24548 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24549 est[core].i_pwr =
24550 (read_phy_reg(pi, NPHY_IqestipwrAccHi(core)) << 16)
24551 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24552 est[core].q_pwr =
24553 (read_phy_reg(pi, NPHY_IqestqpwrAccHi(core)) << 16)
24554 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24555 est[core].iq_prod =
24556 (read_phy_reg(pi, NPHY_IqestIqAccHi(core)) << 16) |
24557 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24558 }
24559 }
24560}
24561
24562#define CAL_RETRY_CNT 2
7cc4a4c0 24563static void wlc_phy_calc_rx_iq_comp_nphy(phy_info_t *pi, uint8 core_mask)
a9533e7e
HP
24564{
24565 uint8 curr_core;
24566 phy_iq_est_t est[PHY_CORE_MAX];
24567 nphy_iq_comp_t old_comp, new_comp;
24568 int32 iq = 0;
24569 uint32 ii = 0, qq = 0;
24570 int16 iq_nbits, qq_nbits, brsh, arsh;
24571 int32 a, b, temp;
24572 int bcmerror = BCME_OK;
24573 uint cal_retry = 0;
24574
24575 if (core_mask == 0x0)
24576 return;
24577
24578 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24579 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24580 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24581
24582 cal_try:
24583 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24584
24585 new_comp = old_comp;
24586
24587 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24588
24589 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24590 iq = est[curr_core].iq_prod;
24591 ii = est[curr_core].i_pwr;
24592 qq = est[curr_core].q_pwr;
24593 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24594 iq = est[curr_core].iq_prod;
24595 ii = est[curr_core].i_pwr;
24596 qq = est[curr_core].q_pwr;
24597 } else {
24598 continue;
24599 }
24600
24601 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24602 bcmerror = BCME_ERROR;
24603 break;
24604 }
24605
24606 iq_nbits = wlc_phy_nbits(iq);
24607 qq_nbits = wlc_phy_nbits(qq);
24608
24609 arsh = 10 - (30 - iq_nbits);
24610 if (arsh >= 0) {
24611 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
24612 temp = (int32) (ii >> arsh);
24613 if (temp == 0) {
24614 bcmerror = BCME_ERROR;
24615 break;
24616 }
24617 } else {
24618 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
24619 temp = (int32) (ii << -arsh);
24620 if (temp == 0) {
24621 bcmerror = BCME_ERROR;
24622 break;
24623 }
24624 }
24625
24626 a /= temp;
24627
24628 brsh = qq_nbits - 31 + 20;
24629 if (brsh >= 0) {
24630 b = (qq << (31 - qq_nbits));
24631 temp = (int32) (ii >> brsh);
24632 if (temp == 0) {
24633 bcmerror = BCME_ERROR;
24634 break;
24635 }
24636 } else {
24637 b = (qq << (31 - qq_nbits));
24638 temp = (int32) (ii << -brsh);
24639 if (temp == 0) {
24640 bcmerror = BCME_ERROR;
24641 break;
24642 }
24643 }
24644 b /= temp;
24645 b -= a * a;
24646 b = (int32) wlc_phy_sqrt_int((uint32) b);
24647 b -= (1 << 10);
24648
24649 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24650 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24651 new_comp.a0 = (int16) a & 0x3ff;
24652 new_comp.b0 = (int16) b & 0x3ff;
24653 } else {
24654
24655 new_comp.a0 = (int16) b & 0x3ff;
24656 new_comp.b0 = (int16) a & 0x3ff;
24657 }
24658 }
24659 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24660 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24661 new_comp.a1 = (int16) a & 0x3ff;
24662 new_comp.b1 = (int16) b & 0x3ff;
24663 } else {
24664
24665 new_comp.a1 = (int16) b & 0x3ff;
24666 new_comp.b1 = (int16) a & 0x3ff;
24667 }
24668 }
24669 }
24670
24671 if (bcmerror != BCME_OK) {
24672 printk("%s: Failed, cnt = %d\n", __func__, cal_retry);
24673
24674 if (cal_retry < CAL_RETRY_CNT) {
24675 cal_retry++;
24676 goto cal_try;
24677 }
24678
24679 new_comp = old_comp;
24680 } else if (cal_retry > 0) {
24681 }
24682
24683 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24684}
24685
7cc4a4c0 24686static void wlc_phy_rxcal_radio_setup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
24687{
24688 uint16 offtune_val;
24689 uint16 bias_g = 0;
24690 uint16 bias_a = 0;
24691
24692 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24693 if (rx_core == PHY_CORE_0) {
24694 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24695 pi->tx_rx_cal_radio_saveregs[0] =
24696 read_radio_reg(pi,
24697 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24698 pi->tx_rx_cal_radio_saveregs[1] =
24699 read_radio_reg(pi,
24700 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24701
24702 write_radio_reg(pi,
24703 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24704 0x3);
24705 write_radio_reg(pi,
24706 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24707 0xaf);
24708
24709 } else {
24710 pi->tx_rx_cal_radio_saveregs[0] =
24711 read_radio_reg(pi,
24712 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24713 pi->tx_rx_cal_radio_saveregs[1] =
24714 read_radio_reg(pi,
24715 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24716
24717 write_radio_reg(pi,
24718 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24719 0x3);
24720 write_radio_reg(pi,
24721 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24722 0x7f);
24723 }
24724
24725 } else {
24726 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24727 pi->tx_rx_cal_radio_saveregs[0] =
24728 read_radio_reg(pi,
24729 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24730 pi->tx_rx_cal_radio_saveregs[1] =
24731 read_radio_reg(pi,
24732 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24733
24734 write_radio_reg(pi,
24735 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24736 0x3);
24737 write_radio_reg(pi,
24738 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24739 0xaf);
24740
24741 } else {
24742 pi->tx_rx_cal_radio_saveregs[0] =
24743 read_radio_reg(pi,
24744 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24745 pi->tx_rx_cal_radio_saveregs[1] =
24746 read_radio_reg(pi,
24747 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24748
24749 write_radio_reg(pi,
24750 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24751 0x3);
24752 write_radio_reg(pi,
24753 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24754 0x7f);
24755 }
24756 }
24757
24758 } else {
24759 if (rx_core == PHY_CORE_0) {
24760 pi->tx_rx_cal_radio_saveregs[0] =
24761 read_radio_reg(pi,
24762 RADIO_2056_TX_RXIQCAL_TXMUX |
24763 RADIO_2056_TX1);
24764 pi->tx_rx_cal_radio_saveregs[1] =
24765 read_radio_reg(pi,
24766 RADIO_2056_RX_RXIQCAL_RXMUX |
24767 RADIO_2056_RX0);
24768
24769 if (pi->pubpi.radiorev >= 5) {
24770 pi->tx_rx_cal_radio_saveregs[2] =
24771 read_radio_reg(pi,
24772 RADIO_2056_RX_RXSPARE2 |
24773 RADIO_2056_RX0);
24774 pi->tx_rx_cal_radio_saveregs[3] =
24775 read_radio_reg(pi,
24776 RADIO_2056_TX_TXSPARE2 |
24777 RADIO_2056_TX1);
24778 }
24779
24780 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24781
24782 if (pi->pubpi.radiorev >= 5) {
24783 pi->tx_rx_cal_radio_saveregs[4] =
24784 read_radio_reg(pi,
24785 RADIO_2056_RX_LNAA_MASTER
24786 | RADIO_2056_RX0);
24787
24788 write_radio_reg(pi,
24789 RADIO_2056_RX_LNAA_MASTER
24790 | RADIO_2056_RX0, 0x40);
24791
24792 write_radio_reg(pi,
24793 RADIO_2056_TX_TXSPARE2 |
24794 RADIO_2056_TX1, bias_a);
24795
24796 write_radio_reg(pi,
24797 RADIO_2056_RX_RXSPARE2 |
24798 RADIO_2056_RX0, bias_a);
24799 } else {
24800 pi->tx_rx_cal_radio_saveregs[4] =
24801 read_radio_reg(pi,
24802 RADIO_2056_RX_LNAA_TUNE
24803 | RADIO_2056_RX0);
24804
24805 offtune_val =
24806 (pi->
24807 tx_rx_cal_radio_saveregs[2] & 0xF0)
24808 >> 8;
24809 offtune_val =
24810 (offtune_val <= 0x7) ? 0xF : 0;
24811
24812 mod_radio_reg(pi,
24813 RADIO_2056_RX_LNAA_TUNE |
24814 RADIO_2056_RX0, 0xF0,
24815 (offtune_val << 8));
24816 }
24817
24818 write_radio_reg(pi,
24819 RADIO_2056_TX_RXIQCAL_TXMUX |
24820 RADIO_2056_TX1, 0x9);
24821 write_radio_reg(pi,
24822 RADIO_2056_RX_RXIQCAL_RXMUX |
24823 RADIO_2056_RX0, 0x9);
24824 } else {
24825 if (pi->pubpi.radiorev >= 5) {
24826 pi->tx_rx_cal_radio_saveregs[4] =
24827 read_radio_reg(pi,
24828 RADIO_2056_RX_LNAG_MASTER
24829 | RADIO_2056_RX0);
24830
24831 write_radio_reg(pi,
24832 RADIO_2056_RX_LNAG_MASTER
24833 | RADIO_2056_RX0, 0x40);
24834
24835 write_radio_reg(pi,
24836 RADIO_2056_TX_TXSPARE2 |
24837 RADIO_2056_TX1, bias_g);
24838
24839 write_radio_reg(pi,
24840 RADIO_2056_RX_RXSPARE2 |
24841 RADIO_2056_RX0, bias_g);
24842
24843 } else {
24844 pi->tx_rx_cal_radio_saveregs[4] =
24845 read_radio_reg(pi,
24846 RADIO_2056_RX_LNAG_TUNE
24847 | RADIO_2056_RX0);
24848
24849 offtune_val =
24850 (pi->
24851 tx_rx_cal_radio_saveregs[2] & 0xF0)
24852 >> 8;
24853 offtune_val =
24854 (offtune_val <= 0x7) ? 0xF : 0;
24855
24856 mod_radio_reg(pi,
24857 RADIO_2056_RX_LNAG_TUNE |
24858 RADIO_2056_RX0, 0xF0,
24859 (offtune_val << 8));
24860 }
24861
24862 write_radio_reg(pi,
24863 RADIO_2056_TX_RXIQCAL_TXMUX |
24864 RADIO_2056_TX1, 0x6);
24865 write_radio_reg(pi,
24866 RADIO_2056_RX_RXIQCAL_RXMUX |
24867 RADIO_2056_RX0, 0x6);
24868 }
24869
24870 } else {
24871 pi->tx_rx_cal_radio_saveregs[0] =
24872 read_radio_reg(pi,
24873 RADIO_2056_TX_RXIQCAL_TXMUX |
24874 RADIO_2056_TX0);
24875 pi->tx_rx_cal_radio_saveregs[1] =
24876 read_radio_reg(pi,
24877 RADIO_2056_RX_RXIQCAL_RXMUX |
24878 RADIO_2056_RX1);
24879
24880 if (pi->pubpi.radiorev >= 5) {
24881 pi->tx_rx_cal_radio_saveregs[2] =
24882 read_radio_reg(pi,
24883 RADIO_2056_RX_RXSPARE2 |
24884 RADIO_2056_RX1);
24885 pi->tx_rx_cal_radio_saveregs[3] =
24886 read_radio_reg(pi,
24887 RADIO_2056_TX_TXSPARE2 |
24888 RADIO_2056_TX0);
24889 }
24890
24891 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24892
24893 if (pi->pubpi.radiorev >= 5) {
24894 pi->tx_rx_cal_radio_saveregs[4] =
24895 read_radio_reg(pi,
24896 RADIO_2056_RX_LNAA_MASTER
24897 | RADIO_2056_RX1);
24898
24899 write_radio_reg(pi,
24900 RADIO_2056_RX_LNAA_MASTER
24901 | RADIO_2056_RX1, 0x40);
24902
24903 write_radio_reg(pi,
24904 RADIO_2056_TX_TXSPARE2 |
24905 RADIO_2056_TX0, bias_a);
24906
24907 write_radio_reg(pi,
24908 RADIO_2056_RX_RXSPARE2 |
24909 RADIO_2056_RX1, bias_a);
24910 } else {
24911 pi->tx_rx_cal_radio_saveregs[4] =
24912 read_radio_reg(pi,
24913 RADIO_2056_RX_LNAA_TUNE
24914 | RADIO_2056_RX1);
24915
24916 offtune_val =
24917 (pi->
24918 tx_rx_cal_radio_saveregs[2] & 0xF0)
24919 >> 8;
24920 offtune_val =
24921 (offtune_val <= 0x7) ? 0xF : 0;
24922
24923 mod_radio_reg(pi,
24924 RADIO_2056_RX_LNAA_TUNE |
24925 RADIO_2056_RX1, 0xF0,
24926 (offtune_val << 8));
24927 }
24928
24929 write_radio_reg(pi,
24930 RADIO_2056_TX_RXIQCAL_TXMUX |
24931 RADIO_2056_TX0, 0x9);
24932 write_radio_reg(pi,
24933 RADIO_2056_RX_RXIQCAL_RXMUX |
24934 RADIO_2056_RX1, 0x9);
24935 } else {
24936 if (pi->pubpi.radiorev >= 5) {
24937 pi->tx_rx_cal_radio_saveregs[4] =
24938 read_radio_reg(pi,
24939 RADIO_2056_RX_LNAG_MASTER
24940 | RADIO_2056_RX1);
24941
24942 write_radio_reg(pi,
24943 RADIO_2056_RX_LNAG_MASTER
24944 | RADIO_2056_RX1, 0x40);
24945
24946 write_radio_reg(pi,
24947 RADIO_2056_TX_TXSPARE2 |
24948 RADIO_2056_TX0, bias_g);
24949
24950 write_radio_reg(pi,
24951 RADIO_2056_RX_RXSPARE2 |
24952 RADIO_2056_RX1, bias_g);
24953 } else {
24954 pi->tx_rx_cal_radio_saveregs[4] =
24955 read_radio_reg(pi,
24956 RADIO_2056_RX_LNAG_TUNE
24957 | RADIO_2056_RX1);
24958
24959 offtune_val =
24960 (pi->
24961 tx_rx_cal_radio_saveregs[2] & 0xF0)
24962 >> 8;
24963 offtune_val =
24964 (offtune_val <= 0x7) ? 0xF : 0;
24965
24966 mod_radio_reg(pi,
24967 RADIO_2056_RX_LNAG_TUNE |
24968 RADIO_2056_RX1, 0xF0,
24969 (offtune_val << 8));
24970 }
24971
24972 write_radio_reg(pi,
24973 RADIO_2056_TX_RXIQCAL_TXMUX |
24974 RADIO_2056_TX0, 0x6);
24975 write_radio_reg(pi,
24976 RADIO_2056_RX_RXIQCAL_RXMUX |
24977 RADIO_2056_RX1, 0x6);
24978 }
24979 }
24980 }
24981}
24982
7cc4a4c0 24983static void wlc_phy_rxcal_radio_cleanup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
24984{
24985 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24986 if (rx_core == PHY_CORE_0) {
24987 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24988 write_radio_reg(pi,
24989 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24990 pi->
24991 tx_rx_cal_radio_saveregs[0]);
24992 write_radio_reg(pi,
24993 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24994 pi->
24995 tx_rx_cal_radio_saveregs[1]);
24996
24997 } else {
24998 write_radio_reg(pi,
24999 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
25000 pi->
25001 tx_rx_cal_radio_saveregs[0]);
25002 write_radio_reg(pi,
25003 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
25004 pi->
25005 tx_rx_cal_radio_saveregs[1]);
25006 }
25007
25008 } else {
25009 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25010 write_radio_reg(pi,
25011 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
25012 pi->
25013 tx_rx_cal_radio_saveregs[0]);
25014 write_radio_reg(pi,
25015 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
25016 pi->
25017 tx_rx_cal_radio_saveregs[1]);
25018
25019 } else {
25020 write_radio_reg(pi,
25021 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
25022 pi->
25023 tx_rx_cal_radio_saveregs[0]);
25024 write_radio_reg(pi,
25025 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
25026 pi->
25027 tx_rx_cal_radio_saveregs[1]);
25028 }
25029 }
25030
25031 } else {
25032 if (rx_core == PHY_CORE_0) {
25033 write_radio_reg(pi,
25034 RADIO_2056_TX_RXIQCAL_TXMUX |
25035 RADIO_2056_TX1,
25036 pi->tx_rx_cal_radio_saveregs[0]);
25037
25038 write_radio_reg(pi,
25039 RADIO_2056_RX_RXIQCAL_RXMUX |
25040 RADIO_2056_RX0,
25041 pi->tx_rx_cal_radio_saveregs[1]);
25042
25043 if (pi->pubpi.radiorev >= 5) {
25044 write_radio_reg(pi,
25045 RADIO_2056_RX_RXSPARE2 |
25046 RADIO_2056_RX0,
25047 pi->
25048 tx_rx_cal_radio_saveregs[2]);
25049
25050 write_radio_reg(pi,
25051 RADIO_2056_TX_TXSPARE2 |
25052 RADIO_2056_TX1,
25053 pi->
25054 tx_rx_cal_radio_saveregs[3]);
25055 }
25056
25057 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25058 if (pi->pubpi.radiorev >= 5) {
25059 write_radio_reg(pi,
25060 RADIO_2056_RX_LNAA_MASTER
25061 | RADIO_2056_RX0,
25062 pi->
25063 tx_rx_cal_radio_saveregs
25064 [4]);
25065 } else {
25066 write_radio_reg(pi,
25067 RADIO_2056_RX_LNAA_TUNE
25068 | RADIO_2056_RX0,
25069 pi->
25070 tx_rx_cal_radio_saveregs
25071 [4]);
25072 }
25073 } else {
25074 if (pi->pubpi.radiorev >= 5) {
25075 write_radio_reg(pi,
25076 RADIO_2056_RX_LNAG_MASTER
25077 | RADIO_2056_RX0,
25078 pi->
25079 tx_rx_cal_radio_saveregs
25080 [4]);
25081 } else {
25082 write_radio_reg(pi,
25083 RADIO_2056_RX_LNAG_TUNE
25084 | RADIO_2056_RX0,
25085 pi->
25086 tx_rx_cal_radio_saveregs
25087 [4]);
25088 }
25089 }
25090
25091 } else {
25092 write_radio_reg(pi,
25093 RADIO_2056_TX_RXIQCAL_TXMUX |
25094 RADIO_2056_TX0,
25095 pi->tx_rx_cal_radio_saveregs[0]);
25096
25097 write_radio_reg(pi,
25098 RADIO_2056_RX_RXIQCAL_RXMUX |
25099 RADIO_2056_RX1,
25100 pi->tx_rx_cal_radio_saveregs[1]);
25101
25102 if (pi->pubpi.radiorev >= 5) {
25103 write_radio_reg(pi,
25104 RADIO_2056_RX_RXSPARE2 |
25105 RADIO_2056_RX1,
25106 pi->
25107 tx_rx_cal_radio_saveregs[2]);
25108
25109 write_radio_reg(pi,
25110 RADIO_2056_TX_TXSPARE2 |
25111 RADIO_2056_TX0,
25112 pi->
25113 tx_rx_cal_radio_saveregs[3]);
25114 }
25115
25116 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25117 if (pi->pubpi.radiorev >= 5) {
25118 write_radio_reg(pi,
25119 RADIO_2056_RX_LNAA_MASTER
25120 | RADIO_2056_RX1,
25121 pi->
25122 tx_rx_cal_radio_saveregs
25123 [4]);
25124 } else {
25125 write_radio_reg(pi,
25126 RADIO_2056_RX_LNAA_TUNE
25127 | RADIO_2056_RX1,
25128 pi->
25129 tx_rx_cal_radio_saveregs
25130 [4]);
25131 }
25132 } else {
25133 if (pi->pubpi.radiorev >= 5) {
25134 write_radio_reg(pi,
25135 RADIO_2056_RX_LNAG_MASTER
25136 | RADIO_2056_RX1,
25137 pi->
25138 tx_rx_cal_radio_saveregs
25139 [4]);
25140 } else {
25141 write_radio_reg(pi,
25142 RADIO_2056_RX_LNAG_TUNE
25143 | RADIO_2056_RX1,
25144 pi->
25145 tx_rx_cal_radio_saveregs
25146 [4]);
25147 }
25148 }
25149 }
25150 }
25151}
25152
7cc4a4c0 25153static void wlc_phy_rxcal_physetup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
25154{
25155 uint8 tx_core;
25156 uint16 rx_antval, tx_antval;
25157
25158 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25159
25160 tx_core = rx_core;
25161 } else {
25162 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
25163 }
25164
25165 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
25166 pi->tx_rx_cal_phy_saveregs[1] =
25167 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
25168 pi->tx_rx_cal_phy_saveregs[2] =
25169 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
25170 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
25171 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
25172 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
25173 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
25174 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
25175 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
25176 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25177 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
25178 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
25179 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
25180 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
25181 }
25182
25183 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
25184 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
25185 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25186 0x29b, (0x1 << 0), (0) << 0);
25187
25188 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25189 0x29b, (0x1 << 0), (0) << 0);
25190
25191 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25192
25193 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25194
25195 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25196
25197 } else {
25198
25199 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25200 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25201 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25202 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25203 }
25204
25205 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25206 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25207 (0x1 << 2), (0x1 << 2));
25208 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25209 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25210 (0x1 << 0) | (0x1 << 1), 0);
25211 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25212 0x8f : 0xa5,
25213 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25214 }
25215
25216 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25217 RADIO_MIMO_CORESEL_CORE1 |
25218 RADIO_MIMO_CORESEL_CORE2);
25219
25220 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25221 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25222 0, 0, 0,
25223 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25224 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25225 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25226 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25227 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25228 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25229 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25230 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25231 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25232 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25233 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25234 if (CHSPEC_IS40(pi->radio_chanspec)) {
25235 wlc_phy_rfctrl_override_nphy_rev7(pi,
25236 (0x1 << 7),
25237 2, 0, 0,
25238 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25239 } else {
25240 wlc_phy_rfctrl_override_nphy_rev7(pi,
25241 (0x1 << 7),
25242 0, 0, 0,
25243 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25244 }
25245 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25246 0, 0, 0,
25247 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25248 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25249 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25250 } else {
25251 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25252 }
25253
25254 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25255
25256 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25257
25258 wlc_phy_rfctrlintc_override_nphy(pi,
25259 NPHY_RfctrlIntc_override_TRSW,
25260 0x1, rx_core + 1);
25261 } else {
25262
25263 if (rx_core == PHY_CORE_0) {
25264 rx_antval = 0x1;
25265 tx_antval = 0x8;
25266 } else {
25267 rx_antval = 0x4;
25268 tx_antval = 0x2;
25269 }
25270
25271 wlc_phy_rfctrlintc_override_nphy(pi,
25272 NPHY_RfctrlIntc_override_TRSW,
25273 rx_antval, rx_core + 1);
25274 wlc_phy_rfctrlintc_override_nphy(pi,
25275 NPHY_RfctrlIntc_override_TRSW,
25276 tx_antval, tx_core + 1);
25277 }
25278}
25279
7cc4a4c0 25280static void wlc_phy_rxcal_phycleanup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
25281{
25282
25283 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25284 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25285 pi->tx_rx_cal_phy_saveregs[1]);
25286 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25287 pi->tx_rx_cal_phy_saveregs[2]);
25288 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25289 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25290
25291 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25292 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25293 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25294 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25295 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25296 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25297 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25298 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25299 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25300 }
25301
25302 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25303 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25304}
25305
25306static void
7cc4a4c0
JC
25307wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, uint8 rx_core,
25308 uint16 *rxgain, uint8 cal_type)
a9533e7e
HP
25309{
25310
25311 uint16 num_samps;
25312 phy_iq_est_t est[PHY_CORE_MAX];
25313 uint8 tx_core;
25314 nphy_iq_comp_t save_comp, zero_comp;
25315 uint32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0, thresh_pwr =
25316 10000;
25317 int16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
25318 bool gainctrl_done = FALSE;
25319 uint8 mix_tia_gain = 3;
25320 int8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25321 int8 curr_gaintbl_index = 3;
25322 uint8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
25323 nphy_ipa_txrxgain_t *nphy_rxcal_gaintbl;
25324 uint16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
25325 int16 fine_gain_idx;
25326 int8 txpwrindex;
25327 uint16 nphy_rxcal_txgain[2];
25328
25329 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25330
25331 tx_core = rx_core;
25332 } else {
25333 tx_core = 1 - rx_core;
25334 }
25335
25336 num_samps = 1024;
25337 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25338
25339 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25340 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25341 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25342
25343 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25344 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25345 mix_tia_gain = 3;
25346 } else if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25347 mix_tia_gain = 4;
25348 } else {
25349 mix_tia_gain = 6;
25350 }
25351 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25352 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25353 } else {
25354 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25355 }
25356 } else {
25357 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25358 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25359 } else {
25360 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25361 }
25362 }
25363
25364 do {
25365
25366 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25367 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25368 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25369 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25370 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25371 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25372 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25373
25374 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25375 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25376 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25377 ((lpf_biq1 << 12) |
25378 (lpf_biq0 << 8) |
25379 (mix_tia_gain <<
25380 4) | (lna2 << 2)
25381 | lna1), 0x3, 0);
25382 } else {
25383 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25384 ((hpvga << 12) |
25385 (lpf_biq1 << 10) |
25386 (lpf_biq0 << 8) |
25387 (mix_tia_gain << 4) |
25388 (lna2 << 2) | lna1), 0x3,
25389 0);
25390 }
25391
25392 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25393
25394 if (txpwrindex == -1) {
25395 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25396 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25397 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25398 2, 0x110, 16,
25399 nphy_rxcal_txgain);
25400 } else {
25401 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
25402 FALSE);
25403 }
25404
25405 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25406 NPHY_RXCAL_TONEFREQ_40MHz :
25407 NPHY_RXCAL_TONEFREQ_20MHz,
25408 NPHY_RXCAL_TONEAMP, 0, cal_type, FALSE);
25409
25410 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25411 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25412 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25413 curr_pwr = i_pwr + q_pwr;
25414
25415 switch (gainctrl_dirn) {
25416 case NPHY_RXCAL_GAIN_INIT:
25417 if (curr_pwr > thresh_pwr) {
25418 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25419 prev_gaintbl_index = curr_gaintbl_index;
25420 curr_gaintbl_index--;
25421 } else {
25422 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25423 prev_gaintbl_index = curr_gaintbl_index;
25424 curr_gaintbl_index++;
25425 }
25426 break;
25427
25428 case NPHY_RXCAL_GAIN_UP:
25429 if (curr_pwr > thresh_pwr) {
25430 gainctrl_done = TRUE;
25431 optim_pwr = prev_pwr;
25432 optim_gaintbl_index = prev_gaintbl_index;
25433 } else {
25434 prev_gaintbl_index = curr_gaintbl_index;
25435 curr_gaintbl_index++;
25436 }
25437 break;
25438
25439 case NPHY_RXCAL_GAIN_DOWN:
25440 if (curr_pwr > thresh_pwr) {
25441 prev_gaintbl_index = curr_gaintbl_index;
25442 curr_gaintbl_index--;
25443 } else {
25444 gainctrl_done = TRUE;
25445 optim_pwr = curr_pwr;
25446 optim_gaintbl_index = curr_gaintbl_index;
25447 }
25448 break;
25449
25450 default:
25451 ASSERT(0);
25452 }
25453
25454 if ((curr_gaintbl_index < 0) ||
25455 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
25456 gainctrl_done = TRUE;
25457 optim_pwr = curr_pwr;
25458 optim_gaintbl_index = prev_gaintbl_index;
25459 } else {
25460 prev_pwr = curr_pwr;
25461 }
25462
25463 wlc_phy_stopplayback_nphy(pi);
25464 } while (!gainctrl_done);
25465
25466 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25467 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25468 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25469 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25470 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25471 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25472
25473 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25474 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25475
25476 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25477 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25478
25479 if (fine_gain_idx + (int)lpf_biq0 > 10) {
25480 lpf_biq1 = 10 - lpf_biq0;
25481 } else {
25482 lpf_biq1 = (uint16) MAX(fine_gain_idx, 0);
25483 }
25484 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25485 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25486 ((lpf_biq1 << 12) |
25487 (lpf_biq0 << 8) |
25488 (mix_tia_gain << 4) |
25489 (lna2 << 2) | lna1), 0x3,
25490 0);
25491 } else {
25492 hpvga = (uint16) MAX(MIN(((int)hpvga) + delta_pwr, 10), 0);
25493 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25494 ((hpvga << 12) | (lpf_biq1 << 10) |
25495 (lpf_biq0 << 8) | (mix_tia_gain <<
25496 4) | (lna2 <<
25497 2) |
25498 lna1), 0x3, 0);
25499
25500 }
25501
25502 if (rxgain != NULL) {
25503 *rxgain++ = lna1;
25504 *rxgain++ = lna2;
25505 *rxgain++ = mix_tia_gain;
25506 *rxgain++ = lpf_biq0;
25507 *rxgain++ = lpf_biq1;
25508 *rxgain = hpvga;
25509 }
25510
25511 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25512}
25513
25514static void
7cc4a4c0 25515wlc_phy_rxcal_gainctrl_nphy(phy_info_t *pi, uint8 rx_core, uint16 *rxgain,
a9533e7e
HP
25516 uint8 cal_type)
25517{
25518 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25519}
25520
25521static uint8
7cc4a4c0 25522wlc_phy_rc_sweep_nphy(phy_info_t *pi, uint8 core_idx, uint8 loopback_type)
a9533e7e
HP
25523{
25524 uint32 target_bws[2] = { 9500, 21000 };
25525 uint32 ref_tones[2] = { 3000, 6000 };
25526 uint32 target_bw, ref_tone;
25527
25528 uint32 target_pwr_ratios[2] = { 28606, 18468 };
25529 uint32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
25530
25531 uint16 start_rccal_ovr_val = 128;
25532 uint16 txlpf_rccal_lpc_ovr_val = 128;
25533 uint16 rxlpf_rccal_hpc_ovr_val = 159;
25534
25535 uint16 orig_txlpf_rccal_lpc_ovr_val;
25536 uint16 orig_rxlpf_rccal_hpc_ovr_val;
25537 uint16 radio_addr_offset_rx;
25538 uint16 radio_addr_offset_tx;
25539 uint16 orig_dcBypass;
25540 uint16 orig_RxStrnFilt40Num[6];
25541 uint16 orig_RxStrnFilt40Den[4];
25542 uint16 orig_rfctrloverride[2];
25543 uint16 orig_rfctrlauxreg[2];
25544 uint16 orig_rfctrlrssiothers;
25545 uint16 tx_lpf_bw = 4;
25546
25547 uint16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25548 uint16 lpf_hpc = 7, hpvga_hpc = 7;
25549
25550 int8 rccal_stepsize;
25551 uint16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
25552 uint32 ref_iq_vals = 0, target_iq_vals = 0;
25553 uint16 num_samps, log_num_samps = 10;
25554 phy_iq_est_t est[PHY_CORE_MAX];
25555
25556 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25557 return 0;
25558 }
25559
25560 num_samps = (1 << log_num_samps);
25561
25562 if (CHSPEC_IS40(pi->radio_chanspec)) {
25563 target_bw = target_bws[1];
25564 target_pwr_ratio = target_pwr_ratios[1];
25565 ref_tone = ref_tones[1];
25566 rx_lpf_bw = rx_lpf_bws[1];
25567 } else {
25568 target_bw = target_bws[0];
25569 target_pwr_ratio = target_pwr_ratios[0];
25570 ref_tone = ref_tones[0];
25571 rx_lpf_bw = rx_lpf_bws[0];
25572 }
25573
25574 if (core_idx == 0) {
25575 radio_addr_offset_rx = RADIO_2056_RX0;
25576 radio_addr_offset_tx =
25577 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25578 } else {
25579 radio_addr_offset_rx = RADIO_2056_RX1;
25580 radio_addr_offset_tx =
25581 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25582 }
25583
25584 orig_txlpf_rccal_lpc_ovr_val =
25585 read_radio_reg(pi,
25586 (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx));
25587 orig_rxlpf_rccal_hpc_ovr_val =
25588 read_radio_reg(pi,
25589 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25590 radio_addr_offset_rx));
25591
25592 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25593
25594 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25595 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25596 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25597 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25598 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25599 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25600 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25601 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25602 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25603 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25604
25605 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25606 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25607 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25608 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25609 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25610
25611 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25612 txlpf_rccal_lpc_ovr_val);
25613
25614 write_radio_reg(pi,
25615 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25616 rxlpf_rccal_hpc_ovr_val);
25617
25618 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25619
25620 write_phy_reg(pi, 0x267, 0x02d4);
25621 write_phy_reg(pi, 0x268, 0x0000);
25622 write_phy_reg(pi, 0x269, 0x0000);
25623 write_phy_reg(pi, 0x26a, 0x0000);
25624 write_phy_reg(pi, 0x26b, 0x0000);
25625 write_phy_reg(pi, 0x26c, 0x02d4);
25626 write_phy_reg(pi, 0x26d, 0x0000);
25627 write_phy_reg(pi, 0x26e, 0x0000);
25628 write_phy_reg(pi, 0x26f, 0x0000);
25629 write_phy_reg(pi, 0x270, 0x0000);
25630
25631 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25632 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25633 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25634 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25635
25636 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25637 (0x7 << 10), (tx_lpf_bw << 10));
25638 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25639 (0x7 << 0), (hpvga_hpc << 0));
25640 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25641 (0x7 << 4), (lpf_hpc << 4));
25642 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25643 (0x7 << 8), (rx_lpf_bw << 8));
25644
25645 rccal_stepsize = 16;
25646 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25647
25648 while (rccal_stepsize >= 0) {
25649 write_radio_reg(pi,
25650 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25651 radio_addr_offset_rx), rccal_val);
25652
25653 if (rccal_stepsize == 16) {
25654
25655 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
25656 0, 1, FALSE);
25657 OSL_DELAY(2);
25658
25659 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25660
25661 if (core_idx == 0) {
25662 ref_iq_vals =
25663 MAX((est[0].i_pwr +
25664 est[0].q_pwr) >> (log_num_samps + 1),
25665 1);
25666 } else {
25667 ref_iq_vals =
25668 MAX((est[1].i_pwr +
25669 est[1].q_pwr) >> (log_num_samps + 1),
25670 1);
25671 }
25672
25673 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
25674 0, 1, FALSE);
25675 OSL_DELAY(2);
25676 }
25677
25678 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25679
25680 if (core_idx == 0) {
25681 target_iq_vals =
25682 (est[0].i_pwr + est[0].q_pwr) >> (log_num_samps +
25683 1);
25684 } else {
25685 target_iq_vals =
25686 (est[1].i_pwr + est[1].q_pwr) >> (log_num_samps +
25687 1);
25688 }
25689 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25690
25691 if (rccal_stepsize == 0) {
25692 rccal_stepsize--;
25693 } else if (rccal_stepsize == 1) {
25694 last_rccal_val = rccal_val;
25695 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25696 last_pwr_ratio = pwr_ratio;
25697 rccal_stepsize--;
25698 } else {
25699 rccal_stepsize = (rccal_stepsize >> 1);
25700 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25701 rccal_stepsize : (-rccal_stepsize));
25702 }
25703
25704 if (rccal_stepsize == -1) {
25705 best_rccal_val =
25706 (ABS((int)last_pwr_ratio - (int)target_pwr_ratio) <
25707 ABS((int)pwr_ratio -
25708 (int)target_pwr_ratio)) ? last_rccal_val :
25709 rccal_val;
25710
25711 if (CHSPEC_IS40(pi->radio_chanspec)) {
25712 if ((best_rccal_val > 140)
25713 || (best_rccal_val < 135)) {
25714 best_rccal_val = 138;
25715 }
25716 } else {
25717 if ((best_rccal_val > 142)
25718 || (best_rccal_val < 137)) {
25719 best_rccal_val = 140;
25720 }
25721 }
25722
25723 write_radio_reg(pi,
25724 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25725 radio_addr_offset_rx), best_rccal_val);
25726 }
25727 }
25728
25729 wlc_phy_stopplayback_nphy(pi);
25730
25731 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25732 orig_txlpf_rccal_lpc_ovr_val);
25733 write_radio_reg(pi,
25734 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25735 orig_rxlpf_rccal_hpc_ovr_val);
25736
25737 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25738
25739 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25740 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25741 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25742 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25743 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25744 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25745 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25746 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25747 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25748 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25749
25750 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25751 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25752 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25753 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25754 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25755
25756 pi->nphy_anarxlpf_adjusted = FALSE;
25757
90ea2296 25758 return best_rccal_val - 0x80;
a9533e7e
HP
25759}
25760
25761#define WAIT_FOR_SCOPE 4000000
25762static int
7cc4a4c0 25763wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
25764 uint8 cal_type, bool debug)
25765{
25766 uint16 orig_BBConfig;
25767 uint8 core_no, rx_core;
25768 uint8 best_rccal[2];
25769 uint16 gain_save[2];
25770 uint16 cal_gain[2];
25771 nphy_iqcal_params_t cal_params[2];
25772 uint8 rxcore_state;
25773 int8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25774 int8 txlpf_idac;
25775 bool phyhang_avoid_state = FALSE;
25776 bool skip_rxiqcal = FALSE;
25777
25778 orig_BBConfig = read_phy_reg(pi, 0x01);
25779 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25780
25781 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
25782
25783 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25784 phyhang_avoid_state = pi->phyhang_avoid;
25785 pi->phyhang_avoid = FALSE;
25786 }
25787
25788 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25789
25790 for (core_no = 0; core_no <= 1; core_no++) {
25791 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25792 &cal_params[core_no]);
25793 cal_gain[core_no] = cal_params[core_no].cal_gain;
25794 }
25795
25796 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25797
25798 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
25799
25800 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25801
25802 skip_rxiqcal =
25803 ((rxcore_state & (1 << rx_core)) == 0) ? TRUE : FALSE;
25804
25805 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25806
25807 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25808
25809 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25810
25811 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25812
25813 wlc_phy_tx_tone_nphy(pi,
25814 (CHSPEC_IS40(pi->radio_chanspec)) ?
25815 NPHY_RXCAL_TONEFREQ_40MHz :
25816 NPHY_RXCAL_TONEFREQ_20MHz,
25817 NPHY_RXCAL_TONEAMP, 0, cal_type,
25818 FALSE);
25819
25820 if (debug)
25821 OSL_DELAY(WAIT_FOR_SCOPE);
25822
25823 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25824 wlc_phy_stopplayback_nphy(pi);
25825 }
25826
25827 if (((cal_type == 1) || (cal_type == 2))
25828 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25829
25830 if (rx_core == PHY_CORE_1) {
25831
25832 if (rxcore_state == 1) {
25833 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25834 *) pi, 3);
25835 }
25836
25837 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25838 1);
25839
25840 best_rccal[rx_core] =
25841 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25842 pi->nphy_rccal_value = best_rccal[rx_core];
25843
25844 if (rxcore_state == 1) {
25845 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25846 *) pi,
25847 rxcore_state);
25848 }
25849 }
25850 }
25851
25852 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25853
25854 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25855 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25856 }
25857
25858 if ((cal_type == 1) || (cal_type == 2)) {
25859
25860 best_rccal[0] = best_rccal[1];
25861 write_radio_reg(pi,
25862 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25863 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25864
25865 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25866 rxlpf_rccal_hpc =
25867 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25868 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25869
25870 if (PHY_IPA(pi)) {
25871 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25872 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25873 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25874 TXLPF_IDAC_4, txlpf_idac);
25875 }
25876
25877 rxlpf_rccal_hpc = MAX(MIN(rxlpf_rccal_hpc, 31), 0);
25878 txlpf_rccal_lpc = MAX(MIN(txlpf_rccal_lpc, 31), 0);
25879
25880 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25881 ((rx_core ==
25882 PHY_CORE_0) ? RADIO_2056_RX0 :
25883 RADIO_2056_RX1)),
25884 (rxlpf_rccal_hpc | 0x80));
25885
25886 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25887 ((rx_core ==
25888 PHY_CORE_0) ? RADIO_2056_TX0 :
25889 RADIO_2056_TX1)),
25890 (txlpf_rccal_lpc | 0x80));
25891 }
25892 }
25893
25894 write_phy_reg(pi, 0x01, orig_BBConfig);
25895
25896 wlc_phy_resetcca_nphy(pi);
25897
25898 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25899 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25900 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25901 0, 0x3, 1);
25902 } else {
25903 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25904 }
25905 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25906
25907 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25908 gain_save);
25909
25910 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25911 pi->phyhang_avoid = phyhang_avoid_state;
25912 }
25913
25914 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
25915
25916 return BCME_OK;
25917}
25918
25919static int
7cc4a4c0 25920wlc_phy_cal_rxiq_nphy_rev2(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
25921 bool debug)
25922{
25923 phy_iq_est_t est[PHY_CORE_MAX];
25924 uint8 core_num, rx_core, tx_core;
25925 uint16 lna_vals[] = { 0x3, 0x3, 0x1 };
25926 uint16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25927 uint16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
25928 int16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25929 int16 desired_log2_pwr, actual_log2_pwr, hpf_change;
25930 uint16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25931 uint16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25932 uint16 num_samps;
25933 uint32 i_pwr, q_pwr, tot_pwr[3];
25934 uint8 gain_pass, use_hpf_num;
25935 uint16 mask, val1, val2;
25936 uint16 core_no;
25937 uint16 gain_save[2];
25938 uint16 cal_gain[2];
25939 nphy_iqcal_params_t cal_params[2];
25940 uint8 phy_bw;
25941 int bcmerror = BCME_OK;
25942 bool first_playtone = TRUE;
25943
25944 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
25945
25946 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
25947
25948 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25949 }
25950
25951 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25952
25953 for (core_no = 0; core_no <= 1; core_no++) {
25954 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25955 &cal_params[core_no]);
25956 cal_gain[core_no] = cal_params[core_no].cal_gain;
25957 }
25958
25959 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25960
25961 num_samps = 1024;
25962 desired_log2_pwr = 13;
25963
25964 for (core_num = 0; core_num < 2; core_num++) {
25965
25966 rx_core = core_num;
25967 tx_core = 1 - core_num;
25968
25969 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25970 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25971 0xa6 : 0xa7);
25972 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25973 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25974 0x91 : 0x92);
25975 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25976 0x91 : 0x92);
25977
25978 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25979 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25980
25981 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25982 ((0x1 << 1) | (0x1 << 2)));
25983 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25984
25985 if (((pi->nphy_rxcalparams) & 0xff000000)) {
25986
25987 write_phy_reg(pi,
25988 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25989 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 :
25990 0x110));
25991 } else {
25992
25993 write_phy_reg(pi,
25994 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25995 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 :
25996 0x120));
25997 }
25998
25999 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
26000 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
26001 0x114));
26002
26003 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
26004 if (rx_core == PHY_CORE_0) {
26005 val1 = RADIO_2055_COUPLE_RX_MASK;
26006 val2 = RADIO_2055_COUPLE_TX_MASK;
26007 } else {
26008 val1 = RADIO_2055_COUPLE_TX_MASK;
26009 val2 = RADIO_2055_COUPLE_RX_MASK;
26010 }
26011
26012 if ((pi->nphy_rxcalparams & 0x10000)) {
26013 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
26014 val1);
26015 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
26016 val2);
26017 }
26018
26019 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
26020
26021 if (debug)
26022 OSL_DELAY(WAIT_FOR_SCOPE);
26023
26024 if (gain_pass < 3) {
26025 curr_lna = lna_vals[gain_pass];
26026 curr_hpf1 = hpf1_vals[gain_pass];
26027 curr_hpf2 = hpf2_vals[gain_pass];
26028 } else {
26029
26030 if (tot_pwr[1] > 10000) {
26031 curr_lna = lna_vals[2];
26032 curr_hpf1 = hpf1_vals[2];
26033 curr_hpf2 = hpf2_vals[2];
26034 use_hpf_num = 1;
26035 curr_hpf = curr_hpf1;
26036 actual_log2_pwr =
26037 wlc_phy_nbits(tot_pwr[2]);
26038 } else {
26039 if (tot_pwr[0] > 10000) {
26040 curr_lna = lna_vals[1];
26041 curr_hpf1 = hpf1_vals[1];
26042 curr_hpf2 = hpf2_vals[1];
26043 use_hpf_num = 1;
26044 curr_hpf = curr_hpf1;
26045 actual_log2_pwr =
26046 wlc_phy_nbits(tot_pwr[1]);
26047 } else {
26048 curr_lna = lna_vals[0];
26049 curr_hpf1 = hpf1_vals[0];
26050 curr_hpf2 = hpf2_vals[0];
26051 use_hpf_num = 2;
26052 curr_hpf = curr_hpf2;
26053 actual_log2_pwr =
26054 wlc_phy_nbits(tot_pwr[0]);
26055 }
26056 }
26057
26058 hpf_change = desired_log2_pwr - actual_log2_pwr;
26059 curr_hpf += hpf_change;
26060 curr_hpf = MAX(MIN(curr_hpf, 10), 0);
26061 if (use_hpf_num == 1) {
26062 curr_hpf1 = curr_hpf;
26063 } else {
26064 curr_hpf2 = curr_hpf;
26065 }
26066 }
26067
26068 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
26069 ((curr_hpf2 << 8) |
26070 (curr_hpf1 << 4) |
26071 (curr_lna << 2)), 0x3, 0);
26072 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26073
26074 wlc_phy_stopplayback_nphy(pi);
26075
26076 if (first_playtone) {
26077 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
26078 (uint16) (pi->
26079 nphy_rxcalparams
26080 &
26081 0xffff),
26082 0, 0, TRUE);
26083 first_playtone = FALSE;
26084 } else {
26085 phy_bw =
26086 (CHSPEC_IS40(pi->radio_chanspec)) ? 40 : 20;
26087 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
26088 0, 0, 0, TRUE);
26089 }
26090
26091 if (bcmerror == BCME_OK) {
26092 if (gain_pass < 3) {
26093
26094 wlc_phy_rx_iq_est_nphy(pi, est,
26095 num_samps, 32,
26096 0);
26097 i_pwr =
26098 (est[rx_core].i_pwr +
26099 num_samps / 2) / num_samps;
26100 q_pwr =
26101 (est[rx_core].q_pwr +
26102 num_samps / 2) / num_samps;
26103 tot_pwr[gain_pass] = i_pwr + q_pwr;
26104 } else {
26105
26106 wlc_phy_calc_rx_iq_comp_nphy(pi,
26107 (1 <<
26108 rx_core));
26109 }
26110
26111 wlc_phy_stopplayback_nphy(pi);
26112 }
26113
26114 if (bcmerror != BCME_OK)
26115 break;
26116 }
26117
26118 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
26119 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
26120
26121 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
26122 0x92, orig_RfctrlIntcTx);
26123 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
26124 0x92, orig_RfctrlIntcRx);
26125 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
26126 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
26127 0xa7, orig_AfectrlCore);
26128 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
26129
26130 if (bcmerror != BCME_OK)
26131 break;
26132 }
26133
26134 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
26135 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26136
26137 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26138 gain_save);
26139
26140 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
26141
26142 return bcmerror;
26143}
26144
26145int
7cc4a4c0 26146wlc_phy_cal_rxiq_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
26147 uint8 cal_type, bool debug)
26148{
26149 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26150
26151 cal_type = 0;
26152 }
26153 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26154 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
26155 debug);
26156 } else {
26157 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
26158 }
26159}
26160
7cc4a4c0 26161static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26162{
26163 int j, type = 2;
26164 uint16 addr_offset = 0x2c5;
26165
26166 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26167 write_phy_reg(pi, addr_offset + j,
26168 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26169 }
26170}
26171
7cc4a4c0 26172static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26173{
26174 int j, type;
26175 uint16 addr_offset[] = { 0x186, 0x195,
26176 0x2c5
26177 };
26178
26179 for (type = 0; type < 3; type++) {
26180 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26181 write_phy_reg(pi, addr_offset[type] + j,
26182 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26183 }
26184 }
26185
26186 if (IS40MHZ(pi)) {
26187 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26188 write_phy_reg(pi, 0x186 + j,
26189 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26190 }
26191 } else {
26192 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26193 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26194 write_phy_reg(pi, 0x186 + j,
26195 NPHY_IPA_REV4_txdigi_filtcoeffs[5]
26196 [j]);
26197 }
26198 }
26199
26200 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
26201 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26202 write_phy_reg(pi, 0x2c5 + j,
26203 NPHY_IPA_REV4_txdigi_filtcoeffs[6]
26204 [j]);
26205 }
26206 }
26207 }
26208}
26209
7cc4a4c0 26210static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26211{
26212 int j;
26213
26214 if (IS40MHZ(pi)) {
26215 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26216 write_phy_reg(pi, 0x195 + j,
26217 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26218 }
26219 } else {
26220 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26221 write_phy_reg(pi, 0x186 + j,
26222 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26223 }
26224 }
26225}
26226
7cc4a4c0 26227static uint16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi)
a9533e7e
HP
26228{
26229 uint16 m0m1;
26230
26231 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26232
26233 return m0m1;
26234}
26235
7cc4a4c0 26236static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, uint8 m0, uint8 m1)
a9533e7e
HP
26237{
26238 uint16 m0m1 = (uint16) ((m0 << 8) | m1);
26239
26240 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26241 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26242}
26243
7cc4a4c0 26244static uint32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi)
a9533e7e
HP
26245{
26246 uint32 *tx_pwrctrl_tbl = NULL;
26247
26248 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26249
26250 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26251
26252 if ((pi->pubpi.radiorev == 4)
26253 || (pi->pubpi.radiorev == 6)) {
26254
26255 tx_pwrctrl_tbl =
26256 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26257 } else if (pi->pubpi.radiorev == 3) {
26258
26259 tx_pwrctrl_tbl =
26260 nphy_tpc_txgain_ipa_2g_2057rev3;
26261 } else if (pi->pubpi.radiorev == 5) {
26262
26263 tx_pwrctrl_tbl =
26264 nphy_tpc_txgain_ipa_2g_2057rev5;
26265 } else if ((pi->pubpi.radiorev == 7)
26266 || (pi->pubpi.radiorev == 8)) {
26267
26268 tx_pwrctrl_tbl =
26269 nphy_tpc_txgain_ipa_2g_2057rev7;
26270 } else {
26271 ASSERT(0);
26272 }
26273
26274 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26275
26276 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
26277 if (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID) {
26278
26279 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26280 }
26281
26282 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26283
26284 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26285 } else {
26286
26287 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26288 }
26289
26290 } else {
26291
26292 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26293 if ((pi->pubpi.radiorev == 3) ||
26294 (pi->pubpi.radiorev == 4) ||
26295 (pi->pubpi.radiorev == 6)) {
26296
26297 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26298 } else if ((pi->pubpi.radiorev == 7)
26299 || (pi->pubpi.radiorev == 8)) {
26300
26301 tx_pwrctrl_tbl =
26302 nphy_tpc_txgain_ipa_5g_2057rev7;
26303 } else {
26304 ASSERT(0);
26305 }
26306
26307 } else {
26308 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26309 }
26310 }
26311
26312 return tx_pwrctrl_tbl;
26313}
26314
26315static void
7cc4a4c0 26316wlc_phy_papd_cal_setup_nphy(phy_info_t *pi, nphy_papd_restore_state *state,
a9533e7e
HP
26317 uint8 core)
26318{
26319 int32 tone_freq;
26320 uint8 off_core;
26321 uint16 mixgain = 0;
26322
26323 off_core = core ^ 0x1;
26324 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26325
26326 if (NREV_IS(pi->pubpi.phy_rev, 7)
26327 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26328 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26329 wlc_phy_read_lpf_bw_ctl_nphy
26330 (pi, 0), 0, 0,
26331 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26332 }
26333
26334 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26335 if (pi->pubpi.radiorev == 5) {
26336 mixgain = (core == 0) ? 0x20 : 0x00;
26337
26338 } else if ((pi->pubpi.radiorev == 7)
26339 || (pi->pubpi.radiorev == 8)) {
26340
26341 mixgain = 0x00;
26342
26343 } else if ((pi->pubpi.radiorev <= 4)
26344 || (pi->pubpi.radiorev == 6)) {
26345
26346 mixgain = 0x00;
26347 } else {
26348 ASSERT(0);
26349 }
26350
26351 } else {
26352 if ((pi->pubpi.radiorev == 4) ||
26353 (pi->pubpi.radiorev == 6)) {
26354
26355 mixgain = 0x50;
26356 } else if ((pi->pubpi.radiorev == 3)
26357 || (pi->pubpi.radiorev == 7)
26358 || (pi->pubpi.radiorev == 8)) {
26359
26360 mixgain = 0x0;
26361 } else {
26362 ASSERT(0);
26363 }
26364 }
26365
26366 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26367 mixgain, (1 << core), 0,
26368 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26369
26370 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26371 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26372 1, (1 << core), 0);
26373 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26374 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26375 0, (1 << off_core), 0);
26376
26377 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26378 0, 0x3, 0,
26379 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26380 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26381 (1 << core), 0,
26382 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26383 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26384 (1 << core), 0,
26385 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26386 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26387 (1 << core), 0,
26388 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26389 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26390 (1 << core), 0,
26391 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26392 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26393 (1 << core), 0,
26394 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26395 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26396 (1 << core), 0,
26397 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26398 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26399 (1 << core), 0,
26400 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26401
26402 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26403 0, (1 << core), 0,
26404 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26405 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26406 (1 << core), 0,
26407 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26408
26409 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26410 0xa6 : 0xa7);
26411 state->afeoverride[core] =
26412 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26413 state->afectrl[off_core] =
26414 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26415 state->afeoverride[off_core] =
26416 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26417
26418 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26419 (0x1 << 2), 0);
26420 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26421 0xa5), (0x1 << 2), (0x1 << 2));
26422
26423 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26424 (0x1 << 2), (0x1 << 2));
26425 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26426 0x8f), (0x1 << 2), (0x1 << 2));
26427
26428 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26429 state->pwrup[core] =
26430 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26431 TXRXCOUPLE_2G_PWRUP);
26432 state->atten[core] =
26433 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26434 TXRXCOUPLE_2G_ATTEN);
26435 state->pwrup[off_core] =
26436 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26437 TXRXCOUPLE_2G_PWRUP);
26438 state->atten[off_core] =
26439 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26440 TXRXCOUPLE_2G_ATTEN);
26441
26442 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26443 TXRXCOUPLE_2G_PWRUP, 0xc);
26444
26445 if ((pi->pubpi.radiorev == 3) ||
26446 (pi->pubpi.radiorev == 4) ||
26447 (pi->pubpi.radiorev == 6)) {
26448
26449 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26450 TXRXCOUPLE_2G_ATTEN, 0xf0);
26451
26452 } else if (pi->pubpi.radiorev == 5) {
26453
26454 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26455 TXRXCOUPLE_2G_ATTEN,
26456 (core == 0) ? 0xf7 : 0xf2);
26457
26458 } else if ((pi->pubpi.radiorev == 7)
26459 || (pi->pubpi.radiorev == 8)) {
26460
26461 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26462 TXRXCOUPLE_2G_ATTEN, 0xf0);
26463
26464 } else {
26465 ASSERT(0);
26466 }
26467
26468 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26469 TXRXCOUPLE_2G_PWRUP, 0x0);
26470 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26471 TXRXCOUPLE_2G_ATTEN, 0xff);
26472
26473 } else {
26474 state->pwrup[core] =
26475 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26476 TXRXCOUPLE_5G_PWRUP);
26477 state->atten[core] =
26478 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26479 TXRXCOUPLE_5G_ATTEN);
26480 state->pwrup[off_core] =
26481 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26482 TXRXCOUPLE_5G_PWRUP);
26483 state->atten[off_core] =
26484 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26485 TXRXCOUPLE_5G_ATTEN);
26486
26487 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26488 TXRXCOUPLE_5G_PWRUP, 0xc);
26489
26490 if ((pi->pubpi.radiorev == 7)
26491 || (pi->pubpi.radiorev == 8)) {
26492
26493 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26494 TXRXCOUPLE_5G_ATTEN, 0xf4);
26495
26496 } else {
26497 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26498 TXRXCOUPLE_5G_ATTEN, 0xf0);
26499 }
26500
26501 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26502 TXRXCOUPLE_5G_PWRUP, 0x0);
26503 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26504 TXRXCOUPLE_5G_ATTEN, 0xff);
26505 }
26506
26507 tone_freq = 4000;
26508
26509 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, FALSE);
26510
26511 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26512 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26513
26514 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26515 0x2a4, (0x1 << 13), (1) << 13);
26516
26517 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26518 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26519
26520 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26521 0x2a4, (0x1 << 13), (0) << 13);
26522
26523 } else {
26524
26525 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26526
26527 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26528
26529 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26530
26531 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26532 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26533
26534 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26535 0xa6 : 0xa7);
26536 state->afeoverride[core] =
26537 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26538
26539 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26540 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26541 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26542 0xa5),
26543 (0x1 << 0) |
26544 (0x1 << 1) |
26545 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26546
26547 state->vga_master[core] =
26548 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26549 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26550 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26551 state->fbmix[core] =
26552 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26553 TXFBMIX_G);
26554 state->intpa_master[core] =
26555 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26556 INTPAG_MASTER);
26557
26558 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26559 0x03);
26560 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26561 INTPAG_MASTER, 0x04);
26562 } else {
26563 state->fbmix[core] =
26564 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26565 TXFBMIX_A);
26566 state->intpa_master[core] =
26567 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26568 INTPAA_MASTER);
26569
26570 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26571 0x03);
26572 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26573 INTPAA_MASTER, 0x04);
26574
26575 }
26576
26577 tone_freq = 4000;
26578
26579 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, FALSE);
26580
26581 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26582 0x29b, (0x1 << 0), (1) << 0);
26583
26584 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26585 0x29b, (0x1 << 0), (0) << 0);
26586
26587 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26588 }
26589}
26590
26591static void
7cc4a4c0 26592wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi, nphy_papd_restore_state *state)
a9533e7e
HP
26593{
26594 uint8 core;
26595
26596 wlc_phy_stopplayback_nphy(pi);
26597
26598 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26599
26600 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26601
26602 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26603 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26604 TXRXCOUPLE_2G_PWRUP, 0);
26605 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26606 TXRXCOUPLE_2G_ATTEN,
26607 state->atten[core]);
26608 } else {
26609 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26610 TXRXCOUPLE_5G_PWRUP, 0);
26611 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26612 TXRXCOUPLE_5G_ATTEN,
26613 state->atten[core]);
26614 }
26615 }
26616
26617 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
26618 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26619 1, 0x3, 0,
26620 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26621 } else {
26622 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26623 0, 0x3, 1,
26624 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26625 }
26626 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26627 0, 0x3, 1,
26628 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26629 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26630 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26631 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26632 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26633 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26634 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26635 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26636 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26637 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26638 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26639 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26640 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26641 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26642 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26643 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26644 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26645 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26646 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26647 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26648 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26649 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26650 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26651 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26652 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26653 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26654 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26655 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26656 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26657 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26658 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26659
26660 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26661
26662 write_phy_reg(pi, (core == PHY_CORE_0) ?
26663 0xa6 : 0xa7, state->afectrl[core]);
26664 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26665 0xa5, state->afeoverride[core]);
26666 }
26667
26668 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26669 (state->mm & 0xff));
26670
26671 if (NREV_IS(pi->pubpi.phy_rev, 7)
26672 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26673 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
26674 1,
26675 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26676 }
26677 } else {
26678
26679 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26680 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26681 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26682
26683 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26684 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26685
26686 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26687
26688 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26689 state->vga_master[core]);
26690 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26691 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26692 TXFBMIX_G, state->fbmix[core]);
26693 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26694 INTPAG_MASTER,
26695 state->intpa_master[core]);
26696 } else {
26697 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26698 TXFBMIX_A, state->fbmix[core]);
26699 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26700 INTPAA_MASTER,
26701 state->intpa_master[core]);
26702 }
26703
26704 write_phy_reg(pi, (core == PHY_CORE_0) ?
26705 0xa6 : 0xa7, state->afectrl[core]);
26706 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26707 0xa5, state->afeoverride[core]);
26708 }
26709
26710 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26711 (state->mm & 0xff));
26712
26713 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26714 }
26715}
26716
26717static void
7cc4a4c0 26718wlc_phy_a1_nphy(phy_info_t *pi, uint8 core, uint32 winsz, uint32 start,
a9533e7e
HP
26719 uint32 end)
26720{
26721 uint32 *buf, *src, *dst, sz;
26722
26723 sz = end - start + 1;
26724 ASSERT(end > start);
26725 ASSERT(end < NPHY_PAPD_EPS_TBL_SIZE);
26726
ca8c1e59
JC
26727 buf = MALLOC(pi->sh->osh, 2 * sizeof(uint32) * NPHY_PAPD_EPS_TBL_SIZE);
26728 if (NULL == buf) {
a9533e7e
HP
26729 return;
26730 }
26731
26732 src = buf;
26733 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26734
26735 wlc_phy_table_read_nphy(pi,
26736 (core ==
26737 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26738 NPHY_TBL_ID_EPSILONTBL1),
26739 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26740
26741 do {
26742 uint32 phy_a1, phy_a2;
26743 int32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
26744
26745 phy_a1 = end - MIN(end, (winsz >> 1));
26746 phy_a2 = MIN(NPHY_PAPD_EPS_TBL_SIZE - 1, end + (winsz >> 1));
26747 phy_a3 = phy_a2 - phy_a1 + 1;
26748 phy_a6 = 0;
26749 phy_a7 = 0;
26750
26751 do {
26752 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26753 &phy_a5);
26754 phy_a6 += phy_a4;
26755 phy_a7 += phy_a5;
26756 } while (phy_a2-- != phy_a1);
26757
26758 phy_a6 /= phy_a3;
26759 phy_a7 /= phy_a3;
26760 dst[end] = ((uint32) phy_a7 << 13) | ((uint32) phy_a6 & 0x1fff);
26761 } while (end-- != start);
26762
26763 wlc_phy_table_write_nphy(pi,
26764 (core ==
26765 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26766 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26767
26768 MFREE(pi->sh->osh, buf, 2 * sizeof(uint32) * NPHY_PAPD_EPS_TBL_SIZE);
26769}
26770
26771static void
7cc4a4c0 26772wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *txgains,
a9533e7e
HP
26773 phy_cal_mode_t cal_mode, uint8 core)
26774{
26775 uint16 phy_a1, phy_a2, phy_a3;
26776 uint16 phy_a4, phy_a5;
26777 bool phy_a6;
26778 uint8 phy_a7, m[2];
26779 uint32 phy_a8 = 0;
26780 nphy_txgains_t phy_a9;
26781
26782 if (NREV_LT(pi->pubpi.phy_rev, 3))
26783 return;
26784
26785 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26786
26787 ASSERT((cal_mode == CAL_FULL) || (cal_mode == CAL_GCTRL)
26788 || (cal_mode == CAL_SOFT));
26789 phy_a6 = ((cal_mode == CAL_GCTRL)
26790 || (cal_mode == CAL_SOFT)) ? TRUE : FALSE;
26791
26792 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26793
26794 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26795
26796 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26797 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26798 (phy_a9.txgm[core] << 12) |
26799 (phy_a9.pga[core] << 8) |
26800 (txgains->gains.pad[core] << 3) |
26801 (phy_a9.ipa[core]));
26802 } else {
26803 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26804 (phy_a9.txgm[core] << 12) |
26805 (txgains->gains.pga[core] << 8) |
26806 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26807 }
26808
26809 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26810 NPHY_REV7_RfctrlOverride_cmd_txgain,
26811 phy_a5, (1 << core), 0);
26812
26813 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26814 if ((pi->pubpi.radiorev <= 4)
26815 || (pi->pubpi.radiorev == 6)) {
26816
26817 m[core] = IS40MHZ(pi) ? 60 : 79;
26818 } else {
26819
26820 m[core] = IS40MHZ(pi) ? 45 : 64;
26821 }
26822
26823 } else {
26824 m[core] = IS40MHZ(pi) ? 75 : 107;
26825 }
26826
26827 m[phy_a7] = 0;
26828 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26829
26830 phy_a2 = 63;
26831
26832 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26833 if (CHIPID(pi->sh->chip) == BCM6362_CHIP_ID) {
26834 phy_a1 = 35;
26835 phy_a3 = 35;
26836 } else if ((pi->pubpi.radiorev == 4)
26837 || (pi->pubpi.radiorev == 6)) {
26838 phy_a1 = 30;
26839 phy_a3 = 30;
26840 } else {
26841 phy_a1 = 25;
26842 phy_a3 = 25;
26843 }
26844 } else {
26845 if ((pi->pubpi.radiorev == 5)
26846 || (pi->pubpi.radiorev == 7)
26847 || (pi->pubpi.radiorev == 8)) {
26848 phy_a1 = 25;
26849 phy_a3 = 25;
26850 } else {
26851 phy_a1 = 35;
26852 phy_a3 = 35;
26853 }
26854 }
26855
26856 if (cal_mode == CAL_GCTRL) {
26857 if ((pi->pubpi.radiorev == 5)
26858 && (CHSPEC_IS2G(pi->radio_chanspec))) {
26859 phy_a1 = 55;
26860 } else if (((pi->pubpi.radiorev == 7) &&
26861 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26862 ((pi->pubpi.radiorev == 8) &&
26863 (CHSPEC_IS2G(pi->radio_chanspec)))) {
26864 phy_a1 = 60;
26865 } else {
26866 phy_a1 = 63;
26867 }
26868
26869 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26870
26871 phy_a1 = 35;
26872 phy_a3 = 35;
26873 }
26874
26875 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26876 0x29b, (0x1 << 0), (1) << 0);
26877
26878 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26879 0x29b, (0x1 << 0), (0) << 0);
26880
26881 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26882 0x2a4, (0x1 << 13), (1) << 13);
26883
26884 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26885 0x2a4, (0x1 << 13), (0) << 13);
26886
26887 write_phy_reg(pi, 0x2a1, 0x80);
26888 write_phy_reg(pi, 0x2a2, 0x100);
26889
26890 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26891 0x2a4, (0x7 << 4), (11) << 4);
26892
26893 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26894 0x2a4, (0x7 << 8), (11) << 8);
26895
26896 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26897 0x2a4, (0x7 << 0), (0x3) << 0);
26898
26899 write_phy_reg(pi, 0x2e5, 0x20);
26900
26901 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26902
26903 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26904
26905 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26906
26907 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26908 1, ((core == 0) ? 1 : 2), 0,
26909 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26910 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26911 0, ((core == 0) ? 2 : 1), 0,
26912 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26913
26914 write_phy_reg(pi, 0x2be, 1);
26915 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26916
26917 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26918 0, 0x3, 0,
26919 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26920
26921 wlc_phy_table_write_nphy(pi,
26922 (core ==
26923 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26924 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26925 32, &phy_a8);
26926
26927 if (cal_mode != CAL_GCTRL) {
26928 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26929 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26930 }
26931 }
26932
26933 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26934 NPHY_REV7_RfctrlOverride_cmd_txgain,
26935 phy_a5, (1 << core), 1);
26936
26937 } else {
26938
26939 if (txgains) {
26940 if (txgains->useindex) {
26941 phy_a4 = 15 - ((txgains->index) >> 3);
26942 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26943 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26944 phy_a5 = 0x00f7 | (phy_a4 << 8);
26945
26946 if (CHIPID(pi->sh->chip) ==
26947 BCM47162_CHIP_ID) {
26948 phy_a5 =
26949 0x10f7 | (phy_a4 <<
26950 8);
26951 }
26952 } else
26953 if (NREV_IS(pi->pubpi.phy_rev, 5))
26954 phy_a5 = 0x10f7 | (phy_a4 << 8);
26955 else
26956 phy_a5 = 0x50f7 | (phy_a4 << 8);
26957 } else {
26958 phy_a5 = 0x70f7 | (phy_a4 << 8);
26959 }
26960 wlc_phy_rfctrl_override_nphy(pi,
26961 (0x1 << 13),
26962 phy_a5,
26963 (1 << core), 0);
26964 } else {
26965 wlc_phy_rfctrl_override_nphy(pi,
26966 (0x1 << 13),
26967 0x5bf7,
26968 (1 << core), 0);
26969 }
26970 }
26971
26972 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26973 m[core] = IS40MHZ(pi) ? 45 : 64;
26974 } else {
26975 m[core] = IS40MHZ(pi) ? 75 : 107;
26976 }
26977
26978 m[phy_a7] = 0;
26979 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26980
26981 phy_a2 = 63;
26982
26983 if (cal_mode == CAL_FULL) {
26984 phy_a1 = 25;
26985 phy_a3 = 25;
26986 } else if (cal_mode == CAL_SOFT) {
26987 phy_a1 = 25;
26988 phy_a3 = 25;
26989 } else if (cal_mode == CAL_GCTRL) {
26990 phy_a1 = 63;
26991 phy_a3 = 25;
26992 } else {
26993
26994 phy_a1 = 25;
26995 phy_a3 = 25;
26996 }
26997
26998 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26999 0x29b, (0x1 << 0), (1) << 0);
27000
27001 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
27002 0x29b, (0x1 << 0), (0) << 0);
27003
27004 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27005 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27006 0x2a4, (0x1 << 13), (1) << 13);
27007
27008 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27009 0x2a4, (0x1 << 13), (0) << 13);
27010
27011 write_phy_reg(pi, 0x2a1, 0x20);
27012 write_phy_reg(pi, 0x2a2, 0x60);
27013
27014 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27015 0x2a4, (0xf << 4), (9) << 4);
27016
27017 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27018 0x2a4, (0xf << 8), (9) << 8);
27019
27020 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27021 0x2a4, (0xf << 0), (0x2) << 0);
27022
27023 write_phy_reg(pi, 0x2e5, 0x20);
27024 } else {
27025 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27026 0x2a4, (0x1 << 11), (1) << 11);
27027
27028 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27029 0x2a4, (0x1 << 11), (0) << 11);
27030
27031 write_phy_reg(pi, 0x2a1, 0x80);
27032 write_phy_reg(pi, 0x2a2, 0x600);
27033
27034 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27035 0x2a4, (0x7 << 4), (0) << 4);
27036
27037 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27038 0x2a4, (0x7 << 8), (0) << 8);
27039
27040 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27041 0x2a4, (0x7 << 0), (0x3) << 0);
27042
27043 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
27044
27045 }
27046
27047 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
27048
27049 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
27050
27051 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
27052
27053 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
27054
27055 write_phy_reg(pi, 0x2be, 1);
27056 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
27057
27058 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
27059
27060 wlc_phy_table_write_nphy(pi,
27061 (core ==
27062 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
27063 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
27064 32, &phy_a8);
27065
27066 if (cal_mode != CAL_GCTRL) {
27067 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
27068 }
27069 }
27070}
27071
7cc4a4c0 27072static uint8 wlc_phy_a3_nphy(phy_info_t *pi, uint8 start_gain, uint8 core)
a9533e7e
HP
27073{
27074 int phy_a1;
27075 int phy_a2;
27076 bool phy_a3;
27077 nphy_ipa_txcalgains_t phy_a4;
27078 bool phy_a5 = FALSE;
27079 bool phy_a6 = TRUE;
27080 int32 phy_a7, phy_a8;
27081 uint32 phy_a9;
27082 int phy_a10;
27083 bool phy_a11 = FALSE;
27084 int phy_a12;
27085 uint8 phy_a13 = 0;
27086 uint8 phy_a14;
27087 uint8 *phy_a15 = NULL;
27088
27089 phy_a4.useindex = TRUE;
27090 phy_a12 = start_gain;
27091
27092 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27093
27094 phy_a2 = 20;
27095 phy_a1 = 1;
27096
27097 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27098 if (pi->pubpi.radiorev == 5) {
27099
27100 phy_a15 = pad_gain_codes_used_2057rev5;
27101 phy_a13 = sizeof(pad_gain_codes_used_2057rev5) /
27102 sizeof(pad_gain_codes_used_2057rev5[0]) - 1;
27103
27104 } else if ((pi->pubpi.radiorev == 7)
27105 || (pi->pubpi.radiorev == 8)) {
27106
27107 phy_a15 = pad_gain_codes_used_2057rev7;
27108 phy_a13 = sizeof(pad_gain_codes_used_2057rev7) /
27109 sizeof(pad_gain_codes_used_2057rev7[0]) - 1;
27110
27111 } else {
27112
27113 phy_a15 = pad_all_gain_codes_2057;
27114 phy_a13 = sizeof(pad_all_gain_codes_2057) /
27115 sizeof(pad_all_gain_codes_2057[0]) - 1;
27116 }
27117
27118 } else {
27119
27120 phy_a15 = pga_all_gain_codes_2057;
27121 phy_a13 = sizeof(pga_all_gain_codes_2057) /
27122 sizeof(pga_all_gain_codes_2057[0]) - 1;
27123 }
27124
27125 phy_a14 = 0;
27126
27127 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27128 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27129 phy_a4.gains.pad[core] =
27130 (uint16) phy_a15[phy_a12];
27131 } else {
27132 phy_a4.gains.pga[core] =
27133 (uint16) phy_a15[phy_a12];
27134 }
27135
27136 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27137
27138 wlc_phy_table_read_nphy(pi,
27139 (core ==
27140 PHY_CORE_0 ?
27141 NPHY_TBL_ID_EPSILONTBL0 :
27142 NPHY_TBL_ID_EPSILONTBL1), 1,
27143 63, 32, &phy_a9);
27144
27145 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27146
27147 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27148 (phy_a8 == 4095) || (phy_a8 == -4096));
27149
27150 if (!phy_a6 && (phy_a3 != phy_a5)) {
27151 if (!phy_a3) {
27152 phy_a12 -= (uint8) phy_a1;
27153 }
27154 phy_a11 = TRUE;
27155 break;
27156 }
27157
27158 if (phy_a3)
27159 phy_a12 += (uint8) phy_a1;
27160 else
27161 phy_a12 -= (uint8) phy_a1;
27162
27163 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
27164 if (phy_a12 < phy_a14) {
27165 phy_a12 = phy_a14;
27166 } else {
27167 phy_a12 = phy_a13;
27168 }
27169 phy_a11 = TRUE;
27170 break;
27171 }
27172
27173 phy_a6 = FALSE;
27174 phy_a5 = phy_a3;
27175 }
27176
27177 } else {
27178 phy_a2 = 10;
27179 phy_a1 = 8;
27180 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27181 phy_a4.index = (uint8) phy_a12;
27182 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27183
27184 wlc_phy_table_read_nphy(pi,
27185 (core ==
27186 PHY_CORE_0 ?
27187 NPHY_TBL_ID_EPSILONTBL0 :
27188 NPHY_TBL_ID_EPSILONTBL1), 1,
27189 63, 32, &phy_a9);
27190
27191 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27192
27193 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27194 (phy_a8 == 4095) || (phy_a8 == -4096));
27195
27196 if (!phy_a6 && (phy_a3 != phy_a5)) {
27197 if (!phy_a3) {
27198 phy_a12 -= (uint8) phy_a1;
27199 }
27200 phy_a11 = TRUE;
27201 break;
27202 }
27203
27204 if (phy_a3)
27205 phy_a12 += (uint8) phy_a1;
27206 else
27207 phy_a12 -= (uint8) phy_a1;
27208
27209 if ((phy_a12 < 0) || (phy_a12 > 127)) {
27210 if (phy_a12 < 0) {
27211 phy_a12 = 0;
27212 } else {
27213 phy_a12 = 127;
27214 }
27215 phy_a11 = TRUE;
27216 break;
27217 }
27218
27219 phy_a6 = FALSE;
27220 phy_a5 = phy_a3;
27221 }
27222
27223 }
27224
27225 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27226 return (uint8) phy_a15[phy_a12];
27227 } else {
27228 return (uint8) phy_a12;
27229 }
27230
27231}
27232
7cc4a4c0 27233static void wlc_phy_a4(phy_info_t *pi, bool full_cal)
a9533e7e
HP
27234{
27235 nphy_ipa_txcalgains_t phy_b1[2];
27236 nphy_papd_restore_state phy_b2;
27237 bool phy_b3;
27238 uint8 phy_b4;
27239 uint8 phy_b5;
27240 int16 phy_b6, phy_b7, phy_b8;
27241 uint16 phy_b9;
27242 int16 phy_b10, phy_b11, phy_b12;
27243
27244 phy_b11 = 0;
27245 phy_b12 = 0;
27246 phy_b7 = 0;
27247 phy_b8 = 0;
27248 phy_b6 = 0;
27249
27250 if (pi->nphy_papd_skip == 1)
27251 return;
27252
27253 phy_b3 =
27254 (0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
27255 if (!phy_b3) {
27256 wlapi_suspend_mac_and_wait(pi->sh->physhim);
27257 }
27258
27259 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
27260
27261 pi->nphy_force_papd_cal = FALSE;
27262
27263 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
27264 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
27265 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
27266
27267 pi->nphy_papd_last_cal = pi->sh->now;
27268 pi->nphy_papd_recal_counter++;
27269
27270 if (NORADIO_ENAB(pi->pubpi))
27271 return;
27272
27273 phy_b4 = pi->nphy_txpwrctrl;
27274 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
27275
27276 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
27277 nphy_papd_scaltbl);
27278 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27279 nphy_papd_scaltbl);
27280
27281 phy_b9 = read_phy_reg(pi, 0x01);
27282 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27283
27284 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27285 int32 i, val = 0;
27286 for (i = 0; i < 64; i++) {
27287 wlc_phy_table_write_nphy(pi,
27288 ((phy_b5 ==
27289 PHY_CORE_0) ?
27290 NPHY_TBL_ID_EPSILONTBL0 :
27291 NPHY_TBL_ID_EPSILONTBL1), 1,
27292 i, 32, &val);
27293 }
27294 }
27295
27296 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27297
27298 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27299 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27300 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27301
27302 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27303 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27304
27305 if ((pi->pubpi.radiorev == 3)
27306 || (pi->pubpi.radiorev == 4)
27307 || (pi->pubpi.radiorev == 6)) {
27308
27309 pi->nphy_papd_cal_gain_index[phy_b5] =
27310 23;
27311
27312 } else if (pi->pubpi.radiorev == 5) {
27313
27314 pi->nphy_papd_cal_gain_index[phy_b5] =
27315 0;
27316 pi->nphy_papd_cal_gain_index[phy_b5] =
27317 wlc_phy_a3_nphy(pi,
27318 pi->
27319 nphy_papd_cal_gain_index
27320 [phy_b5], phy_b5);
27321
27322 } else if ((pi->pubpi.radiorev == 7)
27323 || (pi->pubpi.radiorev == 8)) {
27324
27325 pi->nphy_papd_cal_gain_index[phy_b5] =
27326 0;
27327 pi->nphy_papd_cal_gain_index[phy_b5] =
27328 wlc_phy_a3_nphy(pi,
27329 pi->
27330 nphy_papd_cal_gain_index
27331 [phy_b5], phy_b5);
27332
27333 } else {
27334 ASSERT(0);
27335 }
27336
27337 phy_b1[phy_b5].gains.pad[phy_b5] =
27338 pi->nphy_papd_cal_gain_index[phy_b5];
27339
27340 } else {
27341 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27342 pi->nphy_papd_cal_gain_index[phy_b5] =
27343 wlc_phy_a3_nphy(pi,
27344 pi->
27345 nphy_papd_cal_gain_index
27346 [phy_b5], phy_b5);
27347 phy_b1[phy_b5].gains.pga[phy_b5] =
27348 pi->nphy_papd_cal_gain_index[phy_b5];
27349 }
27350 } else {
27351 phy_b1[phy_b5].useindex = TRUE;
27352 phy_b1[phy_b5].index = 16;
27353 phy_b1[phy_b5].index =
27354 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index, phy_b5);
27355
27356 pi->nphy_papd_cal_gain_index[phy_b5] =
27357 15 - ((phy_b1[phy_b5].index) >> 3);
27358 }
27359
27360 switch (pi->nphy_papd_cal_type) {
27361 case 0:
27362 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27363 break;
27364 case 1:
27365 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27366 break;
27367 }
27368
27369 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27370 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27371 }
27372 }
27373
27374 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27375 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27376 }
27377
27378 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27379 int eps_offset = 0;
27380
27381 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27382 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27383 if (pi->pubpi.radiorev == 3) {
27384 eps_offset = -2;
27385 } else if (pi->pubpi.radiorev == 5) {
27386 eps_offset = 3;
27387 } else {
27388 eps_offset = -1;
27389 }
27390 } else {
27391 eps_offset = 2;
27392 }
27393
27394 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27395 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27396 phy_b10 = 0;
27397 if ((pi->pubpi.radiorev == 3) ||
27398 (pi->pubpi.radiorev == 4) ||
27399 (pi->pubpi.radiorev == 6)) {
27400 phy_b12 =
27401 -
27402 (nphy_papd_padgain_dlt_2g_2057rev3n4
27403 [phy_b8]
27404 + 1) / 2;
27405 phy_b10 = -1;
27406 } else if (pi->pubpi.radiorev == 5) {
27407 phy_b12 =
27408 -(nphy_papd_padgain_dlt_2g_2057rev5
27409 [phy_b8]
27410 + 1) / 2;
27411 } else if ((pi->pubpi.radiorev == 7) ||
27412 (pi->pubpi.radiorev == 8)) {
27413 phy_b12 =
27414 -(nphy_papd_padgain_dlt_2g_2057rev7
27415 [phy_b8]
27416 + 1) / 2;
27417 } else {
27418 ASSERT(0);
27419 }
27420 } else {
27421 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27422 if ((pi->pubpi.radiorev == 3) ||
27423 (pi->pubpi.radiorev == 4) ||
27424 (pi->pubpi.radiorev == 6)) {
27425 phy_b11 =
27426 -(nphy_papd_pgagain_dlt_5g_2057
27427 [phy_b7]
27428 + 1) / 2;
27429 } else if ((pi->pubpi.radiorev == 7)
27430 || (pi->pubpi.radiorev == 8)) {
27431 phy_b11 =
27432 -(nphy_papd_pgagain_dlt_5g_2057rev7
27433 [phy_b7]
27434 + 1) / 2;
27435 } else {
27436 ASSERT(0);
27437 }
27438
27439 phy_b10 = -9;
27440 }
27441
27442 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27443 phy_b6 =
27444 -60 + 27 + eps_offset + phy_b12 + phy_b10;
27445 } else {
27446 phy_b6 =
27447 -60 + 27 + eps_offset + phy_b11 + phy_b10;
27448 }
27449
27450 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27451 0x29c, (0x1ff << 7), (phy_b6) << 7);
27452
27453 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27454 } else {
27455 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
27456 eps_offset = 4;
27457 } else {
27458 eps_offset = 2;
27459 }
27460
27461 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27462
27463 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27464 phy_b11 =
27465 -(nphy_papd_pga_gain_delta_ipa_2g[phy_b7] +
27466 1) / 2;
27467 phy_b10 = 0;
27468 } else {
27469 phy_b11 =
27470 -(nphy_papd_pga_gain_delta_ipa_5g[phy_b7] +
27471 1) / 2;
27472 phy_b10 = -9;
27473 }
27474
27475 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27476
27477 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27478 0x29c, (0x1ff << 7), (phy_b6) << 7);
27479
27480 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27481 }
27482 }
27483
27484 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27485 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27486
27487 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27488 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27489
27490 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27491 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27492 0x2a4, (0x1 << 13), (0) << 13);
27493
27494 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27495 0x2a4, (0x1 << 13), (0) << 13);
27496
27497 } else {
27498 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27499 0x2a4, (0x1 << 11), (0) << 11);
27500
27501 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27502 0x2a4, (0x1 << 11), (0) << 11);
27503
27504 }
27505 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27506
27507 write_phy_reg(pi, 0x01, phy_b9);
27508
27509 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27510
27511 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27512 if (phy_b4 == PHY_TPC_HW_OFF) {
27513 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
27514 (int8) (pi->nphy_txpwrindex[0].
27515 index_internal), FALSE);
27516 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
27517 (int8) (pi->nphy_txpwrindex[1].
27518 index_internal), FALSE);
27519 }
27520
27521 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
27522
27523 if (!phy_b3) {
27524 wlapi_enable_mac(pi->sh->physhim);
27525 }
27526}
27527
7cc4a4c0 27528void wlc_phy_txpwr_fixpower_nphy(phy_info_t *pi)
a9533e7e
HP
27529{
27530 uint core;
27531 uint32 txgain;
27532 uint16 rad_gain, dac_gain, bbmult, m1m2;
27533 uint8 txpi[2], chan_freq_range;
27534 int32 rfpwr_offset;
27535
27536 ASSERT(pi->nphy_txpwrctrl == PHY_TPC_HW_OFF);
27537
27538 if (pi->phyhang_avoid)
27539 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
27540
27541 if (pi->sh->sromrev < 4) {
27542 txpi[0] = txpi[1] = 72;
27543 } else {
27544
27545 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27546 switch (chan_freq_range) {
27547 case WL_CHAN_FREQ_RANGE_2G:
27548 txpi[0] = pi->nphy_txpid2g[0];
27549 txpi[1] = pi->nphy_txpid2g[1];
27550 break;
27551 case WL_CHAN_FREQ_RANGE_5GL:
27552 txpi[0] = pi->nphy_txpid5gl[0];
27553 txpi[1] = pi->nphy_txpid5gl[1];
27554 break;
27555 case WL_CHAN_FREQ_RANGE_5GM:
27556 txpi[0] = pi->nphy_txpid5g[0];
27557 txpi[1] = pi->nphy_txpid5g[1];
27558 break;
27559 case WL_CHAN_FREQ_RANGE_5GH:
27560 txpi[0] = pi->nphy_txpid5gh[0];
27561 txpi[1] = pi->nphy_txpid5gh[1];
27562 break;
27563 default:
27564 txpi[0] = txpi[1] = 91;
27565 break;
27566 }
27567 }
27568
27569 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27570 txpi[0] = txpi[1] = 30;
27571 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27572 txpi[0] = txpi[1] = 40;
27573 }
27574
27575 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27576
27577 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27578 (txpi[1] < 40) || (txpi[1] > 100))
27579 txpi[0] = txpi[1] = 91;
27580 }
27581
27582 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27583 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27584 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27585 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27586
27587 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27588 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27589 if (PHY_IPA(pi)) {
27590 uint32 *tx_gaintbl =
27591 wlc_phy_get_ipa_gaintbl_nphy(pi);
27592 txgain = tx_gaintbl[txpi[core]];
27593 } else {
27594 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27595 if NREV_IS
27596 (pi->pubpi.phy_rev, 3) {
27597 txgain =
27598 nphy_tpc_5GHz_txgain_rev3
27599 [txpi[core]];
27600 } else if NREV_IS
27601 (pi->pubpi.phy_rev, 4) {
27602 txgain =
27603 (pi->srom_fem5g.extpagain ==
27604 3) ?
27605 nphy_tpc_5GHz_txgain_HiPwrEPA
27606 [txpi[core]] :
27607 nphy_tpc_5GHz_txgain_rev4
27608 [txpi[core]];
27609 } else {
27610 txgain =
27611 nphy_tpc_5GHz_txgain_rev5
27612 [txpi[core]];
27613 }
27614 } else {
27615 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
27616 (pi->srom_fem2g.extpagain == 3)) {
27617 txgain =
27618 nphy_tpc_txgain_HiPwrEPA
27619 [txpi[core]];
27620 } else {
27621 txgain =
27622 nphy_tpc_txgain_rev3[txpi
27623 [core]];
27624 }
27625 }
27626 }
27627 } else {
27628 txgain = nphy_tpc_txgain[txpi[core]];
27629 }
27630
27631 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27632 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27633 } else {
27634 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27635 }
27636
27637 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27638 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27639 } else {
27640 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27641 }
27642 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27643
27644 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27645 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27646 0xa5), (0x1 << 8), (0x1 << 8));
27647 } else {
27648 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27649 }
27650 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27651
27652 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27653 &rad_gain);
27654
27655 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27656 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27657 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27658 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27659
27660 if (PHY_IPA(pi)) {
27661 wlc_phy_table_read_nphy(pi,
27662 (core ==
27663 PHY_CORE_0 ?
27664 NPHY_TBL_ID_CORE1TXPWRCTL :
27665 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27666 576 + txpi[core], 32,
27667 &rfpwr_offset);
27668
27669 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27670 0x29b, (0x1ff << 4),
27671 ((int16) rfpwr_offset) << 4);
27672
27673 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27674 0x29b, (0x1 << 2), (1) << 2);
27675
27676 }
27677 }
27678
27679 and_phy_reg(pi, 0xbf, (uint16) (~(0x1f << 0)));
27680
27681 if (pi->phyhang_avoid)
27682 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
27683}
27684
27685static void
7cc4a4c0 27686wlc_phy_txpwr_nphy_srom_convert(uint8 *srom_max, uint16 *pwr_offset,
a9533e7e
HP
27687 uint8 tmp_max_pwr, uint8 rate_start,
27688 uint8 rate_end)
27689{
27690 uint8 rate;
27691 uint8 word_num, nibble_num;
27692 uint8 tmp_nibble;
27693
27694 for (rate = rate_start; rate <= rate_end; rate++) {
27695 word_num = (rate - rate_start) >> 2;
27696 nibble_num = (rate - rate_start) & 0x3;
27697 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27698
27699 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27700 }
27701}
27702
27703static void
7cc4a4c0 27704wlc_phy_txpwr_nphy_po_apply(uint8 *srom_max, uint8 pwr_offset,
a9533e7e
HP
27705 uint8 rate_start, uint8 rate_end)
27706{
27707 uint8 rate;
27708
27709 for (rate = rate_start; rate <= rate_end; rate++) {
27710 srom_max[rate] -= 2 * pwr_offset;
27711 }
27712}
27713
27714void
7cc4a4c0 27715wlc_phy_ofdm_to_mcs_powers_nphy(uint8 *power, uint8 rate_mcs_start,
a9533e7e
HP
27716 uint8 rate_mcs_end, uint8 rate_ofdm_start)
27717{
27718 uint8 rate1, rate2;
27719
27720 rate2 = rate_ofdm_start;
27721 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27722 power[rate1] = power[rate2];
27723 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27724 }
27725 power[rate_mcs_end] = power[rate_mcs_end - 1];
27726}
27727
27728void
7cc4a4c0 27729wlc_phy_mcs_to_ofdm_powers_nphy(uint8 *power, uint8 rate_ofdm_start,
a9533e7e
HP
27730 uint8 rate_ofdm_end, uint8 rate_mcs_start)
27731{
27732 uint8 rate1, rate2;
27733
27734 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27735 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27736 power[rate1] = power[rate2];
27737 if (rate1 == rate_ofdm_start)
27738 power[++rate1] = power[rate2];
27739 }
27740}
27741
a2627bc0
JC
27742void BCMNMIATTACHFN(wlc_phy_txpwr_apply_nphy) (phy_info_t *pi)
27743{
a9533e7e
HP
27744 uint rate1, rate2, band_num;
27745 uint8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27746 uint8 tmp_max_pwr = 0;
27747 uint16 pwr_offsets1[2], *pwr_offsets2 = NULL;
27748 uint8 *tx_srom_max_rate = NULL;
27749
27750 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27751 switch (band_num) {
27752 case 0:
27753
27754 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_2g,
27755 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27756
27757 pwr_offsets1[0] = pi->cck2gpo;
27758 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27759 pwr_offsets1,
27760 tmp_max_pwr,
27761 TXP_FIRST_CCK,
27762 TXP_LAST_CCK);
27763
27764 pwr_offsets1[0] = (uint16) (pi->ofdm2gpo & 0xffff);
27765 pwr_offsets1[1] =
27766 (uint16) (pi->ofdm2gpo >> 16) & 0xffff;
27767
27768 pwr_offsets2 = pi->mcs2gpo;
27769
27770 tmp_cddpo = pi->cdd2gpo;
27771 tmp_stbcpo = pi->stbc2gpo;
27772 tmp_bw40po = pi->bw402gpo;
27773
27774 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27775 break;
27776 case 1:
27777
27778 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
27779 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27780
27781 pwr_offsets1[0] = (uint16) (pi->ofdm5gpo & 0xffff);
27782 pwr_offsets1[1] =
27783 (uint16) (pi->ofdm5gpo >> 16) & 0xffff;
27784
27785 pwr_offsets2 = pi->mcs5gpo;
27786
27787 tmp_cddpo = pi->cdd5gpo;
27788 tmp_stbcpo = pi->stbc5gpo;
27789 tmp_bw40po = pi->bw405gpo;
27790
27791 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27792 break;
27793 case 2:
27794
27795 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
27796 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27797
27798 pwr_offsets1[0] = (uint16) (pi->ofdm5glpo & 0xffff);
27799 pwr_offsets1[1] =
27800 (uint16) (pi->ofdm5glpo >> 16) & 0xffff;
27801
27802 pwr_offsets2 = pi->mcs5glpo;
27803
27804 tmp_cddpo = pi->cdd5glpo;
27805 tmp_stbcpo = pi->stbc5glpo;
27806 tmp_bw40po = pi->bw405glpo;
27807
27808 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27809 break;
27810 case 3:
27811
27812 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
27813 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27814
27815 pwr_offsets1[0] = (uint16) (pi->ofdm5ghpo & 0xffff);
27816 pwr_offsets1[1] =
27817 (uint16) (pi->ofdm5ghpo >> 16) & 0xffff;
27818
27819 pwr_offsets2 = pi->mcs5ghpo;
27820
27821 tmp_cddpo = pi->cdd5ghpo;
27822 tmp_stbcpo = pi->stbc5ghpo;
27823 tmp_bw40po = pi->bw405ghpo;
27824
27825 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27826 break;
27827 }
27828
27829 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27830 tmp_max_pwr, TXP_FIRST_OFDM,
27831 TXP_LAST_OFDM);
27832
27833 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27834 TXP_FIRST_MCS_20_SISO,
27835 TXP_LAST_MCS_20_SISO,
27836 TXP_FIRST_OFDM);
27837
27838 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27839 tmp_max_pwr,
27840 TXP_FIRST_MCS_20_CDD,
27841 TXP_LAST_MCS_20_CDD);
27842
27843 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27844
27845 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27846 TXP_FIRST_MCS_20_CDD,
27847 TXP_LAST_MCS_20_CDD);
27848 }
27849
27850 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27851 TXP_FIRST_OFDM_20_CDD,
27852 TXP_LAST_OFDM_20_CDD,
27853 TXP_FIRST_MCS_20_CDD);
27854
27855 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27856 tmp_max_pwr,
27857 TXP_FIRST_MCS_20_STBC,
27858 TXP_LAST_MCS_20_STBC);
27859
27860 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27861
27862 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27863 tmp_stbcpo,
27864 TXP_FIRST_MCS_20_STBC,
27865 TXP_LAST_MCS_20_STBC);
27866 }
27867
27868 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27869 &pwr_offsets2[2], tmp_max_pwr,
27870 TXP_FIRST_MCS_20_SDM,
27871 TXP_LAST_MCS_20_SDM);
27872
27873 if (NPHY_IS_SROM_REINTERPRET) {
27874
27875 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27876 &pwr_offsets2[4],
27877 tmp_max_pwr,
27878 TXP_FIRST_MCS_40_SISO,
27879 TXP_LAST_MCS_40_SISO);
27880
27881 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27882 TXP_FIRST_OFDM_40_SISO,
27883 TXP_LAST_OFDM_40_SISO,
27884 TXP_FIRST_MCS_40_SISO);
27885
27886 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27887 &pwr_offsets2[4],
27888 tmp_max_pwr,
27889 TXP_FIRST_MCS_40_CDD,
27890 TXP_LAST_MCS_40_CDD);
27891
27892 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27893 TXP_FIRST_MCS_40_CDD,
27894 TXP_LAST_MCS_40_CDD);
27895
27896 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27897 TXP_FIRST_OFDM_40_CDD,
27898 TXP_LAST_OFDM_40_CDD,
27899 TXP_FIRST_MCS_40_CDD);
27900
27901 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27902 &pwr_offsets2[4],
27903 tmp_max_pwr,
27904 TXP_FIRST_MCS_40_STBC,
27905 TXP_LAST_MCS_40_STBC);
27906
27907 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27908 tmp_stbcpo,
27909 TXP_FIRST_MCS_40_STBC,
27910 TXP_LAST_MCS_40_STBC);
27911
27912 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27913 &pwr_offsets2[6],
27914 tmp_max_pwr,
27915 TXP_FIRST_MCS_40_SDM,
27916 TXP_LAST_MCS_40_SDM);
27917 } else {
27918
27919 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27920 TXP_FIRST_OFDM; rate1 <= TXP_LAST_MCS_40_SDM;
27921 rate1++, rate2++)
27922 tx_srom_max_rate[rate1] =
27923 tx_srom_max_rate[rate2];
27924 }
27925
27926 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27927 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27928 tmp_bw40po,
27929 TXP_FIRST_OFDM_40_SISO,
27930 TXP_LAST_MCS_40_SDM);
27931 }
27932
27933 tx_srom_max_rate[TXP_MCS_32] =
27934 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27935 }
27936
27937 return;
27938}
27939
a2627bc0
JC
27940static void BCMATTACHFN(wlc_phy_txpwr_srom_read_ppr_nphy) (phy_info_t *pi)
27941{
a9533e7e
HP
27942 uint16 bw40po, cddpo, stbcpo, bwduppo;
27943 uint band_num;
27944
27945 if (pi->sh->sromrev >= 9) {
27946
27947 return;
27948 }
27949
27950 bw40po = (uint16) PHY_GETINTVAR(pi, "bw40po");
27951 pi->bw402gpo = bw40po & 0xf;
27952 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27953 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27954 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27955
27956 cddpo = (uint16) PHY_GETINTVAR(pi, "cddpo");
27957 pi->cdd2gpo = cddpo & 0xf;
27958 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27959 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27960 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27961
27962 stbcpo = (uint16) PHY_GETINTVAR(pi, "stbcpo");
27963 pi->stbc2gpo = stbcpo & 0xf;
27964 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27965 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27966 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27967
27968 bwduppo = (uint16) PHY_GETINTVAR(pi, "bwduppo");
27969 pi->bwdup2gpo = bwduppo & 0xf;
27970 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27971 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27972 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27973
27974 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27975 switch (band_num) {
27976 case 0:
27977
27978 pi->nphy_txpid2g[PHY_CORE_0] =
27979 (uint8) PHY_GETINTVAR(pi, "txpid2ga0");
27980 pi->nphy_txpid2g[PHY_CORE_1] =
27981 (uint8) PHY_GETINTVAR(pi, "txpid2ga1");
27982 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
27983 (int8) PHY_GETINTVAR(pi, "maxp2ga0");
27984 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
27985 (int8) PHY_GETINTVAR(pi, "maxp2ga1");
27986 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
27987 (int16) PHY_GETINTVAR(pi, "pa2gw0a0");
27988 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
27989 (int16) PHY_GETINTVAR(pi, "pa2gw0a1");
27990 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
27991 (int16) PHY_GETINTVAR(pi, "pa2gw1a0");
27992 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
27993 (int16) PHY_GETINTVAR(pi, "pa2gw1a1");
27994 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
27995 (int16) PHY_GETINTVAR(pi, "pa2gw2a0");
27996 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
27997 (int16) PHY_GETINTVAR(pi, "pa2gw2a1");
27998 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
27999 (int8) PHY_GETINTVAR(pi, "itt2ga0");
28000 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
28001 (int8) PHY_GETINTVAR(pi, "itt2ga1");
28002
28003 pi->cck2gpo = (uint16) PHY_GETINTVAR(pi, "cck2gpo");
28004
28005 pi->ofdm2gpo = (uint32) PHY_GETINTVAR(pi, "ofdm2gpo");
28006
28007 pi->mcs2gpo[0] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo0");
28008 pi->mcs2gpo[1] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo1");
28009 pi->mcs2gpo[2] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo2");
28010 pi->mcs2gpo[3] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo3");
28011 pi->mcs2gpo[4] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo4");
28012 pi->mcs2gpo[5] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo5");
28013 pi->mcs2gpo[6] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo6");
28014 pi->mcs2gpo[7] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo7");
28015 break;
28016 case 1:
28017
28018 pi->nphy_txpid5g[PHY_CORE_0] =
28019 (uint8) PHY_GETINTVAR(pi, "txpid5ga0");
28020 pi->nphy_txpid5g[PHY_CORE_1] =
28021 (uint8) PHY_GETINTVAR(pi, "txpid5ga1");
28022 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
28023 (int8) PHY_GETINTVAR(pi, "maxp5ga0");
28024 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
28025 (int8) PHY_GETINTVAR(pi, "maxp5ga1");
28026 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
28027 (int16) PHY_GETINTVAR(pi, "pa5gw0a0");
28028 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
28029 (int16) PHY_GETINTVAR(pi, "pa5gw0a1");
28030 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
28031 (int16) PHY_GETINTVAR(pi, "pa5gw1a0");
28032 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
28033 (int16) PHY_GETINTVAR(pi, "pa5gw1a1");
28034 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
28035 (int16) PHY_GETINTVAR(pi, "pa5gw2a0");
28036 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
28037 (int16) PHY_GETINTVAR(pi, "pa5gw2a1");
28038 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
28039 (int8) PHY_GETINTVAR(pi, "itt5ga0");
28040 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
28041 (int8) PHY_GETINTVAR(pi, "itt5ga1");
28042
28043 pi->ofdm5gpo = (uint32) PHY_GETINTVAR(pi, "ofdm5gpo");
28044
28045 pi->mcs5gpo[0] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo0");
28046 pi->mcs5gpo[1] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo1");
28047 pi->mcs5gpo[2] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo2");
28048 pi->mcs5gpo[3] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo3");
28049 pi->mcs5gpo[4] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo4");
28050 pi->mcs5gpo[5] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo5");
28051 pi->mcs5gpo[6] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo6");
28052 pi->mcs5gpo[7] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo7");
28053 break;
28054 case 2:
28055
28056 pi->nphy_txpid5gl[0] =
28057 (uint8) PHY_GETINTVAR(pi, "txpid5gla0");
28058 pi->nphy_txpid5gl[1] =
28059 (uint8) PHY_GETINTVAR(pi, "txpid5gla1");
28060 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
28061 (int8) PHY_GETINTVAR(pi, "maxp5gla0");
28062 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
28063 (int8) PHY_GETINTVAR(pi, "maxp5gla1");
28064 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
28065 (int16) PHY_GETINTVAR(pi, "pa5glw0a0");
28066 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
28067 (int16) PHY_GETINTVAR(pi, "pa5glw0a1");
28068 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
28069 (int16) PHY_GETINTVAR(pi, "pa5glw1a0");
28070 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
28071 (int16) PHY_GETINTVAR(pi, "pa5glw1a1");
28072 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
28073 (int16) PHY_GETINTVAR(pi, "pa5glw2a0");
28074 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
28075 (int16) PHY_GETINTVAR(pi, "pa5glw2a1");
28076 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
28077 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
28078
28079 pi->ofdm5glpo = (uint32) PHY_GETINTVAR(pi, "ofdm5glpo");
28080
28081 pi->mcs5glpo[0] =
28082 (uint16) PHY_GETINTVAR(pi, "mcs5glpo0");
28083 pi->mcs5glpo[1] =
28084 (uint16) PHY_GETINTVAR(pi, "mcs5glpo1");
28085 pi->mcs5glpo[2] =
28086 (uint16) PHY_GETINTVAR(pi, "mcs5glpo2");
28087 pi->mcs5glpo[3] =
28088 (uint16) PHY_GETINTVAR(pi, "mcs5glpo3");
28089 pi->mcs5glpo[4] =
28090 (uint16) PHY_GETINTVAR(pi, "mcs5glpo4");
28091 pi->mcs5glpo[5] =
28092 (uint16) PHY_GETINTVAR(pi, "mcs5glpo5");
28093 pi->mcs5glpo[6] =
28094 (uint16) PHY_GETINTVAR(pi, "mcs5glpo6");
28095 pi->mcs5glpo[7] =
28096 (uint16) PHY_GETINTVAR(pi, "mcs5glpo7");
28097 break;
28098 case 3:
28099
28100 pi->nphy_txpid5gh[0] =
28101 (uint8) PHY_GETINTVAR(pi, "txpid5gha0");
28102 pi->nphy_txpid5gh[1] =
28103 (uint8) PHY_GETINTVAR(pi, "txpid5gha1");
28104 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
28105 (int8) PHY_GETINTVAR(pi, "maxp5gha0");
28106 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
28107 (int8) PHY_GETINTVAR(pi, "maxp5gha1");
28108 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
28109 (int16) PHY_GETINTVAR(pi, "pa5ghw0a0");
28110 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
28111 (int16) PHY_GETINTVAR(pi, "pa5ghw0a1");
28112 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
28113 (int16) PHY_GETINTVAR(pi, "pa5ghw1a0");
28114 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
28115 (int16) PHY_GETINTVAR(pi, "pa5ghw1a1");
28116 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
28117 (int16) PHY_GETINTVAR(pi, "pa5ghw2a0");
28118 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
28119 (int16) PHY_GETINTVAR(pi, "pa5ghw2a1");
28120 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
28121 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
28122
28123 pi->ofdm5ghpo = (uint32) PHY_GETINTVAR(pi, "ofdm5ghpo");
28124
28125 pi->mcs5ghpo[0] =
28126 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo0");
28127 pi->mcs5ghpo[1] =
28128 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo1");
28129 pi->mcs5ghpo[2] =
28130 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo2");
28131 pi->mcs5ghpo[3] =
28132 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo3");
28133 pi->mcs5ghpo[4] =
28134 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo4");
28135 pi->mcs5ghpo[5] =
28136 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo5");
28137 pi->mcs5ghpo[6] =
28138 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo6");
28139 pi->mcs5ghpo[7] =
28140 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo7");
28141 break;
28142 }
28143 }
28144
28145 wlc_phy_txpwr_apply_nphy(pi);
28146}
28147
a2627bc0
JC
28148static bool BCMATTACHFN(wlc_phy_txpwr_srom_read_nphy) (phy_info_t *pi)
28149{
a9533e7e
HP
28150
28151 pi->antswitch = (uint8) PHY_GETINTVAR(pi, "antswitch");
28152 pi->aa2g = (uint8) PHY_GETINTVAR(pi, "aa2g");
28153 pi->aa5g = (uint8) PHY_GETINTVAR(pi, "aa5g");
28154
28155 pi->srom_fem2g.tssipos = (uint8) PHY_GETINTVAR(pi, "tssipos2g");
28156 pi->srom_fem2g.extpagain = (uint8) PHY_GETINTVAR(pi, "extpagain2g");
28157 pi->srom_fem2g.pdetrange = (uint8) PHY_GETINTVAR(pi, "pdetrange2g");
28158 pi->srom_fem2g.triso = (uint8) PHY_GETINTVAR(pi, "triso2g");
28159 pi->srom_fem2g.antswctrllut = (uint8) PHY_GETINTVAR(pi, "antswctl2g");
28160
28161 pi->srom_fem5g.tssipos = (uint8) PHY_GETINTVAR(pi, "tssipos5g");
28162 pi->srom_fem5g.extpagain = (uint8) PHY_GETINTVAR(pi, "extpagain5g");
28163 pi->srom_fem5g.pdetrange = (uint8) PHY_GETINTVAR(pi, "pdetrange5g");
28164 pi->srom_fem5g.triso = (uint8) PHY_GETINTVAR(pi, "triso5g");
28165 if (PHY_GETVAR(pi, "antswctl5g")) {
28166
28167 pi->srom_fem5g.antswctrllut =
28168 (uint8) PHY_GETINTVAR(pi, "antswctl5g");
28169 } else {
28170
28171 pi->srom_fem5g.antswctrllut =
28172 (uint8) PHY_GETINTVAR(pi, "antswctl2g");
28173 }
28174
28175 wlc_phy_txpower_ipa_upd(pi);
28176
28177 pi->phy_txcore_disable_temp = (int16) PHY_GETINTVAR(pi, "tempthresh");
28178 if (pi->phy_txcore_disable_temp == 0) {
28179 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
28180 }
28181
28182 pi->phy_tempsense_offset = (int8) PHY_GETINTVAR(pi, "tempoffset");
28183 if (pi->phy_tempsense_offset != 0) {
28184 if (pi->phy_tempsense_offset >
28185 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET)) {
28186 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
28187 } else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
e5c4536f 28188 NPHY_SROM_MINTEMPOFFSET)) {
a9533e7e
HP
28189 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
28190 } else {
28191 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
28192 }
28193 }
28194
28195 pi->phy_txcore_enable_temp =
28196 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
28197
28198 pi->phycal_tempdelta = (uint8) PHY_GETINTVAR(pi, "phycal_tempdelta");
28199 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA) {
28200 pi->phycal_tempdelta = 0;
28201 }
28202
28203 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
28204
28205 return TRUE;
28206}
28207
7cc4a4c0 28208void wlc_phy_txpower_recalc_target_nphy(phy_info_t *pi)
a9533e7e
HP
28209{
28210 uint8 tx_pwr_ctrl_state;
28211 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28212 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28213
28214 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28215
28216 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28217 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28218 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28219 OSL_DELAY(1);
28220 }
28221
28222 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28223
28224 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28225 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28226}
28227
7cc4a4c0 28228static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi)
a9533e7e
HP
28229{
28230 uint32 idx;
28231 uint16 iqloCalbuf[7];
28232 uint32 iqcomp, locomp, curr_locomp;
28233 int8 locomp_i, locomp_q;
28234 int8 curr_locomp_i, curr_locomp_q;
28235 uint32 tbl_id, tbl_len, tbl_offset;
28236 uint32 regval[128];
28237
28238 if (pi->phyhang_avoid)
28239 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28240
28241 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
28242
28243 tbl_len = 128;
28244 tbl_offset = 320;
28245 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28246 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28247 iqcomp =
28248 (tbl_id ==
28249 26) ? (((uint32) (iqloCalbuf[0] & 0x3ff)) << 10) |
28250 (iqloCalbuf[1] & 0x3ff)
28251 : (((uint32) (iqloCalbuf[2] & 0x3ff)) << 10) |
28252 (iqloCalbuf[3] & 0x3ff);
28253
28254 for (idx = 0; idx < tbl_len; idx++) {
28255 regval[idx] = iqcomp;
28256 }
28257 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28258 regval);
28259 }
28260
28261 tbl_offset = 448;
28262 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28263 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28264
28265 locomp =
28266 (uint32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
28267 locomp_i = (int8) ((locomp >> 8) & 0xff);
28268 locomp_q = (int8) ((locomp) & 0xff);
28269 for (idx = 0; idx < tbl_len; idx++) {
28270 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28271 curr_locomp_i = locomp_i;
28272 curr_locomp_q = locomp_q;
28273 } else {
28274 curr_locomp_i = (int8) ((locomp_i *
28275 nphy_tpc_loscale[idx] +
28276 128) >> 8);
28277 curr_locomp_q =
28278 (int8) ((locomp_q * nphy_tpc_loscale[idx] +
28279 128) >> 8);
28280 }
28281 curr_locomp = (uint32) ((curr_locomp_i & 0xff) << 8);
28282 curr_locomp |= (uint32) (curr_locomp_q & 0xff);
28283 regval[idx] = curr_locomp;
28284 }
28285 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28286 regval);
28287 }
28288
28289 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
28290
28291 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
28292 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
28293 }
28294
28295 if (pi->phyhang_avoid)
28296 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28297}
28298
7cc4a4c0 28299static void wlc_phy_ipa_internal_tssi_setup_nphy(phy_info_t *pi)
a9533e7e
HP
28300{
28301 uint8 core;
28302
28303 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28304 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28305 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28306 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28307 TX_SSI_MASTER, 0x5);
28308 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28309 TX_SSI_MUX, 0xe);
28310
28311 if (pi->pubpi.radiorev != 5)
28312 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28313 core, TSSIA, 0);
28314
28315 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28316
28317 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28318 core, TSSIG, 0x1);
28319 } else {
28320
28321 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28322 core, TSSIG, 0x31);
28323 }
28324 } else {
28325 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28326 TX_SSI_MASTER, 0x9);
28327 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28328 TX_SSI_MUX, 0xc);
28329 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28330 TSSIG, 0);
28331
28332 if (pi->pubpi.radiorev != 5) {
28333 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28334
28335 WRITE_RADIO_REG3(pi, RADIO_2057,
28336 TX, core,
28337 TSSIA, 0x1);
28338 } else {
28339
28340 WRITE_RADIO_REG3(pi, RADIO_2057,
28341 TX, core,
28342 TSSIA, 0x31);
28343 }
28344 }
28345 }
28346 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28347 0);
28348 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28349 0);
28350 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28351 0x3);
28352 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28353 0x0);
28354 }
28355 } else {
28356 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28357 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28358 0x80);
28359 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28360 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28361
28362 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28363 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28364 0x0);
28365 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28366 0x0);
28367 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28368 0x3);
28369 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28370 0x0);
28371 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28372 0x8);
28373 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28374 0x0);
28375 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28376 0x0);
28377
28378 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28379 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28380 TX_SSI_MASTER, 0x5);
28381
28382 if (pi->pubpi.radiorev != 5)
28383 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28384 core, TSSIA, 0x0);
28385 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
28386
28387 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28388 core, TSSIG, 0x31);
28389 } else {
28390 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28391 core, TSSIG, 0x11);
28392 }
28393 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28394 TX_SSI_MUX, 0xe);
28395 } else {
28396 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28397 TX_SSI_MASTER, 0x9);
28398 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28399 TSSIA, 0x31);
28400 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28401 TSSIG, 0x0);
28402 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28403 TX_SSI_MUX, 0xc);
28404 }
28405 }
28406 }
28407}
28408
7cc4a4c0 28409static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi)
a9533e7e
HP
28410{
28411 int32 rssi_buf[4];
28412 int32 int_val;
28413
28414 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28415
28416 return;
28417
28418 if (PHY_IPA(pi)) {
28419 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28420 }
28421
28422 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28423 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28424 0, 0x3, 0,
28425 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28426 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28427 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28428 }
28429
28430 wlc_phy_stopplayback_nphy(pi);
28431
28432 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, FALSE);
28433
28434 OSL_DELAY(20);
28435 int_val =
28436 wlc_phy_poll_rssi_nphy(pi, (uint8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
28437 1);
28438 wlc_phy_stopplayback_nphy(pi);
28439 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28440
28441 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28442 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28443 0, 0x3, 1,
28444 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28445 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28446 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28447 }
28448
28449 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28450
28451 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28452 (uint8) ((int_val >> 24) & 0xff);
28453 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28454 (uint8) ((int_val >> 24) & 0xff);
28455
28456 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28457 (uint8) ((int_val >> 8) & 0xff);
28458 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28459 (uint8) ((int_val >> 8) & 0xff);
28460 } else {
28461 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28462 (uint8) ((int_val >> 24) & 0xff);
28463
28464 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28465 (uint8) ((int_val >> 8) & 0xff);
28466
28467 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28468 (uint8) ((int_val >> 16) & 0xff);
28469 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28470 (uint8) ((int_val) & 0xff);
28471 }
28472
28473}
28474
7cc4a4c0 28475static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi)
a9533e7e
HP
28476{
28477 uint32 idx;
28478 int16 a1[2], b0[2], b1[2];
28479 int8 target_pwr_qtrdbm[2];
28480 int32 num, den, pwr_est;
28481 uint8 chan_freq_range;
28482 uint8 idle_tssi[2];
28483 uint32 tbl_id, tbl_len, tbl_offset;
28484 uint32 regval[64];
28485 uint8 core;
28486
28487 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28488 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28489 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28490 OSL_DELAY(1);
28491 }
28492
28493 if (pi->phyhang_avoid)
28494 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28495
28496 or_phy_reg(pi, 0x122, (0x1 << 0));
28497
28498 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28499 and_phy_reg(pi, 0x1e7, (uint16) (~(0x1 << 15)));
28500 } else {
28501
28502 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28503 }
28504
28505 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28506 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28507
28508 if (pi->sh->sromrev < 4) {
28509 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28510 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28511 target_pwr_qtrdbm[0] = 13 * 4;
28512 target_pwr_qtrdbm[1] = 13 * 4;
28513 a1[0] = -424;
28514 a1[1] = -424;
28515 b0[0] = 5612;
28516 b0[1] = 5612;
28517 b1[1] = -1393;
28518 b1[0] = -1393;
28519 } else {
28520
28521 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28522 switch (chan_freq_range) {
28523 case WL_CHAN_FREQ_RANGE_2G:
28524 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28525 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28526 target_pwr_qtrdbm[0] =
28527 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28528 target_pwr_qtrdbm[1] =
28529 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28530 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28531 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28532 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28533 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28534 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28535 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28536 break;
28537 case WL_CHAN_FREQ_RANGE_5GL:
28538 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28539 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28540 target_pwr_qtrdbm[0] =
28541 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28542 target_pwr_qtrdbm[1] =
28543 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28544 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28545 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28546 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28547 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28548 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28549 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28550 break;
28551 case WL_CHAN_FREQ_RANGE_5GM:
28552 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28553 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28554 target_pwr_qtrdbm[0] =
28555 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28556 target_pwr_qtrdbm[1] =
28557 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28558 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28559 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28560 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28561 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28562 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28563 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28564 break;
28565 case WL_CHAN_FREQ_RANGE_5GH:
28566 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28567 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28568 target_pwr_qtrdbm[0] =
28569 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28570 target_pwr_qtrdbm[1] =
28571 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28572 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28573 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28574 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28575 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28576 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28577 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28578 break;
28579 default:
28580 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28581 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28582 target_pwr_qtrdbm[0] = 13 * 4;
28583 target_pwr_qtrdbm[1] = 13 * 4;
28584 a1[0] = -424;
28585 a1[1] = -424;
28586 b0[0] = 5612;
28587 b0[1] = 5612;
28588 b1[1] = -1393;
28589 b1[0] = -1393;
28590 break;
28591 }
28592 }
28593
28594 target_pwr_qtrdbm[0] = (int8) pi->tx_power_max;
28595 target_pwr_qtrdbm[1] = (int8) pi->tx_power_max;
28596
28597 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28598 if (pi->srom_fem2g.tssipos) {
28599 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28600 }
28601
28602 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28603 for (core = 0; core <= 1; core++) {
28604 if (PHY_IPA(pi)) {
28605
28606 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28607 WRITE_RADIO_REG3(pi, RADIO_2057,
28608 TX, core,
28609 TX_SSI_MUX,
28610 0xe);
28611 } else {
28612 WRITE_RADIO_REG3(pi, RADIO_2057,
28613 TX, core,
28614 TX_SSI_MUX,
28615 0xc);
28616 }
28617 } else {
28618 }
28619 }
28620 } else {
28621 if (PHY_IPA(pi)) {
28622
28623 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28624 RADIO_2056_TX0,
28625 (CHSPEC_IS5G
28626 (pi->
28627 radio_chanspec)) ? 0xc : 0xe);
28628 write_radio_reg(pi,
28629 RADIO_2056_TX_TX_SSI_MUX |
28630 RADIO_2056_TX1,
28631 (CHSPEC_IS5G
28632 (pi->
28633 radio_chanspec)) ? 0xc : 0xe);
28634 } else {
28635
28636 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28637 RADIO_2056_TX0, 0x11);
28638 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28639 RADIO_2056_TX1, 0x11);
28640 }
28641 }
28642 }
28643
28644 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28645 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28646 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28647 OSL_DELAY(1);
28648 }
28649
28650 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28651 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28652 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28653 } else {
28654 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28655 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28656 }
28657
28658 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28659 mod_phy_reg(pi, 0x222, (0xff << 0),
28660 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28661 } else if (NREV_GT(pi->pubpi.phy_rev, 1)) {
28662 mod_phy_reg(pi, 0x222, (0xff << 0),
28663 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28664 }
28665
28666 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28667 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28668
28669 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28670
28671 write_phy_reg(pi, 0x1e9,
28672 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28673
28674 write_phy_reg(pi, 0x1ea,
28675 (target_pwr_qtrdbm[0] << 0) |
28676 (target_pwr_qtrdbm[1] << 8));
28677
28678 tbl_len = 64;
28679 tbl_offset = 0;
28680 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28681 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28682
28683 for (idx = 0; idx < tbl_len; idx++) {
28684 num =
28685 8 * (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28686 den = 32768 + a1[tbl_id - 26] * idx;
28687 pwr_est = MAX(((4 * num + den / 2) / den), -8);
28688 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28689 if (idx <=
28690 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28691 pwr_est =
28692 MAX(pwr_est,
28693 target_pwr_qtrdbm[tbl_id - 26] +
28694 1);
28695 }
28696 regval[idx] = (uint32) pwr_est;
28697 }
28698 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28699 regval);
28700 }
28701
28702 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28703 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28704 pi->adj_pwr_tbl_nphy);
28705 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28706 pi->adj_pwr_tbl_nphy);
28707
28708 if (pi->phyhang_avoid)
28709 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28710}
28711
7cc4a4c0 28712static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi)
a9533e7e 28713{
90ea2296
JC
28714 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28715 (0x1 << 14) | (0x1 << 13));
a9533e7e
HP
28716}
28717
7cc4a4c0 28718static uint8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, uint8 core)
a9533e7e
HP
28719{
28720 uint16 tmp;
28721 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28722
28723 tmp = (tmp & (0x7f << 8)) >> 8;
28724 return (uint8) tmp;
28725}
28726
28727static void
7cc4a4c0 28728wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, uint8 idx0, uint8 idx1)
a9533e7e
HP
28729{
28730 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28731
28732 if (NREV_GT(pi->pubpi.phy_rev, 1))
28733 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28734}
28735
7cc4a4c0 28736uint16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi)
a9533e7e
HP
28737{
28738 uint16 tmp;
28739 uint16 pwr_idx[2];
28740
28741 if (wlc_phy_txpwr_ison_nphy(pi)) {
28742 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28743 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28744
28745 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28746 } else {
28747 tmp =
28748 ((pi->nphy_txpwrindex[PHY_CORE_0].
28749 index_internal & 0xff) << 8) | (pi->
28750 nphy_txpwrindex
28751 [PHY_CORE_1].
28752 index_internal & 0xff);
28753 }
28754
28755 return tmp;
28756}
28757
7cc4a4c0 28758void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi)
a9533e7e
HP
28759{
28760 if (PHY_IPA(pi)
28761 && (pi->nphy_force_papd_cal
28762 || (wlc_phy_txpwr_ison_nphy(pi)
28763 &&
28764 (((uint32)
28765 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28766 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28767 || ((uint32)
28768 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28769 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4))))) {
28770 wlc_phy_a4(pi, TRUE);
28771 }
28772}
28773
7cc4a4c0 28774void wlc_phy_txpwrctrl_enable_nphy(phy_info_t *pi, uint8 ctrl_type)
a9533e7e
HP
28775{
28776 uint16 mask = 0, val = 0, ishw = 0;
28777 uint8 ctr;
28778 uint core;
28779 uint32 tbl_offset;
28780 uint32 tbl_len;
28781 uint16 regval[84];
28782
28783 if (pi->phyhang_avoid)
28784 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28785
28786 switch (ctrl_type) {
28787 case PHY_TPC_HW_OFF:
28788 case PHY_TPC_HW_ON:
28789 pi->nphy_txpwrctrl = ctrl_type;
28790 break;
28791 default:
28792 break;
28793 }
28794
28795 if (ctrl_type == PHY_TPC_HW_OFF) {
28796 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28797
28798 if (wlc_phy_txpwr_ison_nphy(pi)) {
28799 for (core = 0; core < pi->pubpi.phy_corenum;
28800 core++)
28801 pi->nphy_txpwr_idx[core] =
28802 wlc_phy_txpwr_idx_cur_get_nphy(pi,
28803 (uint8)
28804 core);
28805 }
28806
28807 }
28808
28809 tbl_len = 84;
28810 tbl_offset = 64;
28811 for (ctr = 0; ctr < tbl_len; ctr++) {
28812 regval[ctr] = 0;
28813 }
28814 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28815 regval);
28816 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28817 regval);
28818
28819 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28820
28821 and_phy_reg(pi, 0x1e7,
28822 (uint16) (~((0x1 << 15) |
28823 (0x1 << 14) | (0x1 << 13))));
28824 } else {
28825 and_phy_reg(pi, 0x1e7,
28826 (uint16) (~((0x1 << 14) | (0x1 << 13))));
28827 }
28828
28829 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28830 or_phy_reg(pi, 0x8f, (0x1 << 8));
28831 or_phy_reg(pi, 0xa5, (0x1 << 8));
28832 } else {
28833 or_phy_reg(pi, 0xa5, (0x1 << 14));
28834 }
28835
28836 if (NREV_IS(pi->pubpi.phy_rev, 2))
28837 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28838 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28839 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28840
28841 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28842 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28843 MHF1_IQSWAP_WAR, WLC_BAND_ALL);
28844
28845 } else {
28846
28847 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28848 8, pi->adj_pwr_tbl_nphy);
28849 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28850 8, pi->adj_pwr_tbl_nphy);
28851
28852 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28853 mask = (0x1 << 14) | (0x1 << 13);
28854 val = (ishw << 14) | (ishw << 13);
28855
28856 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28857 mask |= (0x1 << 15);
28858 val |= (ishw << 15);
28859 }
28860
28861 mod_phy_reg(pi, 0x1e7, mask, val);
28862
28863 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28864 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28865 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28866 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28867 } else {
28868 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28869 if (NREV_GT(pi->pubpi.phy_rev, 1))
28870 mod_phy_reg(pi, 0x222,
28871 (0xff << 0), 0x64);
28872 }
28873 }
28874
28875 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28876 if ((pi->nphy_txpwr_idx[0] != 128)
28877 && (pi->nphy_txpwr_idx[1] != 128)) {
28878 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28879 pi->
28880 nphy_txpwr_idx
28881 [0],
28882 pi->
28883 nphy_txpwr_idx
28884 [1]);
28885 }
28886 }
28887
28888 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28889 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28890 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28891 } else {
28892 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28893 }
28894
28895 if (NREV_IS(pi->pubpi.phy_rev, 2))
28896 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28897 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28898 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28899
28900 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28901 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28902 0x0, WLC_BAND_ALL);
28903
28904 if (PHY_IPA(pi)) {
28905 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28906 0x29b, (0x1 << 2), (0) << 2);
28907
28908 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28909 0x29b, (0x1 << 2), (0) << 2);
28910
28911 }
28912
28913 }
28914
28915 if (pi->phyhang_avoid)
28916 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28917}
28918
28919void
7cc4a4c0 28920wlc_phy_txpwr_index_nphy(phy_info_t *pi, uint8 core_mask, int8 txpwrindex,
a9533e7e
HP
28921 bool restore_cals)
28922{
28923 uint8 core, txpwrctl_tbl;
28924 uint16 tx_ind0, iq_ind0, lo_ind0;
28925 uint16 m1m2;
28926 uint32 txgain;
28927 uint16 rad_gain, dac_gain;
28928 uint8 bbmult;
28929 uint32 iqcomp;
28930 uint16 iqcomp_a, iqcomp_b;
28931 uint32 locomp;
28932 uint16 tmpval;
28933 uint8 tx_pwr_ctrl_state;
28934 int32 rfpwr_offset;
28935 uint16 regval[2];
28936
28937 if (pi->phyhang_avoid)
28938 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28939
28940 tx_ind0 = 192;
28941 iq_ind0 = 320;
28942 lo_ind0 = 448;
28943
28944 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28945
28946 if ((core_mask & (1 << core)) == 0) {
28947 continue;
28948 }
28949
28950 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28951
28952 if (txpwrindex < 0) {
28953 if (pi->nphy_txpwrindex[core].index < 0) {
28954
28955 continue;
28956 }
28957
28958 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28959 mod_phy_reg(pi, 0x8f,
28960 (0x1 << 8),
28961 pi->nphy_txpwrindex[core].
28962 AfectrlOverride);
28963 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28964 pi->nphy_txpwrindex[core].
28965 AfectrlOverride);
28966 } else {
28967 mod_phy_reg(pi, 0xa5,
28968 (0x1 << 14),
28969 pi->nphy_txpwrindex[core].
28970 AfectrlOverride);
28971 }
28972
28973 write_phy_reg(pi, (core == PHY_CORE_0) ?
28974 0xaa : 0xab,
28975 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28976
28977 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28978 &pi->nphy_txpwrindex[core].
28979 rad_gain);
28980
28981 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28982 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28983 m1m2 |= ((core == PHY_CORE_0) ?
28984 (pi->nphy_txpwrindex[core].bbmult << 8) :
28985 (pi->nphy_txpwrindex[core].bbmult << 0));
28986 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28987
28988 if (restore_cals) {
28989
28990 wlc_phy_table_write_nphy(pi, 15, 2,
28991 (80 + 2 * core), 16,
28992 (void *)&pi->
28993 nphy_txpwrindex[core].
28994 iqcomp_a);
28995
28996 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28997 16,
28998 &pi->
28999 nphy_txpwrindex[core].
29000 locomp);
29001 wlc_phy_table_write_nphy(pi, 15, 1, (93 + core),
29002 16,
29003 (void *)&pi->
29004 nphy_txpwrindex[core].
29005 locomp);
29006 }
29007
29008 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
29009
29010 pi->nphy_txpwrindex[core].index_internal =
29011 pi->nphy_txpwrindex[core].index_internal_save;
29012 } else {
29013
29014 if (pi->nphy_txpwrindex[core].index < 0) {
29015
29016 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29017 mod_phy_reg(pi, 0x8f,
29018 (0x1 << 8),
29019 pi->nphy_txpwrindex[core].
29020 AfectrlOverride);
29021 mod_phy_reg(pi, 0xa5, (0x1 << 8),
29022 pi->nphy_txpwrindex[core].
29023 AfectrlOverride);
29024 } else {
29025 pi->nphy_txpwrindex[core].
29026 AfectrlOverride =
29027 read_phy_reg(pi, 0xa5);
29028 }
29029
29030 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
29031 read_phy_reg(pi,
29032 (core ==
29033 PHY_CORE_0) ? 0xaa : 0xab);
29034
29035 wlc_phy_table_read_nphy(pi, 7, 1,
29036 (0x110 + core), 16,
29037 &pi->
29038 nphy_txpwrindex[core].
29039 rad_gain);
29040
29041 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
29042 &tmpval);
29043 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
29044 tmpval &= 0xff;
29045 pi->nphy_txpwrindex[core].bbmult =
29046 (uint8) tmpval;
29047
29048 wlc_phy_table_read_nphy(pi, 15, 2,
29049 (80 + 2 * core), 16,
29050 (void *)&pi->
29051 nphy_txpwrindex[core].
29052 iqcomp_a);
29053
29054 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
29055 16,
29056 (void *)&pi->
29057 nphy_txpwrindex[core].
29058 locomp);
29059
29060 pi->nphy_txpwrindex[core].index_internal_save =
29061 pi->nphy_txpwrindex[core].index_internal;
29062 }
29063
29064 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
29065 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
29066
29067 if (NREV_IS(pi->pubpi.phy_rev, 1))
29068 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
29069
29070 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29071 (tx_ind0 + txpwrindex), 32,
29072 &txgain);
29073
29074 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29075 rad_gain =
29076 (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
29077 } else {
29078 rad_gain =
29079 (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
29080 }
29081 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
29082 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
29083
29084 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29085 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
29086 0xa5), (0x1 << 8), (0x1 << 8));
29087 } else {
29088 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
29089 }
29090 write_phy_reg(pi, (core == PHY_CORE_0) ?
29091 0xaa : 0xab, dac_gain);
29092
29093 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
29094 &rad_gain);
29095
29096 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
29097 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
29098 m1m2 |=
29099 ((core ==
29100 PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
29101
29102 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
29103
29104 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29105 (iq_ind0 + txpwrindex), 32,
29106 &iqcomp);
29107 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
29108 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
29109
29110 if (restore_cals) {
29111 regval[0] = (uint16) iqcomp_a;
29112 regval[1] = (uint16) iqcomp_b;
29113 wlc_phy_table_write_nphy(pi, 15, 2,
29114 (80 + 2 * core), 16,
29115 regval);
29116 }
29117
29118 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29119 (lo_ind0 + txpwrindex), 32,
29120 &locomp);
29121 if (restore_cals) {
29122 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29123 16, &locomp);
29124 }
29125
29126 if (NREV_IS(pi->pubpi.phy_rev, 1))
29127 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
29128
29129 if (PHY_IPA(pi)) {
29130 wlc_phy_table_read_nphy(pi,
29131 (core ==
29132 PHY_CORE_0 ?
29133 NPHY_TBL_ID_CORE1TXPWRCTL
29134 :
29135 NPHY_TBL_ID_CORE2TXPWRCTL),
29136 1, 576 + txpwrindex, 32,
29137 &rfpwr_offset);
29138
29139 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29140 0x29b, (0x1ff << 4),
29141 ((int16) rfpwr_offset) << 4);
29142
29143 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29144 0x29b, (0x1 << 2), (1) << 2);
29145
29146 }
29147
29148 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
29149 }
29150
29151 pi->nphy_txpwrindex[core].index = txpwrindex;
29152 }
29153
29154 if (pi->phyhang_avoid)
29155 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
29156}
29157
29158void
7cc4a4c0 29159wlc_phy_txpower_sromlimit_get_nphy(phy_info_t *pi, uint chan, uint8 *max_pwr,
a9533e7e
HP
29160 uint8 txp_rate_idx)
29161{
29162 uint8 chan_freq_range;
29163
29164 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
29165 switch (chan_freq_range) {
29166 case WL_CHAN_FREQ_RANGE_2G:
29167 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29168 break;
29169 case WL_CHAN_FREQ_RANGE_5GM:
29170 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
29171 break;
29172 case WL_CHAN_FREQ_RANGE_5GL:
29173 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
29174 break;
29175 case WL_CHAN_FREQ_RANGE_5GH:
29176 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
29177 break;
29178 default:
29179 ASSERT(0);
29180 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29181 break;
29182 }
29183
29184 return;
29185}
29186
7cc4a4c0 29187void wlc_phy_stay_in_carriersearch_nphy(phy_info_t *pi, bool enable)
a9533e7e
HP
29188{
29189 uint16 clip_off[] = { 0xffff, 0xffff };
29190
29191 ASSERT(0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
29192
29193 if (enable) {
29194 if (pi->nphy_deaf_count == 0) {
29195 pi->classifier_state =
29196 wlc_phy_classifier_nphy(pi, 0, 0);
29197 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
29198 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
29199 wlc_phy_clip_det_nphy(pi, 1, clip_off);
29200 }
29201
29202 pi->nphy_deaf_count++;
29203
29204 wlc_phy_resetcca_nphy(pi);
29205
29206 } else {
29207 ASSERT(pi->nphy_deaf_count > 0);
29208
29209 pi->nphy_deaf_count--;
29210
29211 if (pi->nphy_deaf_count == 0) {
29212 wlc_phy_classifier_nphy(pi, (0x7 << 0),
29213 pi->classifier_state);
29214 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
29215 }
29216 }
29217}
29218
7cc4a4c0 29219void wlc_nphy_deaf_mode(phy_info_t *pi, bool mode)
a9533e7e
HP
29220{
29221 wlapi_suspend_mac_and_wait(pi->sh->physhim);
29222
29223 if (mode) {
29224 if (pi->nphy_deaf_count == 0)
29225 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
29226 } else {
29227 if (pi->nphy_deaf_count > 0)
29228 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
29229 }
29230 wlapi_enable_mac(pi->sh->physhim);
29231}
This page took 1.135685 seconds and 5 git commands to generate.