staging: brcm80211: fix "ERROR: do not use assignment in if condition"
[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 };
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 };
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
16078 uint16 auxadc_vmid[] =
16079 { 0xa2, 0xb4, 0xb4, 0x270 };
16080 uint16 auxadc_gain[] =
16081 { 0x02, 0x02, 0x02, 0x00 };
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;
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 };
16384 int8 *tia_gain_db;
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 };
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 };
16401 uint16 rfseqG_init_gain_rev5_elna[] =
16402 { 0x013f, 0x013f, 0x013f, 0x013f };
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 };
16408 uint16 rfseqA_init_gain_rev4_elna[] =
16409 { 0x314f, 0x314f, 0x314f, 0x314f };
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 };
16970 int8 tia_gainbits[] =
16971 { 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
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 };
17094 int8 lna1A_gain_db_2_rev7[] =
17095 { 11, 17, 22, 25 };
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 };
17105 int8 lna1A_gain_db_2_rev7[] =
17106 { 12, 18, 22, 26 };
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 };
17119 int8 lna1A_gain_db_2_rev7[] =
17120 { 12, 18, 22, 26 };
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->
22846 internal_tx_iqlo_cal_tapoff_intpa_nphy))
22847 {
22848
22849 WRITE_RADIO_REG3(pi, RADIO_2057,
22850 TX, core,
22851 TSSIA, 0x31);
22852 } else {
22853
22854 WRITE_RADIO_REG3(pi, RADIO_2057,
22855 TX, core,
22856 TSSIA, 0x21);
22857 }
22858 }
22859 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22860 TSSI_MISC1, 0x00);
22861 } else {
22862 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22863 TX_SSI_MASTER, 0x06);
22864 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22865 IQCAL_VCM_HG, 0x43);
22866 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22867 IQCAL_IDAC, 0x55);
22868 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22869 TSSI_VCM, 0x00);
22870
22871 if (pi->pubpi.radiorev != 5)
22872 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22873 core, TSSIA, 0x00);
22874 if (pi->use_int_tx_iqlo_cal_nphy) {
22875 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22876 core, TX_SSI_MUX,
22877 0x06);
22878 if (!
22879 (pi->
22880 internal_tx_iqlo_cal_tapoff_intpa_nphy))
22881 {
22882
22883 WRITE_RADIO_REG3(pi, RADIO_2057,
22884 TX, core,
22885 TSSIG, 0x31);
22886 } else {
22887
22888 WRITE_RADIO_REG3(pi, RADIO_2057,
22889 TX, core,
22890 TSSIG, 0x21);
22891 }
22892 }
22893 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22894 TSSI_MISC1, 0x00);
22895 }
22896 }
22897 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22898
22899 for (core = 0; core <= 1; core++) {
22900 jtag_core =
22901 (core ==
22902 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22903
22904 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22905 read_radio_reg(pi,
22906 RADIO_2056_TX_TX_SSI_MASTER |
22907 jtag_core);
22908
22909 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22910 read_radio_reg(pi,
22911 RADIO_2056_TX_IQCAL_VCM_HG |
22912 jtag_core);
22913
22914 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22915 read_radio_reg(pi,
22916 RADIO_2056_TX_IQCAL_IDAC |
22917 jtag_core);
22918
22919 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22920 read_radio_reg(pi,
22921 RADIO_2056_TX_TSSI_VCM | jtag_core);
22922
22923 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22924 read_radio_reg(pi,
22925 RADIO_2056_TX_TX_AMP_DET |
22926 jtag_core);
22927
22928 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22929 read_radio_reg(pi,
22930 RADIO_2056_TX_TX_SSI_MUX |
22931 jtag_core);
22932
22933 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22934 read_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core);
22935
22936 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22937 read_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core);
22938
22939 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22940 read_radio_reg(pi,
22941 RADIO_2056_TX_TSSI_MISC1 |
22942 jtag_core);
22943
22944 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22945 read_radio_reg(pi,
22946 RADIO_2056_TX_TSSI_MISC2 |
22947 jtag_core);
22948
22949 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22950 read_radio_reg(pi,
22951 RADIO_2056_TX_TSSI_MISC3 |
22952 jtag_core);
22953
22954 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22955 write_radio_reg(pi,
22956 RADIO_2056_TX_TX_SSI_MASTER |
22957 jtag_core, 0x0a);
22958 write_radio_reg(pi,
22959 RADIO_2056_TX_IQCAL_VCM_HG |
22960 jtag_core, 0x40);
22961 write_radio_reg(pi,
22962 RADIO_2056_TX_IQCAL_IDAC |
22963 jtag_core, 0x55);
22964 write_radio_reg(pi,
22965 RADIO_2056_TX_TSSI_VCM |
22966 jtag_core, 0x00);
22967 write_radio_reg(pi,
22968 RADIO_2056_TX_TX_AMP_DET |
22969 jtag_core, 0x00);
22970
22971 if (PHY_IPA(pi)) {
22972 write_radio_reg(pi,
22973 RADIO_2056_TX_TX_SSI_MUX
22974 | jtag_core, 0x4);
22975 write_radio_reg(pi,
22976 RADIO_2056_TX_TSSIA |
22977 jtag_core, 0x1);
22978 } else {
22979 write_radio_reg(pi,
22980 RADIO_2056_TX_TX_SSI_MUX
22981 | jtag_core, 0x00);
22982 write_radio_reg(pi,
22983 RADIO_2056_TX_TSSIA |
22984 jtag_core, 0x2f);
22985 }
22986 write_radio_reg(pi,
22987 RADIO_2056_TX_TSSIG | jtag_core,
22988 0x00);
22989 write_radio_reg(pi,
22990 RADIO_2056_TX_TSSI_MISC1 |
22991 jtag_core, 0x00);
22992
22993 write_radio_reg(pi,
22994 RADIO_2056_TX_TSSI_MISC2 |
22995 jtag_core, 0x00);
22996 write_radio_reg(pi,
22997 RADIO_2056_TX_TSSI_MISC3 |
22998 jtag_core, 0x00);
22999 } else {
23000 write_radio_reg(pi,
23001 RADIO_2056_TX_TX_SSI_MASTER |
23002 jtag_core, 0x06);
23003 write_radio_reg(pi,
23004 RADIO_2056_TX_IQCAL_VCM_HG |
23005 jtag_core, 0x40);
23006 write_radio_reg(pi,
23007 RADIO_2056_TX_IQCAL_IDAC |
23008 jtag_core, 0x55);
23009 write_radio_reg(pi,
23010 RADIO_2056_TX_TSSI_VCM |
23011 jtag_core, 0x00);
23012 write_radio_reg(pi,
23013 RADIO_2056_TX_TX_AMP_DET |
23014 jtag_core, 0x00);
23015 write_radio_reg(pi,
23016 RADIO_2056_TX_TSSIA | jtag_core,
23017 0x00);
23018
23019 if (PHY_IPA(pi)) {
23020
23021 write_radio_reg(pi,
23022 RADIO_2056_TX_TX_SSI_MUX
23023 | jtag_core, 0x06);
23024 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23025
23026 write_radio_reg(pi,
23027 RADIO_2056_TX_TSSIG
23028 | jtag_core,
23029 0x11);
23030 } else {
23031
23032 write_radio_reg(pi,
23033 RADIO_2056_TX_TSSIG
23034 | jtag_core,
23035 0x1);
23036 }
23037 } else {
23038 write_radio_reg(pi,
23039 RADIO_2056_TX_TX_SSI_MUX
23040 | jtag_core, 0x00);
23041 write_radio_reg(pi,
23042 RADIO_2056_TX_TSSIG |
23043 jtag_core, 0x20);
23044 }
23045
23046 write_radio_reg(pi,
23047 RADIO_2056_TX_TSSI_MISC1 |
23048 jtag_core, 0x00);
23049 write_radio_reg(pi,
23050 RADIO_2056_TX_TSSI_MISC2 |
23051 jtag_core, 0x00);
23052 write_radio_reg(pi,
23053 RADIO_2056_TX_TSSI_MISC3 |
23054 jtag_core, 0x00);
23055 }
23056 }
23057 } else {
23058
23059 pi->tx_rx_cal_radio_saveregs[0] =
23060 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23061 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23062 pi->tx_rx_cal_radio_saveregs[1] =
23063 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23064 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23065
23066 pi->tx_rx_cal_radio_saveregs[2] =
23067 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23068 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23069 pi->tx_rx_cal_radio_saveregs[3] =
23070 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23071 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23072
23073 pi->tx_rx_cal_radio_saveregs[4] =
23074 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23075 pi->tx_rx_cal_radio_saveregs[5] =
23076 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23077
23078 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23079 0) {
23080
23081 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23082 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23083 } else {
23084
23085 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23086 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23087 }
23088
23089 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23090
23091 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23092 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23093 } else {
23094
23095 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23096 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23097 }
23098 }
23099}
23100
7cc4a4c0 23101static void wlc_phy_txcal_radio_cleanup_nphy(phy_info_t *pi)
a9533e7e
HP
23102{
23103 uint16 jtag_core, core;
23104
23105 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23106 for (core = 0; core <= 1; core++) {
23107
23108 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23109 TX_SSI_MASTER,
23110 pi->
23111 tx_rx_cal_radio_saveregs[(core * 11) +
23112 0]);
23113
23114 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23115 pi->
23116 tx_rx_cal_radio_saveregs[(core * 11) +
23117 1]);
23118
23119 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23120 pi->
23121 tx_rx_cal_radio_saveregs[(core * 11) +
23122 2]);
23123
23124 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23125 pi->
23126 tx_rx_cal_radio_saveregs[(core * 11) +
23127 3]);
23128
23129 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23130 pi->
23131 tx_rx_cal_radio_saveregs[(core * 11) +
23132 5]);
23133
23134 if (pi->pubpi.radiorev != 5)
23135 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23136 TSSIA,
23137 pi->
23138 tx_rx_cal_radio_saveregs[(core
23139 *
23140 11) +
23141 6]);
23142
23143 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23144 pi->
23145 tx_rx_cal_radio_saveregs[(core * 11) +
23146 7]);
23147
23148 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23149 pi->
23150 tx_rx_cal_radio_saveregs[(core * 11) +
23151 8]);
23152 }
23153 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23154 for (core = 0; core <= 1; core++) {
23155 jtag_core =
23156 (core ==
23157 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23158
23159 write_radio_reg(pi,
23160 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23161 pi->
23162 tx_rx_cal_radio_saveregs[(core * 11) +
23163 0]);
23164
23165 write_radio_reg(pi,
23166 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23167 pi->
23168 tx_rx_cal_radio_saveregs[(core * 11) +
23169 1]);
23170
23171 write_radio_reg(pi,
23172 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23173 pi->
23174 tx_rx_cal_radio_saveregs[(core * 11) +
23175 2]);
23176
23177 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23178 pi->
23179 tx_rx_cal_radio_saveregs[(core * 11) +
23180 3]);
23181
23182 write_radio_reg(pi,
23183 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23184 pi->
23185 tx_rx_cal_radio_saveregs[(core * 11) +
23186 4]);
23187
23188 write_radio_reg(pi,
23189 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23190 pi->
23191 tx_rx_cal_radio_saveregs[(core * 11) +
23192 5]);
23193
23194 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23195 pi->
23196 tx_rx_cal_radio_saveregs[(core * 11) +
23197 6]);
23198
23199 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23200 pi->
23201 tx_rx_cal_radio_saveregs[(core * 11) +
23202 7]);
23203
23204 write_radio_reg(pi,
23205 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23206 pi->
23207 tx_rx_cal_radio_saveregs[(core * 11) +
23208 8]);
23209
23210 write_radio_reg(pi,
23211 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23212 pi->
23213 tx_rx_cal_radio_saveregs[(core * 11) +
23214 9]);
23215
23216 write_radio_reg(pi,
23217 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23218 pi->
23219 tx_rx_cal_radio_saveregs[(core * 11) +
23220 10]);
23221 }
23222 } else {
23223
23224 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23225 pi->tx_rx_cal_radio_saveregs[0]);
23226 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23227 pi->tx_rx_cal_radio_saveregs[1]);
23228 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23229 pi->tx_rx_cal_radio_saveregs[2]);
23230 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23231 pi->tx_rx_cal_radio_saveregs[3]);
23232 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23233 pi->tx_rx_cal_radio_saveregs[4]);
23234 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23235 pi->tx_rx_cal_radio_saveregs[5]);
23236 }
23237}
23238
7cc4a4c0 23239static void wlc_phy_txcal_physetup_nphy(phy_info_t *pi)
a9533e7e
HP
23240{
23241 uint16 val, mask;
23242
23243 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23244 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23245 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23246
23247 mask = ((0x3 << 8) | (0x3 << 10));
23248 val = (0x2 << 8);
23249 val |= (0x2 << 10);
23250 mod_phy_reg(pi, 0xa6, mask, val);
23251 mod_phy_reg(pi, 0xa7, mask, val);
23252
23253 val = read_phy_reg(pi, 0x8f);
23254 pi->tx_rx_cal_phy_saveregs[2] = val;
23255 val |= ((0x1 << 9) | (0x1 << 10));
23256 write_phy_reg(pi, 0x8f, val);
23257
23258 val = read_phy_reg(pi, 0xa5);
23259 pi->tx_rx_cal_phy_saveregs[3] = val;
23260 val |= ((0x1 << 9) | (0x1 << 10));
23261 write_phy_reg(pi, 0xa5, val);
23262
23263 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23264 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23265
23266 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23267 &val);
23268 pi->tx_rx_cal_phy_saveregs[5] = val;
23269 val = 0;
23270 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23271 &val);
23272
23273 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23274 &val);
23275 pi->tx_rx_cal_phy_saveregs[6] = val;
23276 val = 0;
23277 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23278 &val);
23279
23280 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23281 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23282
23283 if (!(pi->use_int_tx_iqlo_cal_nphy)) {
23284
23285 wlc_phy_rfctrlintc_override_nphy(pi,
23286 NPHY_RfctrlIntc_override_PA,
23287 1,
23288 RADIO_MIMO_CORESEL_CORE1
23289 |
23290 RADIO_MIMO_CORESEL_CORE2);
23291 } else {
23292
23293 wlc_phy_rfctrlintc_override_nphy(pi,
23294 NPHY_RfctrlIntc_override_PA,
23295 0,
23296 RADIO_MIMO_CORESEL_CORE1
23297 |
23298 RADIO_MIMO_CORESEL_CORE2);
23299 }
23300
23301 wlc_phy_rfctrlintc_override_nphy(pi,
23302 NPHY_RfctrlIntc_override_TRSW,
23303 0x2, RADIO_MIMO_CORESEL_CORE1);
23304 wlc_phy_rfctrlintc_override_nphy(pi,
23305 NPHY_RfctrlIntc_override_TRSW,
23306 0x8, RADIO_MIMO_CORESEL_CORE2);
23307
23308 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23309 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23310 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23311 0x29b, (0x1 << 0), (0) << 0);
23312
23313 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23314 0x29b, (0x1 << 0), (0) << 0);
23315
23316 if (NREV_IS(pi->pubpi.phy_rev, 7)
23317 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23318 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
23319 wlc_phy_read_lpf_bw_ctl_nphy
23320 (pi, 0), 0, 0,
23321 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23322 }
23323
23324 if (pi->use_int_tx_iqlo_cal_nphy
23325 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23326
23327 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23328
23329 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23330 1 << 4);
23331
23332 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23333 mod_radio_reg(pi,
23334 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23335 1, 0);
23336 mod_radio_reg(pi,
23337 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23338 1, 0);
23339 } else {
23340 mod_radio_reg(pi,
23341 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23342 1, 0);
23343 mod_radio_reg(pi,
23344 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23345 1, 0);
23346 }
23347 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23348 wlc_phy_rfctrl_override_nphy_rev7(pi,
23349 (0x1 << 3), 0,
23350 0x3, 0,
23351 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23352 }
23353 }
23354 } else {
23355 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23356 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23357
23358 mask = ((0x3 << 12) | (0x3 << 14));
23359 val = (0x2 << 12);
23360 val |= (0x2 << 14);
23361 mod_phy_reg(pi, 0xa6, mask, val);
23362 mod_phy_reg(pi, 0xa7, mask, val);
23363
23364 val = read_phy_reg(pi, 0xa5);
23365 pi->tx_rx_cal_phy_saveregs[2] = val;
23366 val |= ((0x1 << 12) | (0x1 << 13));
23367 write_phy_reg(pi, 0xa5, val);
23368
23369 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23370 &val);
23371 pi->tx_rx_cal_phy_saveregs[3] = val;
23372 val |= 0x2000;
23373 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23374 &val);
23375
23376 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23377 &val);
23378 pi->tx_rx_cal_phy_saveregs[4] = val;
23379 val |= 0x2000;
23380 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23381 &val);
23382
23383 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23384 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23385 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23386 write_phy_reg(pi, 0x91, val);
23387 write_phy_reg(pi, 0x92, val);
23388 }
23389}
23390
7cc4a4c0 23391static void wlc_phy_txcal_phycleanup_nphy(phy_info_t *pi)
a9533e7e
HP
23392{
23393 uint16 mask;
23394
23395 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23396 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23397 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23398 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23399 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23400 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23401
23402 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23403 &pi->tx_rx_cal_phy_saveregs[5]);
23404 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23405 &pi->tx_rx_cal_phy_saveregs[6]);
23406
23407 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23408 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23409
23410 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23411 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23412
23413 if (NREV_IS(pi->pubpi.phy_rev, 7)
23414 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23415 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
23416 1,
23417 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23418 }
23419
23420 wlc_phy_resetcca_nphy(pi);
23421
23422 if (pi->use_int_tx_iqlo_cal_nphy
23423 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23424
23425 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23426 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23427 mod_radio_reg(pi,
23428 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23429 1, 1);
23430 mod_radio_reg(pi,
23431 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23432 1, 1);
23433 } else {
23434 mod_radio_reg(pi,
23435 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23436 1, 1);
23437 mod_radio_reg(pi,
23438 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23439 1, 1);
23440 }
23441
23442 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23443 0);
23444 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23445 wlc_phy_rfctrl_override_nphy_rev7(pi,
23446 (0x1 << 3), 0,
23447 0x3, 1,
23448 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23449 }
23450 }
23451 } else {
23452 mask = ((0x3 << 12) | (0x3 << 14));
23453 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23454 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23455 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23456
23457 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23458 &pi->tx_rx_cal_phy_saveregs[3]);
23459
23460 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23461 &pi->tx_rx_cal_phy_saveregs[4]);
23462
23463 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23464 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23465 }
23466}
23467
23468#define NPHY_CAL_TSSISAMPS 64
23469#define NPHY_TEST_TONE_FREQ_40MHz 4000
23470#define NPHY_TEST_TONE_FREQ_20MHz 2500
23471
23472void
7cc4a4c0 23473wlc_phy_est_tonepwr_nphy(phy_info_t *pi, int32 *qdBm_pwrbuf, uint8 num_samps)
a9533e7e
HP
23474{
23475 uint16 tssi_reg;
23476 int32 temp, pwrindex[2];
23477 int32 idle_tssi[2];
23478 int32 rssi_buf[4];
23479 int32 tssival[2];
23480 uint8 tssi_type;
23481
23482 tssi_reg = read_phy_reg(pi, 0x1e9);
23483
23484 temp = (int32) (tssi_reg & 0x3f);
23485 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23486
23487 temp = (int32) ((tssi_reg >> 8) & 0x3f);
23488 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23489
23490 tssi_type =
23491 CHSPEC_IS5G(pi->radio_chanspec) ?
23492 (uint8) NPHY_RSSI_SEL_TSSI_5G : (uint8) NPHY_RSSI_SEL_TSSI_2G;
23493
23494 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23495
23496 tssival[0] = rssi_buf[0] / ((int32) num_samps);
23497 tssival[1] = rssi_buf[2] / ((int32) num_samps);
23498
23499 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23500 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23501
23502 if (pwrindex[0] < 0) {
23503 pwrindex[0] = 0;
23504 } else if (pwrindex[0] > 63) {
23505 pwrindex[0] = 63;
23506 }
23507
23508 if (pwrindex[1] < 0) {
23509 pwrindex[1] = 0;
23510 } else if (pwrindex[1] > 63) {
23511 pwrindex[1] = 63;
23512 }
23513
23514 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
23515 (uint32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
23516 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
23517 (uint32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
23518}
23519
7cc4a4c0 23520static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi)
a9533e7e
HP
23521{
23522 uint16 txcal_gain[2];
23523
23524 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23525 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
23526 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], TRUE);
23527 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], TRUE);
23528
23529 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23530 txcal_gain);
23531
23532 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23533 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23534 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23535 } else {
23536 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23537 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23538 }
23539
23540 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23541 txcal_gain);
23542}
23543
7cc4a4c0 23544static void wlc_phy_precal_txgain_nphy(phy_info_t *pi)
a9533e7e
HP
23545{
23546 bool save_bbmult = FALSE;
23547 uint8 txcal_index_2057_rev5n7 = 0;
23548 uint8 txcal_index_2057_rev3n4n6 = 10;
23549
23550 if (pi->use_int_tx_iqlo_cal_nphy) {
23551 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23552 if ((pi->pubpi.radiorev == 3) ||
23553 (pi->pubpi.radiorev == 4) ||
23554 (pi->pubpi.radiorev == 6)) {
23555
23556 pi->nphy_txcal_pwr_idx[0] =
23557 txcal_index_2057_rev3n4n6;
23558 pi->nphy_txcal_pwr_idx[1] =
23559 txcal_index_2057_rev3n4n6;
23560 wlc_phy_txpwr_index_nphy(pi, 3,
23561 txcal_index_2057_rev3n4n6,
23562 FALSE);
23563 } else {
23564
23565 pi->nphy_txcal_pwr_idx[0] =
23566 txcal_index_2057_rev5n7;
23567 pi->nphy_txcal_pwr_idx[1] =
23568 txcal_index_2057_rev5n7;
23569 wlc_phy_txpwr_index_nphy(pi, 3,
23570 txcal_index_2057_rev5n7,
23571 FALSE);
23572 }
23573 save_bbmult = TRUE;
23574
23575 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23576 wlc_phy_cal_txgainctrl_nphy(pi, 11, FALSE);
23577 if (pi->sh->hw_phytxchain != 3) {
23578 pi->nphy_txcal_pwr_idx[1] =
23579 pi->nphy_txcal_pwr_idx[0];
23580 wlc_phy_txpwr_index_nphy(pi, 3,
23581 pi->
23582 nphy_txcal_pwr_idx[0],
23583 TRUE);
23584 save_bbmult = TRUE;
23585 }
23586
23587 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23588 if (PHY_IPA(pi)) {
23589 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23590 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23591 FALSE);
23592 } else {
23593 pi->nphy_txcal_pwr_idx[0] = 80;
23594 pi->nphy_txcal_pwr_idx[1] = 80;
23595 wlc_phy_txpwr_index_nphy(pi, 3, 80,
23596 FALSE);
23597 save_bbmult = TRUE;
23598 }
23599 } else {
23600
23601 wlc_phy_internal_cal_txgain_nphy(pi);
23602 save_bbmult = TRUE;
23603 }
23604
23605 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23606 if (PHY_IPA(pi)) {
23607 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23608 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23609 FALSE);
23610 } else {
23611 wlc_phy_cal_txgainctrl_nphy(pi, 14,
23612 FALSE);
23613 }
23614 } else {
23615
23616 wlc_phy_internal_cal_txgain_nphy(pi);
23617 save_bbmult = TRUE;
23618 }
23619 }
23620
23621 } else {
23622 wlc_phy_cal_txgainctrl_nphy(pi, 10, FALSE);
23623 }
23624
23625 if (save_bbmult) {
23626 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23627 &pi->nphy_txcal_bbmult);
23628 }
23629}
23630
23631void
7cc4a4c0 23632wlc_phy_cal_txgainctrl_nphy(phy_info_t *pi, int32 dBm_targetpower, bool debug)
a9533e7e
HP
23633{
23634 int gainctrl_loopidx;
23635 uint core;
23636 uint16 m0m1, curr_m0m1;
23637 int32 delta_power;
23638 int32 txpwrindex;
23639 int32 qdBm_power[2];
23640 uint16 orig_BBConfig;
23641 uint16 phy_saveregs[4];
23642 uint32 freq_test;
23643 uint16 ampl_test = 250;
23644 uint stepsize;
23645 bool phyhang_avoid_state = FALSE;
23646
23647 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23648
23649 stepsize = 2;
23650 } else {
23651
23652 stepsize = 1;
23653 }
23654
23655 if (CHSPEC_IS40(pi->radio_chanspec)) {
23656 freq_test = 5000;
23657 } else {
23658 freq_test = 2500;
23659 }
23660
23661 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], TRUE);
23662 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], TRUE);
23663
23664 if (pi->phyhang_avoid)
23665 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
23666
23667 phyhang_avoid_state = pi->phyhang_avoid;
23668 pi->phyhang_avoid = FALSE;
23669
23670 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23671 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23672 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23673 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23674 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23675 RADIO_MIMO_CORESEL_CORE1 |
23676 RADIO_MIMO_CORESEL_CORE2);
23677
23678 if (!debug) {
23679 wlc_phy_rfctrlintc_override_nphy(pi,
23680 NPHY_RfctrlIntc_override_TRSW,
23681 0x2, RADIO_MIMO_CORESEL_CORE1);
23682 wlc_phy_rfctrlintc_override_nphy(pi,
23683 NPHY_RfctrlIntc_override_TRSW,
23684 0x8, RADIO_MIMO_CORESEL_CORE2);
23685 } else {
23686 wlc_phy_rfctrlintc_override_nphy(pi,
23687 NPHY_RfctrlIntc_override_TRSW,
23688 0x1, RADIO_MIMO_CORESEL_CORE1);
23689 wlc_phy_rfctrlintc_override_nphy(pi,
23690 NPHY_RfctrlIntc_override_TRSW,
23691 0x7, RADIO_MIMO_CORESEL_CORE2);
23692 }
23693
23694 orig_BBConfig = read_phy_reg(pi, 0x01);
23695 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23696
23697 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23698
23699 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
23700 txpwrindex = (int32) pi->nphy_cal_orig_pwr_idx[core];
23701
23702 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23703 gainctrl_loopidx++) {
23704 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23705 FALSE);
23706
23707 if (core == PHY_CORE_0) {
23708 curr_m0m1 = m0m1 & 0xff00;
23709 } else {
23710 curr_m0m1 = m0m1 & 0x00ff;
23711 }
23712
23713 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23714 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23715
23716 OSL_DELAY(50);
23717
23718 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23719 NPHY_CAL_TSSISAMPS);
23720
23721 pi->nphy_bb_mult_save = 0;
23722 wlc_phy_stopplayback_nphy(pi);
23723
23724 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23725
23726 txpwrindex -= stepsize * delta_power;
23727 if (txpwrindex < 0) {
23728 txpwrindex = 0;
23729 } else if (txpwrindex > 127) {
23730 txpwrindex = 127;
23731 }
23732
23733 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23734 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23735 (pi->srom_fem5g.extpagain == 3)) {
23736 if (txpwrindex < 30) {
23737 txpwrindex = 30;
23738 }
23739 }
23740 } else {
23741 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23742 (pi->srom_fem2g.extpagain == 3)) {
23743 if (txpwrindex < 50) {
23744 txpwrindex = 50;
23745 }
23746 }
23747 }
23748
23749 wlc_phy_txpwr_index_nphy(pi, (1 << core),
23750 (uint8) txpwrindex, TRUE);
23751 }
23752
23753 pi->nphy_txcal_pwr_idx[core] = (uint8) txpwrindex;
23754
23755 if (debug) {
23756 uint16 radio_gain;
23757 uint16 dbg_m0m1;
23758
23759 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23760
23761 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23762 FALSE);
23763
23764 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23765 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23766
23767 OSL_DELAY(100);
23768
23769 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23770 NPHY_CAL_TSSISAMPS);
23771
23772 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23773 &radio_gain);
23774
23775 OSL_DELAY(4000000);
23776 pi->nphy_bb_mult_save = 0;
23777 wlc_phy_stopplayback_nphy(pi);
23778 }
23779 }
23780
23781 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], TRUE);
23782 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], TRUE);
23783
23784 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23785
23786 write_phy_reg(pi, 0x01, orig_BBConfig);
23787
23788 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23789 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23790 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23791 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23792
23793 pi->phyhang_avoid = phyhang_avoid_state;
23794
23795 if (pi->phyhang_avoid)
23796 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
23797}
23798
7cc4a4c0 23799static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, uint16 core)
a9533e7e
HP
23800{
23801 int index;
23802 uint32 bbmult_scale;
23803 uint16 bbmult;
23804 uint16 tblentry;
23805
23806 nphy_txiqcal_ladder_t ladder_lo[] = {
23807 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23808 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23809 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23810 };
23811
23812 nphy_txiqcal_ladder_t ladder_iq[] = {
23813 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23814 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23815 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23816 };
23817
23818 bbmult = (core == PHY_CORE_0) ?
23819 ((pi->nphy_txcal_bbmult >> 8) & 0xff) : (pi->
23820 nphy_txcal_bbmult & 0xff);
23821
23822 for (index = 0; index < 18; index++) {
23823 bbmult_scale = ladder_lo[index].percent * bbmult;
23824 bbmult_scale /= 100;
23825
23826 tblentry =
23827 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23828 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23829 &tblentry);
23830
23831 bbmult_scale = ladder_iq[index].percent * bbmult;
23832 bbmult_scale /= 100;
23833
23834 tblentry =
23835 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23836 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23837 16, &tblentry);
23838 }
23839}
23840
7cc4a4c0 23841void wlc_phy_cal_perical_nphy_run(phy_info_t *pi, uint8 caltype)
a9533e7e
HP
23842{
23843 nphy_txgains_t target_gain;
23844 uint8 tx_pwr_ctrl_state;
23845 bool fullcal = TRUE;
23846 bool restore_tx_gain = FALSE;
23847 bool mphase;
23848
23849 if (NORADIO_ENAB(pi->pubpi)) {
23850 wlc_phy_cal_perical_mphase_reset(pi);
23851 return;
23852 }
23853
23854 if (PHY_MUTED(pi))
23855 return;
23856
23857 ASSERT(pi->nphy_perical != PHY_PERICAL_DISABLE);
23858
23859 if (caltype == PHY_PERICAL_AUTO)
23860 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23861 else if (caltype == PHY_PERICAL_PARTIAL)
23862 fullcal = FALSE;
23863
23864 if (pi->cal_type_override != PHY_PERICAL_AUTO) {
23865 fullcal =
23866 (pi->cal_type_override == PHY_PERICAL_FULL) ? TRUE : FALSE;
23867 }
23868
23869 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23870 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23871 wlc_phy_cal_perical_mphase_restart(pi);
23872 }
23873
23874 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL)) {
23875 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23876 }
23877
23878 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23879
23880 wlc_phyreg_enter((wlc_phy_t *) pi);
23881
23882 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23883 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23884 pi->nphy_cal_orig_pwr_idx[0] =
23885 (uint8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
23886 pi->nphy_cal_orig_pwr_idx[1] =
23887 (uint8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
23888
23889 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23890 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23891 0x110, 16,
23892 pi->nphy_cal_orig_tx_gain);
23893 } else {
23894 pi->nphy_cal_orig_tx_gain[0] = 0;
23895 pi->nphy_cal_orig_tx_gain[1] = 0;
23896 }
23897 }
23898 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23899 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23900 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23901
23902 if (pi->antsel_type == ANTSEL_2x3)
23903 wlc_phy_antsel_init((wlc_phy_t *) pi, TRUE);
23904
23905 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23906 if (!mphase) {
23907
23908 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23909 wlc_phy_precal_txgain_nphy(pi);
23910 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23911 restore_tx_gain = TRUE;
23912
23913 target_gain = pi->nphy_cal_target_gain;
23914 }
23915 if (BCME_OK ==
23916 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal, mphase)) {
23917 if (PHY_IPA(pi))
23918 wlc_phy_a4(pi, TRUE);
23919
23920 wlc_phyreg_exit((wlc_phy_t *) pi);
23921 wlapi_enable_mac(pi->sh->physhim);
23922 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23923 10000);
23924 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23925 wlc_phyreg_enter((wlc_phy_t *) pi);
23926
23927 if (BCME_OK == wlc_phy_cal_rxiq_nphy(pi, target_gain,
23928 (pi->
23929 first_cal_after_assoc
23930 || (pi->
23931 cal_type_override
23932 ==
23933 PHY_PERICAL_FULL))
23934 ? 2 : 0, FALSE)) {
23935 wlc_phy_savecal_nphy(pi);
23936
23937 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23938
23939 pi->nphy_perical_last = pi->sh->now;
23940 }
23941 }
23942 if (caltype != PHY_PERICAL_AUTO) {
23943 wlc_phy_rssi_cal_nphy(pi);
23944 }
23945
23946 if (pi->first_cal_after_assoc
23947 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
23948 pi->first_cal_after_assoc = FALSE;
23949 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23950 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23951 }
23952
23953 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23954 wlc_phy_radio205x_vcocal_nphy(pi);
23955 }
23956 } else {
23957 ASSERT(pi->nphy_perical >= PHY_PERICAL_MPHASE);
23958
23959 switch (pi->mphase_cal_phase_id) {
23960 case MPHASE_CAL_STATE_INIT:
23961 pi->nphy_perical_last = pi->sh->now;
23962 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23963
23964 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23965 wlc_phy_precal_txgain_nphy(pi);
23966 }
23967 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23968 pi->mphase_cal_phase_id++;
23969 break;
23970
23971 case MPHASE_CAL_STATE_TXPHASE0:
23972 case MPHASE_CAL_STATE_TXPHASE1:
23973 case MPHASE_CAL_STATE_TXPHASE2:
23974 case MPHASE_CAL_STATE_TXPHASE3:
23975 case MPHASE_CAL_STATE_TXPHASE4:
23976 case MPHASE_CAL_STATE_TXPHASE5:
23977 if ((pi->radar_percal_mask & 0x10) != 0)
23978 pi->nphy_rxcal_active = TRUE;
23979
23980 if (wlc_phy_cal_txiqlo_nphy
23981 (pi, pi->nphy_cal_target_gain, fullcal,
23982 TRUE) != BCME_OK) {
23983
23984 wlc_phy_cal_perical_mphase_reset(pi);
23985 break;
23986 }
23987
23988 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23989 (pi->mphase_cal_phase_id ==
23990 MPHASE_CAL_STATE_TXPHASE4)) {
23991 pi->mphase_cal_phase_id += 2;
23992 } else {
23993 pi->mphase_cal_phase_id++;
23994 }
23995 break;
23996
23997 case MPHASE_CAL_STATE_PAPDCAL:
23998 if ((pi->radar_percal_mask & 0x2) != 0)
23999 pi->nphy_rxcal_active = TRUE;
24000
24001 if (PHY_IPA(pi)) {
24002 wlc_phy_a4(pi, TRUE);
24003 }
24004 pi->mphase_cal_phase_id++;
24005 break;
24006
24007 case MPHASE_CAL_STATE_RXCAL:
24008 if ((pi->radar_percal_mask & 0x1) != 0)
24009 pi->nphy_rxcal_active = TRUE;
24010 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
24011 (pi->first_cal_after_assoc ||
24012 (pi->cal_type_override ==
24013 PHY_PERICAL_FULL)) ? 2 : 0,
24014 FALSE) == BCME_OK) {
24015 wlc_phy_savecal_nphy(pi);
24016 }
24017
24018 pi->mphase_cal_phase_id++;
24019 break;
24020
24021 case MPHASE_CAL_STATE_RSSICAL:
24022 if ((pi->radar_percal_mask & 0x4) != 0)
24023 pi->nphy_rxcal_active = TRUE;
24024 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
24025 wlc_phy_rssi_cal_nphy(pi);
24026
24027 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24028 wlc_phy_radio205x_vcocal_nphy(pi);
24029 }
24030 restore_tx_gain = TRUE;
24031
24032 if (pi->first_cal_after_assoc) {
24033 pi->mphase_cal_phase_id++;
24034 } else {
24035 wlc_phy_cal_perical_mphase_reset(pi);
24036 }
24037
24038 break;
24039
24040 case MPHASE_CAL_STATE_IDLETSSI:
24041 if ((pi->radar_percal_mask & 0x8) != 0)
24042 pi->nphy_rxcal_active = TRUE;
24043
24044 if (pi->first_cal_after_assoc) {
24045 pi->first_cal_after_assoc = FALSE;
24046 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
24047 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
24048 }
24049
24050 wlc_phy_cal_perical_mphase_reset(pi);
24051 break;
24052
24053 default:
24054 ASSERT(0);
24055 wlc_phy_cal_perical_mphase_reset(pi);
24056 break;
24057 }
24058 }
24059
24060 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24061 if (restore_tx_gain) {
24062 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
24063
24064 wlc_phy_txpwr_index_nphy(pi, 1,
24065 pi->
24066 nphy_cal_orig_pwr_idx
24067 [0], FALSE);
24068 wlc_phy_txpwr_index_nphy(pi, 2,
24069 pi->
24070 nphy_cal_orig_pwr_idx
24071 [1], FALSE);
24072
24073 pi->nphy_txpwrindex[0].index = -1;
24074 pi->nphy_txpwrindex[1].index = -1;
24075 } else {
24076 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
24077 (int8) (pi->
24078 nphy_txpwrindex
24079 [0].
24080 index_internal),
24081 FALSE);
24082 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
24083 (int8) (pi->
24084 nphy_txpwrindex
24085 [1].
24086 index_internal),
24087 FALSE);
24088 }
24089 }
24090 }
24091
24092 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
24093 wlc_phyreg_exit((wlc_phy_t *) pi);
24094 wlapi_enable_mac(pi->sh->physhim);
24095}
24096
24097int
7cc4a4c0 24098wlc_phy_cal_txiqlo_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
24099 bool fullcal, bool mphase)
24100{
24101 uint16 val;
24102 uint16 tbl_buf[11];
24103 uint8 cal_cnt;
24104 uint16 cal_cmd;
24105 uint8 num_cals, max_cal_cmds;
24106 uint16 core_no, cal_type;
24107 uint16 diq_start = 0;
24108 uint8 phy_bw;
24109 uint16 max_val;
24110 uint16 tone_freq;
24111 uint16 gain_save[2];
24112 uint16 cal_gain[2];
24113 nphy_iqcal_params_t cal_params[2];
24114 uint32 tbl_len;
24115 void *tbl_ptr;
24116 bool ladder_updated[2];
24117 uint8 mphase_cal_lastphase = 0;
24118 int bcmerror = BCME_OK;
24119 bool phyhang_avoid_state = FALSE;
24120
24121 uint16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
24122 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
24123 0x1902,
24124 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24125 0x6407
24126 };
24127
24128 uint16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
24129 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24130 0x3200,
24131 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24132 0x6407
24133 };
24134
24135 uint16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
24136 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24137 0x1202,
24138 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24139 0x4707
24140 };
24141
24142 uint16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
24143 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24144 0x2300,
24145 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24146 0x4707
24147 };
24148
24149 uint16 tbl_tx_iqlo_cal_startcoefs[] = {
24150 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24151 0x0000
24152 };
24153
24154 uint16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
24155 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
24156 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
24157 };
24158
24159 uint16 tbl_tx_iqlo_cal_cmds_recal[] = {
24160 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
24161 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
24162 };
24163
24164 uint16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
24165 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24166 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24167 0x0000
24168 };
24169
24170 uint16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
24171 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
24172 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
24173 };
24174
24175 uint16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
24176 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
24177 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
24178 };
24179
24180 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
24181
24182 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24183 phyhang_avoid_state = pi->phyhang_avoid;
24184 pi->phyhang_avoid = FALSE;
24185 }
24186
24187 if (CHSPEC_IS40(pi->radio_chanspec)) {
24188 phy_bw = 40;
24189 } else {
24190 phy_bw = 20;
24191 }
24192
24193 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
24194
24195 for (core_no = 0; core_no <= 1; core_no++) {
24196 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
24197 &cal_params[core_no]);
24198 cal_gain[core_no] = cal_params[core_no].cal_gain;
24199 }
24200
24201 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
24202
24203 wlc_phy_txcal_radio_setup_nphy(pi);
24204
24205 wlc_phy_txcal_physetup_nphy(pi);
24206
24207 ladder_updated[0] = ladder_updated[1] = FALSE;
24208 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
24209 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
24210 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
24211
24212 if (phy_bw == 40) {
24213 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
24214 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_loft_ladder_40);
24215 } else {
24216 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
24217 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_loft_ladder_20);
24218 }
24219 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
24220 16, tbl_ptr);
24221
24222 if (phy_bw == 40) {
24223 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
24224 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
24225 } else {
24226 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
24227 tbl_len = ARRAYSIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
24228 }
24229 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24230 16, tbl_ptr);
24231 }
24232
24233 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24234 write_phy_reg(pi, 0xc2, 0x8ad9);
24235 } else {
24236 write_phy_reg(pi, 0xc2, 0x8aa9);
24237 }
24238
24239 max_val = 250;
24240 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24241
24242 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24243 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, FALSE);
24244 bcmerror = BCME_OK;
24245 } else {
24246 bcmerror =
24247 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0, FALSE);
24248 }
24249
24250 if (bcmerror == BCME_OK) {
24251
24252 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24253 tbl_ptr = pi->mphase_txcal_bestcoeffs;
24254 tbl_len = ARRAYSIZE(pi->mphase_txcal_bestcoeffs);
24255 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24256
24257 tbl_len -= 2;
24258 }
24259 } else {
24260 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24261
24262 tbl_ptr = pi->nphy_txiqlocal_bestc;
24263 tbl_len = ARRAYSIZE(pi->nphy_txiqlocal_bestc);
24264 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24265
24266 tbl_len -= 2;
24267 }
24268 } else {
24269
24270 fullcal = TRUE;
24271
24272 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24273 tbl_ptr =
24274 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24275 tbl_len =
24276 ARRAYSIZE
24277 (tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24278 } else {
24279 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24280 tbl_len =
24281 ARRAYSIZE
24282 (tbl_tx_iqlo_cal_startcoefs);
24283 }
24284 }
24285 }
24286 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24287 16, tbl_ptr);
24288
24289 if (fullcal) {
24290 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24291 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24292 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_fullcal);
24293 } else {
24294 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24295 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24296 ARRAYSIZE(tbl_tx_iqlo_cal_cmds_recal);
24297 }
24298
24299 if (mphase) {
24300 cal_cnt = pi->mphase_txcal_cmdidx;
24301 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds) {
24302 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24303 } else {
24304 num_cals = max_cal_cmds;
24305 }
24306 } else {
24307 cal_cnt = 0;
24308 num_cals = max_cal_cmds;
24309 }
24310
24311 for (; cal_cnt < num_cals; cal_cnt++) {
24312
24313 if (fullcal) {
24314 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24315 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24316 [cal_cnt] :
24317 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24318 } else {
24319 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24320 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[cal_cnt]
24321 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24322 }
24323
24324 core_no = ((cal_cmd & 0x3000) >> 12);
24325 cal_type = ((cal_cmd & 0x0F00) >> 8);
24326
24327 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24328 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24329 PHY_IPA(pi)
24330 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24331 if (!ladder_updated[core_no]) {
24332 wlc_phy_update_txcal_ladder_nphy(pi,
24333 core_no);
24334 ladder_updated[core_no] = TRUE;
24335 }
24336 }
24337
24338 val =
24339 (cal_params[core_no].
24340 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24341 write_phy_reg(pi, 0xc1, val);
24342
24343 if ((cal_type == 1) || (cal_type == 3)
24344 || (cal_type == 4)) {
24345
24346 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24347 1, 69 + core_no, 16,
24348 tbl_buf);
24349
24350 diq_start = tbl_buf[0];
24351
24352 tbl_buf[0] = 0;
24353 wlc_phy_table_write_nphy(pi,
24354 NPHY_TBL_ID_IQLOCAL, 1,
24355 69 + core_no, 16,
24356 tbl_buf);
24357 }
24358
24359 write_phy_reg(pi, 0xc0, cal_cmd);
24360
24361 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24362 20000);
24363 ASSERT((read_phy_reg(pi, 0xc0) & 0xc000) == 0);
24364
24365 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24366 tbl_len, 96, 16, tbl_buf);
24367 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24368 tbl_len, 64, 16, tbl_buf);
24369
24370 if ((cal_type == 1) || (cal_type == 3)
24371 || (cal_type == 4)) {
24372
24373 tbl_buf[0] = diq_start;
24374
24375 }
24376
24377 }
24378
24379 if (mphase) {
24380 pi->mphase_txcal_cmdidx = num_cals;
24381 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24382 pi->mphase_txcal_cmdidx = 0;
24383 }
24384
24385 mphase_cal_lastphase =
24386 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24387 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24388
24389 if (!mphase
24390 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24391
24392 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24393 16, tbl_buf);
24394 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24395 16, tbl_buf);
24396
24397 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24398
24399 tbl_buf[0] = 0;
24400 tbl_buf[1] = 0;
24401 tbl_buf[2] = 0;
24402 tbl_buf[3] = 0;
24403
24404 }
24405 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24406 16, tbl_buf);
24407
24408 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24409 16, tbl_buf);
24410 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24411 16, tbl_buf);
24412
24413 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24414 16, tbl_buf);
24415
24416 tbl_len = ARRAYSIZE(pi->nphy_txiqlocal_bestc);
24417 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24418
24419 tbl_len -= 2;
24420 }
24421 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24422 tbl_len, 96, 16,
24423 pi->nphy_txiqlocal_bestc);
24424
24425 pi->nphy_txiqlocal_coeffsvalid = TRUE;
24426 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24427 } else {
24428 tbl_len = ARRAYSIZE(pi->mphase_txcal_bestcoeffs);
24429 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24430
24431 tbl_len -= 2;
24432 }
24433 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24434 tbl_len, 96, 16,
24435 pi->mphase_txcal_bestcoeffs);
24436 }
24437
24438 wlc_phy_stopplayback_nphy(pi);
24439
24440 write_phy_reg(pi, 0xc2, 0x0000);
24441
24442 }
24443
24444 wlc_phy_txcal_phycleanup_nphy(pi);
24445
24446 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24447 gain_save);
24448
24449 wlc_phy_txcal_radio_cleanup_nphy(pi);
24450
24451 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24452 if (!mphase
24453 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24454 wlc_phy_tx_iq_war_nphy(pi);
24455 }
24456
24457 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24458 pi->phyhang_avoid = phyhang_avoid_state;
24459 }
24460
24461 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
24462
24463 return bcmerror;
24464}
24465
7cc4a4c0 24466static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi)
a9533e7e
HP
24467{
24468 uint16 tbl_buf[7];
24469
24470 ASSERT(NREV_LT(pi->pubpi.phy_rev, 2));
24471
24472 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24473 (pi->nphy_txiqlocal_coeffsvalid)) {
24474 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24475 ARRAYSIZE(tbl_buf), 80, 16, tbl_buf);
24476
24477 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24478 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24479 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24480 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24481
24482 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24483 16, pi->nphy_txiqlocal_bestc);
24484
24485 tbl_buf[0] = 0;
24486 tbl_buf[1] = 0;
24487 tbl_buf[2] = 0;
24488 tbl_buf[3] = 0;
24489 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24490 16, tbl_buf);
24491
24492 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24493 16,
24494 &pi->nphy_txiqlocal_bestc[5]);
24495
24496 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24497 16,
24498 &pi->nphy_txiqlocal_bestc[5]);
24499 }
24500 }
24501}
24502
7cc4a4c0 24503static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi)
a9533e7e
HP
24504{
24505 nphy_iq_comp_t tx_comp;
24506
24507 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, (void *)&tx_comp);
24508
24509 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24510 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24511 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24512 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24513}
24514
24515void
7cc4a4c0 24516wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, uint8 write, nphy_iq_comp_t *pcomp)
a9533e7e
HP
24517{
24518 if (write) {
24519 write_phy_reg(pi, 0x9a, pcomp->a0);
24520 write_phy_reg(pi, 0x9b, pcomp->b0);
24521 write_phy_reg(pi, 0x9c, pcomp->a1);
24522 write_phy_reg(pi, 0x9d, pcomp->b1);
24523 } else {
24524 pcomp->a0 = read_phy_reg(pi, 0x9a);
24525 pcomp->b0 = read_phy_reg(pi, 0x9b);
24526 pcomp->a1 = read_phy_reg(pi, 0x9c);
24527 pcomp->b1 = read_phy_reg(pi, 0x9d);
24528 }
24529}
24530
24531void
7cc4a4c0 24532wlc_phy_rx_iq_est_nphy(phy_info_t *pi, phy_iq_est_t *est, uint16 num_samps,
a9533e7e
HP
24533 uint8 wait_time, uint8 wait_for_crs)
24534{
24535 uint8 core;
24536
24537 write_phy_reg(pi, 0x12b, num_samps);
24538 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24539 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24540 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24541
24542 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24543
24544 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24545 10000);
24546 ASSERT((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0);
24547
24548 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24549 ASSERT(pi->pubpi.phy_corenum <= PHY_CORE_MAX);
24550 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24551 est[core].i_pwr =
24552 (read_phy_reg(pi, NPHY_IqestipwrAccHi(core)) << 16)
24553 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24554 est[core].q_pwr =
24555 (read_phy_reg(pi, NPHY_IqestqpwrAccHi(core)) << 16)
24556 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24557 est[core].iq_prod =
24558 (read_phy_reg(pi, NPHY_IqestIqAccHi(core)) << 16) |
24559 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24560 }
24561 }
24562}
24563
24564#define CAL_RETRY_CNT 2
7cc4a4c0 24565static void wlc_phy_calc_rx_iq_comp_nphy(phy_info_t *pi, uint8 core_mask)
a9533e7e
HP
24566{
24567 uint8 curr_core;
24568 phy_iq_est_t est[PHY_CORE_MAX];
24569 nphy_iq_comp_t old_comp, new_comp;
24570 int32 iq = 0;
24571 uint32 ii = 0, qq = 0;
24572 int16 iq_nbits, qq_nbits, brsh, arsh;
24573 int32 a, b, temp;
24574 int bcmerror = BCME_OK;
24575 uint cal_retry = 0;
24576
24577 if (core_mask == 0x0)
24578 return;
24579
24580 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24581 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24582 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24583
24584 cal_try:
24585 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24586
24587 new_comp = old_comp;
24588
24589 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24590
24591 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24592 iq = est[curr_core].iq_prod;
24593 ii = est[curr_core].i_pwr;
24594 qq = est[curr_core].q_pwr;
24595 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24596 iq = est[curr_core].iq_prod;
24597 ii = est[curr_core].i_pwr;
24598 qq = est[curr_core].q_pwr;
24599 } else {
24600 continue;
24601 }
24602
24603 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24604 bcmerror = BCME_ERROR;
24605 break;
24606 }
24607
24608 iq_nbits = wlc_phy_nbits(iq);
24609 qq_nbits = wlc_phy_nbits(qq);
24610
24611 arsh = 10 - (30 - iq_nbits);
24612 if (arsh >= 0) {
24613 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
24614 temp = (int32) (ii >> arsh);
24615 if (temp == 0) {
24616 bcmerror = BCME_ERROR;
24617 break;
24618 }
24619 } else {
24620 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
24621 temp = (int32) (ii << -arsh);
24622 if (temp == 0) {
24623 bcmerror = BCME_ERROR;
24624 break;
24625 }
24626 }
24627
24628 a /= temp;
24629
24630 brsh = qq_nbits - 31 + 20;
24631 if (brsh >= 0) {
24632 b = (qq << (31 - qq_nbits));
24633 temp = (int32) (ii >> brsh);
24634 if (temp == 0) {
24635 bcmerror = BCME_ERROR;
24636 break;
24637 }
24638 } else {
24639 b = (qq << (31 - qq_nbits));
24640 temp = (int32) (ii << -brsh);
24641 if (temp == 0) {
24642 bcmerror = BCME_ERROR;
24643 break;
24644 }
24645 }
24646 b /= temp;
24647 b -= a * a;
24648 b = (int32) wlc_phy_sqrt_int((uint32) b);
24649 b -= (1 << 10);
24650
24651 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24652 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24653 new_comp.a0 = (int16) a & 0x3ff;
24654 new_comp.b0 = (int16) b & 0x3ff;
24655 } else {
24656
24657 new_comp.a0 = (int16) b & 0x3ff;
24658 new_comp.b0 = (int16) a & 0x3ff;
24659 }
24660 }
24661 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24662 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24663 new_comp.a1 = (int16) a & 0x3ff;
24664 new_comp.b1 = (int16) b & 0x3ff;
24665 } else {
24666
24667 new_comp.a1 = (int16) b & 0x3ff;
24668 new_comp.b1 = (int16) a & 0x3ff;
24669 }
24670 }
24671 }
24672
24673 if (bcmerror != BCME_OK) {
24674 printk("%s: Failed, cnt = %d\n", __func__, cal_retry);
24675
24676 if (cal_retry < CAL_RETRY_CNT) {
24677 cal_retry++;
24678 goto cal_try;
24679 }
24680
24681 new_comp = old_comp;
24682 } else if (cal_retry > 0) {
24683 }
24684
24685 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24686}
24687
7cc4a4c0 24688static void wlc_phy_rxcal_radio_setup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
24689{
24690 uint16 offtune_val;
24691 uint16 bias_g = 0;
24692 uint16 bias_a = 0;
24693
24694 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24695 if (rx_core == PHY_CORE_0) {
24696 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24697 pi->tx_rx_cal_radio_saveregs[0] =
24698 read_radio_reg(pi,
24699 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24700 pi->tx_rx_cal_radio_saveregs[1] =
24701 read_radio_reg(pi,
24702 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24703
24704 write_radio_reg(pi,
24705 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24706 0x3);
24707 write_radio_reg(pi,
24708 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24709 0xaf);
24710
24711 } else {
24712 pi->tx_rx_cal_radio_saveregs[0] =
24713 read_radio_reg(pi,
24714 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24715 pi->tx_rx_cal_radio_saveregs[1] =
24716 read_radio_reg(pi,
24717 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24718
24719 write_radio_reg(pi,
24720 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24721 0x3);
24722 write_radio_reg(pi,
24723 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24724 0x7f);
24725 }
24726
24727 } else {
24728 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24729 pi->tx_rx_cal_radio_saveregs[0] =
24730 read_radio_reg(pi,
24731 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24732 pi->tx_rx_cal_radio_saveregs[1] =
24733 read_radio_reg(pi,
24734 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24735
24736 write_radio_reg(pi,
24737 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24738 0x3);
24739 write_radio_reg(pi,
24740 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24741 0xaf);
24742
24743 } else {
24744 pi->tx_rx_cal_radio_saveregs[0] =
24745 read_radio_reg(pi,
24746 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24747 pi->tx_rx_cal_radio_saveregs[1] =
24748 read_radio_reg(pi,
24749 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24750
24751 write_radio_reg(pi,
24752 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24753 0x3);
24754 write_radio_reg(pi,
24755 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24756 0x7f);
24757 }
24758 }
24759
24760 } else {
24761 if (rx_core == PHY_CORE_0) {
24762 pi->tx_rx_cal_radio_saveregs[0] =
24763 read_radio_reg(pi,
24764 RADIO_2056_TX_RXIQCAL_TXMUX |
24765 RADIO_2056_TX1);
24766 pi->tx_rx_cal_radio_saveregs[1] =
24767 read_radio_reg(pi,
24768 RADIO_2056_RX_RXIQCAL_RXMUX |
24769 RADIO_2056_RX0);
24770
24771 if (pi->pubpi.radiorev >= 5) {
24772 pi->tx_rx_cal_radio_saveregs[2] =
24773 read_radio_reg(pi,
24774 RADIO_2056_RX_RXSPARE2 |
24775 RADIO_2056_RX0);
24776 pi->tx_rx_cal_radio_saveregs[3] =
24777 read_radio_reg(pi,
24778 RADIO_2056_TX_TXSPARE2 |
24779 RADIO_2056_TX1);
24780 }
24781
24782 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24783
24784 if (pi->pubpi.radiorev >= 5) {
24785 pi->tx_rx_cal_radio_saveregs[4] =
24786 read_radio_reg(pi,
24787 RADIO_2056_RX_LNAA_MASTER
24788 | RADIO_2056_RX0);
24789
24790 write_radio_reg(pi,
24791 RADIO_2056_RX_LNAA_MASTER
24792 | RADIO_2056_RX0, 0x40);
24793
24794 write_radio_reg(pi,
24795 RADIO_2056_TX_TXSPARE2 |
24796 RADIO_2056_TX1, bias_a);
24797
24798 write_radio_reg(pi,
24799 RADIO_2056_RX_RXSPARE2 |
24800 RADIO_2056_RX0, bias_a);
24801 } else {
24802 pi->tx_rx_cal_radio_saveregs[4] =
24803 read_radio_reg(pi,
24804 RADIO_2056_RX_LNAA_TUNE
24805 | RADIO_2056_RX0);
24806
24807 offtune_val =
24808 (pi->
24809 tx_rx_cal_radio_saveregs[2] & 0xF0)
24810 >> 8;
24811 offtune_val =
24812 (offtune_val <= 0x7) ? 0xF : 0;
24813
24814 mod_radio_reg(pi,
24815 RADIO_2056_RX_LNAA_TUNE |
24816 RADIO_2056_RX0, 0xF0,
24817 (offtune_val << 8));
24818 }
24819
24820 write_radio_reg(pi,
24821 RADIO_2056_TX_RXIQCAL_TXMUX |
24822 RADIO_2056_TX1, 0x9);
24823 write_radio_reg(pi,
24824 RADIO_2056_RX_RXIQCAL_RXMUX |
24825 RADIO_2056_RX0, 0x9);
24826 } else {
24827 if (pi->pubpi.radiorev >= 5) {
24828 pi->tx_rx_cal_radio_saveregs[4] =
24829 read_radio_reg(pi,
24830 RADIO_2056_RX_LNAG_MASTER
24831 | RADIO_2056_RX0);
24832
24833 write_radio_reg(pi,
24834 RADIO_2056_RX_LNAG_MASTER
24835 | RADIO_2056_RX0, 0x40);
24836
24837 write_radio_reg(pi,
24838 RADIO_2056_TX_TXSPARE2 |
24839 RADIO_2056_TX1, bias_g);
24840
24841 write_radio_reg(pi,
24842 RADIO_2056_RX_RXSPARE2 |
24843 RADIO_2056_RX0, bias_g);
24844
24845 } else {
24846 pi->tx_rx_cal_radio_saveregs[4] =
24847 read_radio_reg(pi,
24848 RADIO_2056_RX_LNAG_TUNE
24849 | RADIO_2056_RX0);
24850
24851 offtune_val =
24852 (pi->
24853 tx_rx_cal_radio_saveregs[2] & 0xF0)
24854 >> 8;
24855 offtune_val =
24856 (offtune_val <= 0x7) ? 0xF : 0;
24857
24858 mod_radio_reg(pi,
24859 RADIO_2056_RX_LNAG_TUNE |
24860 RADIO_2056_RX0, 0xF0,
24861 (offtune_val << 8));
24862 }
24863
24864 write_radio_reg(pi,
24865 RADIO_2056_TX_RXIQCAL_TXMUX |
24866 RADIO_2056_TX1, 0x6);
24867 write_radio_reg(pi,
24868 RADIO_2056_RX_RXIQCAL_RXMUX |
24869 RADIO_2056_RX0, 0x6);
24870 }
24871
24872 } else {
24873 pi->tx_rx_cal_radio_saveregs[0] =
24874 read_radio_reg(pi,
24875 RADIO_2056_TX_RXIQCAL_TXMUX |
24876 RADIO_2056_TX0);
24877 pi->tx_rx_cal_radio_saveregs[1] =
24878 read_radio_reg(pi,
24879 RADIO_2056_RX_RXIQCAL_RXMUX |
24880 RADIO_2056_RX1);
24881
24882 if (pi->pubpi.radiorev >= 5) {
24883 pi->tx_rx_cal_radio_saveregs[2] =
24884 read_radio_reg(pi,
24885 RADIO_2056_RX_RXSPARE2 |
24886 RADIO_2056_RX1);
24887 pi->tx_rx_cal_radio_saveregs[3] =
24888 read_radio_reg(pi,
24889 RADIO_2056_TX_TXSPARE2 |
24890 RADIO_2056_TX0);
24891 }
24892
24893 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24894
24895 if (pi->pubpi.radiorev >= 5) {
24896 pi->tx_rx_cal_radio_saveregs[4] =
24897 read_radio_reg(pi,
24898 RADIO_2056_RX_LNAA_MASTER
24899 | RADIO_2056_RX1);
24900
24901 write_radio_reg(pi,
24902 RADIO_2056_RX_LNAA_MASTER
24903 | RADIO_2056_RX1, 0x40);
24904
24905 write_radio_reg(pi,
24906 RADIO_2056_TX_TXSPARE2 |
24907 RADIO_2056_TX0, bias_a);
24908
24909 write_radio_reg(pi,
24910 RADIO_2056_RX_RXSPARE2 |
24911 RADIO_2056_RX1, bias_a);
24912 } else {
24913 pi->tx_rx_cal_radio_saveregs[4] =
24914 read_radio_reg(pi,
24915 RADIO_2056_RX_LNAA_TUNE
24916 | RADIO_2056_RX1);
24917
24918 offtune_val =
24919 (pi->
24920 tx_rx_cal_radio_saveregs[2] & 0xF0)
24921 >> 8;
24922 offtune_val =
24923 (offtune_val <= 0x7) ? 0xF : 0;
24924
24925 mod_radio_reg(pi,
24926 RADIO_2056_RX_LNAA_TUNE |
24927 RADIO_2056_RX1, 0xF0,
24928 (offtune_val << 8));
24929 }
24930
24931 write_radio_reg(pi,
24932 RADIO_2056_TX_RXIQCAL_TXMUX |
24933 RADIO_2056_TX0, 0x9);
24934 write_radio_reg(pi,
24935 RADIO_2056_RX_RXIQCAL_RXMUX |
24936 RADIO_2056_RX1, 0x9);
24937 } else {
24938 if (pi->pubpi.radiorev >= 5) {
24939 pi->tx_rx_cal_radio_saveregs[4] =
24940 read_radio_reg(pi,
24941 RADIO_2056_RX_LNAG_MASTER
24942 | RADIO_2056_RX1);
24943
24944 write_radio_reg(pi,
24945 RADIO_2056_RX_LNAG_MASTER
24946 | RADIO_2056_RX1, 0x40);
24947
24948 write_radio_reg(pi,
24949 RADIO_2056_TX_TXSPARE2 |
24950 RADIO_2056_TX0, bias_g);
24951
24952 write_radio_reg(pi,
24953 RADIO_2056_RX_RXSPARE2 |
24954 RADIO_2056_RX1, bias_g);
24955 } else {
24956 pi->tx_rx_cal_radio_saveregs[4] =
24957 read_radio_reg(pi,
24958 RADIO_2056_RX_LNAG_TUNE
24959 | RADIO_2056_RX1);
24960
24961 offtune_val =
24962 (pi->
24963 tx_rx_cal_radio_saveregs[2] & 0xF0)
24964 >> 8;
24965 offtune_val =
24966 (offtune_val <= 0x7) ? 0xF : 0;
24967
24968 mod_radio_reg(pi,
24969 RADIO_2056_RX_LNAG_TUNE |
24970 RADIO_2056_RX1, 0xF0,
24971 (offtune_val << 8));
24972 }
24973
24974 write_radio_reg(pi,
24975 RADIO_2056_TX_RXIQCAL_TXMUX |
24976 RADIO_2056_TX0, 0x6);
24977 write_radio_reg(pi,
24978 RADIO_2056_RX_RXIQCAL_RXMUX |
24979 RADIO_2056_RX1, 0x6);
24980 }
24981 }
24982 }
24983}
24984
7cc4a4c0 24985static void wlc_phy_rxcal_radio_cleanup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
24986{
24987 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24988 if (rx_core == PHY_CORE_0) {
24989 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24990 write_radio_reg(pi,
24991 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24992 pi->
24993 tx_rx_cal_radio_saveregs[0]);
24994 write_radio_reg(pi,
24995 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24996 pi->
24997 tx_rx_cal_radio_saveregs[1]);
24998
24999 } else {
25000 write_radio_reg(pi,
25001 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
25002 pi->
25003 tx_rx_cal_radio_saveregs[0]);
25004 write_radio_reg(pi,
25005 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
25006 pi->
25007 tx_rx_cal_radio_saveregs[1]);
25008 }
25009
25010 } else {
25011 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25012 write_radio_reg(pi,
25013 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
25014 pi->
25015 tx_rx_cal_radio_saveregs[0]);
25016 write_radio_reg(pi,
25017 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
25018 pi->
25019 tx_rx_cal_radio_saveregs[1]);
25020
25021 } else {
25022 write_radio_reg(pi,
25023 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
25024 pi->
25025 tx_rx_cal_radio_saveregs[0]);
25026 write_radio_reg(pi,
25027 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
25028 pi->
25029 tx_rx_cal_radio_saveregs[1]);
25030 }
25031 }
25032
25033 } else {
25034 if (rx_core == PHY_CORE_0) {
25035 write_radio_reg(pi,
25036 RADIO_2056_TX_RXIQCAL_TXMUX |
25037 RADIO_2056_TX1,
25038 pi->tx_rx_cal_radio_saveregs[0]);
25039
25040 write_radio_reg(pi,
25041 RADIO_2056_RX_RXIQCAL_RXMUX |
25042 RADIO_2056_RX0,
25043 pi->tx_rx_cal_radio_saveregs[1]);
25044
25045 if (pi->pubpi.radiorev >= 5) {
25046 write_radio_reg(pi,
25047 RADIO_2056_RX_RXSPARE2 |
25048 RADIO_2056_RX0,
25049 pi->
25050 tx_rx_cal_radio_saveregs[2]);
25051
25052 write_radio_reg(pi,
25053 RADIO_2056_TX_TXSPARE2 |
25054 RADIO_2056_TX1,
25055 pi->
25056 tx_rx_cal_radio_saveregs[3]);
25057 }
25058
25059 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25060 if (pi->pubpi.radiorev >= 5) {
25061 write_radio_reg(pi,
25062 RADIO_2056_RX_LNAA_MASTER
25063 | RADIO_2056_RX0,
25064 pi->
25065 tx_rx_cal_radio_saveregs
25066 [4]);
25067 } else {
25068 write_radio_reg(pi,
25069 RADIO_2056_RX_LNAA_TUNE
25070 | RADIO_2056_RX0,
25071 pi->
25072 tx_rx_cal_radio_saveregs
25073 [4]);
25074 }
25075 } else {
25076 if (pi->pubpi.radiorev >= 5) {
25077 write_radio_reg(pi,
25078 RADIO_2056_RX_LNAG_MASTER
25079 | RADIO_2056_RX0,
25080 pi->
25081 tx_rx_cal_radio_saveregs
25082 [4]);
25083 } else {
25084 write_radio_reg(pi,
25085 RADIO_2056_RX_LNAG_TUNE
25086 | RADIO_2056_RX0,
25087 pi->
25088 tx_rx_cal_radio_saveregs
25089 [4]);
25090 }
25091 }
25092
25093 } else {
25094 write_radio_reg(pi,
25095 RADIO_2056_TX_RXIQCAL_TXMUX |
25096 RADIO_2056_TX0,
25097 pi->tx_rx_cal_radio_saveregs[0]);
25098
25099 write_radio_reg(pi,
25100 RADIO_2056_RX_RXIQCAL_RXMUX |
25101 RADIO_2056_RX1,
25102 pi->tx_rx_cal_radio_saveregs[1]);
25103
25104 if (pi->pubpi.radiorev >= 5) {
25105 write_radio_reg(pi,
25106 RADIO_2056_RX_RXSPARE2 |
25107 RADIO_2056_RX1,
25108 pi->
25109 tx_rx_cal_radio_saveregs[2]);
25110
25111 write_radio_reg(pi,
25112 RADIO_2056_TX_TXSPARE2 |
25113 RADIO_2056_TX0,
25114 pi->
25115 tx_rx_cal_radio_saveregs[3]);
25116 }
25117
25118 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25119 if (pi->pubpi.radiorev >= 5) {
25120 write_radio_reg(pi,
25121 RADIO_2056_RX_LNAA_MASTER
25122 | RADIO_2056_RX1,
25123 pi->
25124 tx_rx_cal_radio_saveregs
25125 [4]);
25126 } else {
25127 write_radio_reg(pi,
25128 RADIO_2056_RX_LNAA_TUNE
25129 | RADIO_2056_RX1,
25130 pi->
25131 tx_rx_cal_radio_saveregs
25132 [4]);
25133 }
25134 } else {
25135 if (pi->pubpi.radiorev >= 5) {
25136 write_radio_reg(pi,
25137 RADIO_2056_RX_LNAG_MASTER
25138 | RADIO_2056_RX1,
25139 pi->
25140 tx_rx_cal_radio_saveregs
25141 [4]);
25142 } else {
25143 write_radio_reg(pi,
25144 RADIO_2056_RX_LNAG_TUNE
25145 | RADIO_2056_RX1,
25146 pi->
25147 tx_rx_cal_radio_saveregs
25148 [4]);
25149 }
25150 }
25151 }
25152 }
25153}
25154
7cc4a4c0 25155static void wlc_phy_rxcal_physetup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
25156{
25157 uint8 tx_core;
25158 uint16 rx_antval, tx_antval;
25159
25160 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25161
25162 tx_core = rx_core;
25163 } else {
25164 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
25165 }
25166
25167 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
25168 pi->tx_rx_cal_phy_saveregs[1] =
25169 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
25170 pi->tx_rx_cal_phy_saveregs[2] =
25171 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
25172 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
25173 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
25174 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
25175 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
25176 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
25177 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
25178 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25179 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
25180 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
25181 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
25182 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
25183 }
25184
25185 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
25186 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
25187 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25188 0x29b, (0x1 << 0), (0) << 0);
25189
25190 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25191 0x29b, (0x1 << 0), (0) << 0);
25192
25193 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25194
25195 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25196
25197 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25198
25199 } else {
25200
25201 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25202 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25203 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25204 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25205 }
25206
25207 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25208 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25209 (0x1 << 2), (0x1 << 2));
25210 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25211 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25212 (0x1 << 0) | (0x1 << 1), 0);
25213 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25214 0x8f : 0xa5,
25215 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25216 }
25217
25218 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25219 RADIO_MIMO_CORESEL_CORE1 |
25220 RADIO_MIMO_CORESEL_CORE2);
25221
25222 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25223 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25224 0, 0, 0,
25225 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25226 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25227 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25228 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25229 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25230 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25231 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25232 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25233 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25234 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25235 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25236 if (CHSPEC_IS40(pi->radio_chanspec)) {
25237 wlc_phy_rfctrl_override_nphy_rev7(pi,
25238 (0x1 << 7),
25239 2, 0, 0,
25240 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25241 } else {
25242 wlc_phy_rfctrl_override_nphy_rev7(pi,
25243 (0x1 << 7),
25244 0, 0, 0,
25245 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25246 }
25247 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25248 0, 0, 0,
25249 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25250 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25251 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25252 } else {
25253 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25254 }
25255
25256 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25257
25258 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25259
25260 wlc_phy_rfctrlintc_override_nphy(pi,
25261 NPHY_RfctrlIntc_override_TRSW,
25262 0x1, rx_core + 1);
25263 } else {
25264
25265 if (rx_core == PHY_CORE_0) {
25266 rx_antval = 0x1;
25267 tx_antval = 0x8;
25268 } else {
25269 rx_antval = 0x4;
25270 tx_antval = 0x2;
25271 }
25272
25273 wlc_phy_rfctrlintc_override_nphy(pi,
25274 NPHY_RfctrlIntc_override_TRSW,
25275 rx_antval, rx_core + 1);
25276 wlc_phy_rfctrlintc_override_nphy(pi,
25277 NPHY_RfctrlIntc_override_TRSW,
25278 tx_antval, tx_core + 1);
25279 }
25280}
25281
7cc4a4c0 25282static void wlc_phy_rxcal_phycleanup_nphy(phy_info_t *pi, uint8 rx_core)
a9533e7e
HP
25283{
25284
25285 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25286 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25287 pi->tx_rx_cal_phy_saveregs[1]);
25288 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25289 pi->tx_rx_cal_phy_saveregs[2]);
25290 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25291 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25292
25293 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25294 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25295 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25296 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25297 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25298 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25299 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25300 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25301 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25302 }
25303
25304 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25305 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25306}
25307
25308static void
7cc4a4c0
JC
25309wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, uint8 rx_core,
25310 uint16 *rxgain, uint8 cal_type)
a9533e7e
HP
25311{
25312
25313 uint16 num_samps;
25314 phy_iq_est_t est[PHY_CORE_MAX];
25315 uint8 tx_core;
25316 nphy_iq_comp_t save_comp, zero_comp;
25317 uint32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0, thresh_pwr =
25318 10000;
25319 int16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
25320 bool gainctrl_done = FALSE;
25321 uint8 mix_tia_gain = 3;
25322 int8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25323 int8 curr_gaintbl_index = 3;
25324 uint8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
25325 nphy_ipa_txrxgain_t *nphy_rxcal_gaintbl;
25326 uint16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
25327 int16 fine_gain_idx;
25328 int8 txpwrindex;
25329 uint16 nphy_rxcal_txgain[2];
25330
25331 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25332
25333 tx_core = rx_core;
25334 } else {
25335 tx_core = 1 - rx_core;
25336 }
25337
25338 num_samps = 1024;
25339 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25340
25341 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25342 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25343 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25344
25345 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25346 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25347 mix_tia_gain = 3;
25348 } else if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25349 mix_tia_gain = 4;
25350 } else {
25351 mix_tia_gain = 6;
25352 }
25353 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25354 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25355 } else {
25356 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25357 }
25358 } else {
25359 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25360 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25361 } else {
25362 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25363 }
25364 }
25365
25366 do {
25367
25368 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25369 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25370 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25371 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25372 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25373 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25374 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25375
25376 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25377 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25378 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25379 ((lpf_biq1 << 12) |
25380 (lpf_biq0 << 8) |
25381 (mix_tia_gain <<
25382 4) | (lna2 << 2)
25383 | lna1), 0x3, 0);
25384 } else {
25385 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25386 ((hpvga << 12) |
25387 (lpf_biq1 << 10) |
25388 (lpf_biq0 << 8) |
25389 (mix_tia_gain << 4) |
25390 (lna2 << 2) | lna1), 0x3,
25391 0);
25392 }
25393
25394 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25395
25396 if (txpwrindex == -1) {
25397 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25398 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25399 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25400 2, 0x110, 16,
25401 nphy_rxcal_txgain);
25402 } else {
25403 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
25404 FALSE);
25405 }
25406
25407 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25408 NPHY_RXCAL_TONEFREQ_40MHz :
25409 NPHY_RXCAL_TONEFREQ_20MHz,
25410 NPHY_RXCAL_TONEAMP, 0, cal_type, FALSE);
25411
25412 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25413 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25414 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25415 curr_pwr = i_pwr + q_pwr;
25416
25417 switch (gainctrl_dirn) {
25418 case NPHY_RXCAL_GAIN_INIT:
25419 if (curr_pwr > thresh_pwr) {
25420 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25421 prev_gaintbl_index = curr_gaintbl_index;
25422 curr_gaintbl_index--;
25423 } else {
25424 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25425 prev_gaintbl_index = curr_gaintbl_index;
25426 curr_gaintbl_index++;
25427 }
25428 break;
25429
25430 case NPHY_RXCAL_GAIN_UP:
25431 if (curr_pwr > thresh_pwr) {
25432 gainctrl_done = TRUE;
25433 optim_pwr = prev_pwr;
25434 optim_gaintbl_index = prev_gaintbl_index;
25435 } else {
25436 prev_gaintbl_index = curr_gaintbl_index;
25437 curr_gaintbl_index++;
25438 }
25439 break;
25440
25441 case NPHY_RXCAL_GAIN_DOWN:
25442 if (curr_pwr > thresh_pwr) {
25443 prev_gaintbl_index = curr_gaintbl_index;
25444 curr_gaintbl_index--;
25445 } else {
25446 gainctrl_done = TRUE;
25447 optim_pwr = curr_pwr;
25448 optim_gaintbl_index = curr_gaintbl_index;
25449 }
25450 break;
25451
25452 default:
25453 ASSERT(0);
25454 }
25455
25456 if ((curr_gaintbl_index < 0) ||
25457 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
25458 gainctrl_done = TRUE;
25459 optim_pwr = curr_pwr;
25460 optim_gaintbl_index = prev_gaintbl_index;
25461 } else {
25462 prev_pwr = curr_pwr;
25463 }
25464
25465 wlc_phy_stopplayback_nphy(pi);
25466 } while (!gainctrl_done);
25467
25468 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25469 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25470 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25471 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25472 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25473 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25474
25475 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25476 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25477
25478 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25479 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25480
25481 if (fine_gain_idx + (int)lpf_biq0 > 10) {
25482 lpf_biq1 = 10 - lpf_biq0;
25483 } else {
25484 lpf_biq1 = (uint16) MAX(fine_gain_idx, 0);
25485 }
25486 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25487 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25488 ((lpf_biq1 << 12) |
25489 (lpf_biq0 << 8) |
25490 (mix_tia_gain << 4) |
25491 (lna2 << 2) | lna1), 0x3,
25492 0);
25493 } else {
25494 hpvga = (uint16) MAX(MIN(((int)hpvga) + delta_pwr, 10), 0);
25495 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25496 ((hpvga << 12) | (lpf_biq1 << 10) |
25497 (lpf_biq0 << 8) | (mix_tia_gain <<
25498 4) | (lna2 <<
25499 2) |
25500 lna1), 0x3, 0);
25501
25502 }
25503
25504 if (rxgain != NULL) {
25505 *rxgain++ = lna1;
25506 *rxgain++ = lna2;
25507 *rxgain++ = mix_tia_gain;
25508 *rxgain++ = lpf_biq0;
25509 *rxgain++ = lpf_biq1;
25510 *rxgain = hpvga;
25511 }
25512
25513 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25514}
25515
25516static void
7cc4a4c0 25517wlc_phy_rxcal_gainctrl_nphy(phy_info_t *pi, uint8 rx_core, uint16 *rxgain,
a9533e7e
HP
25518 uint8 cal_type)
25519{
25520 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25521}
25522
25523static uint8
7cc4a4c0 25524wlc_phy_rc_sweep_nphy(phy_info_t *pi, uint8 core_idx, uint8 loopback_type)
a9533e7e
HP
25525{
25526 uint32 target_bws[2] = { 9500, 21000 };
25527 uint32 ref_tones[2] = { 3000, 6000 };
25528 uint32 target_bw, ref_tone;
25529
25530 uint32 target_pwr_ratios[2] = { 28606, 18468 };
25531 uint32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
25532
25533 uint16 start_rccal_ovr_val = 128;
25534 uint16 txlpf_rccal_lpc_ovr_val = 128;
25535 uint16 rxlpf_rccal_hpc_ovr_val = 159;
25536
25537 uint16 orig_txlpf_rccal_lpc_ovr_val;
25538 uint16 orig_rxlpf_rccal_hpc_ovr_val;
25539 uint16 radio_addr_offset_rx;
25540 uint16 radio_addr_offset_tx;
25541 uint16 orig_dcBypass;
25542 uint16 orig_RxStrnFilt40Num[6];
25543 uint16 orig_RxStrnFilt40Den[4];
25544 uint16 orig_rfctrloverride[2];
25545 uint16 orig_rfctrlauxreg[2];
25546 uint16 orig_rfctrlrssiothers;
25547 uint16 tx_lpf_bw = 4;
25548
25549 uint16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25550 uint16 lpf_hpc = 7, hpvga_hpc = 7;
25551
25552 int8 rccal_stepsize;
25553 uint16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
25554 uint32 ref_iq_vals = 0, target_iq_vals = 0;
25555 uint16 num_samps, log_num_samps = 10;
25556 phy_iq_est_t est[PHY_CORE_MAX];
25557
25558 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25559 return 0;
25560 }
25561
25562 num_samps = (1 << log_num_samps);
25563
25564 if (CHSPEC_IS40(pi->radio_chanspec)) {
25565 target_bw = target_bws[1];
25566 target_pwr_ratio = target_pwr_ratios[1];
25567 ref_tone = ref_tones[1];
25568 rx_lpf_bw = rx_lpf_bws[1];
25569 } else {
25570 target_bw = target_bws[0];
25571 target_pwr_ratio = target_pwr_ratios[0];
25572 ref_tone = ref_tones[0];
25573 rx_lpf_bw = rx_lpf_bws[0];
25574 }
25575
25576 if (core_idx == 0) {
25577 radio_addr_offset_rx = RADIO_2056_RX0;
25578 radio_addr_offset_tx =
25579 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25580 } else {
25581 radio_addr_offset_rx = RADIO_2056_RX1;
25582 radio_addr_offset_tx =
25583 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25584 }
25585
25586 orig_txlpf_rccal_lpc_ovr_val =
25587 read_radio_reg(pi,
25588 (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx));
25589 orig_rxlpf_rccal_hpc_ovr_val =
25590 read_radio_reg(pi,
25591 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25592 radio_addr_offset_rx));
25593
25594 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25595
25596 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25597 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25598 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25599 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25600 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25601 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25602 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25603 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25604 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25605 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25606
25607 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25608 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25609 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25610 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25611 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25612
25613 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25614 txlpf_rccal_lpc_ovr_val);
25615
25616 write_radio_reg(pi,
25617 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25618 rxlpf_rccal_hpc_ovr_val);
25619
25620 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25621
25622 write_phy_reg(pi, 0x267, 0x02d4);
25623 write_phy_reg(pi, 0x268, 0x0000);
25624 write_phy_reg(pi, 0x269, 0x0000);
25625 write_phy_reg(pi, 0x26a, 0x0000);
25626 write_phy_reg(pi, 0x26b, 0x0000);
25627 write_phy_reg(pi, 0x26c, 0x02d4);
25628 write_phy_reg(pi, 0x26d, 0x0000);
25629 write_phy_reg(pi, 0x26e, 0x0000);
25630 write_phy_reg(pi, 0x26f, 0x0000);
25631 write_phy_reg(pi, 0x270, 0x0000);
25632
25633 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25634 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25635 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25636 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25637
25638 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25639 (0x7 << 10), (tx_lpf_bw << 10));
25640 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25641 (0x7 << 0), (hpvga_hpc << 0));
25642 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25643 (0x7 << 4), (lpf_hpc << 4));
25644 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25645 (0x7 << 8), (rx_lpf_bw << 8));
25646
25647 rccal_stepsize = 16;
25648 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25649
25650 while (rccal_stepsize >= 0) {
25651 write_radio_reg(pi,
25652 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25653 radio_addr_offset_rx), rccal_val);
25654
25655 if (rccal_stepsize == 16) {
25656
25657 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
25658 0, 1, FALSE);
25659 OSL_DELAY(2);
25660
25661 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25662
25663 if (core_idx == 0) {
25664 ref_iq_vals =
25665 MAX((est[0].i_pwr +
25666 est[0].q_pwr) >> (log_num_samps + 1),
25667 1);
25668 } else {
25669 ref_iq_vals =
25670 MAX((est[1].i_pwr +
25671 est[1].q_pwr) >> (log_num_samps + 1),
25672 1);
25673 }
25674
25675 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
25676 0, 1, FALSE);
25677 OSL_DELAY(2);
25678 }
25679
25680 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25681
25682 if (core_idx == 0) {
25683 target_iq_vals =
25684 (est[0].i_pwr + est[0].q_pwr) >> (log_num_samps +
25685 1);
25686 } else {
25687 target_iq_vals =
25688 (est[1].i_pwr + est[1].q_pwr) >> (log_num_samps +
25689 1);
25690 }
25691 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25692
25693 if (rccal_stepsize == 0) {
25694 rccal_stepsize--;
25695 } else if (rccal_stepsize == 1) {
25696 last_rccal_val = rccal_val;
25697 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25698 last_pwr_ratio = pwr_ratio;
25699 rccal_stepsize--;
25700 } else {
25701 rccal_stepsize = (rccal_stepsize >> 1);
25702 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25703 rccal_stepsize : (-rccal_stepsize));
25704 }
25705
25706 if (rccal_stepsize == -1) {
25707 best_rccal_val =
25708 (ABS((int)last_pwr_ratio - (int)target_pwr_ratio) <
25709 ABS((int)pwr_ratio -
25710 (int)target_pwr_ratio)) ? last_rccal_val :
25711 rccal_val;
25712
25713 if (CHSPEC_IS40(pi->radio_chanspec)) {
25714 if ((best_rccal_val > 140)
25715 || (best_rccal_val < 135)) {
25716 best_rccal_val = 138;
25717 }
25718 } else {
25719 if ((best_rccal_val > 142)
25720 || (best_rccal_val < 137)) {
25721 best_rccal_val = 140;
25722 }
25723 }
25724
25725 write_radio_reg(pi,
25726 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25727 radio_addr_offset_rx), best_rccal_val);
25728 }
25729 }
25730
25731 wlc_phy_stopplayback_nphy(pi);
25732
25733 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25734 orig_txlpf_rccal_lpc_ovr_val);
25735 write_radio_reg(pi,
25736 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25737 orig_rxlpf_rccal_hpc_ovr_val);
25738
25739 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25740
25741 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25742 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25743 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25744 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25745 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25746 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25747 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25748 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25749 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25750 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25751
25752 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25753 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25754 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25755 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25756 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25757
25758 pi->nphy_anarxlpf_adjusted = FALSE;
25759
90ea2296 25760 return best_rccal_val - 0x80;
a9533e7e
HP
25761}
25762
25763#define WAIT_FOR_SCOPE 4000000
25764static int
7cc4a4c0 25765wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
25766 uint8 cal_type, bool debug)
25767{
25768 uint16 orig_BBConfig;
25769 uint8 core_no, rx_core;
25770 uint8 best_rccal[2];
25771 uint16 gain_save[2];
25772 uint16 cal_gain[2];
25773 nphy_iqcal_params_t cal_params[2];
25774 uint8 rxcore_state;
25775 int8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25776 int8 txlpf_idac;
25777 bool phyhang_avoid_state = FALSE;
25778 bool skip_rxiqcal = FALSE;
25779
25780 orig_BBConfig = read_phy_reg(pi, 0x01);
25781 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25782
25783 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
25784
25785 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25786 phyhang_avoid_state = pi->phyhang_avoid;
25787 pi->phyhang_avoid = FALSE;
25788 }
25789
25790 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25791
25792 for (core_no = 0; core_no <= 1; core_no++) {
25793 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25794 &cal_params[core_no]);
25795 cal_gain[core_no] = cal_params[core_no].cal_gain;
25796 }
25797
25798 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25799
25800 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
25801
25802 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25803
25804 skip_rxiqcal =
25805 ((rxcore_state & (1 << rx_core)) == 0) ? TRUE : FALSE;
25806
25807 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25808
25809 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25810
25811 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25812
25813 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25814
25815 wlc_phy_tx_tone_nphy(pi,
25816 (CHSPEC_IS40(pi->radio_chanspec)) ?
25817 NPHY_RXCAL_TONEFREQ_40MHz :
25818 NPHY_RXCAL_TONEFREQ_20MHz,
25819 NPHY_RXCAL_TONEAMP, 0, cal_type,
25820 FALSE);
25821
25822 if (debug)
25823 OSL_DELAY(WAIT_FOR_SCOPE);
25824
25825 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25826 wlc_phy_stopplayback_nphy(pi);
25827 }
25828
25829 if (((cal_type == 1) || (cal_type == 2))
25830 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25831
25832 if (rx_core == PHY_CORE_1) {
25833
25834 if (rxcore_state == 1) {
25835 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25836 *) pi, 3);
25837 }
25838
25839 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25840 1);
25841
25842 best_rccal[rx_core] =
25843 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25844 pi->nphy_rccal_value = best_rccal[rx_core];
25845
25846 if (rxcore_state == 1) {
25847 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25848 *) pi,
25849 rxcore_state);
25850 }
25851 }
25852 }
25853
25854 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25855
25856 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25857 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25858 }
25859
25860 if ((cal_type == 1) || (cal_type == 2)) {
25861
25862 best_rccal[0] = best_rccal[1];
25863 write_radio_reg(pi,
25864 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25865 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25866
25867 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25868 rxlpf_rccal_hpc =
25869 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25870 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25871
25872 if (PHY_IPA(pi)) {
25873 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25874 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25875 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25876 TXLPF_IDAC_4, txlpf_idac);
25877 }
25878
25879 rxlpf_rccal_hpc = MAX(MIN(rxlpf_rccal_hpc, 31), 0);
25880 txlpf_rccal_lpc = MAX(MIN(txlpf_rccal_lpc, 31), 0);
25881
25882 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25883 ((rx_core ==
25884 PHY_CORE_0) ? RADIO_2056_RX0 :
25885 RADIO_2056_RX1)),
25886 (rxlpf_rccal_hpc | 0x80));
25887
25888 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25889 ((rx_core ==
25890 PHY_CORE_0) ? RADIO_2056_TX0 :
25891 RADIO_2056_TX1)),
25892 (txlpf_rccal_lpc | 0x80));
25893 }
25894 }
25895
25896 write_phy_reg(pi, 0x01, orig_BBConfig);
25897
25898 wlc_phy_resetcca_nphy(pi);
25899
25900 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25901 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25902 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25903 0, 0x3, 1);
25904 } else {
25905 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25906 }
25907 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25908
25909 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25910 gain_save);
25911
25912 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25913 pi->phyhang_avoid = phyhang_avoid_state;
25914 }
25915
25916 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
25917
25918 return BCME_OK;
25919}
25920
25921static int
7cc4a4c0 25922wlc_phy_cal_rxiq_nphy_rev2(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
25923 bool debug)
25924{
25925 phy_iq_est_t est[PHY_CORE_MAX];
25926 uint8 core_num, rx_core, tx_core;
25927 uint16 lna_vals[] = { 0x3, 0x3, 0x1 };
25928 uint16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25929 uint16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
25930 int16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25931 int16 desired_log2_pwr, actual_log2_pwr, hpf_change;
25932 uint16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25933 uint16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25934 uint16 num_samps;
25935 uint32 i_pwr, q_pwr, tot_pwr[3];
25936 uint8 gain_pass, use_hpf_num;
25937 uint16 mask, val1, val2;
25938 uint16 core_no;
25939 uint16 gain_save[2];
25940 uint16 cal_gain[2];
25941 nphy_iqcal_params_t cal_params[2];
25942 uint8 phy_bw;
25943 int bcmerror = BCME_OK;
25944 bool first_playtone = TRUE;
25945
25946 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
25947
25948 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
25949
25950 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25951 }
25952
25953 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25954
25955 for (core_no = 0; core_no <= 1; core_no++) {
25956 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25957 &cal_params[core_no]);
25958 cal_gain[core_no] = cal_params[core_no].cal_gain;
25959 }
25960
25961 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25962
25963 num_samps = 1024;
25964 desired_log2_pwr = 13;
25965
25966 for (core_num = 0; core_num < 2; core_num++) {
25967
25968 rx_core = core_num;
25969 tx_core = 1 - core_num;
25970
25971 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25972 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25973 0xa6 : 0xa7);
25974 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25975 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25976 0x91 : 0x92);
25977 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25978 0x91 : 0x92);
25979
25980 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25981 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25982
25983 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25984 ((0x1 << 1) | (0x1 << 2)));
25985 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25986
25987 if (((pi->nphy_rxcalparams) & 0xff000000)) {
25988
25989 write_phy_reg(pi,
25990 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25991 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 :
25992 0x110));
25993 } else {
25994
25995 write_phy_reg(pi,
25996 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25997 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 :
25998 0x120));
25999 }
26000
26001 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
26002 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
26003 0x114));
26004
26005 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
26006 if (rx_core == PHY_CORE_0) {
26007 val1 = RADIO_2055_COUPLE_RX_MASK;
26008 val2 = RADIO_2055_COUPLE_TX_MASK;
26009 } else {
26010 val1 = RADIO_2055_COUPLE_TX_MASK;
26011 val2 = RADIO_2055_COUPLE_RX_MASK;
26012 }
26013
26014 if ((pi->nphy_rxcalparams & 0x10000)) {
26015 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
26016 val1);
26017 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
26018 val2);
26019 }
26020
26021 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
26022
26023 if (debug)
26024 OSL_DELAY(WAIT_FOR_SCOPE);
26025
26026 if (gain_pass < 3) {
26027 curr_lna = lna_vals[gain_pass];
26028 curr_hpf1 = hpf1_vals[gain_pass];
26029 curr_hpf2 = hpf2_vals[gain_pass];
26030 } else {
26031
26032 if (tot_pwr[1] > 10000) {
26033 curr_lna = lna_vals[2];
26034 curr_hpf1 = hpf1_vals[2];
26035 curr_hpf2 = hpf2_vals[2];
26036 use_hpf_num = 1;
26037 curr_hpf = curr_hpf1;
26038 actual_log2_pwr =
26039 wlc_phy_nbits(tot_pwr[2]);
26040 } else {
26041 if (tot_pwr[0] > 10000) {
26042 curr_lna = lna_vals[1];
26043 curr_hpf1 = hpf1_vals[1];
26044 curr_hpf2 = hpf2_vals[1];
26045 use_hpf_num = 1;
26046 curr_hpf = curr_hpf1;
26047 actual_log2_pwr =
26048 wlc_phy_nbits(tot_pwr[1]);
26049 } else {
26050 curr_lna = lna_vals[0];
26051 curr_hpf1 = hpf1_vals[0];
26052 curr_hpf2 = hpf2_vals[0];
26053 use_hpf_num = 2;
26054 curr_hpf = curr_hpf2;
26055 actual_log2_pwr =
26056 wlc_phy_nbits(tot_pwr[0]);
26057 }
26058 }
26059
26060 hpf_change = desired_log2_pwr - actual_log2_pwr;
26061 curr_hpf += hpf_change;
26062 curr_hpf = MAX(MIN(curr_hpf, 10), 0);
26063 if (use_hpf_num == 1) {
26064 curr_hpf1 = curr_hpf;
26065 } else {
26066 curr_hpf2 = curr_hpf;
26067 }
26068 }
26069
26070 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
26071 ((curr_hpf2 << 8) |
26072 (curr_hpf1 << 4) |
26073 (curr_lna << 2)), 0x3, 0);
26074 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26075
26076 wlc_phy_stopplayback_nphy(pi);
26077
26078 if (first_playtone) {
26079 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
26080 (uint16) (pi->
26081 nphy_rxcalparams
26082 &
26083 0xffff),
26084 0, 0, TRUE);
26085 first_playtone = FALSE;
26086 } else {
26087 phy_bw =
26088 (CHSPEC_IS40(pi->radio_chanspec)) ? 40 : 20;
26089 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
26090 0, 0, 0, TRUE);
26091 }
26092
26093 if (bcmerror == BCME_OK) {
26094 if (gain_pass < 3) {
26095
26096 wlc_phy_rx_iq_est_nphy(pi, est,
26097 num_samps, 32,
26098 0);
26099 i_pwr =
26100 (est[rx_core].i_pwr +
26101 num_samps / 2) / num_samps;
26102 q_pwr =
26103 (est[rx_core].q_pwr +
26104 num_samps / 2) / num_samps;
26105 tot_pwr[gain_pass] = i_pwr + q_pwr;
26106 } else {
26107
26108 wlc_phy_calc_rx_iq_comp_nphy(pi,
26109 (1 <<
26110 rx_core));
26111 }
26112
26113 wlc_phy_stopplayback_nphy(pi);
26114 }
26115
26116 if (bcmerror != BCME_OK)
26117 break;
26118 }
26119
26120 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
26121 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
26122
26123 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
26124 0x92, orig_RfctrlIntcTx);
26125 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
26126 0x92, orig_RfctrlIntcRx);
26127 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
26128 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
26129 0xa7, orig_AfectrlCore);
26130 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
26131
26132 if (bcmerror != BCME_OK)
26133 break;
26134 }
26135
26136 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
26137 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26138
26139 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26140 gain_save);
26141
26142 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
26143
26144 return bcmerror;
26145}
26146
26147int
7cc4a4c0 26148wlc_phy_cal_rxiq_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
26149 uint8 cal_type, bool debug)
26150{
26151 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26152
26153 cal_type = 0;
26154 }
26155 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26156 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
26157 debug);
26158 } else {
26159 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
26160 }
26161}
26162
7cc4a4c0 26163static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26164{
26165 int j, type = 2;
26166 uint16 addr_offset = 0x2c5;
26167
26168 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26169 write_phy_reg(pi, addr_offset + j,
26170 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26171 }
26172}
26173
7cc4a4c0 26174static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26175{
26176 int j, type;
26177 uint16 addr_offset[] = { 0x186, 0x195,
26178 0x2c5
26179 };
26180
26181 for (type = 0; type < 3; type++) {
26182 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26183 write_phy_reg(pi, addr_offset[type] + j,
26184 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26185 }
26186 }
26187
26188 if (IS40MHZ(pi)) {
26189 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26190 write_phy_reg(pi, 0x186 + j,
26191 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26192 }
26193 } else {
26194 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26195 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26196 write_phy_reg(pi, 0x186 + j,
26197 NPHY_IPA_REV4_txdigi_filtcoeffs[5]
26198 [j]);
26199 }
26200 }
26201
26202 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
26203 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26204 write_phy_reg(pi, 0x2c5 + j,
26205 NPHY_IPA_REV4_txdigi_filtcoeffs[6]
26206 [j]);
26207 }
26208 }
26209 }
26210}
26211
7cc4a4c0 26212static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26213{
26214 int j;
26215
26216 if (IS40MHZ(pi)) {
26217 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26218 write_phy_reg(pi, 0x195 + j,
26219 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26220 }
26221 } else {
26222 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26223 write_phy_reg(pi, 0x186 + j,
26224 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26225 }
26226 }
26227}
26228
7cc4a4c0 26229static uint16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi)
a9533e7e
HP
26230{
26231 uint16 m0m1;
26232
26233 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26234
26235 return m0m1;
26236}
26237
7cc4a4c0 26238static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, uint8 m0, uint8 m1)
a9533e7e
HP
26239{
26240 uint16 m0m1 = (uint16) ((m0 << 8) | m1);
26241
26242 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26243 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26244}
26245
7cc4a4c0 26246static uint32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi)
a9533e7e
HP
26247{
26248 uint32 *tx_pwrctrl_tbl = NULL;
26249
26250 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26251
26252 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26253
26254 if ((pi->pubpi.radiorev == 4)
26255 || (pi->pubpi.radiorev == 6)) {
26256
26257 tx_pwrctrl_tbl =
26258 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26259 } else if (pi->pubpi.radiorev == 3) {
26260
26261 tx_pwrctrl_tbl =
26262 nphy_tpc_txgain_ipa_2g_2057rev3;
26263 } else if (pi->pubpi.radiorev == 5) {
26264
26265 tx_pwrctrl_tbl =
26266 nphy_tpc_txgain_ipa_2g_2057rev5;
26267 } else if ((pi->pubpi.radiorev == 7)
26268 || (pi->pubpi.radiorev == 8)) {
26269
26270 tx_pwrctrl_tbl =
26271 nphy_tpc_txgain_ipa_2g_2057rev7;
26272 } else {
26273 ASSERT(0);
26274 }
26275
26276 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26277
26278 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
26279 if (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID) {
26280
26281 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26282 }
26283
26284 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26285
26286 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26287 } else {
26288
26289 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26290 }
26291
26292 } else {
26293
26294 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26295 if ((pi->pubpi.radiorev == 3) ||
26296 (pi->pubpi.radiorev == 4) ||
26297 (pi->pubpi.radiorev == 6)) {
26298
26299 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26300 } else if ((pi->pubpi.radiorev == 7)
26301 || (pi->pubpi.radiorev == 8)) {
26302
26303 tx_pwrctrl_tbl =
26304 nphy_tpc_txgain_ipa_5g_2057rev7;
26305 } else {
26306 ASSERT(0);
26307 }
26308
26309 } else {
26310 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26311 }
26312 }
26313
26314 return tx_pwrctrl_tbl;
26315}
26316
26317static void
7cc4a4c0 26318wlc_phy_papd_cal_setup_nphy(phy_info_t *pi, nphy_papd_restore_state *state,
a9533e7e
HP
26319 uint8 core)
26320{
26321 int32 tone_freq;
26322 uint8 off_core;
26323 uint16 mixgain = 0;
26324
26325 off_core = core ^ 0x1;
26326 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26327
26328 if (NREV_IS(pi->pubpi.phy_rev, 7)
26329 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26330 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26331 wlc_phy_read_lpf_bw_ctl_nphy
26332 (pi, 0), 0, 0,
26333 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26334 }
26335
26336 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26337 if (pi->pubpi.radiorev == 5) {
26338 mixgain = (core == 0) ? 0x20 : 0x00;
26339
26340 } else if ((pi->pubpi.radiorev == 7)
26341 || (pi->pubpi.radiorev == 8)) {
26342
26343 mixgain = 0x00;
26344
26345 } else if ((pi->pubpi.radiorev <= 4)
26346 || (pi->pubpi.radiorev == 6)) {
26347
26348 mixgain = 0x00;
26349 } else {
26350 ASSERT(0);
26351 }
26352
26353 } else {
26354 if ((pi->pubpi.radiorev == 4) ||
26355 (pi->pubpi.radiorev == 6)) {
26356
26357 mixgain = 0x50;
26358 } else if ((pi->pubpi.radiorev == 3)
26359 || (pi->pubpi.radiorev == 7)
26360 || (pi->pubpi.radiorev == 8)) {
26361
26362 mixgain = 0x0;
26363 } else {
26364 ASSERT(0);
26365 }
26366 }
26367
26368 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26369 mixgain, (1 << core), 0,
26370 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26371
26372 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26373 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26374 1, (1 << core), 0);
26375 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26376 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26377 0, (1 << off_core), 0);
26378
26379 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26380 0, 0x3, 0,
26381 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26382 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26383 (1 << core), 0,
26384 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26385 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26386 (1 << core), 0,
26387 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26388 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26389 (1 << core), 0,
26390 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26391 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26392 (1 << core), 0,
26393 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26394 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26395 (1 << core), 0,
26396 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26397 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26398 (1 << core), 0,
26399 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26400 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26401 (1 << core), 0,
26402 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26403
26404 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26405 0, (1 << core), 0,
26406 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26407 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26408 (1 << core), 0,
26409 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26410
26411 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26412 0xa6 : 0xa7);
26413 state->afeoverride[core] =
26414 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26415 state->afectrl[off_core] =
26416 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26417 state->afeoverride[off_core] =
26418 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26419
26420 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26421 (0x1 << 2), 0);
26422 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26423 0xa5), (0x1 << 2), (0x1 << 2));
26424
26425 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26426 (0x1 << 2), (0x1 << 2));
26427 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26428 0x8f), (0x1 << 2), (0x1 << 2));
26429
26430 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26431 state->pwrup[core] =
26432 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26433 TXRXCOUPLE_2G_PWRUP);
26434 state->atten[core] =
26435 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26436 TXRXCOUPLE_2G_ATTEN);
26437 state->pwrup[off_core] =
26438 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26439 TXRXCOUPLE_2G_PWRUP);
26440 state->atten[off_core] =
26441 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26442 TXRXCOUPLE_2G_ATTEN);
26443
26444 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26445 TXRXCOUPLE_2G_PWRUP, 0xc);
26446
26447 if ((pi->pubpi.radiorev == 3) ||
26448 (pi->pubpi.radiorev == 4) ||
26449 (pi->pubpi.radiorev == 6)) {
26450
26451 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26452 TXRXCOUPLE_2G_ATTEN, 0xf0);
26453
26454 } else if (pi->pubpi.radiorev == 5) {
26455
26456 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26457 TXRXCOUPLE_2G_ATTEN,
26458 (core == 0) ? 0xf7 : 0xf2);
26459
26460 } else if ((pi->pubpi.radiorev == 7)
26461 || (pi->pubpi.radiorev == 8)) {
26462
26463 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26464 TXRXCOUPLE_2G_ATTEN, 0xf0);
26465
26466 } else {
26467 ASSERT(0);
26468 }
26469
26470 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26471 TXRXCOUPLE_2G_PWRUP, 0x0);
26472 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26473 TXRXCOUPLE_2G_ATTEN, 0xff);
26474
26475 } else {
26476 state->pwrup[core] =
26477 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26478 TXRXCOUPLE_5G_PWRUP);
26479 state->atten[core] =
26480 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26481 TXRXCOUPLE_5G_ATTEN);
26482 state->pwrup[off_core] =
26483 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26484 TXRXCOUPLE_5G_PWRUP);
26485 state->atten[off_core] =
26486 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26487 TXRXCOUPLE_5G_ATTEN);
26488
26489 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26490 TXRXCOUPLE_5G_PWRUP, 0xc);
26491
26492 if ((pi->pubpi.radiorev == 7)
26493 || (pi->pubpi.radiorev == 8)) {
26494
26495 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26496 TXRXCOUPLE_5G_ATTEN, 0xf4);
26497
26498 } else {
26499 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26500 TXRXCOUPLE_5G_ATTEN, 0xf0);
26501 }
26502
26503 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26504 TXRXCOUPLE_5G_PWRUP, 0x0);
26505 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26506 TXRXCOUPLE_5G_ATTEN, 0xff);
26507 }
26508
26509 tone_freq = 4000;
26510
26511 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, FALSE);
26512
26513 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26514 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26515
26516 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26517 0x2a4, (0x1 << 13), (1) << 13);
26518
26519 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26520 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26521
26522 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26523 0x2a4, (0x1 << 13), (0) << 13);
26524
26525 } else {
26526
26527 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26528
26529 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26530
26531 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26532
26533 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26534 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26535
26536 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26537 0xa6 : 0xa7);
26538 state->afeoverride[core] =
26539 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26540
26541 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26542 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26543 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26544 0xa5),
26545 (0x1 << 0) |
26546 (0x1 << 1) |
26547 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26548
26549 state->vga_master[core] =
26550 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26551 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26552 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26553 state->fbmix[core] =
26554 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26555 TXFBMIX_G);
26556 state->intpa_master[core] =
26557 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26558 INTPAG_MASTER);
26559
26560 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26561 0x03);
26562 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26563 INTPAG_MASTER, 0x04);
26564 } else {
26565 state->fbmix[core] =
26566 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26567 TXFBMIX_A);
26568 state->intpa_master[core] =
26569 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26570 INTPAA_MASTER);
26571
26572 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26573 0x03);
26574 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26575 INTPAA_MASTER, 0x04);
26576
26577 }
26578
26579 tone_freq = 4000;
26580
26581 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, FALSE);
26582
26583 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26584 0x29b, (0x1 << 0), (1) << 0);
26585
26586 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26587 0x29b, (0x1 << 0), (0) << 0);
26588
26589 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26590 }
26591}
26592
26593static void
7cc4a4c0 26594wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi, nphy_papd_restore_state *state)
a9533e7e
HP
26595{
26596 uint8 core;
26597
26598 wlc_phy_stopplayback_nphy(pi);
26599
26600 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26601
26602 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26603
26604 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26605 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26606 TXRXCOUPLE_2G_PWRUP, 0);
26607 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26608 TXRXCOUPLE_2G_ATTEN,
26609 state->atten[core]);
26610 } else {
26611 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26612 TXRXCOUPLE_5G_PWRUP, 0);
26613 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26614 TXRXCOUPLE_5G_ATTEN,
26615 state->atten[core]);
26616 }
26617 }
26618
26619 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
26620 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26621 1, 0x3, 0,
26622 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26623 } else {
26624 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26625 0, 0x3, 1,
26626 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26627 }
26628 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26629 0, 0x3, 1,
26630 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26631 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26632 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26633 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26634 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26635 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26636 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26637 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26638 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26639 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26640 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26641 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26642 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26643 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26644 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26645 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26646 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26647 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26648 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26649 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26650 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26651 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26652 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26653 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26654 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26655 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26656 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26657 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26658 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26659 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26660 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26661
26662 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26663
26664 write_phy_reg(pi, (core == PHY_CORE_0) ?
26665 0xa6 : 0xa7, state->afectrl[core]);
26666 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26667 0xa5, state->afeoverride[core]);
26668 }
26669
26670 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26671 (state->mm & 0xff));
26672
26673 if (NREV_IS(pi->pubpi.phy_rev, 7)
26674 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26675 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
26676 1,
26677 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26678 }
26679 } else {
26680
26681 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26682 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26683 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26684
26685 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26686 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26687
26688 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26689
26690 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26691 state->vga_master[core]);
26692 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26693 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26694 TXFBMIX_G, state->fbmix[core]);
26695 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26696 INTPAG_MASTER,
26697 state->intpa_master[core]);
26698 } else {
26699 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26700 TXFBMIX_A, state->fbmix[core]);
26701 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26702 INTPAA_MASTER,
26703 state->intpa_master[core]);
26704 }
26705
26706 write_phy_reg(pi, (core == PHY_CORE_0) ?
26707 0xa6 : 0xa7, state->afectrl[core]);
26708 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26709 0xa5, state->afeoverride[core]);
26710 }
26711
26712 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26713 (state->mm & 0xff));
26714
26715 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26716 }
26717}
26718
26719static void
7cc4a4c0 26720wlc_phy_a1_nphy(phy_info_t *pi, uint8 core, uint32 winsz, uint32 start,
a9533e7e
HP
26721 uint32 end)
26722{
26723 uint32 *buf, *src, *dst, sz;
26724
26725 sz = end - start + 1;
26726 ASSERT(end > start);
26727 ASSERT(end < NPHY_PAPD_EPS_TBL_SIZE);
26728
ca8c1e59
JC
26729 buf = MALLOC(pi->sh->osh, 2 * sizeof(uint32) * NPHY_PAPD_EPS_TBL_SIZE);
26730 if (NULL == buf) {
a9533e7e
HP
26731 return;
26732 }
26733
26734 src = buf;
26735 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26736
26737 wlc_phy_table_read_nphy(pi,
26738 (core ==
26739 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26740 NPHY_TBL_ID_EPSILONTBL1),
26741 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26742
26743 do {
26744 uint32 phy_a1, phy_a2;
26745 int32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
26746
26747 phy_a1 = end - MIN(end, (winsz >> 1));
26748 phy_a2 = MIN(NPHY_PAPD_EPS_TBL_SIZE - 1, end + (winsz >> 1));
26749 phy_a3 = phy_a2 - phy_a1 + 1;
26750 phy_a6 = 0;
26751 phy_a7 = 0;
26752
26753 do {
26754 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26755 &phy_a5);
26756 phy_a6 += phy_a4;
26757 phy_a7 += phy_a5;
26758 } while (phy_a2-- != phy_a1);
26759
26760 phy_a6 /= phy_a3;
26761 phy_a7 /= phy_a3;
26762 dst[end] = ((uint32) phy_a7 << 13) | ((uint32) phy_a6 & 0x1fff);
26763 } while (end-- != start);
26764
26765 wlc_phy_table_write_nphy(pi,
26766 (core ==
26767 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26768 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26769
26770 MFREE(pi->sh->osh, buf, 2 * sizeof(uint32) * NPHY_PAPD_EPS_TBL_SIZE);
26771}
26772
26773static void
7cc4a4c0 26774wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *txgains,
a9533e7e
HP
26775 phy_cal_mode_t cal_mode, uint8 core)
26776{
26777 uint16 phy_a1, phy_a2, phy_a3;
26778 uint16 phy_a4, phy_a5;
26779 bool phy_a6;
26780 uint8 phy_a7, m[2];
26781 uint32 phy_a8 = 0;
26782 nphy_txgains_t phy_a9;
26783
26784 if (NREV_LT(pi->pubpi.phy_rev, 3))
26785 return;
26786
26787 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26788
26789 ASSERT((cal_mode == CAL_FULL) || (cal_mode == CAL_GCTRL)
26790 || (cal_mode == CAL_SOFT));
26791 phy_a6 = ((cal_mode == CAL_GCTRL)
26792 || (cal_mode == CAL_SOFT)) ? TRUE : FALSE;
26793
26794 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26795
26796 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26797
26798 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26799 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26800 (phy_a9.txgm[core] << 12) |
26801 (phy_a9.pga[core] << 8) |
26802 (txgains->gains.pad[core] << 3) |
26803 (phy_a9.ipa[core]));
26804 } else {
26805 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26806 (phy_a9.txgm[core] << 12) |
26807 (txgains->gains.pga[core] << 8) |
26808 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26809 }
26810
26811 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26812 NPHY_REV7_RfctrlOverride_cmd_txgain,
26813 phy_a5, (1 << core), 0);
26814
26815 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26816 if ((pi->pubpi.radiorev <= 4)
26817 || (pi->pubpi.radiorev == 6)) {
26818
26819 m[core] = IS40MHZ(pi) ? 60 : 79;
26820 } else {
26821
26822 m[core] = IS40MHZ(pi) ? 45 : 64;
26823 }
26824
26825 } else {
26826 m[core] = IS40MHZ(pi) ? 75 : 107;
26827 }
26828
26829 m[phy_a7] = 0;
26830 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26831
26832 phy_a2 = 63;
26833
26834 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26835 if (CHIPID(pi->sh->chip) == BCM6362_CHIP_ID) {
26836 phy_a1 = 35;
26837 phy_a3 = 35;
26838 } else if ((pi->pubpi.radiorev == 4)
26839 || (pi->pubpi.radiorev == 6)) {
26840 phy_a1 = 30;
26841 phy_a3 = 30;
26842 } else {
26843 phy_a1 = 25;
26844 phy_a3 = 25;
26845 }
26846 } else {
26847 if ((pi->pubpi.radiorev == 5)
26848 || (pi->pubpi.radiorev == 7)
26849 || (pi->pubpi.radiorev == 8)) {
26850 phy_a1 = 25;
26851 phy_a3 = 25;
26852 } else {
26853 phy_a1 = 35;
26854 phy_a3 = 35;
26855 }
26856 }
26857
26858 if (cal_mode == CAL_GCTRL) {
26859 if ((pi->pubpi.radiorev == 5)
26860 && (CHSPEC_IS2G(pi->radio_chanspec))) {
26861 phy_a1 = 55;
26862 } else if (((pi->pubpi.radiorev == 7) &&
26863 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26864 ((pi->pubpi.radiorev == 8) &&
26865 (CHSPEC_IS2G(pi->radio_chanspec)))) {
26866 phy_a1 = 60;
26867 } else {
26868 phy_a1 = 63;
26869 }
26870
26871 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26872
26873 phy_a1 = 35;
26874 phy_a3 = 35;
26875 }
26876
26877 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26878 0x29b, (0x1 << 0), (1) << 0);
26879
26880 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26881 0x29b, (0x1 << 0), (0) << 0);
26882
26883 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26884 0x2a4, (0x1 << 13), (1) << 13);
26885
26886 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26887 0x2a4, (0x1 << 13), (0) << 13);
26888
26889 write_phy_reg(pi, 0x2a1, 0x80);
26890 write_phy_reg(pi, 0x2a2, 0x100);
26891
26892 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26893 0x2a4, (0x7 << 4), (11) << 4);
26894
26895 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26896 0x2a4, (0x7 << 8), (11) << 8);
26897
26898 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26899 0x2a4, (0x7 << 0), (0x3) << 0);
26900
26901 write_phy_reg(pi, 0x2e5, 0x20);
26902
26903 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26904
26905 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26906
26907 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26908
26909 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26910 1, ((core == 0) ? 1 : 2), 0,
26911 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26912 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26913 0, ((core == 0) ? 2 : 1), 0,
26914 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26915
26916 write_phy_reg(pi, 0x2be, 1);
26917 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26918
26919 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26920 0, 0x3, 0,
26921 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26922
26923 wlc_phy_table_write_nphy(pi,
26924 (core ==
26925 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26926 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26927 32, &phy_a8);
26928
26929 if (cal_mode != CAL_GCTRL) {
26930 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26931 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26932 }
26933 }
26934
26935 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26936 NPHY_REV7_RfctrlOverride_cmd_txgain,
26937 phy_a5, (1 << core), 1);
26938
26939 } else {
26940
26941 if (txgains) {
26942 if (txgains->useindex) {
26943 phy_a4 = 15 - ((txgains->index) >> 3);
26944 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26945 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26946 phy_a5 = 0x00f7 | (phy_a4 << 8);
26947
26948 if (CHIPID(pi->sh->chip) ==
26949 BCM47162_CHIP_ID) {
26950 phy_a5 =
26951 0x10f7 | (phy_a4 <<
26952 8);
26953 }
26954 } else
26955 if (NREV_IS(pi->pubpi.phy_rev, 5))
26956 phy_a5 = 0x10f7 | (phy_a4 << 8);
26957 else
26958 phy_a5 = 0x50f7 | (phy_a4 << 8);
26959 } else {
26960 phy_a5 = 0x70f7 | (phy_a4 << 8);
26961 }
26962 wlc_phy_rfctrl_override_nphy(pi,
26963 (0x1 << 13),
26964 phy_a5,
26965 (1 << core), 0);
26966 } else {
26967 wlc_phy_rfctrl_override_nphy(pi,
26968 (0x1 << 13),
26969 0x5bf7,
26970 (1 << core), 0);
26971 }
26972 }
26973
26974 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26975 m[core] = IS40MHZ(pi) ? 45 : 64;
26976 } else {
26977 m[core] = IS40MHZ(pi) ? 75 : 107;
26978 }
26979
26980 m[phy_a7] = 0;
26981 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26982
26983 phy_a2 = 63;
26984
26985 if (cal_mode == CAL_FULL) {
26986 phy_a1 = 25;
26987 phy_a3 = 25;
26988 } else if (cal_mode == CAL_SOFT) {
26989 phy_a1 = 25;
26990 phy_a3 = 25;
26991 } else if (cal_mode == CAL_GCTRL) {
26992 phy_a1 = 63;
26993 phy_a3 = 25;
26994 } else {
26995
26996 phy_a1 = 25;
26997 phy_a3 = 25;
26998 }
26999
27000 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27001 0x29b, (0x1 << 0), (1) << 0);
27002
27003 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
27004 0x29b, (0x1 << 0), (0) << 0);
27005
27006 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27007 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27008 0x2a4, (0x1 << 13), (1) << 13);
27009
27010 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27011 0x2a4, (0x1 << 13), (0) << 13);
27012
27013 write_phy_reg(pi, 0x2a1, 0x20);
27014 write_phy_reg(pi, 0x2a2, 0x60);
27015
27016 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27017 0x2a4, (0xf << 4), (9) << 4);
27018
27019 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27020 0x2a4, (0xf << 8), (9) << 8);
27021
27022 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27023 0x2a4, (0xf << 0), (0x2) << 0);
27024
27025 write_phy_reg(pi, 0x2e5, 0x20);
27026 } else {
27027 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27028 0x2a4, (0x1 << 11), (1) << 11);
27029
27030 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27031 0x2a4, (0x1 << 11), (0) << 11);
27032
27033 write_phy_reg(pi, 0x2a1, 0x80);
27034 write_phy_reg(pi, 0x2a2, 0x600);
27035
27036 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27037 0x2a4, (0x7 << 4), (0) << 4);
27038
27039 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27040 0x2a4, (0x7 << 8), (0) << 8);
27041
27042 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27043 0x2a4, (0x7 << 0), (0x3) << 0);
27044
27045 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
27046
27047 }
27048
27049 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
27050
27051 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
27052
27053 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
27054
27055 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
27056
27057 write_phy_reg(pi, 0x2be, 1);
27058 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
27059
27060 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
27061
27062 wlc_phy_table_write_nphy(pi,
27063 (core ==
27064 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
27065 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
27066 32, &phy_a8);
27067
27068 if (cal_mode != CAL_GCTRL) {
27069 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
27070 }
27071 }
27072}
27073
7cc4a4c0 27074static uint8 wlc_phy_a3_nphy(phy_info_t *pi, uint8 start_gain, uint8 core)
a9533e7e
HP
27075{
27076 int phy_a1;
27077 int phy_a2;
27078 bool phy_a3;
27079 nphy_ipa_txcalgains_t phy_a4;
27080 bool phy_a5 = FALSE;
27081 bool phy_a6 = TRUE;
27082 int32 phy_a7, phy_a8;
27083 uint32 phy_a9;
27084 int phy_a10;
27085 bool phy_a11 = FALSE;
27086 int phy_a12;
27087 uint8 phy_a13 = 0;
27088 uint8 phy_a14;
27089 uint8 *phy_a15 = NULL;
27090
27091 phy_a4.useindex = TRUE;
27092 phy_a12 = start_gain;
27093
27094 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27095
27096 phy_a2 = 20;
27097 phy_a1 = 1;
27098
27099 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27100 if (pi->pubpi.radiorev == 5) {
27101
27102 phy_a15 = pad_gain_codes_used_2057rev5;
27103 phy_a13 = sizeof(pad_gain_codes_used_2057rev5) /
27104 sizeof(pad_gain_codes_used_2057rev5[0]) - 1;
27105
27106 } else if ((pi->pubpi.radiorev == 7)
27107 || (pi->pubpi.radiorev == 8)) {
27108
27109 phy_a15 = pad_gain_codes_used_2057rev7;
27110 phy_a13 = sizeof(pad_gain_codes_used_2057rev7) /
27111 sizeof(pad_gain_codes_used_2057rev7[0]) - 1;
27112
27113 } else {
27114
27115 phy_a15 = pad_all_gain_codes_2057;
27116 phy_a13 = sizeof(pad_all_gain_codes_2057) /
27117 sizeof(pad_all_gain_codes_2057[0]) - 1;
27118 }
27119
27120 } else {
27121
27122 phy_a15 = pga_all_gain_codes_2057;
27123 phy_a13 = sizeof(pga_all_gain_codes_2057) /
27124 sizeof(pga_all_gain_codes_2057[0]) - 1;
27125 }
27126
27127 phy_a14 = 0;
27128
27129 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27130 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27131 phy_a4.gains.pad[core] =
27132 (uint16) phy_a15[phy_a12];
27133 } else {
27134 phy_a4.gains.pga[core] =
27135 (uint16) phy_a15[phy_a12];
27136 }
27137
27138 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27139
27140 wlc_phy_table_read_nphy(pi,
27141 (core ==
27142 PHY_CORE_0 ?
27143 NPHY_TBL_ID_EPSILONTBL0 :
27144 NPHY_TBL_ID_EPSILONTBL1), 1,
27145 63, 32, &phy_a9);
27146
27147 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27148
27149 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27150 (phy_a8 == 4095) || (phy_a8 == -4096));
27151
27152 if (!phy_a6 && (phy_a3 != phy_a5)) {
27153 if (!phy_a3) {
27154 phy_a12 -= (uint8) phy_a1;
27155 }
27156 phy_a11 = TRUE;
27157 break;
27158 }
27159
27160 if (phy_a3)
27161 phy_a12 += (uint8) phy_a1;
27162 else
27163 phy_a12 -= (uint8) phy_a1;
27164
27165 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
27166 if (phy_a12 < phy_a14) {
27167 phy_a12 = phy_a14;
27168 } else {
27169 phy_a12 = phy_a13;
27170 }
27171 phy_a11 = TRUE;
27172 break;
27173 }
27174
27175 phy_a6 = FALSE;
27176 phy_a5 = phy_a3;
27177 }
27178
27179 } else {
27180 phy_a2 = 10;
27181 phy_a1 = 8;
27182 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27183 phy_a4.index = (uint8) phy_a12;
27184 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27185
27186 wlc_phy_table_read_nphy(pi,
27187 (core ==
27188 PHY_CORE_0 ?
27189 NPHY_TBL_ID_EPSILONTBL0 :
27190 NPHY_TBL_ID_EPSILONTBL1), 1,
27191 63, 32, &phy_a9);
27192
27193 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27194
27195 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27196 (phy_a8 == 4095) || (phy_a8 == -4096));
27197
27198 if (!phy_a6 && (phy_a3 != phy_a5)) {
27199 if (!phy_a3) {
27200 phy_a12 -= (uint8) phy_a1;
27201 }
27202 phy_a11 = TRUE;
27203 break;
27204 }
27205
27206 if (phy_a3)
27207 phy_a12 += (uint8) phy_a1;
27208 else
27209 phy_a12 -= (uint8) phy_a1;
27210
27211 if ((phy_a12 < 0) || (phy_a12 > 127)) {
27212 if (phy_a12 < 0) {
27213 phy_a12 = 0;
27214 } else {
27215 phy_a12 = 127;
27216 }
27217 phy_a11 = TRUE;
27218 break;
27219 }
27220
27221 phy_a6 = FALSE;
27222 phy_a5 = phy_a3;
27223 }
27224
27225 }
27226
27227 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27228 return (uint8) phy_a15[phy_a12];
27229 } else {
27230 return (uint8) phy_a12;
27231 }
27232
27233}
27234
7cc4a4c0 27235static void wlc_phy_a4(phy_info_t *pi, bool full_cal)
a9533e7e
HP
27236{
27237 nphy_ipa_txcalgains_t phy_b1[2];
27238 nphy_papd_restore_state phy_b2;
27239 bool phy_b3;
27240 uint8 phy_b4;
27241 uint8 phy_b5;
27242 int16 phy_b6, phy_b7, phy_b8;
27243 uint16 phy_b9;
27244 int16 phy_b10, phy_b11, phy_b12;
27245
27246 phy_b11 = 0;
27247 phy_b12 = 0;
27248 phy_b7 = 0;
27249 phy_b8 = 0;
27250 phy_b6 = 0;
27251
27252 if (pi->nphy_papd_skip == 1)
27253 return;
27254
27255 phy_b3 =
27256 (0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
27257 if (!phy_b3) {
27258 wlapi_suspend_mac_and_wait(pi->sh->physhim);
27259 }
27260
27261 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
27262
27263 pi->nphy_force_papd_cal = FALSE;
27264
27265 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
27266 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
27267 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
27268
27269 pi->nphy_papd_last_cal = pi->sh->now;
27270 pi->nphy_papd_recal_counter++;
27271
27272 if (NORADIO_ENAB(pi->pubpi))
27273 return;
27274
27275 phy_b4 = pi->nphy_txpwrctrl;
27276 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
27277
27278 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
27279 nphy_papd_scaltbl);
27280 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27281 nphy_papd_scaltbl);
27282
27283 phy_b9 = read_phy_reg(pi, 0x01);
27284 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27285
27286 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27287 int32 i, val = 0;
27288 for (i = 0; i < 64; i++) {
27289 wlc_phy_table_write_nphy(pi,
27290 ((phy_b5 ==
27291 PHY_CORE_0) ?
27292 NPHY_TBL_ID_EPSILONTBL0 :
27293 NPHY_TBL_ID_EPSILONTBL1), 1,
27294 i, 32, &val);
27295 }
27296 }
27297
27298 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27299
27300 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27301 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27302 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27303
27304 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27305 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27306
27307 if ((pi->pubpi.radiorev == 3)
27308 || (pi->pubpi.radiorev == 4)
27309 || (pi->pubpi.radiorev == 6)) {
27310
27311 pi->nphy_papd_cal_gain_index[phy_b5] =
27312 23;
27313
27314 } else if (pi->pubpi.radiorev == 5) {
27315
27316 pi->nphy_papd_cal_gain_index[phy_b5] =
27317 0;
27318 pi->nphy_papd_cal_gain_index[phy_b5] =
27319 wlc_phy_a3_nphy(pi,
27320 pi->
27321 nphy_papd_cal_gain_index
27322 [phy_b5], phy_b5);
27323
27324 } else if ((pi->pubpi.radiorev == 7)
27325 || (pi->pubpi.radiorev == 8)) {
27326
27327 pi->nphy_papd_cal_gain_index[phy_b5] =
27328 0;
27329 pi->nphy_papd_cal_gain_index[phy_b5] =
27330 wlc_phy_a3_nphy(pi,
27331 pi->
27332 nphy_papd_cal_gain_index
27333 [phy_b5], phy_b5);
27334
27335 } else {
27336 ASSERT(0);
27337 }
27338
27339 phy_b1[phy_b5].gains.pad[phy_b5] =
27340 pi->nphy_papd_cal_gain_index[phy_b5];
27341
27342 } else {
27343 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27344 pi->nphy_papd_cal_gain_index[phy_b5] =
27345 wlc_phy_a3_nphy(pi,
27346 pi->
27347 nphy_papd_cal_gain_index
27348 [phy_b5], phy_b5);
27349 phy_b1[phy_b5].gains.pga[phy_b5] =
27350 pi->nphy_papd_cal_gain_index[phy_b5];
27351 }
27352 } else {
27353 phy_b1[phy_b5].useindex = TRUE;
27354 phy_b1[phy_b5].index = 16;
27355 phy_b1[phy_b5].index =
27356 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index, phy_b5);
27357
27358 pi->nphy_papd_cal_gain_index[phy_b5] =
27359 15 - ((phy_b1[phy_b5].index) >> 3);
27360 }
27361
27362 switch (pi->nphy_papd_cal_type) {
27363 case 0:
27364 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27365 break;
27366 case 1:
27367 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27368 break;
27369 }
27370
27371 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27372 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27373 }
27374 }
27375
27376 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27377 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27378 }
27379
27380 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27381 int eps_offset = 0;
27382
27383 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27384 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27385 if (pi->pubpi.radiorev == 3) {
27386 eps_offset = -2;
27387 } else if (pi->pubpi.radiorev == 5) {
27388 eps_offset = 3;
27389 } else {
27390 eps_offset = -1;
27391 }
27392 } else {
27393 eps_offset = 2;
27394 }
27395
27396 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27397 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27398 phy_b10 = 0;
27399 if ((pi->pubpi.radiorev == 3) ||
27400 (pi->pubpi.radiorev == 4) ||
27401 (pi->pubpi.radiorev == 6)) {
27402 phy_b12 =
27403 -
27404 (nphy_papd_padgain_dlt_2g_2057rev3n4
27405 [phy_b8]
27406 + 1) / 2;
27407 phy_b10 = -1;
27408 } else if (pi->pubpi.radiorev == 5) {
27409 phy_b12 =
27410 -(nphy_papd_padgain_dlt_2g_2057rev5
27411 [phy_b8]
27412 + 1) / 2;
27413 } else if ((pi->pubpi.radiorev == 7) ||
27414 (pi->pubpi.radiorev == 8)) {
27415 phy_b12 =
27416 -(nphy_papd_padgain_dlt_2g_2057rev7
27417 [phy_b8]
27418 + 1) / 2;
27419 } else {
27420 ASSERT(0);
27421 }
27422 } else {
27423 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27424 if ((pi->pubpi.radiorev == 3) ||
27425 (pi->pubpi.radiorev == 4) ||
27426 (pi->pubpi.radiorev == 6)) {
27427 phy_b11 =
27428 -(nphy_papd_pgagain_dlt_5g_2057
27429 [phy_b7]
27430 + 1) / 2;
27431 } else if ((pi->pubpi.radiorev == 7)
27432 || (pi->pubpi.radiorev == 8)) {
27433 phy_b11 =
27434 -(nphy_papd_pgagain_dlt_5g_2057rev7
27435 [phy_b7]
27436 + 1) / 2;
27437 } else {
27438 ASSERT(0);
27439 }
27440
27441 phy_b10 = -9;
27442 }
27443
27444 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27445 phy_b6 =
27446 -60 + 27 + eps_offset + phy_b12 + phy_b10;
27447 } else {
27448 phy_b6 =
27449 -60 + 27 + eps_offset + phy_b11 + phy_b10;
27450 }
27451
27452 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27453 0x29c, (0x1ff << 7), (phy_b6) << 7);
27454
27455 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27456 } else {
27457 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
27458 eps_offset = 4;
27459 } else {
27460 eps_offset = 2;
27461 }
27462
27463 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27464
27465 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27466 phy_b11 =
27467 -(nphy_papd_pga_gain_delta_ipa_2g[phy_b7] +
27468 1) / 2;
27469 phy_b10 = 0;
27470 } else {
27471 phy_b11 =
27472 -(nphy_papd_pga_gain_delta_ipa_5g[phy_b7] +
27473 1) / 2;
27474 phy_b10 = -9;
27475 }
27476
27477 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27478
27479 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27480 0x29c, (0x1ff << 7), (phy_b6) << 7);
27481
27482 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27483 }
27484 }
27485
27486 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27487 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27488
27489 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27490 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27491
27492 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27493 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27494 0x2a4, (0x1 << 13), (0) << 13);
27495
27496 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27497 0x2a4, (0x1 << 13), (0) << 13);
27498
27499 } else {
27500 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27501 0x2a4, (0x1 << 11), (0) << 11);
27502
27503 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27504 0x2a4, (0x1 << 11), (0) << 11);
27505
27506 }
27507 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27508
27509 write_phy_reg(pi, 0x01, phy_b9);
27510
27511 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27512
27513 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27514 if (phy_b4 == PHY_TPC_HW_OFF) {
27515 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
27516 (int8) (pi->nphy_txpwrindex[0].
27517 index_internal), FALSE);
27518 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
27519 (int8) (pi->nphy_txpwrindex[1].
27520 index_internal), FALSE);
27521 }
27522
27523 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
27524
27525 if (!phy_b3) {
27526 wlapi_enable_mac(pi->sh->physhim);
27527 }
27528}
27529
7cc4a4c0 27530void wlc_phy_txpwr_fixpower_nphy(phy_info_t *pi)
a9533e7e
HP
27531{
27532 uint core;
27533 uint32 txgain;
27534 uint16 rad_gain, dac_gain, bbmult, m1m2;
27535 uint8 txpi[2], chan_freq_range;
27536 int32 rfpwr_offset;
27537
27538 ASSERT(pi->nphy_txpwrctrl == PHY_TPC_HW_OFF);
27539
27540 if (pi->phyhang_avoid)
27541 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
27542
27543 if (pi->sh->sromrev < 4) {
27544 txpi[0] = txpi[1] = 72;
27545 } else {
27546
27547 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27548 switch (chan_freq_range) {
27549 case WL_CHAN_FREQ_RANGE_2G:
27550 txpi[0] = pi->nphy_txpid2g[0];
27551 txpi[1] = pi->nphy_txpid2g[1];
27552 break;
27553 case WL_CHAN_FREQ_RANGE_5GL:
27554 txpi[0] = pi->nphy_txpid5gl[0];
27555 txpi[1] = pi->nphy_txpid5gl[1];
27556 break;
27557 case WL_CHAN_FREQ_RANGE_5GM:
27558 txpi[0] = pi->nphy_txpid5g[0];
27559 txpi[1] = pi->nphy_txpid5g[1];
27560 break;
27561 case WL_CHAN_FREQ_RANGE_5GH:
27562 txpi[0] = pi->nphy_txpid5gh[0];
27563 txpi[1] = pi->nphy_txpid5gh[1];
27564 break;
27565 default:
27566 txpi[0] = txpi[1] = 91;
27567 break;
27568 }
27569 }
27570
27571 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27572 txpi[0] = txpi[1] = 30;
27573 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27574 txpi[0] = txpi[1] = 40;
27575 }
27576
27577 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27578
27579 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27580 (txpi[1] < 40) || (txpi[1] > 100))
27581 txpi[0] = txpi[1] = 91;
27582 }
27583
27584 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27585 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27586 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27587 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27588
27589 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27590 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27591 if (PHY_IPA(pi)) {
27592 uint32 *tx_gaintbl =
27593 wlc_phy_get_ipa_gaintbl_nphy(pi);
27594 txgain = tx_gaintbl[txpi[core]];
27595 } else {
27596 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27597 if NREV_IS
27598 (pi->pubpi.phy_rev, 3) {
27599 txgain =
27600 nphy_tpc_5GHz_txgain_rev3
27601 [txpi[core]];
27602 } else if NREV_IS
27603 (pi->pubpi.phy_rev, 4) {
27604 txgain =
27605 (pi->srom_fem5g.extpagain ==
27606 3) ?
27607 nphy_tpc_5GHz_txgain_HiPwrEPA
27608 [txpi[core]] :
27609 nphy_tpc_5GHz_txgain_rev4
27610 [txpi[core]];
27611 } else {
27612 txgain =
27613 nphy_tpc_5GHz_txgain_rev5
27614 [txpi[core]];
27615 }
27616 } else {
27617 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
27618 (pi->srom_fem2g.extpagain == 3)) {
27619 txgain =
27620 nphy_tpc_txgain_HiPwrEPA
27621 [txpi[core]];
27622 } else {
27623 txgain =
27624 nphy_tpc_txgain_rev3[txpi
27625 [core]];
27626 }
27627 }
27628 }
27629 } else {
27630 txgain = nphy_tpc_txgain[txpi[core]];
27631 }
27632
27633 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27634 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27635 } else {
27636 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27637 }
27638
27639 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27640 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27641 } else {
27642 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27643 }
27644 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27645
27646 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27647 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27648 0xa5), (0x1 << 8), (0x1 << 8));
27649 } else {
27650 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27651 }
27652 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27653
27654 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27655 &rad_gain);
27656
27657 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27658 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27659 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27660 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27661
27662 if (PHY_IPA(pi)) {
27663 wlc_phy_table_read_nphy(pi,
27664 (core ==
27665 PHY_CORE_0 ?
27666 NPHY_TBL_ID_CORE1TXPWRCTL :
27667 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27668 576 + txpi[core], 32,
27669 &rfpwr_offset);
27670
27671 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27672 0x29b, (0x1ff << 4),
27673 ((int16) rfpwr_offset) << 4);
27674
27675 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27676 0x29b, (0x1 << 2), (1) << 2);
27677
27678 }
27679 }
27680
27681 and_phy_reg(pi, 0xbf, (uint16) (~(0x1f << 0)));
27682
27683 if (pi->phyhang_avoid)
27684 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
27685}
27686
27687static void
7cc4a4c0 27688wlc_phy_txpwr_nphy_srom_convert(uint8 *srom_max, uint16 *pwr_offset,
a9533e7e
HP
27689 uint8 tmp_max_pwr, uint8 rate_start,
27690 uint8 rate_end)
27691{
27692 uint8 rate;
27693 uint8 word_num, nibble_num;
27694 uint8 tmp_nibble;
27695
27696 for (rate = rate_start; rate <= rate_end; rate++) {
27697 word_num = (rate - rate_start) >> 2;
27698 nibble_num = (rate - rate_start) & 0x3;
27699 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27700
27701 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27702 }
27703}
27704
27705static void
7cc4a4c0 27706wlc_phy_txpwr_nphy_po_apply(uint8 *srom_max, uint8 pwr_offset,
a9533e7e
HP
27707 uint8 rate_start, uint8 rate_end)
27708{
27709 uint8 rate;
27710
27711 for (rate = rate_start; rate <= rate_end; rate++) {
27712 srom_max[rate] -= 2 * pwr_offset;
27713 }
27714}
27715
27716void
7cc4a4c0 27717wlc_phy_ofdm_to_mcs_powers_nphy(uint8 *power, uint8 rate_mcs_start,
a9533e7e
HP
27718 uint8 rate_mcs_end, uint8 rate_ofdm_start)
27719{
27720 uint8 rate1, rate2;
27721
27722 rate2 = rate_ofdm_start;
27723 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27724 power[rate1] = power[rate2];
27725 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27726 }
27727 power[rate_mcs_end] = power[rate_mcs_end - 1];
27728}
27729
27730void
7cc4a4c0 27731wlc_phy_mcs_to_ofdm_powers_nphy(uint8 *power, uint8 rate_ofdm_start,
a9533e7e
HP
27732 uint8 rate_ofdm_end, uint8 rate_mcs_start)
27733{
27734 uint8 rate1, rate2;
27735
27736 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27737 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27738 power[rate1] = power[rate2];
27739 if (rate1 == rate_ofdm_start)
27740 power[++rate1] = power[rate2];
27741 }
27742}
27743
a2627bc0
JC
27744void BCMNMIATTACHFN(wlc_phy_txpwr_apply_nphy) (phy_info_t *pi)
27745{
a9533e7e
HP
27746 uint rate1, rate2, band_num;
27747 uint8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27748 uint8 tmp_max_pwr = 0;
27749 uint16 pwr_offsets1[2], *pwr_offsets2 = NULL;
27750 uint8 *tx_srom_max_rate = NULL;
27751
27752 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27753 switch (band_num) {
27754 case 0:
27755
27756 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_2g,
27757 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27758
27759 pwr_offsets1[0] = pi->cck2gpo;
27760 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27761 pwr_offsets1,
27762 tmp_max_pwr,
27763 TXP_FIRST_CCK,
27764 TXP_LAST_CCK);
27765
27766 pwr_offsets1[0] = (uint16) (pi->ofdm2gpo & 0xffff);
27767 pwr_offsets1[1] =
27768 (uint16) (pi->ofdm2gpo >> 16) & 0xffff;
27769
27770 pwr_offsets2 = pi->mcs2gpo;
27771
27772 tmp_cddpo = pi->cdd2gpo;
27773 tmp_stbcpo = pi->stbc2gpo;
27774 tmp_bw40po = pi->bw402gpo;
27775
27776 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27777 break;
27778 case 1:
27779
27780 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
27781 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27782
27783 pwr_offsets1[0] = (uint16) (pi->ofdm5gpo & 0xffff);
27784 pwr_offsets1[1] =
27785 (uint16) (pi->ofdm5gpo >> 16) & 0xffff;
27786
27787 pwr_offsets2 = pi->mcs5gpo;
27788
27789 tmp_cddpo = pi->cdd5gpo;
27790 tmp_stbcpo = pi->stbc5gpo;
27791 tmp_bw40po = pi->bw405gpo;
27792
27793 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27794 break;
27795 case 2:
27796
27797 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
27798 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27799
27800 pwr_offsets1[0] = (uint16) (pi->ofdm5glpo & 0xffff);
27801 pwr_offsets1[1] =
27802 (uint16) (pi->ofdm5glpo >> 16) & 0xffff;
27803
27804 pwr_offsets2 = pi->mcs5glpo;
27805
27806 tmp_cddpo = pi->cdd5glpo;
27807 tmp_stbcpo = pi->stbc5glpo;
27808 tmp_bw40po = pi->bw405glpo;
27809
27810 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27811 break;
27812 case 3:
27813
27814 tmp_max_pwr = MIN(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
27815 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27816
27817 pwr_offsets1[0] = (uint16) (pi->ofdm5ghpo & 0xffff);
27818 pwr_offsets1[1] =
27819 (uint16) (pi->ofdm5ghpo >> 16) & 0xffff;
27820
27821 pwr_offsets2 = pi->mcs5ghpo;
27822
27823 tmp_cddpo = pi->cdd5ghpo;
27824 tmp_stbcpo = pi->stbc5ghpo;
27825 tmp_bw40po = pi->bw405ghpo;
27826
27827 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27828 break;
27829 }
27830
27831 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27832 tmp_max_pwr, TXP_FIRST_OFDM,
27833 TXP_LAST_OFDM);
27834
27835 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27836 TXP_FIRST_MCS_20_SISO,
27837 TXP_LAST_MCS_20_SISO,
27838 TXP_FIRST_OFDM);
27839
27840 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27841 tmp_max_pwr,
27842 TXP_FIRST_MCS_20_CDD,
27843 TXP_LAST_MCS_20_CDD);
27844
27845 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27846
27847 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27848 TXP_FIRST_MCS_20_CDD,
27849 TXP_LAST_MCS_20_CDD);
27850 }
27851
27852 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27853 TXP_FIRST_OFDM_20_CDD,
27854 TXP_LAST_OFDM_20_CDD,
27855 TXP_FIRST_MCS_20_CDD);
27856
27857 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27858 tmp_max_pwr,
27859 TXP_FIRST_MCS_20_STBC,
27860 TXP_LAST_MCS_20_STBC);
27861
27862 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27863
27864 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27865 tmp_stbcpo,
27866 TXP_FIRST_MCS_20_STBC,
27867 TXP_LAST_MCS_20_STBC);
27868 }
27869
27870 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27871 &pwr_offsets2[2], tmp_max_pwr,
27872 TXP_FIRST_MCS_20_SDM,
27873 TXP_LAST_MCS_20_SDM);
27874
27875 if (NPHY_IS_SROM_REINTERPRET) {
27876
27877 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27878 &pwr_offsets2[4],
27879 tmp_max_pwr,
27880 TXP_FIRST_MCS_40_SISO,
27881 TXP_LAST_MCS_40_SISO);
27882
27883 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27884 TXP_FIRST_OFDM_40_SISO,
27885 TXP_LAST_OFDM_40_SISO,
27886 TXP_FIRST_MCS_40_SISO);
27887
27888 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27889 &pwr_offsets2[4],
27890 tmp_max_pwr,
27891 TXP_FIRST_MCS_40_CDD,
27892 TXP_LAST_MCS_40_CDD);
27893
27894 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27895 TXP_FIRST_MCS_40_CDD,
27896 TXP_LAST_MCS_40_CDD);
27897
27898 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27899 TXP_FIRST_OFDM_40_CDD,
27900 TXP_LAST_OFDM_40_CDD,
27901 TXP_FIRST_MCS_40_CDD);
27902
27903 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27904 &pwr_offsets2[4],
27905 tmp_max_pwr,
27906 TXP_FIRST_MCS_40_STBC,
27907 TXP_LAST_MCS_40_STBC);
27908
27909 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27910 tmp_stbcpo,
27911 TXP_FIRST_MCS_40_STBC,
27912 TXP_LAST_MCS_40_STBC);
27913
27914 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27915 &pwr_offsets2[6],
27916 tmp_max_pwr,
27917 TXP_FIRST_MCS_40_SDM,
27918 TXP_LAST_MCS_40_SDM);
27919 } else {
27920
27921 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27922 TXP_FIRST_OFDM; rate1 <= TXP_LAST_MCS_40_SDM;
27923 rate1++, rate2++)
27924 tx_srom_max_rate[rate1] =
27925 tx_srom_max_rate[rate2];
27926 }
27927
27928 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27929 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27930 tmp_bw40po,
27931 TXP_FIRST_OFDM_40_SISO,
27932 TXP_LAST_MCS_40_SDM);
27933 }
27934
27935 tx_srom_max_rate[TXP_MCS_32] =
27936 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27937 }
27938
27939 return;
27940}
27941
a2627bc0
JC
27942static void BCMATTACHFN(wlc_phy_txpwr_srom_read_ppr_nphy) (phy_info_t *pi)
27943{
a9533e7e
HP
27944 uint16 bw40po, cddpo, stbcpo, bwduppo;
27945 uint band_num;
27946
27947 if (pi->sh->sromrev >= 9) {
27948
27949 return;
27950 }
27951
27952 bw40po = (uint16) PHY_GETINTVAR(pi, "bw40po");
27953 pi->bw402gpo = bw40po & 0xf;
27954 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27955 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27956 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27957
27958 cddpo = (uint16) PHY_GETINTVAR(pi, "cddpo");
27959 pi->cdd2gpo = cddpo & 0xf;
27960 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27961 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27962 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27963
27964 stbcpo = (uint16) PHY_GETINTVAR(pi, "stbcpo");
27965 pi->stbc2gpo = stbcpo & 0xf;
27966 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27967 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27968 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27969
27970 bwduppo = (uint16) PHY_GETINTVAR(pi, "bwduppo");
27971 pi->bwdup2gpo = bwduppo & 0xf;
27972 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27973 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27974 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27975
27976 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27977 switch (band_num) {
27978 case 0:
27979
27980 pi->nphy_txpid2g[PHY_CORE_0] =
27981 (uint8) PHY_GETINTVAR(pi, "txpid2ga0");
27982 pi->nphy_txpid2g[PHY_CORE_1] =
27983 (uint8) PHY_GETINTVAR(pi, "txpid2ga1");
27984 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
27985 (int8) PHY_GETINTVAR(pi, "maxp2ga0");
27986 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
27987 (int8) PHY_GETINTVAR(pi, "maxp2ga1");
27988 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
27989 (int16) PHY_GETINTVAR(pi, "pa2gw0a0");
27990 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
27991 (int16) PHY_GETINTVAR(pi, "pa2gw0a1");
27992 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
27993 (int16) PHY_GETINTVAR(pi, "pa2gw1a0");
27994 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
27995 (int16) PHY_GETINTVAR(pi, "pa2gw1a1");
27996 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
27997 (int16) PHY_GETINTVAR(pi, "pa2gw2a0");
27998 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
27999 (int16) PHY_GETINTVAR(pi, "pa2gw2a1");
28000 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
28001 (int8) PHY_GETINTVAR(pi, "itt2ga0");
28002 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
28003 (int8) PHY_GETINTVAR(pi, "itt2ga1");
28004
28005 pi->cck2gpo = (uint16) PHY_GETINTVAR(pi, "cck2gpo");
28006
28007 pi->ofdm2gpo = (uint32) PHY_GETINTVAR(pi, "ofdm2gpo");
28008
28009 pi->mcs2gpo[0] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo0");
28010 pi->mcs2gpo[1] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo1");
28011 pi->mcs2gpo[2] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo2");
28012 pi->mcs2gpo[3] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo3");
28013 pi->mcs2gpo[4] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo4");
28014 pi->mcs2gpo[5] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo5");
28015 pi->mcs2gpo[6] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo6");
28016 pi->mcs2gpo[7] = (uint16) PHY_GETINTVAR(pi, "mcs2gpo7");
28017 break;
28018 case 1:
28019
28020 pi->nphy_txpid5g[PHY_CORE_0] =
28021 (uint8) PHY_GETINTVAR(pi, "txpid5ga0");
28022 pi->nphy_txpid5g[PHY_CORE_1] =
28023 (uint8) PHY_GETINTVAR(pi, "txpid5ga1");
28024 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
28025 (int8) PHY_GETINTVAR(pi, "maxp5ga0");
28026 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
28027 (int8) PHY_GETINTVAR(pi, "maxp5ga1");
28028 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
28029 (int16) PHY_GETINTVAR(pi, "pa5gw0a0");
28030 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
28031 (int16) PHY_GETINTVAR(pi, "pa5gw0a1");
28032 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
28033 (int16) PHY_GETINTVAR(pi, "pa5gw1a0");
28034 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
28035 (int16) PHY_GETINTVAR(pi, "pa5gw1a1");
28036 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
28037 (int16) PHY_GETINTVAR(pi, "pa5gw2a0");
28038 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
28039 (int16) PHY_GETINTVAR(pi, "pa5gw2a1");
28040 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
28041 (int8) PHY_GETINTVAR(pi, "itt5ga0");
28042 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
28043 (int8) PHY_GETINTVAR(pi, "itt5ga1");
28044
28045 pi->ofdm5gpo = (uint32) PHY_GETINTVAR(pi, "ofdm5gpo");
28046
28047 pi->mcs5gpo[0] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo0");
28048 pi->mcs5gpo[1] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo1");
28049 pi->mcs5gpo[2] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo2");
28050 pi->mcs5gpo[3] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo3");
28051 pi->mcs5gpo[4] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo4");
28052 pi->mcs5gpo[5] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo5");
28053 pi->mcs5gpo[6] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo6");
28054 pi->mcs5gpo[7] = (uint16) PHY_GETINTVAR(pi, "mcs5gpo7");
28055 break;
28056 case 2:
28057
28058 pi->nphy_txpid5gl[0] =
28059 (uint8) PHY_GETINTVAR(pi, "txpid5gla0");
28060 pi->nphy_txpid5gl[1] =
28061 (uint8) PHY_GETINTVAR(pi, "txpid5gla1");
28062 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
28063 (int8) PHY_GETINTVAR(pi, "maxp5gla0");
28064 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
28065 (int8) PHY_GETINTVAR(pi, "maxp5gla1");
28066 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
28067 (int16) PHY_GETINTVAR(pi, "pa5glw0a0");
28068 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
28069 (int16) PHY_GETINTVAR(pi, "pa5glw0a1");
28070 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
28071 (int16) PHY_GETINTVAR(pi, "pa5glw1a0");
28072 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
28073 (int16) PHY_GETINTVAR(pi, "pa5glw1a1");
28074 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
28075 (int16) PHY_GETINTVAR(pi, "pa5glw2a0");
28076 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
28077 (int16) PHY_GETINTVAR(pi, "pa5glw2a1");
28078 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
28079 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
28080
28081 pi->ofdm5glpo = (uint32) PHY_GETINTVAR(pi, "ofdm5glpo");
28082
28083 pi->mcs5glpo[0] =
28084 (uint16) PHY_GETINTVAR(pi, "mcs5glpo0");
28085 pi->mcs5glpo[1] =
28086 (uint16) PHY_GETINTVAR(pi, "mcs5glpo1");
28087 pi->mcs5glpo[2] =
28088 (uint16) PHY_GETINTVAR(pi, "mcs5glpo2");
28089 pi->mcs5glpo[3] =
28090 (uint16) PHY_GETINTVAR(pi, "mcs5glpo3");
28091 pi->mcs5glpo[4] =
28092 (uint16) PHY_GETINTVAR(pi, "mcs5glpo4");
28093 pi->mcs5glpo[5] =
28094 (uint16) PHY_GETINTVAR(pi, "mcs5glpo5");
28095 pi->mcs5glpo[6] =
28096 (uint16) PHY_GETINTVAR(pi, "mcs5glpo6");
28097 pi->mcs5glpo[7] =
28098 (uint16) PHY_GETINTVAR(pi, "mcs5glpo7");
28099 break;
28100 case 3:
28101
28102 pi->nphy_txpid5gh[0] =
28103 (uint8) PHY_GETINTVAR(pi, "txpid5gha0");
28104 pi->nphy_txpid5gh[1] =
28105 (uint8) PHY_GETINTVAR(pi, "txpid5gha1");
28106 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
28107 (int8) PHY_GETINTVAR(pi, "maxp5gha0");
28108 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
28109 (int8) PHY_GETINTVAR(pi, "maxp5gha1");
28110 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
28111 (int16) PHY_GETINTVAR(pi, "pa5ghw0a0");
28112 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
28113 (int16) PHY_GETINTVAR(pi, "pa5ghw0a1");
28114 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
28115 (int16) PHY_GETINTVAR(pi, "pa5ghw1a0");
28116 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
28117 (int16) PHY_GETINTVAR(pi, "pa5ghw1a1");
28118 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
28119 (int16) PHY_GETINTVAR(pi, "pa5ghw2a0");
28120 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
28121 (int16) PHY_GETINTVAR(pi, "pa5ghw2a1");
28122 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
28123 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
28124
28125 pi->ofdm5ghpo = (uint32) PHY_GETINTVAR(pi, "ofdm5ghpo");
28126
28127 pi->mcs5ghpo[0] =
28128 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo0");
28129 pi->mcs5ghpo[1] =
28130 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo1");
28131 pi->mcs5ghpo[2] =
28132 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo2");
28133 pi->mcs5ghpo[3] =
28134 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo3");
28135 pi->mcs5ghpo[4] =
28136 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo4");
28137 pi->mcs5ghpo[5] =
28138 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo5");
28139 pi->mcs5ghpo[6] =
28140 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo6");
28141 pi->mcs5ghpo[7] =
28142 (uint16) PHY_GETINTVAR(pi, "mcs5ghpo7");
28143 break;
28144 }
28145 }
28146
28147 wlc_phy_txpwr_apply_nphy(pi);
28148}
28149
a2627bc0
JC
28150static bool BCMATTACHFN(wlc_phy_txpwr_srom_read_nphy) (phy_info_t *pi)
28151{
a9533e7e
HP
28152
28153 pi->antswitch = (uint8) PHY_GETINTVAR(pi, "antswitch");
28154 pi->aa2g = (uint8) PHY_GETINTVAR(pi, "aa2g");
28155 pi->aa5g = (uint8) PHY_GETINTVAR(pi, "aa5g");
28156
28157 pi->srom_fem2g.tssipos = (uint8) PHY_GETINTVAR(pi, "tssipos2g");
28158 pi->srom_fem2g.extpagain = (uint8) PHY_GETINTVAR(pi, "extpagain2g");
28159 pi->srom_fem2g.pdetrange = (uint8) PHY_GETINTVAR(pi, "pdetrange2g");
28160 pi->srom_fem2g.triso = (uint8) PHY_GETINTVAR(pi, "triso2g");
28161 pi->srom_fem2g.antswctrllut = (uint8) PHY_GETINTVAR(pi, "antswctl2g");
28162
28163 pi->srom_fem5g.tssipos = (uint8) PHY_GETINTVAR(pi, "tssipos5g");
28164 pi->srom_fem5g.extpagain = (uint8) PHY_GETINTVAR(pi, "extpagain5g");
28165 pi->srom_fem5g.pdetrange = (uint8) PHY_GETINTVAR(pi, "pdetrange5g");
28166 pi->srom_fem5g.triso = (uint8) PHY_GETINTVAR(pi, "triso5g");
28167 if (PHY_GETVAR(pi, "antswctl5g")) {
28168
28169 pi->srom_fem5g.antswctrllut =
28170 (uint8) PHY_GETINTVAR(pi, "antswctl5g");
28171 } else {
28172
28173 pi->srom_fem5g.antswctrllut =
28174 (uint8) PHY_GETINTVAR(pi, "antswctl2g");
28175 }
28176
28177 wlc_phy_txpower_ipa_upd(pi);
28178
28179 pi->phy_txcore_disable_temp = (int16) PHY_GETINTVAR(pi, "tempthresh");
28180 if (pi->phy_txcore_disable_temp == 0) {
28181 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
28182 }
28183
28184 pi->phy_tempsense_offset = (int8) PHY_GETINTVAR(pi, "tempoffset");
28185 if (pi->phy_tempsense_offset != 0) {
28186 if (pi->phy_tempsense_offset >
28187 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET)) {
28188 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
28189 } else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
28190 NPHY_SROM_MINTEMPOFFSET))
28191 {
28192 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
28193 } else {
28194 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
28195 }
28196 }
28197
28198 pi->phy_txcore_enable_temp =
28199 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
28200
28201 pi->phycal_tempdelta = (uint8) PHY_GETINTVAR(pi, "phycal_tempdelta");
28202 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA) {
28203 pi->phycal_tempdelta = 0;
28204 }
28205
28206 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
28207
28208 return TRUE;
28209}
28210
7cc4a4c0 28211void wlc_phy_txpower_recalc_target_nphy(phy_info_t *pi)
a9533e7e
HP
28212{
28213 uint8 tx_pwr_ctrl_state;
28214 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28215 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28216
28217 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28218
28219 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28220 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28221 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28222 OSL_DELAY(1);
28223 }
28224
28225 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28226
28227 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28228 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28229}
28230
7cc4a4c0 28231static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi)
a9533e7e
HP
28232{
28233 uint32 idx;
28234 uint16 iqloCalbuf[7];
28235 uint32 iqcomp, locomp, curr_locomp;
28236 int8 locomp_i, locomp_q;
28237 int8 curr_locomp_i, curr_locomp_q;
28238 uint32 tbl_id, tbl_len, tbl_offset;
28239 uint32 regval[128];
28240
28241 if (pi->phyhang_avoid)
28242 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28243
28244 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
28245
28246 tbl_len = 128;
28247 tbl_offset = 320;
28248 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28249 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28250 iqcomp =
28251 (tbl_id ==
28252 26) ? (((uint32) (iqloCalbuf[0] & 0x3ff)) << 10) |
28253 (iqloCalbuf[1] & 0x3ff)
28254 : (((uint32) (iqloCalbuf[2] & 0x3ff)) << 10) |
28255 (iqloCalbuf[3] & 0x3ff);
28256
28257 for (idx = 0; idx < tbl_len; idx++) {
28258 regval[idx] = iqcomp;
28259 }
28260 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28261 regval);
28262 }
28263
28264 tbl_offset = 448;
28265 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28266 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28267
28268 locomp =
28269 (uint32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
28270 locomp_i = (int8) ((locomp >> 8) & 0xff);
28271 locomp_q = (int8) ((locomp) & 0xff);
28272 for (idx = 0; idx < tbl_len; idx++) {
28273 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28274 curr_locomp_i = locomp_i;
28275 curr_locomp_q = locomp_q;
28276 } else {
28277 curr_locomp_i = (int8) ((locomp_i *
28278 nphy_tpc_loscale[idx] +
28279 128) >> 8);
28280 curr_locomp_q =
28281 (int8) ((locomp_q * nphy_tpc_loscale[idx] +
28282 128) >> 8);
28283 }
28284 curr_locomp = (uint32) ((curr_locomp_i & 0xff) << 8);
28285 curr_locomp |= (uint32) (curr_locomp_q & 0xff);
28286 regval[idx] = curr_locomp;
28287 }
28288 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28289 regval);
28290 }
28291
28292 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
28293
28294 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
28295 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
28296 }
28297
28298 if (pi->phyhang_avoid)
28299 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28300}
28301
7cc4a4c0 28302static void wlc_phy_ipa_internal_tssi_setup_nphy(phy_info_t *pi)
a9533e7e
HP
28303{
28304 uint8 core;
28305
28306 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28307 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28308 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28309 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28310 TX_SSI_MASTER, 0x5);
28311 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28312 TX_SSI_MUX, 0xe);
28313
28314 if (pi->pubpi.radiorev != 5)
28315 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28316 core, TSSIA, 0);
28317
28318 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28319
28320 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28321 core, TSSIG, 0x1);
28322 } else {
28323
28324 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28325 core, TSSIG, 0x31);
28326 }
28327 } else {
28328 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28329 TX_SSI_MASTER, 0x9);
28330 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28331 TX_SSI_MUX, 0xc);
28332 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28333 TSSIG, 0);
28334
28335 if (pi->pubpi.radiorev != 5) {
28336 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28337
28338 WRITE_RADIO_REG3(pi, RADIO_2057,
28339 TX, core,
28340 TSSIA, 0x1);
28341 } else {
28342
28343 WRITE_RADIO_REG3(pi, RADIO_2057,
28344 TX, core,
28345 TSSIA, 0x31);
28346 }
28347 }
28348 }
28349 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28350 0);
28351 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28352 0);
28353 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28354 0x3);
28355 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28356 0x0);
28357 }
28358 } else {
28359 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28360 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28361 0x80);
28362 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28363 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28364
28365 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28366 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28367 0x0);
28368 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28369 0x0);
28370 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28371 0x3);
28372 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28373 0x0);
28374 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28375 0x8);
28376 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28377 0x0);
28378 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28379 0x0);
28380
28381 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28382 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28383 TX_SSI_MASTER, 0x5);
28384
28385 if (pi->pubpi.radiorev != 5)
28386 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28387 core, TSSIA, 0x0);
28388 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
28389
28390 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28391 core, TSSIG, 0x31);
28392 } else {
28393 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28394 core, TSSIG, 0x11);
28395 }
28396 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28397 TX_SSI_MUX, 0xe);
28398 } else {
28399 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28400 TX_SSI_MASTER, 0x9);
28401 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28402 TSSIA, 0x31);
28403 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28404 TSSIG, 0x0);
28405 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28406 TX_SSI_MUX, 0xc);
28407 }
28408 }
28409 }
28410}
28411
7cc4a4c0 28412static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi)
a9533e7e
HP
28413{
28414 int32 rssi_buf[4];
28415 int32 int_val;
28416
28417 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28418
28419 return;
28420
28421 if (PHY_IPA(pi)) {
28422 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28423 }
28424
28425 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28426 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28427 0, 0x3, 0,
28428 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28429 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28430 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28431 }
28432
28433 wlc_phy_stopplayback_nphy(pi);
28434
28435 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, FALSE);
28436
28437 OSL_DELAY(20);
28438 int_val =
28439 wlc_phy_poll_rssi_nphy(pi, (uint8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
28440 1);
28441 wlc_phy_stopplayback_nphy(pi);
28442 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28443
28444 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28445 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28446 0, 0x3, 1,
28447 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28448 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28449 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28450 }
28451
28452 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28453
28454 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28455 (uint8) ((int_val >> 24) & 0xff);
28456 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28457 (uint8) ((int_val >> 24) & 0xff);
28458
28459 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28460 (uint8) ((int_val >> 8) & 0xff);
28461 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28462 (uint8) ((int_val >> 8) & 0xff);
28463 } else {
28464 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
28465 (uint8) ((int_val >> 24) & 0xff);
28466
28467 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
28468 (uint8) ((int_val >> 8) & 0xff);
28469
28470 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
28471 (uint8) ((int_val >> 16) & 0xff);
28472 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
28473 (uint8) ((int_val) & 0xff);
28474 }
28475
28476}
28477
7cc4a4c0 28478static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi)
a9533e7e
HP
28479{
28480 uint32 idx;
28481 int16 a1[2], b0[2], b1[2];
28482 int8 target_pwr_qtrdbm[2];
28483 int32 num, den, pwr_est;
28484 uint8 chan_freq_range;
28485 uint8 idle_tssi[2];
28486 uint32 tbl_id, tbl_len, tbl_offset;
28487 uint32 regval[64];
28488 uint8 core;
28489
28490 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28491 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28492 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28493 OSL_DELAY(1);
28494 }
28495
28496 if (pi->phyhang_avoid)
28497 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28498
28499 or_phy_reg(pi, 0x122, (0x1 << 0));
28500
28501 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28502 and_phy_reg(pi, 0x1e7, (uint16) (~(0x1 << 15)));
28503 } else {
28504
28505 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28506 }
28507
28508 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28509 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28510
28511 if (pi->sh->sromrev < 4) {
28512 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28513 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28514 target_pwr_qtrdbm[0] = 13 * 4;
28515 target_pwr_qtrdbm[1] = 13 * 4;
28516 a1[0] = -424;
28517 a1[1] = -424;
28518 b0[0] = 5612;
28519 b0[1] = 5612;
28520 b1[1] = -1393;
28521 b1[0] = -1393;
28522 } else {
28523
28524 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28525 switch (chan_freq_range) {
28526 case WL_CHAN_FREQ_RANGE_2G:
28527 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28528 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28529 target_pwr_qtrdbm[0] =
28530 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28531 target_pwr_qtrdbm[1] =
28532 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28533 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28534 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28535 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28536 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28537 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28538 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28539 break;
28540 case WL_CHAN_FREQ_RANGE_5GL:
28541 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28542 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28543 target_pwr_qtrdbm[0] =
28544 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28545 target_pwr_qtrdbm[1] =
28546 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28547 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28548 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28549 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28550 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28551 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28552 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28553 break;
28554 case WL_CHAN_FREQ_RANGE_5GM:
28555 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28556 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28557 target_pwr_qtrdbm[0] =
28558 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28559 target_pwr_qtrdbm[1] =
28560 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28561 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28562 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28563 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28564 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28565 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28566 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28567 break;
28568 case WL_CHAN_FREQ_RANGE_5GH:
28569 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28570 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28571 target_pwr_qtrdbm[0] =
28572 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28573 target_pwr_qtrdbm[1] =
28574 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28575 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28576 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28577 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28578 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28579 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28580 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28581 break;
28582 default:
28583 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28584 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28585 target_pwr_qtrdbm[0] = 13 * 4;
28586 target_pwr_qtrdbm[1] = 13 * 4;
28587 a1[0] = -424;
28588 a1[1] = -424;
28589 b0[0] = 5612;
28590 b0[1] = 5612;
28591 b1[1] = -1393;
28592 b1[0] = -1393;
28593 break;
28594 }
28595 }
28596
28597 target_pwr_qtrdbm[0] = (int8) pi->tx_power_max;
28598 target_pwr_qtrdbm[1] = (int8) pi->tx_power_max;
28599
28600 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28601 if (pi->srom_fem2g.tssipos) {
28602 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28603 }
28604
28605 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28606 for (core = 0; core <= 1; core++) {
28607 if (PHY_IPA(pi)) {
28608
28609 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28610 WRITE_RADIO_REG3(pi, RADIO_2057,
28611 TX, core,
28612 TX_SSI_MUX,
28613 0xe);
28614 } else {
28615 WRITE_RADIO_REG3(pi, RADIO_2057,
28616 TX, core,
28617 TX_SSI_MUX,
28618 0xc);
28619 }
28620 } else {
28621 }
28622 }
28623 } else {
28624 if (PHY_IPA(pi)) {
28625
28626 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28627 RADIO_2056_TX0,
28628 (CHSPEC_IS5G
28629 (pi->
28630 radio_chanspec)) ? 0xc : 0xe);
28631 write_radio_reg(pi,
28632 RADIO_2056_TX_TX_SSI_MUX |
28633 RADIO_2056_TX1,
28634 (CHSPEC_IS5G
28635 (pi->
28636 radio_chanspec)) ? 0xc : 0xe);
28637 } else {
28638
28639 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28640 RADIO_2056_TX0, 0x11);
28641 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28642 RADIO_2056_TX1, 0x11);
28643 }
28644 }
28645 }
28646
28647 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28648 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28649 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28650 OSL_DELAY(1);
28651 }
28652
28653 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28654 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28655 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28656 } else {
28657 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28658 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28659 }
28660
28661 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28662 mod_phy_reg(pi, 0x222, (0xff << 0),
28663 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28664 } else if (NREV_GT(pi->pubpi.phy_rev, 1)) {
28665 mod_phy_reg(pi, 0x222, (0xff << 0),
28666 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28667 }
28668
28669 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28670 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28671
28672 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28673
28674 write_phy_reg(pi, 0x1e9,
28675 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28676
28677 write_phy_reg(pi, 0x1ea,
28678 (target_pwr_qtrdbm[0] << 0) |
28679 (target_pwr_qtrdbm[1] << 8));
28680
28681 tbl_len = 64;
28682 tbl_offset = 0;
28683 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28684 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28685
28686 for (idx = 0; idx < tbl_len; idx++) {
28687 num =
28688 8 * (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28689 den = 32768 + a1[tbl_id - 26] * idx;
28690 pwr_est = MAX(((4 * num + den / 2) / den), -8);
28691 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28692 if (idx <=
28693 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28694 pwr_est =
28695 MAX(pwr_est,
28696 target_pwr_qtrdbm[tbl_id - 26] +
28697 1);
28698 }
28699 regval[idx] = (uint32) pwr_est;
28700 }
28701 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28702 regval);
28703 }
28704
28705 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28706 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28707 pi->adj_pwr_tbl_nphy);
28708 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28709 pi->adj_pwr_tbl_nphy);
28710
28711 if (pi->phyhang_avoid)
28712 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28713}
28714
7cc4a4c0 28715static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi)
a9533e7e 28716{
90ea2296
JC
28717 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28718 (0x1 << 14) | (0x1 << 13));
a9533e7e
HP
28719}
28720
7cc4a4c0 28721static uint8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, uint8 core)
a9533e7e
HP
28722{
28723 uint16 tmp;
28724 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28725
28726 tmp = (tmp & (0x7f << 8)) >> 8;
28727 return (uint8) tmp;
28728}
28729
28730static void
7cc4a4c0 28731wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, uint8 idx0, uint8 idx1)
a9533e7e
HP
28732{
28733 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28734
28735 if (NREV_GT(pi->pubpi.phy_rev, 1))
28736 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28737}
28738
7cc4a4c0 28739uint16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi)
a9533e7e
HP
28740{
28741 uint16 tmp;
28742 uint16 pwr_idx[2];
28743
28744 if (wlc_phy_txpwr_ison_nphy(pi)) {
28745 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28746 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28747
28748 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28749 } else {
28750 tmp =
28751 ((pi->nphy_txpwrindex[PHY_CORE_0].
28752 index_internal & 0xff) << 8) | (pi->
28753 nphy_txpwrindex
28754 [PHY_CORE_1].
28755 index_internal & 0xff);
28756 }
28757
28758 return tmp;
28759}
28760
7cc4a4c0 28761void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi)
a9533e7e
HP
28762{
28763 if (PHY_IPA(pi)
28764 && (pi->nphy_force_papd_cal
28765 || (wlc_phy_txpwr_ison_nphy(pi)
28766 &&
28767 (((uint32)
28768 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28769 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
28770 || ((uint32)
28771 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28772 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4))))) {
28773 wlc_phy_a4(pi, TRUE);
28774 }
28775}
28776
7cc4a4c0 28777void wlc_phy_txpwrctrl_enable_nphy(phy_info_t *pi, uint8 ctrl_type)
a9533e7e
HP
28778{
28779 uint16 mask = 0, val = 0, ishw = 0;
28780 uint8 ctr;
28781 uint core;
28782 uint32 tbl_offset;
28783 uint32 tbl_len;
28784 uint16 regval[84];
28785
28786 if (pi->phyhang_avoid)
28787 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28788
28789 switch (ctrl_type) {
28790 case PHY_TPC_HW_OFF:
28791 case PHY_TPC_HW_ON:
28792 pi->nphy_txpwrctrl = ctrl_type;
28793 break;
28794 default:
28795 break;
28796 }
28797
28798 if (ctrl_type == PHY_TPC_HW_OFF) {
28799 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28800
28801 if (wlc_phy_txpwr_ison_nphy(pi)) {
28802 for (core = 0; core < pi->pubpi.phy_corenum;
28803 core++)
28804 pi->nphy_txpwr_idx[core] =
28805 wlc_phy_txpwr_idx_cur_get_nphy(pi,
28806 (uint8)
28807 core);
28808 }
28809
28810 }
28811
28812 tbl_len = 84;
28813 tbl_offset = 64;
28814 for (ctr = 0; ctr < tbl_len; ctr++) {
28815 regval[ctr] = 0;
28816 }
28817 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28818 regval);
28819 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28820 regval);
28821
28822 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28823
28824 and_phy_reg(pi, 0x1e7,
28825 (uint16) (~((0x1 << 15) |
28826 (0x1 << 14) | (0x1 << 13))));
28827 } else {
28828 and_phy_reg(pi, 0x1e7,
28829 (uint16) (~((0x1 << 14) | (0x1 << 13))));
28830 }
28831
28832 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28833 or_phy_reg(pi, 0x8f, (0x1 << 8));
28834 or_phy_reg(pi, 0xa5, (0x1 << 8));
28835 } else {
28836 or_phy_reg(pi, 0xa5, (0x1 << 14));
28837 }
28838
28839 if (NREV_IS(pi->pubpi.phy_rev, 2))
28840 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28841 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28842 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28843
28844 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28845 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28846 MHF1_IQSWAP_WAR, WLC_BAND_ALL);
28847
28848 } else {
28849
28850 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28851 8, pi->adj_pwr_tbl_nphy);
28852 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28853 8, pi->adj_pwr_tbl_nphy);
28854
28855 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28856 mask = (0x1 << 14) | (0x1 << 13);
28857 val = (ishw << 14) | (ishw << 13);
28858
28859 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28860 mask |= (0x1 << 15);
28861 val |= (ishw << 15);
28862 }
28863
28864 mod_phy_reg(pi, 0x1e7, mask, val);
28865
28866 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28867 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28868 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28869 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28870 } else {
28871 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28872 if (NREV_GT(pi->pubpi.phy_rev, 1))
28873 mod_phy_reg(pi, 0x222,
28874 (0xff << 0), 0x64);
28875 }
28876 }
28877
28878 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28879 if ((pi->nphy_txpwr_idx[0] != 128)
28880 && (pi->nphy_txpwr_idx[1] != 128)) {
28881 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28882 pi->
28883 nphy_txpwr_idx
28884 [0],
28885 pi->
28886 nphy_txpwr_idx
28887 [1]);
28888 }
28889 }
28890
28891 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28892 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28893 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28894 } else {
28895 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28896 }
28897
28898 if (NREV_IS(pi->pubpi.phy_rev, 2))
28899 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28900 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28901 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28902
28903 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28904 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28905 0x0, WLC_BAND_ALL);
28906
28907 if (PHY_IPA(pi)) {
28908 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28909 0x29b, (0x1 << 2), (0) << 2);
28910
28911 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28912 0x29b, (0x1 << 2), (0) << 2);
28913
28914 }
28915
28916 }
28917
28918 if (pi->phyhang_avoid)
28919 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28920}
28921
28922void
7cc4a4c0 28923wlc_phy_txpwr_index_nphy(phy_info_t *pi, uint8 core_mask, int8 txpwrindex,
a9533e7e
HP
28924 bool restore_cals)
28925{
28926 uint8 core, txpwrctl_tbl;
28927 uint16 tx_ind0, iq_ind0, lo_ind0;
28928 uint16 m1m2;
28929 uint32 txgain;
28930 uint16 rad_gain, dac_gain;
28931 uint8 bbmult;
28932 uint32 iqcomp;
28933 uint16 iqcomp_a, iqcomp_b;
28934 uint32 locomp;
28935 uint16 tmpval;
28936 uint8 tx_pwr_ctrl_state;
28937 int32 rfpwr_offset;
28938 uint16 regval[2];
28939
28940 if (pi->phyhang_avoid)
28941 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28942
28943 tx_ind0 = 192;
28944 iq_ind0 = 320;
28945 lo_ind0 = 448;
28946
28947 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28948
28949 if ((core_mask & (1 << core)) == 0) {
28950 continue;
28951 }
28952
28953 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28954
28955 if (txpwrindex < 0) {
28956 if (pi->nphy_txpwrindex[core].index < 0) {
28957
28958 continue;
28959 }
28960
28961 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28962 mod_phy_reg(pi, 0x8f,
28963 (0x1 << 8),
28964 pi->nphy_txpwrindex[core].
28965 AfectrlOverride);
28966 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28967 pi->nphy_txpwrindex[core].
28968 AfectrlOverride);
28969 } else {
28970 mod_phy_reg(pi, 0xa5,
28971 (0x1 << 14),
28972 pi->nphy_txpwrindex[core].
28973 AfectrlOverride);
28974 }
28975
28976 write_phy_reg(pi, (core == PHY_CORE_0) ?
28977 0xaa : 0xab,
28978 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28979
28980 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28981 &pi->nphy_txpwrindex[core].
28982 rad_gain);
28983
28984 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28985 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28986 m1m2 |= ((core == PHY_CORE_0) ?
28987 (pi->nphy_txpwrindex[core].bbmult << 8) :
28988 (pi->nphy_txpwrindex[core].bbmult << 0));
28989 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28990
28991 if (restore_cals) {
28992
28993 wlc_phy_table_write_nphy(pi, 15, 2,
28994 (80 + 2 * core), 16,
28995 (void *)&pi->
28996 nphy_txpwrindex[core].
28997 iqcomp_a);
28998
28999 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29000 16,
29001 &pi->
29002 nphy_txpwrindex[core].
29003 locomp);
29004 wlc_phy_table_write_nphy(pi, 15, 1, (93 + core),
29005 16,
29006 (void *)&pi->
29007 nphy_txpwrindex[core].
29008 locomp);
29009 }
29010
29011 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
29012
29013 pi->nphy_txpwrindex[core].index_internal =
29014 pi->nphy_txpwrindex[core].index_internal_save;
29015 } else {
29016
29017 if (pi->nphy_txpwrindex[core].index < 0) {
29018
29019 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29020 mod_phy_reg(pi, 0x8f,
29021 (0x1 << 8),
29022 pi->nphy_txpwrindex[core].
29023 AfectrlOverride);
29024 mod_phy_reg(pi, 0xa5, (0x1 << 8),
29025 pi->nphy_txpwrindex[core].
29026 AfectrlOverride);
29027 } else {
29028 pi->nphy_txpwrindex[core].
29029 AfectrlOverride =
29030 read_phy_reg(pi, 0xa5);
29031 }
29032
29033 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
29034 read_phy_reg(pi,
29035 (core ==
29036 PHY_CORE_0) ? 0xaa : 0xab);
29037
29038 wlc_phy_table_read_nphy(pi, 7, 1,
29039 (0x110 + core), 16,
29040 &pi->
29041 nphy_txpwrindex[core].
29042 rad_gain);
29043
29044 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
29045 &tmpval);
29046 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
29047 tmpval &= 0xff;
29048 pi->nphy_txpwrindex[core].bbmult =
29049 (uint8) tmpval;
29050
29051 wlc_phy_table_read_nphy(pi, 15, 2,
29052 (80 + 2 * core), 16,
29053 (void *)&pi->
29054 nphy_txpwrindex[core].
29055 iqcomp_a);
29056
29057 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
29058 16,
29059 (void *)&pi->
29060 nphy_txpwrindex[core].
29061 locomp);
29062
29063 pi->nphy_txpwrindex[core].index_internal_save =
29064 pi->nphy_txpwrindex[core].index_internal;
29065 }
29066
29067 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
29068 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
29069
29070 if (NREV_IS(pi->pubpi.phy_rev, 1))
29071 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
29072
29073 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29074 (tx_ind0 + txpwrindex), 32,
29075 &txgain);
29076
29077 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29078 rad_gain =
29079 (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
29080 } else {
29081 rad_gain =
29082 (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
29083 }
29084 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
29085 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
29086
29087 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29088 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
29089 0xa5), (0x1 << 8), (0x1 << 8));
29090 } else {
29091 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
29092 }
29093 write_phy_reg(pi, (core == PHY_CORE_0) ?
29094 0xaa : 0xab, dac_gain);
29095
29096 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
29097 &rad_gain);
29098
29099 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
29100 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
29101 m1m2 |=
29102 ((core ==
29103 PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
29104
29105 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
29106
29107 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29108 (iq_ind0 + txpwrindex), 32,
29109 &iqcomp);
29110 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
29111 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
29112
29113 if (restore_cals) {
29114 regval[0] = (uint16) iqcomp_a;
29115 regval[1] = (uint16) iqcomp_b;
29116 wlc_phy_table_write_nphy(pi, 15, 2,
29117 (80 + 2 * core), 16,
29118 regval);
29119 }
29120
29121 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29122 (lo_ind0 + txpwrindex), 32,
29123 &locomp);
29124 if (restore_cals) {
29125 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29126 16, &locomp);
29127 }
29128
29129 if (NREV_IS(pi->pubpi.phy_rev, 1))
29130 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
29131
29132 if (PHY_IPA(pi)) {
29133 wlc_phy_table_read_nphy(pi,
29134 (core ==
29135 PHY_CORE_0 ?
29136 NPHY_TBL_ID_CORE1TXPWRCTL
29137 :
29138 NPHY_TBL_ID_CORE2TXPWRCTL),
29139 1, 576 + txpwrindex, 32,
29140 &rfpwr_offset);
29141
29142 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29143 0x29b, (0x1ff << 4),
29144 ((int16) rfpwr_offset) << 4);
29145
29146 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29147 0x29b, (0x1 << 2), (1) << 2);
29148
29149 }
29150
29151 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
29152 }
29153
29154 pi->nphy_txpwrindex[core].index = txpwrindex;
29155 }
29156
29157 if (pi->phyhang_avoid)
29158 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
29159}
29160
29161void
7cc4a4c0 29162wlc_phy_txpower_sromlimit_get_nphy(phy_info_t *pi, uint chan, uint8 *max_pwr,
a9533e7e
HP
29163 uint8 txp_rate_idx)
29164{
29165 uint8 chan_freq_range;
29166
29167 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
29168 switch (chan_freq_range) {
29169 case WL_CHAN_FREQ_RANGE_2G:
29170 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29171 break;
29172 case WL_CHAN_FREQ_RANGE_5GM:
29173 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
29174 break;
29175 case WL_CHAN_FREQ_RANGE_5GL:
29176 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
29177 break;
29178 case WL_CHAN_FREQ_RANGE_5GH:
29179 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
29180 break;
29181 default:
29182 ASSERT(0);
29183 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29184 break;
29185 }
29186
29187 return;
29188}
29189
7cc4a4c0 29190void wlc_phy_stay_in_carriersearch_nphy(phy_info_t *pi, bool enable)
a9533e7e
HP
29191{
29192 uint16 clip_off[] = { 0xffff, 0xffff };
29193
29194 ASSERT(0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
29195
29196 if (enable) {
29197 if (pi->nphy_deaf_count == 0) {
29198 pi->classifier_state =
29199 wlc_phy_classifier_nphy(pi, 0, 0);
29200 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
29201 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
29202 wlc_phy_clip_det_nphy(pi, 1, clip_off);
29203 }
29204
29205 pi->nphy_deaf_count++;
29206
29207 wlc_phy_resetcca_nphy(pi);
29208
29209 } else {
29210 ASSERT(pi->nphy_deaf_count > 0);
29211
29212 pi->nphy_deaf_count--;
29213
29214 if (pi->nphy_deaf_count == 0) {
29215 wlc_phy_classifier_nphy(pi, (0x7 << 0),
29216 pi->classifier_state);
29217 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
29218 }
29219 }
29220}
29221
7cc4a4c0 29222void wlc_nphy_deaf_mode(phy_info_t *pi, bool mode)
a9533e7e
HP
29223{
29224 wlapi_suspend_mac_and_wait(pi->sh->physhim);
29225
29226 if (mode) {
29227 if (pi->nphy_deaf_count == 0)
29228 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
29229 } else {
29230 if (pi->nphy_deaf_count > 0)
29231 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
29232 }
29233 wlapi_enable_mac(pi->sh->physhim);
29234}
This page took 2.161149 seconds and 5 git commands to generate.