staging: brcm80211: Purge linuxver.h and redistribute #includes as required
[GitHub/mt8127/android_kernel_alcatel_ttab.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
3327989a
BR
17#include <linux/kernel.h>
18#include <linux/string.h>
a1c16ed2
GKH
19#include <bcmdefs.h>
20#include <wlc_cfg.h>
c6ac24e9 21#include <linux/pci.h>
a9533e7e
HP
22#include <osl.h>
23#include <siutils.h>
24#include <sbchipc.h>
a9533e7e
HP
25#include <hndpmu.h>
26#include <bcmendian.h>
27
a52ba66c
BR
28#include <bcmdevs.h>
29#include <sbhndpio.h>
30#include <sbhnddma.h>
31
a9533e7e
HP
32#include <wlc_phy_radio.h>
33#include <wlc_phy_int.h>
34#include <wlc_phyreg_n.h>
35#include <wlc_phytbl_n.h>
36
37#define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
38 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
39 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1))
40#define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
41 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
42 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1), value);
43#define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
44 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value);
45
46#define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
47 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
48 radio_type##_##jspace##1##_##reg_name));
49#define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
50 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
51 radio_type##_##jspace##1##_##reg_name), value);
52#define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
53 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
54 radio_type##_##reg_name##_##jspace##1));
55#define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
56 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
57 radio_type##_##reg_name##_##jspace##1), value);
58
59#define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
60#define NPHY_ACI_CHANNEL_DELTA 5
61#define NPHY_ACI_CHANNEL_SKIP 4
62#define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
63#define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
64#define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
65#define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
66#define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
67#define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
68
69#define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
70
71#define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
72
73#define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
74
75#define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
76
77#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
78
79#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
80
81#define NPHY_NOISE_NOASSOC_ENTER_TH 400
82
83#define NPHY_NOISE_ASSOC_ENTER_TH 400
84
85#define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
86
87#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
88#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
89
90#define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
91
92#define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
93
94#define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
95
96#define NPHY_RSSICAL_MAXREAD 31
97
98#define NPHY_RSSICAL_NPOLL 8
99#define NPHY_RSSICAL_MAXD (1<<20)
100#define NPHY_MIN_RXIQ_PWR 2
101
102#define NPHY_RSSICAL_W1_TARGET 25
103#define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
104#define NPHY_RSSICAL_NB_TARGET 0
105
106#define NPHY_RSSICAL_W1_TARGET_REV3 29
107#define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
108
109#define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
110#define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
111#define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
112#define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - NPHY_RSSICAL_MAXREAD)
113#define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
114#define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - NPHY_RSSICAL_MAXREAD)
562c8850 115#define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
a9533e7e
HP
116#define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
117 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
118#define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
119 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
120#define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
121 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
122
123#define NPHY_IQCAL_NUMGAINS 9
124#define NPHY_N_GCTL 0x66
125
126#define NPHY_PAPD_EPS_TBL_SIZE 64
127#define NPHY_PAPD_SCL_TBL_SIZE 64
128#define NPHY_NUM_DIG_FILT_COEFFS 15
129
130#define NPHY_PAPD_COMP_OFF 0
131#define NPHY_PAPD_COMP_ON 1
132
133#define NPHY_SROM_TEMPSHIFT 32
134#define NPHY_SROM_MAXTEMPOFFSET 16
135#define NPHY_SROM_MINTEMPOFFSET -16
136
137#define NPHY_CAL_MAXTEMPDELTA 64
138
139#define NPHY_NOISEVAR_TBLLEN40 256
140#define NPHY_NOISEVAR_TBLLEN20 128
141
142#define NPHY_ANARXLPFBW_REDUCTIONFACT 7
143
144#define NPHY_ADJUSTED_MINCRSPOWER 0x1e
145
146typedef struct _nphy_iqcal_params {
7d4df48e
GKH
147 u16 txlpf;
148 u16 txgm;
149 u16 pga;
150 u16 pad;
151 u16 ipa;
152 u16 cal_gain;
153 u16 ncorr[5];
a9533e7e
HP
154} nphy_iqcal_params_t;
155
156typedef struct _nphy_txiqcal_ladder {
e868ab03
GKH
157 u8 percent;
158 u8 g_env;
a9533e7e
HP
159} nphy_txiqcal_ladder_t;
160
161typedef struct {
162 nphy_txgains_t gains;
163 bool useindex;
e868ab03 164 u8 index;
a9533e7e
HP
165} nphy_ipa_txcalgains_t;
166
167typedef struct nphy_papd_restore_state_t {
7d4df48e
GKH
168 u16 fbmix[2];
169 u16 vga_master[2];
170 u16 intpa_master[2];
171 u16 afectrl[2];
172 u16 afeoverride[2];
173 u16 pwrup[2];
174 u16 atten[2];
175 u16 mm;
a9533e7e
HP
176} nphy_papd_restore_state;
177
178typedef struct _nphy_ipa_txrxgain {
7d4df48e
GKH
179 u16 hpvga;
180 u16 lpf_biq1;
181 u16 lpf_biq0;
182 u16 lna2;
183 u16 lna1;
562c8850 184 s8 txpwrindex;
a9533e7e
HP
185} nphy_ipa_txrxgain_t;
186
187#define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
188
189nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz[] = { {0, 0, 0, 0, 0, 100},
190{0, 0, 0, 0, 0, 50},
191{0, 0, 0, 0, 0, -1},
192{0, 0, 0, 3, 0, -1},
193{0, 0, 3, 3, 0, -1},
194{0, 2, 3, 3, 0, -1}
195};
196
197nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz[] = { {0, 0, 0, 0, 0, 128},
198{0, 0, 0, 0, 0, 70},
199{0, 0, 0, 0, 0, 20},
200{0, 0, 0, 3, 0, 20},
201{0, 0, 3, 3, 0, 20},
202{0, 2, 3, 3, 0, 20}
203};
204
205nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = { {0, 0, 0, 0, 0, 100},
206{0, 0, 0, 0, 0, 50},
207{0, 0, 0, 0, 0, -1},
208{0, 0, 0, 3, 0, -1},
209{0, 0, 3, 3, 0, -1},
210{0, 0, 5, 3, 0, -1}
211};
212
213nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = { {0, 0, 0, 0, 0, 10},
214{0, 0, 0, 1, 0, 10},
215{0, 0, 1, 2, 0, 10},
216{0, 0, 1, 3, 0, 10},
217{0, 0, 4, 3, 0, 10},
218{0, 0, 6, 3, 0, 10}
219};
220
221#define NPHY_RXCAL_TONEAMP 181
222#define NPHY_RXCAL_TONEFREQ_40MHz 4000
223#define NPHY_RXCAL_TONEFREQ_20MHz 2000
224
225enum {
226 NPHY_RXCAL_GAIN_INIT = 0,
227 NPHY_RXCAL_GAIN_UP,
228 NPHY_RXCAL_GAIN_DOWN
229};
230
231#define wlc_phy_get_papd_nphy(pi) \
232 (read_phy_reg((pi), 0x1e7) & \
233 ((0x1 << 15) | \
234 (0x1 << 14) | \
235 (0x1 << 13)))
236
237#define TXFILT_SHAPING_OFDM20 0
238#define TXFILT_SHAPING_OFDM40 1
239#define TXFILT_SHAPING_CCK 2
240#define TXFILT_DEFAULT_OFDM20 3
241#define TXFILT_DEFAULT_OFDM40 4
242
7d4df48e 243u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
a9533e7e
HP
244 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
245 230, -44, 230, 201, -191, 201},
246 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
247 26, 34, -32, 34},
248 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
249 121, -73, 121, 91, 124, 91},
250 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
251 151, 301, 151, 602, -752, 602},
252 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
253 12, 25, 12, 13, 27, 13},
254 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
255 230, -44, 230, 201, -191, 201},
256 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
257 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
258};
259
260typedef struct _chan_info_nphy_2055 {
7d4df48e
GKH
261 u16 chan;
262 u16 freq;
a9533e7e 263 uint unknown;
e868ab03
GKH
264 u8 RF_pll_ref;
265 u8 RF_rf_pll_mod1;
266 u8 RF_rf_pll_mod0;
267 u8 RF_vco_cap_tail;
268 u8 RF_vco_cal1;
269 u8 RF_vco_cal2;
270 u8 RF_pll_lf_c1;
271 u8 RF_pll_lf_r1;
272 u8 RF_pll_lf_c2;
273 u8 RF_lgbuf_cen_buf;
274 u8 RF_lgen_tune1;
275 u8 RF_lgen_tune2;
276 u8 RF_core1_lgbuf_a_tune;
277 u8 RF_core1_lgbuf_g_tune;
278 u8 RF_core1_rxrf_reg1;
279 u8 RF_core1_tx_pga_pad_tn;
280 u8 RF_core1_tx_mx_bgtrim;
281 u8 RF_core2_lgbuf_a_tune;
282 u8 RF_core2_lgbuf_g_tune;
283 u8 RF_core2_rxrf_reg1;
284 u8 RF_core2_tx_pga_pad_tn;
285 u8 RF_core2_tx_mx_bgtrim;
7d4df48e
GKH
286 u16 PHY_BW1a;
287 u16 PHY_BW2;
288 u16 PHY_BW3;
289 u16 PHY_BW4;
290 u16 PHY_BW5;
291 u16 PHY_BW6;
a9533e7e
HP
292} chan_info_nphy_2055_t;
293
294typedef struct _chan_info_nphy_radio205x {
7d4df48e
GKH
295 u16 chan;
296 u16 freq;
e868ab03
GKH
297 u8 RF_SYN_pll_vcocal1;
298 u8 RF_SYN_pll_vcocal2;
299 u8 RF_SYN_pll_refdiv;
300 u8 RF_SYN_pll_mmd2;
301 u8 RF_SYN_pll_mmd1;
302 u8 RF_SYN_pll_loopfilter1;
303 u8 RF_SYN_pll_loopfilter2;
304 u8 RF_SYN_pll_loopfilter3;
305 u8 RF_SYN_pll_loopfilter4;
306 u8 RF_SYN_pll_loopfilter5;
307 u8 RF_SYN_reserved_addr27;
308 u8 RF_SYN_reserved_addr28;
309 u8 RF_SYN_reserved_addr29;
310 u8 RF_SYN_logen_VCOBUF1;
311 u8 RF_SYN_logen_MIXER2;
312 u8 RF_SYN_logen_BUF3;
313 u8 RF_SYN_logen_BUF4;
314 u8 RF_RX0_lnaa_tune;
315 u8 RF_RX0_lnag_tune;
316 u8 RF_TX0_intpaa_boost_tune;
317 u8 RF_TX0_intpag_boost_tune;
318 u8 RF_TX0_pada_boost_tune;
319 u8 RF_TX0_padg_boost_tune;
320 u8 RF_TX0_pgaa_boost_tune;
321 u8 RF_TX0_pgag_boost_tune;
322 u8 RF_TX0_mixa_boost_tune;
323 u8 RF_TX0_mixg_boost_tune;
324 u8 RF_RX1_lnaa_tune;
325 u8 RF_RX1_lnag_tune;
326 u8 RF_TX1_intpaa_boost_tune;
327 u8 RF_TX1_intpag_boost_tune;
328 u8 RF_TX1_pada_boost_tune;
329 u8 RF_TX1_padg_boost_tune;
330 u8 RF_TX1_pgaa_boost_tune;
331 u8 RF_TX1_pgag_boost_tune;
332 u8 RF_TX1_mixa_boost_tune;
333 u8 RF_TX1_mixg_boost_tune;
7d4df48e
GKH
334 u16 PHY_BW1a;
335 u16 PHY_BW2;
336 u16 PHY_BW3;
337 u16 PHY_BW4;
338 u16 PHY_BW5;
339 u16 PHY_BW6;
a9533e7e
HP
340} chan_info_nphy_radio205x_t;
341
342typedef struct _chan_info_nphy_radio2057 {
7d4df48e
GKH
343 u16 chan;
344 u16 freq;
e868ab03
GKH
345 u8 RF_vcocal_countval0;
346 u8 RF_vcocal_countval1;
347 u8 RF_rfpll_refmaster_sparextalsize;
348 u8 RF_rfpll_loopfilter_r1;
349 u8 RF_rfpll_loopfilter_c2;
350 u8 RF_rfpll_loopfilter_c1;
351 u8 RF_cp_kpd_idac;
352 u8 RF_rfpll_mmd0;
353 u8 RF_rfpll_mmd1;
354 u8 RF_vcobuf_tune;
355 u8 RF_logen_mx2g_tune;
356 u8 RF_logen_mx5g_tune;
357 u8 RF_logen_indbuf2g_tune;
358 u8 RF_logen_indbuf5g_tune;
359 u8 RF_txmix2g_tune_boost_pu_core0;
360 u8 RF_pad2g_tune_pus_core0;
361 u8 RF_pga_boost_tune_core0;
362 u8 RF_txmix5g_boost_tune_core0;
363 u8 RF_pad5g_tune_misc_pus_core0;
364 u8 RF_lna2g_tune_core0;
365 u8 RF_lna5g_tune_core0;
366 u8 RF_txmix2g_tune_boost_pu_core1;
367 u8 RF_pad2g_tune_pus_core1;
368 u8 RF_pga_boost_tune_core1;
369 u8 RF_txmix5g_boost_tune_core1;
370 u8 RF_pad5g_tune_misc_pus_core1;
371 u8 RF_lna2g_tune_core1;
372 u8 RF_lna5g_tune_core1;
7d4df48e
GKH
373 u16 PHY_BW1a;
374 u16 PHY_BW2;
375 u16 PHY_BW3;
376 u16 PHY_BW4;
377 u16 PHY_BW5;
378 u16 PHY_BW6;
a9533e7e
HP
379} chan_info_nphy_radio2057_t;
380
381typedef struct _chan_info_nphy_radio2057_rev5 {
7d4df48e
GKH
382 u16 chan;
383 u16 freq;
e868ab03
GKH
384 u8 RF_vcocal_countval0;
385 u8 RF_vcocal_countval1;
386 u8 RF_rfpll_refmaster_sparextalsize;
387 u8 RF_rfpll_loopfilter_r1;
388 u8 RF_rfpll_loopfilter_c2;
389 u8 RF_rfpll_loopfilter_c1;
390 u8 RF_cp_kpd_idac;
391 u8 RF_rfpll_mmd0;
392 u8 RF_rfpll_mmd1;
393 u8 RF_vcobuf_tune;
394 u8 RF_logen_mx2g_tune;
395 u8 RF_logen_indbuf2g_tune;
396 u8 RF_txmix2g_tune_boost_pu_core0;
397 u8 RF_pad2g_tune_pus_core0;
398 u8 RF_lna2g_tune_core0;
399 u8 RF_txmix2g_tune_boost_pu_core1;
400 u8 RF_pad2g_tune_pus_core1;
401 u8 RF_lna2g_tune_core1;
7d4df48e
GKH
402 u16 PHY_BW1a;
403 u16 PHY_BW2;
404 u16 PHY_BW3;
405 u16 PHY_BW4;
406 u16 PHY_BW5;
407 u16 PHY_BW6;
a9533e7e
HP
408} chan_info_nphy_radio2057_rev5_t;
409
410typedef struct nphy_sfo_cfg {
7d4df48e
GKH
411 u16 PHY_BW1a;
412 u16 PHY_BW2;
413 u16 PHY_BW3;
414 u16 PHY_BW4;
415 u16 PHY_BW5;
416 u16 PHY_BW6;
a9533e7e
HP
417} nphy_sfo_cfg_t;
418
419static chan_info_nphy_2055_t chan_info_nphy_2055[] = {
420 {
421 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
422 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
423 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
424 {
425 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
426 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
427 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
428 {
429 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
430 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
431 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
432 {
433 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
434 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
435 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
436 {
437 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
438 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
439 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
440 {
441 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
442 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
443 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
444 {
445 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
446 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
447 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
448 {
449 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
450 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
451 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
452 {
453 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
454 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
455 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
456 {
457 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
458 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
459 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
460 {
461 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
462 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
463 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
464 {
465 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
466 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
467 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
468 {
469 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
470 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
471 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
472 {
473 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
474 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
475 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
476 {
477 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
478 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
479 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
480 {
481 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
482 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
483 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
484 {
485 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
486 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
487 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
488 {
489 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
490 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
491 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
492 {
493 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
494 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
495 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
496 {
497 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
498 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
499 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
500 {
501 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
502 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
503 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
504 {
505 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
506 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
507 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
508 {
509 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
510 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
511 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
512 {
513 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
514 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
515 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
516 {
517 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
518 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
519 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
520 {
521 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
522 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
523 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
524 {
525 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
526 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
527 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
528 {
529 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
530 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
531 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
532 {
533 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
534 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
535 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
536 {
537 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
538 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
539 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
540 {
541 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
542 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
543 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
544 {
545 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
546 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
547 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
548 {
549 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
550 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
551 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
552 {
553 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
554 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
555 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
556 {
557 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
558 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
559 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
560 {
561 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
562 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
563 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
564 {
565 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
566 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
567 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
568 {
569 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
570 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
571 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
572 {
573 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
574 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
575 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
576 {
577 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
578 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
579 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
580 {
581 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
582 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
583 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
584 {
585 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
586 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
587 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
588 {
589 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
590 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
591 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
592 {
593 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
594 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
595 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
596 {
597 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
598 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
599 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
600 {
601 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
602 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
603 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
604 {
605 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
606 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
607 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
608 {
609 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
610 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
611 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
612 {
613 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
614 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
615 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
616 {
617 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
618 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
619 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
620 {
621 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
622 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
623 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
624 {
625 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
626 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
627 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
628 {
629 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
630 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
631 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
632 {
633 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
634 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
635 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
636 {
637 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
638 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
639 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
640 {
641 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
642 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
643 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
644 {
645 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
646 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
647 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
648 {
649 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
650 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
651 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
652 {
653 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
654 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
655 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
656 {
657 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
658 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
659 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
660 {
661 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
662 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
663 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
664 {
665 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
666 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
667 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
668 {
669 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
670 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
671 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
672 {
673 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
674 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
675 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
676 {
677 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
678 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
679 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
680 {
681 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
682 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
683 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
684 {
685 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
686 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
687 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
688 {
689 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
690 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
691 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
692 {
693 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
694 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
695 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
696 {
697 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
698 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
699 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
700 {
701 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
702 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
703 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
704 {
705 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
706 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
707 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
708 {
709 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
710 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
711 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
712 {
713 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
714 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
715 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
716 {
717 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
718 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
719 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
720 {
721 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
722 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
723 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
724 {
725 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
726 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
727 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
728 {
729 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
730 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
731 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
732 {
733 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
734 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
735 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
736 {
737 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
738 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
739 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
740 {
741 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
742 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
743 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
744 {
745 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
746 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
747 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
748 {
749 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
750 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
751 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
752 {
753 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
754 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
755 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
756 {
757 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
758 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
759 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
760 {
761 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
762 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
763 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
764 {
765 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
766 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
767 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
768 {
769 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
770 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
771 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
772 {
773 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
774 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
775 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
776 {
777 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
778 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
779 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
780 {
781 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
782 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
783 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
784 {
785 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
786 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
787 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
788 {
789 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
790 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
791 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
792 {
793 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
794 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
795 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
796 {
797 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
798 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
799 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
800 {
801 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
802 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
803 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
804 {
805 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
806 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
807 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
808 {
809 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
810 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
811 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
812 {
813 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
814 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
815 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
816 {
817 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
818 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
819 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
820 {
821 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
822 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
823 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
824 {
825 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
826 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
827 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
828 {
829 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
830 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
831 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
832 {
833 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
834 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
835 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
836 {
837 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
838 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
839 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
840 {
841 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
842 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
843 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
844 {
845 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
846 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
847 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
848 {
849 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
850 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
851 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
852 {
853 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
854 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
855 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
856 {
857 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
858 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
859 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
860 {
861 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
862 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
863 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
864 {
865 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
866 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
867 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
868 {
869 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
870 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
871 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
872 {
873 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
874 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
875 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
876 {
877 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
878 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
879 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
880 {
881 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
882 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
883 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
884 {
885 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
886 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
887 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
888 {
889 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
890 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
891 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
892 {
893 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
894 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
895 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
896 {
897 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
898 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
899 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
900 {
901 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
902 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
903 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
904 {
905 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
906 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
907 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
908 {
909 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
910 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
911 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
912 {
913 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
914 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
915 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
916};
917
918static chan_info_nphy_radio205x_t chan_info_nphyrev3_2056[] = {
919 {
920 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
921 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
922 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
923 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
924 {
925 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
926 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
927 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
928 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
929 {
930 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
931 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
932 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
933 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
934 {
935 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
936 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
937 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
938 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
939 {
940 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
941 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
942 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
943 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
944 {
945 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
946 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
947 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
948 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
949 {
950 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
951 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
952 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
953 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
954 {
955 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
956 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
957 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
958 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
959 {
960 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
961 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
962 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
963 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
964 {
965 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
966 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
967 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
968 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
969 {
970 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
971 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
972 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
973 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
974 {
975 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
976 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
977 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
978 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
979 {
980 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
981 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
982 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
983 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
984 {
985 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
986 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
987 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
988 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
989 {
990 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
991 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
992 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
993 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
994 {
995 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
996 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
997 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
998 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
999 {
1000 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1001 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1002 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1003 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1004 {
1005 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1006 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1007 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1008 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1009 {
1010 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1011 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1012 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1013 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1014 {
1015 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1016 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1017 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1018 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1019 {
1020 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1021 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1022 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1023 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1024 {
1025 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1026 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1027 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1028 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1029 {
1030 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1031 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1032 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1033 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1034 {
1035 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1036 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1037 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1038 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1039 {
1040 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1041 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1042 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1043 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1044 {
1045 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1046 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1047 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1048 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1049 {
1050 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1051 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1052 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1053 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1054 {
1055 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1056 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1057 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1058 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1059 {
1060 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1061 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1062 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1063 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1064 {
1065 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1066 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1067 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1068 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1069 {
1070 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1071 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1072 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1073 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1074 {
1075 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1076 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1077 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1078 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1079 {
1080 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1081 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1082 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1083 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1084 {
1085 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1086 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1087 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1088 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1089 {
1090 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1091 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1092 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1093 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1094 {
1095 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1096 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1097 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1098 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1099 {
1100 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1101 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1102 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1103 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1104 {
1105 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1106 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1107 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1108 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1109 {
1110 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1111 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1112 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1113 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1114 {
1115 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1116 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1117 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1118 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1119 {
1120 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1121 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1122 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1123 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1124 {
1125 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1126 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1127 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1128 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1129 {
1130 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1131 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1132 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1133 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1134 {
1135 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1136 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1137 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1138 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1139 {
1140 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1141 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1142 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1143 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1144 {
1145 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1146 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1147 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1148 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1149 {
1150 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1151 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1152 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1153 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1154 {
1155 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1156 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1157 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1158 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1159 {
1160 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1161 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1162 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1163 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1164 {
1165 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1166 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1167 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1168 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1169 {
1170 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1171 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1172 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1173 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1174 {
1175 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1176 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1177 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1178 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1179 {
1180 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1181 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1182 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1183 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1184 {
1185 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1186 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1187 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1188 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1189 {
1190 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1191 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1192 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1193 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1194 {
1195 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1196 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1197 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1198 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1199 {
1200 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1201 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1202 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1203 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1204 {
1205 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1206 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1207 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1208 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1209 {
1210 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1211 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1212 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1213 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1214 {
1215 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1216 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1217 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1218 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1219 {
1220 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1221 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1222 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1223 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1224 {
1225 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1226 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1227 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1228 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1229 {
1230 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1231 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1232 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1233 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1234 {
1235 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1236 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1237 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1238 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1239 {
1240 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1241 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1242 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1243 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1244 {
1245 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1246 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1247 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1248 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1249 {
1250 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1251 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1252 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1253 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1254 {
1255 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1256 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1257 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1258 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1259 {
1260 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1261 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1262 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1263 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1264 {
1265 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1266 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1267 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1268 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1269 {
1270 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1271 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1272 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1273 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1274 {
1275 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1276 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1277 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1278 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1279 {
1280 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1281 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1282 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1283 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1284 {
1285 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1286 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1287 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1288 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1289 {
1290 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1291 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1292 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1293 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1294 {
1295 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1296 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1297 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1298 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1299 {
1300 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1301 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1302 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1303 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1304 {
1305 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1306 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1307 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1308 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1309 {
1310 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1311 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1312 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1313 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1314 {
1315 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1316 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1317 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1318 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1319 {
1320 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1321 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1322 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1323 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1324 {
1325 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1326 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1327 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1328 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1329 {
1330 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1331 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1332 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1333 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1334 {
1335 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1336 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1337 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1338 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1339 {
1340 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1341 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1342 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1343 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1344 {
1345 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1346 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1347 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1348 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1349 {
1350 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1351 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1352 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1353 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1354 {
1355 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1356 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1357 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1358 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1359 {
1360 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1361 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1362 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1363 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1364 {
1365 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1366 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1367 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1368 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1369 {
1370 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1371 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1372 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1373 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1374 {
1375 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1376 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1377 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1378 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1379 {
1380 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1381 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1382 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1383 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1384 {
1385 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1386 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1387 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1388 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1389 {
1390 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1391 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1392 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1393 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1394 {
1395 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1396 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1397 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1398 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1399 {
1400 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1401 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1402 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1403 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1404 {
1405 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1406 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1407 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1408 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1409 {
1410 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1411 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1412 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1413 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1414 {
1415 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1416 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1417 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1418 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1419 {
1420 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1421 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1422 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1423 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1424 {
1425 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1426 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1427 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1428 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1429 {
1430 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1431 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1432 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1433 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1434 {
1435 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1436 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1437 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1438 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1439 {
1440 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1441 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1442 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1443 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1444 {
1445 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1446 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1447 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1448 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1449 {
1450 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1451 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1452 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1453 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1454 {
1455 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1456 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1457 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1458 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1459 {
1460 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1461 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1462 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1463 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1464 {
1465 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1466 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1467 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1468 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1469 {
1470 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1471 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1472 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1473 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1474 {
1475 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1476 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1477 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1478 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1479 {
1480 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1481 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1482 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1483 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1484 {
1485 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1486 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1487 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1488 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1489 {
1490 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1491 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1492 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1493 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1494 {
1495 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1496 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1497 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1498 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1499 {
1500 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1501 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1502 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1503 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1504 {
1505 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1506 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1507 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1508 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1509 {
1510 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1511 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1512 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1513 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1514 {
1515 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1516 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1517 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1518 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1519 {
1520 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1521 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1522 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1523 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1524 {
1525 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1526 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1527 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1528 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1529 {
1530 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1531 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1532 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1533 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1534 {
1535 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1536 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1537 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1538 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1539};
1540
1541static chan_info_nphy_radio205x_t chan_info_nphyrev4_2056_A1[] = {
1542 {
1543 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1544 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1545 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1546 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1547 {
1548 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1549 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1550 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1551 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1552 {
1553 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1554 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1555 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1556 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1557 {
1558 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1559 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1560 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1561 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1562 {
1563 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1564 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1565 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1566 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1567 {
1568 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1569 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1570 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1571 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1572 {
1573 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1574 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1575 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1576 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1577 {
1578 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1579 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1580 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1581 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1582 {
1583 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1584 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1585 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1586 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1587 {
1588 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1589 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1590 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1591 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1592 {
1593 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1594 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1595 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1596 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1597 {
1598 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1599 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1600 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1601 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1602 {
1603 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1604 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1605 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1606 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1607 {
1608 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1609 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1610 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1611 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1612 {
1613 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1614 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1615 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1616 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1617 {
1618 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1619 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1620 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1621 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1622 {
1623 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1624 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1625 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1626 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1627 {
1628 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1629 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1630 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1631 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1632 {
1633 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1634 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1635 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1636 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1637 {
1638 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1639 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1640 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1641 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1642 {
1643 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1644 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1645 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1646 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1647 {
1648 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1649 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1650 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1651 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1652 {
1653 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1654 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1655 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1656 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1657 {
1658 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1659 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1660 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1661 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1662 {
1663 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1664 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1665 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1666 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1667 {
1668 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1669 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1670 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1671 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1672 {
1673 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1674 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1675 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1676 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1677 {
1678 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1679 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1680 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1681 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1682 {
1683 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1684 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1685 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1686 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1687 {
1688 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1689 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1690 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1691 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1692 {
1693 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1694 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1695 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1696 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1697 {
1698 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1699 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1700 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1701 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1702 {
1703 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1704 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1705 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1706 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1707 {
1708 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1709 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1710 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1711 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1712 {
1713 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1714 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1715 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1716 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1717 {
1718 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1719 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1720 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1721 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1722 {
1723 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1724 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1725 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1726 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1727 {
1728 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1729 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1730 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1731 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1732 {
1733 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1734 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1735 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1736 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1737 {
1738 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1739 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1740 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1741 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1742 {
1743 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1744 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1745 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1746 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1747 {
1748 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1749 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1750 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1751 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1752 {
1753 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1754 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1755 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1756 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1757 {
1758 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1759 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1760 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1761 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1762 {
1763 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1764 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1765 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1766 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1767 {
1768 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1769 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1770 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1771 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1772 {
1773 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1774 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1775 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1776 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1777 {
1778 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1779 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1780 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1781 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1782 {
1783 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1784 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1785 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1786 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1787 {
1788 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1789 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1790 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1791 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1792 {
1793 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1794 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1795 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1796 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1797 {
1798 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1799 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1800 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1801 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1802 {
1803 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1804 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1805 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1806 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1807 {
1808 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1809 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1810 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1811 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1812 {
1813 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1814 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1815 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1816 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1817 {
1818 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1819 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1820 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1821 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1822 {
1823 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1824 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1825 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1826 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1827 {
1828 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1829 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1830 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1831 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1832 {
1833 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1834 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1835 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1836 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1837 {
1838 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1839 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1840 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1841 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1842 {
1843 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1844 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1845 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1846 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1847 {
1848 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1849 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1850 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1851 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1852 {
1853 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1854 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1855 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1856 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1857 {
1858 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1859 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1860 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1861 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1862 {
1863 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1864 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1865 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1866 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1867 {
1868 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1869 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1870 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1871 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1872 {
1873 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1874 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1875 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1876 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1877 {
1878 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1879 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1880 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1881 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1882 {
1883 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1884 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1885 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1886 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1887 {
1888 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1889 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1890 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1891 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1892 {
1893 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1894 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1895 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1896 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1897 {
1898 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1899 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1900 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1901 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1902 {
1903 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1904 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1905 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1906 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1907 {
1908 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1909 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1910 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1911 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1912 {
1913 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1914 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1915 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1916 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1917 {
1918 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1919 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1920 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1921 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1922 {
1923 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1924 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1925 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1926 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1927 {
1928 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1929 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1930 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1931 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1932 {
1933 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1934 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1935 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1936 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1937 {
1938 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1939 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1940 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1941 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1942 {
1943 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1944 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1945 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1946 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1947 {
1948 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1949 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1950 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1951 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1952 {
1953 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1954 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1955 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1956 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1957 {
1958 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1959 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1960 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1961 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1962 {
1963 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1964 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1965 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1966 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1967 {
1968 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1969 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1970 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1971 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1972 {
1973 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1974 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1975 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1976 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1977 {
1978 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1979 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1980 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1981 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1982 {
1983 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1984 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1985 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1986 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1987 {
1988 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1989 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1990 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1991 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1992 {
1993 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1994 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1995 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1996 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1997 {
1998 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1999 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
2000 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2001 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2002 {
2003 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2004 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2005 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2006 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2007 {
2008 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2009 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2010 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2011 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2012 {
2013 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2014 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2015 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2016 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2017 {
2018 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2019 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2020 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2021 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2022 {
2023 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2024 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2025 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2026 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2027 {
2028 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2029 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2030 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2031 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2032 {
2033 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2034 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2035 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2036 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2037 {
2038 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2039 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2040 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2041 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2042 {
2043 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2044 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2045 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2046 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2047 {
2048 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2049 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2050 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2051 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2052 {
2053 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2054 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2055 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2056 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2057 {
2058 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2059 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2060 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2061 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2062 {
2063 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2064 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2065 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2066 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2067 {
2068 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2069 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2070 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2071 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2072 {
2073 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2074 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2075 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2076 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2077 {
2078 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2079 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2080 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2081 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2082 {
2083 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2084 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2085 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2086 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2087 {
2088 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2089 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2090 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2091 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2092 {
2093 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2094 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2095 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2096 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2097 {
2098 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2099 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2100 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2101 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2102 {
2103 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2104 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2105 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2106 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2107 {
2108 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2109 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2110 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2111 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2112 {
2113 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2114 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2115 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2116 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2117 {
2118 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2119 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2120 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2121 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2122 {
2123 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2124 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2125 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2126 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2127 {
2128 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2129 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2130 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2131 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2132 {
2133 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2134 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2135 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2136 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2137 {
2138 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2139 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2140 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2141 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2142 {
2143 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2144 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2145 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2146 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2147 {
2148 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2149 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2150 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2151 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2152 {
2153 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2154 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2155 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2156 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2157 {
2158 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2159 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2160 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2161 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2162};
2163
2164static chan_info_nphy_radio205x_t chan_info_nphyrev5_2056v5[] = {
2165 {
2166 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2167 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2168 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2169 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2170 {
2171 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2172 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2173 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2174 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2175 {
2176 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2177 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2178 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2179 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2180 {
2181 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2182 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2183 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2184 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2185 {
2186 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2187 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2188 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2189 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2190 {
2191 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2192 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2193 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2194 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2195 {
2196 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2197 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2198 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2199 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2200 {
2201 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2202 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2203 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2204 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2205 {
2206 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2207 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2208 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2209 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2210 {
2211 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2212 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2213 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2214 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2215 {
2216 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2217 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2218 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2219 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2220 {
2221 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2222 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2223 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2224 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2225 {
2226 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2227 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2228 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2229 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2230 {
2231 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2232 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2233 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2234 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2235 {
2236 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2237 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2238 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2239 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2240 {
2241 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2242 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2243 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2244 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2245 {
2246 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2247 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2248 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2249 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2250 {
2251 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2252 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2253 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2254 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2255 {
2256 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2257 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2258 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2259 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2260 {
2261 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2262 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2263 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2264 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2265 {
2266 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2267 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2268 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2269 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2270 {
2271 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2272 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2273 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2274 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2275 {
2276 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2277 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2278 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2279 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2280 {
2281 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2282 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2283 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2284 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2285 {
2286 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2287 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2288 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2289 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2290 {
2291 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2292 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2293 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2294 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2295 {
2296 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2297 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2298 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2299 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2300 {
2301 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2302 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2303 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2304 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2305 {
2306 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2307 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2308 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2309 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2310 {
2311 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2312 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2313 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2314 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2315 {
2316 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2317 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2318 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2319 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2320 {
2321 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2322 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2323 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2324 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2325 {
2326 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2327 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2328 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2329 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2330 {
2331 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2332 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2333 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2334 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2335 {
2336 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2337 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2338 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2339 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2340 {
2341 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2342 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2343 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2344 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2345 {
2346 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2347 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2348 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2349 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2350 {
2351 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2352 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2353 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2354 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2355 {
2356 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2357 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2358 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2359 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2360 {
2361 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2362 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2363 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2364 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2365 {
2366 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2367 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2368 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2369 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2370 {
2371 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2372 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2373 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2374 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2375 {
2376 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2377 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2378 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2379 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2380 {
2381 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2382 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2383 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2384 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2385 {
2386 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2387 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2388 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2389 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2390 {
2391 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2392 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2393 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2394 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2395 {
2396 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2397 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2398 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2399 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2400 {
2401 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2402 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2403 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2404 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2405 {
2406 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2407 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2408 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2409 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2410 {
2411 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2412 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2413 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2414 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2415 {
2416 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2417 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2418 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2419 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2420 {
2421 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2422 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2423 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2424 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2425 {
2426 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2427 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2428 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2429 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2430 {
2431 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2432 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2433 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2434 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2435 {
2436 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2437 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2438 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2439 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2440 {
2441 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2442 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2443 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2444 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2445 {
2446 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2447 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2448 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2449 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2450 {
2451 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2452 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2453 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2454 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2455 {
2456 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2457 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2458 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2459 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2460 {
2461 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2462 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2463 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2464 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2465 {
2466 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2467 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2468 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2469 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2470 {
2471 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2472 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2473 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2474 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2475 {
2476 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2477 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2478 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2479 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2480 {
2481 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2482 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2483 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2484 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2485 {
2486 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2487 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2488 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2489 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2490 {
2491 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2492 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2493 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2494 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2495 {
2496 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2497 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2498 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2499 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2500 {
2501 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2502 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2503 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2504 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2505 {
2506 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2507 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2508 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2509 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2510 {
2511 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2512 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2513 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2514 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2515 {
2516 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2517 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2518 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2519 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2520 {
2521 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2522 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2523 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2524 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2525 {
2526 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2527 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2528 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2529 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2530 {
2531 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2532 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2533 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2534 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2535 {
2536 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2537 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2538 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2539 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2540 {
2541 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2542 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2543 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2544 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2545 {
2546 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2547 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2548 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2549 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2550 {
2551 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2552 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2553 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2554 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2555 {
2556 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2557 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2558 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2559 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2560 {
2561 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2562 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2563 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2564 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2565 {
2566 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2567 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2568 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2569 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2570 {
2571 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2572 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2573 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2574 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2575 {
2576 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2577 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2578 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2579 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2580 {
2581 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2582 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2583 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2584 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2585 {
2586 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2587 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2588 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2589 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2590 {
2591 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2592 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2593 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2594 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2595 {
2596 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2597 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2598 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2599 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2600 {
2601 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2602 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2603 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2604 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2605 {
2606 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2607 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2608 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2609 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2610 {
2611 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2612 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2613 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2614 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2615 {
2616 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2617 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2618 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2619 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2620 {
2621 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2622 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2623 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2624 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2625 {
2626 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2627 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2628 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2629 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2630 {
2631 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2632 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2633 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2634 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2635 {
2636 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2637 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2638 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2639 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2640 {
2641 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2642 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2643 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2644 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2645 {
2646 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2647 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2648 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2649 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2650 {
2651 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2652 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2653 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2654 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2655 {
2656 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2657 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2658 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2659 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2660 {
2661 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2662 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2663 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2664 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2665 {
2666 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2667 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2668 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2669 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2670 {
2671 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2672 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2673 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2674 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2675 {
2676 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2677 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2678 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2679 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2680 {
2681 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2682 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2683 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2684 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2685 {
2686 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2687 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2688 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2689 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2690 {
2691 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2692 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2693 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2694 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2695 {
2696 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2697 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2698 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2699 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2700 {
2701 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2702 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2703 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2704 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2705 {
2706 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2707 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2708 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2709 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2710 {
2711 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2712 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2713 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2714 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2715 {
2716 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2717 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2718 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2719 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2720 {
2721 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2722 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2723 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2724 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2725 {
2726 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2727 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2728 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2729 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2730 {
2731 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2732 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2733 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2734 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2735 {
2736 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2737 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2738 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2739 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2740 {
2741 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2742 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2743 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2744 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2745 {
2746 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2747 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2748 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2749 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2750 {
2751 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2752 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2753 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2754 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2755 {
2756 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2757 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2758 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2759 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2760 {
2761 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2762 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2763 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2764 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2765 {
2766 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2767 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2768 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2769 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2770 {
2771 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2772 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2773 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2774 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2775 {
2776 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2777 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2778 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2779 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2780 {
2781 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2782 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2783 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2784 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2785};
2786
2787static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v6[] = {
2788 {
2789 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2790 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2791 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2792 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2793 {
2794 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2795 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2796 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2797 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2798 {
2799 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2800 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2801 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2802 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2803 {
2804 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2805 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2806 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2807 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2808 {
2809 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2810 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2811 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2812 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2813 {
2814 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2815 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2816 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2817 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2818 {
2819 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2820 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2821 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2822 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2823 {
2824 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2825 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2826 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2827 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2828 {
2829 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2830 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2831 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2832 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2833 {
2834 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2835 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2836 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2837 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2838 {
2839 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2840 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2841 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2842 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2843 {
2844 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2845 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2846 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2847 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2848 {
2849 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2850 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2851 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2852 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2853 {
2854 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2855 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2856 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2857 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2858 {
2859 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2860 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2861 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2862 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2863 {
2864 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2865 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2866 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2867 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2868 {
2869 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2870 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2871 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2872 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2873 {
2874 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2875 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2876 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2877 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2878 {
2879 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2880 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2881 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2882 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2883 {
2884 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2885 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2886 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2887 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2888 {
2889 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2890 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2891 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2892 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2893 {
2894 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2895 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2896 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2897 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2898 {
2899 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2900 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2901 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2902 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2903 {
2904 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2905 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2906 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2907 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2908 {
2909 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2910 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2911 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2912 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2913 {
2914 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2915 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2916 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2917 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2918 {
2919 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2920 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2921 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2922 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2923 {
2924 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2925 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2926 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2927 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2928 {
2929 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2930 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2931 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2932 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2933 {
2934 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2935 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2936 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2937 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2938 {
2939 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2940 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2941 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2942 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2943 {
2944 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2945 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2946 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2947 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2948 {
2949 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2950 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2951 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2952 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2953 {
2954 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2955 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2956 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2957 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2958 {
2959 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2960 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2961 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2962 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2963 {
2964 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2965 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2966 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2967 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2968 {
2969 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2970 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2971 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2972 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2973 {
2974 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2975 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2976 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2977 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2978 {
2979 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2980 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2981 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2982 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2983 {
2984 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2985 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
2986 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2987 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2988 {
2989 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2990 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
2991 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2992 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2993 {
2994 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2995 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2996 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2997 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2998 {
2999 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3000 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
3001 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3002 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3003 {
3004 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3005 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3006 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3007 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3008 {
3009 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3010 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3011 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3012 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3013 {
3014 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3015 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3016 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3017 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3018 {
3019 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3020 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3021 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3022 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3023 {
3024 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3025 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3026 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3027 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3028 {
3029 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3030 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3031 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3032 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3033 {
3034 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3035 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3036 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3037 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3038 {
3039 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3040 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3041 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3042 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3043 {
3044 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3045 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3046 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3047 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3048 {
3049 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3050 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3051 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3052 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3053 {
3054 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3055 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3056 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3057 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3058 {
3059 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3060 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3061 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3062 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3063 {
3064 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3065 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3066 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3067 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3068 {
3069 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3070 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3071 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3072 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3073 {
3074 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3075 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3076 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3077 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3078 {
3079 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3080 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3081 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3082 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3083 {
3084 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3085 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3086 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3087 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3088 {
3089 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3090 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3091 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3092 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3093 {
3094 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3095 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3096 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3097 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3098 {
3099 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3100 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3101 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3102 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3103 {
3104 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3105 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3106 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3107 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3108 {
3109 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3110 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3111 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3112 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3113 {
3114 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3115 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3116 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3117 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3118 {
3119 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3120 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3121 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3122 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3123 {
3124 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3125 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3126 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3127 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3128 {
3129 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3130 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3131 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3132 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3133 {
3134 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3135 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3136 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3137 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3138 {
3139 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3140 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3141 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3142 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3143 {
3144 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3145 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3146 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3147 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3148 {
3149 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3150 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3151 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3152 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3153 {
3154 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3155 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3156 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3157 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3158 {
3159 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3160 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3161 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3162 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3163 {
3164 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3165 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3166 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3167 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3168 {
3169 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3170 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3171 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3172 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3173 {
3174 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3175 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3176 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3177 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3178 {
3179 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3180 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3181 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3182 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3183 {
3184 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3185 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3186 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3187 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3188 {
3189 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3190 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3191 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3192 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3193 {
3194 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3195 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3196 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3197 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3198 {
3199 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3200 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3201 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3202 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3203 {
3204 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3205 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3206 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3207 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3208 {
3209 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3210 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3211 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3212 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3213 {
3214 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3215 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3216 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3217 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3218 {
3219 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3220 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3221 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3222 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3223 {
3224 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3225 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3226 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3227 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3228 {
3229 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3230 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3231 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3232 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3233 {
3234 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3235 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3236 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3237 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3238 {
3239 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3240 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3241 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3242 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3243 {
3244 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3245 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3246 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3247 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3248 {
3249 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3250 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3251 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3252 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3253 {
3254 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3255 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3256 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3257 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3258 {
3259 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3260 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3261 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3262 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3263 {
3264 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3265 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3266 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3267 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3268 {
3269 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3270 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3271 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3272 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3273 {
3274 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3275 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3276 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3277 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3278 {
3279 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3280 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3281 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3282 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3283 {
3284 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3285 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3286 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3287 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3288 {
3289 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3290 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3291 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3292 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3293 {
3294 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3295 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3296 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3297 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3298 {
3299 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3300 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3301 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3302 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3303 {
3304 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3305 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3306 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3307 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3308 {
3309 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3310 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3311 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3312 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3313 {
3314 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3315 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3316 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3317 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3318 {
3319 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3320 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3321 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3322 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3323 {
3324 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3325 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3326 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3327 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3328 {
3329 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3330 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3331 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3332 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3333 {
3334 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3335 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3336 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3337 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3338 {
3339 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3340 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3341 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3342 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3343 {
3344 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3345 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3346 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3347 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3348 {
3349 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3350 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3351 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3352 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3353 {
3354 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3355 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3356 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3357 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3358 {
3359 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3360 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3361 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3362 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3363 {
3364 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3365 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3366 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3367 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3368 {
3369 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3370 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3371 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3372 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3373 {
3374 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3375 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3376 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3377 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3378 {
3379 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3380 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3381 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3382 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3383 {
3384 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3385 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3386 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3387 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3388 {
3389 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3390 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3391 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3392 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3393 {
3394 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3395 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3396 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3397 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3398 {
3399 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3400 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3401 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3402 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3403 {
3404 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3405 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3406 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3407 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3408};
3409
3410static chan_info_nphy_radio205x_t chan_info_nphyrev5n6_2056v7[] = {
3411 {
3412 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3413 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3414 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3415 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3416 {
3417 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3418 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3419 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3420 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3421 {
3422 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3423 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3424 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3425 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3426 {
3427 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3428 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3429 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3430 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3431 {
3432 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3433 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3434 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3435 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3436 {
3437 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3438 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3439 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3440 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3441 {
3442 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3443 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3444 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3445 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3446 {
3447 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3448 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3449 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3450 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3451 {
3452 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3453 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3454 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3455 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3456 {
3457 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3458 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3459 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3460 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3461 {
3462 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3463 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3464 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3465 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3466 {
3467 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3468 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3469 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3470 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3471 {
3472 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3473 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3474 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3475 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3476 {
3477 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3478 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3479 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3480 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3481 {
3482 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3483 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3484 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3485 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3486 {
3487 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3488 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3489 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3490 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3491 {
3492 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3493 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3494 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3495 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3496 {
3497 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3498 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3499 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3500 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3501 {
3502 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3503 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3504 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3505 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3506 {
3507 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3508 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3509 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3510 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3511 {
3512 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3513 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3514 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3515 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3516 {
3517 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3518 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3519 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3520 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3521 {
3522 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3523 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3524 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3525 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3526 {
3527 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3528 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3529 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3530 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3531 {
3532 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3533 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3534 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3535 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3536 {
3537 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3538 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3539 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3540 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3541 {
3542 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3543 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3544 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3545 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3546 {
3547 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3548 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3549 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3550 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3551 {
3552 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3553 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3554 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3555 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3556 {
3557 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3558 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3559 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3560 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3561 {
3562 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3563 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3564 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3565 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3566 {
3567 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3568 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3569 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3570 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3571 {
3572 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3573 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3574 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3575 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3576 {
3577 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3578 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3579 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3580 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3581 {
3582 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3583 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3584 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3585 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3586 {
3587 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3588 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3589 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3590 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3591 {
3592 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3593 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3594 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3595 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3596 {
3597 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3598 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3599 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3600 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3601 {
3602 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3603 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3604 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3605 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3606 {
3607 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3608 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3609 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3610 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3611 {
3612 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3613 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3614 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3615 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3616 {
3617 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3618 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3619 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3620 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3621 {
3622 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3623 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3624 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3625 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3626 {
3627 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3628 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3629 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3630 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3631 {
3632 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3633 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3634 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3635 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3636 {
3637 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3638 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3639 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3640 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3641 {
3642 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3643 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3644 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3645 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3646 {
3647 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3648 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3649 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3650 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3651 {
3652 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3653 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3654 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3655 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3656 {
3657 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3658 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3659 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3660 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3661 {
3662 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3663 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3664 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3665 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3666 {
3667 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3668 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3669 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3670 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3671 {
3672 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3673 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3674 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3675 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3676 {
3677 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3678 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3679 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3680 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3681 {
3682 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3683 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3684 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3685 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3686 {
3687 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3688 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3689 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3690 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3691 {
3692 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3693 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3694 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3695 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3696 {
3697 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3698 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3699 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3700 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3701 {
3702 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3703 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3704 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3705 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3706 {
3707 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3708 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3709 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3710 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3711 {
3712 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3713 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3714 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3715 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3716 {
3717 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3718 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3719 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3720 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3721 {
3722 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3723 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3724 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3725 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3726 {
3727 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3728 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3729 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3730 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3731 {
3732 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3733 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3734 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3735 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3736 {
3737 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3738 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3739 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3740 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3741 {
3742 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3743 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3744 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3745 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3746 {
3747 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3748 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3749 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3750 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3751 {
3752 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3753 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3754 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3755 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3756 {
3757 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3758 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3759 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3760 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3761 {
3762 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3763 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3764 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3765 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3766 {
3767 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3768 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3769 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3770 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3771 {
3772 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3773 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3774 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3775 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3776 {
3777 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3778 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3779 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3780 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3781 {
3782 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3783 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3784 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3785 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3786 {
3787 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3788 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3789 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3790 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3791 {
3792 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3793 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3794 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3795 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3796 {
3797 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3798 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3799 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3800 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3801 {
3802 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3803 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3804 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3805 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3806 {
3807 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3808 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3809 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3810 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3811 {
3812 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3813 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3814 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3815 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3816 {
3817 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3818 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3819 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3820 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3821 {
3822 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3823 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3824 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3825 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3826 {
3827 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3828 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3829 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3830 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3831 {
3832 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3833 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3834 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3835 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3836 {
3837 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3838 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3839 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3840 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3841 {
3842 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3843 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3844 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3845 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3846 {
3847 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3848 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3849 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3850 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3851 {
3852 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3853 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3854 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3855 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3856 {
3857 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3858 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3859 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3860 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3861 {
3862 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3863 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3864 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3865 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3866 {
3867 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3868 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3869 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3870 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3871 {
3872 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3873 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3874 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3875 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3876 {
3877 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3878 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3879 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3880 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3881 {
3882 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3883 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3884 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3885 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3886 {
3887 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3888 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3889 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3890 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3891 {
3892 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3893 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3894 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3895 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3896 {
3897 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3898 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3899 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3900 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3901 {
3902 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3903 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3904 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3905 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3906 {
3907 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3908 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3909 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3910 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3911 {
3912 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3913 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3914 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3915 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3916 {
3917 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3918 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3919 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3920 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3921 {
3922 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3923 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3924 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3925 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3926 {
3927 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3928 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3929 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3930 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3931 {
3932 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3933 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3934 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3935 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3936 {
3937 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3938 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3939 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3940 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3941 {
3942 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3943 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3944 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3945 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3946 {
3947 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3948 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3949 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3950 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3951 {
3952 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3953 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3954 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3955 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3956 {
3957 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3958 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3959 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3960 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3961 {
3962 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3963 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3964 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3965 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3966 {
3967 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3968 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3969 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3970 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3971 {
3972 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3973 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3974 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3975 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3976 {
3977 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3978 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3979 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3980 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3981 {
3982 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3983 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
3984 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
3985 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3986 {
3987 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3988 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
3989 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
3990 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3991 {
3992 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3993 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
3994 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
3995 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3996 {
3997 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3998 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
3999 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4000 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4001 {
4002 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4003 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4004 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4005 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4006 {
4007 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4008 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4009 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4010 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4011 {
4012 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4013 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4014 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4015 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4016 {
4017 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4018 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4019 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4020 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4021 {
4022 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4023 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4024 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4025 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4026 {
4027 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4028 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4029 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4030 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4031};
4032
4033static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v8[] = {
4034 {
4035 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4036 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4037 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4038 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4039 {
4040 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4041 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4042 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4043 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4044 {
4045 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4046 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4047 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4048 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4049 {
4050 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4051 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4052 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4053 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4054 {
4055 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4056 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4057 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4058 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4059 {
4060 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4061 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4062 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4063 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4064 {
4065 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4066 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4067 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4068 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4069 {
4070 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4071 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4072 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4073 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4074 {
4075 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4076 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4077 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4078 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4079 {
4080 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4081 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4082 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4083 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4084 {
4085 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4086 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4087 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4088 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4089 {
4090 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4091 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4092 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4093 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4094 {
4095 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4096 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4097 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4098 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4099 {
4100 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4101 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4102 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4103 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4104 {
4105 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4106 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4107 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4108 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4109 {
4110 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4111 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4112 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4113 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4114 {
4115 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4116 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4117 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4118 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4119 {
4120 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4121 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4122 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4123 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4124 {
4125 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4126 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4127 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4128 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4129 {
4130 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4131 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4132 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4133 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4134 {
4135 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4136 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4137 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4138 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4139 {
4140 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4141 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4142 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4143 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4144 {
4145 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4146 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4147 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4148 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4149 {
4150 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4151 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4152 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4153 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4154 {
4155 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4156 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4157 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4158 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4159 {
4160 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4161 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4162 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4163 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4164 {
4165 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4166 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4167 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4168 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4169 {
4170 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4171 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4172 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4173 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4174 {
4175 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4176 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4177 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4178 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4179 {
4180 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4181 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4182 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4183 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4184 {
4185 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4186 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4187 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4188 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4189 {
4190 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4191 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4192 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4193 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4194 {
4195 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4196 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4197 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4198 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4199 {
4200 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4201 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4202 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4203 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4204 {
4205 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4206 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4207 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4208 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4209 {
4210 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4211 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4212 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4213 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4214 {
4215 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4216 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4217 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4218 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4219 {
4220 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4221 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4222 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4223 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4224 {
4225 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4226 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4227 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4228 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4229 {
4230 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4231 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4232 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4233 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4234 {
4235 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4236 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4237 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4238 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4239 {
4240 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4241 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4242 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4243 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4244 {
4245 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4246 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4247 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4248 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4249 {
4250 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4251 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4252 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4253 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4254 {
4255 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4256 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4257 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4258 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4259 {
4260 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4261 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4262 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4263 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4264 {
4265 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4266 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4267 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4268 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4269 {
4270 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4271 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4272 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4273 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4274 {
4275 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4276 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4277 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4278 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4279 {
4280 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4281 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4282 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4283 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4284 {
4285 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4286 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4287 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4288 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4289 {
4290 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4291 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4292 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4293 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4294 {
4295 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4296 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4297 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4298 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4299 {
4300 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4301 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4302 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4303 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4304 {
4305 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4306 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4307 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4308 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4309 {
4310 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4311 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4312 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4313 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4314 {
4315 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4316 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4317 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4318 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4319 {
4320 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4321 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4322 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4323 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4324 {
4325 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4326 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4327 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4328 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4329 {
4330 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4331 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4332 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4333 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4334 {
4335 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4336 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4337 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4338 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4339 {
4340 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4341 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4342 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4343 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4344 {
4345 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4346 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4347 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4348 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4349 {
4350 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4351 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4352 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4353 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4354 {
4355 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4356 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4357 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4358 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4359 {
4360 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4361 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4362 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4363 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4364 {
4365 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4366 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4367 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4368 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4369 {
4370 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4371 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4372 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4373 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4374 {
4375 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4376 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4377 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4378 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4379 {
4380 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4381 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4382 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4383 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4384 {
4385 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4386 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4387 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4388 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4389 {
4390 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4391 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4392 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4393 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4394 {
4395 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4396 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4397 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4398 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4399 {
4400 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4401 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4402 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4403 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4404 {
4405 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4406 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4407 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4408 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4409 {
4410 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4411 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4412 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4413 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4414 {
4415 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4416 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4417 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4418 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4419 {
4420 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4421 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4422 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4423 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4424 {
4425 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4426 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4427 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4428 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4429 {
4430 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4431 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4432 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4433 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4434 {
4435 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4436 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4437 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4438 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4439 {
4440 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4441 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4442 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4443 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4444 {
4445 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4446 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4447 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4448 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4449 {
4450 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4451 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4452 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4453 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4454 {
4455 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4456 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4457 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4458 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4459 {
4460 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4461 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4462 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4463 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4464 {
4465 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4466 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4467 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4468 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4469 {
4470 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4471 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4472 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4473 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4474 {
4475 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4476 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4477 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4478 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4479 {
4480 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4481 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4482 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4483 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4484 {
4485 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4486 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4487 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4488 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4489 {
4490 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4491 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4492 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4493 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4494 {
4495 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4496 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4497 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4498 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4499 {
4500 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4501 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4502 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4503 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4504 {
4505 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4506 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4507 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4508 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4509 {
4510 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4511 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4512 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4513 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4514 {
4515 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4516 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4517 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4518 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4519 {
4520 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4521 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4522 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4523 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4524 {
4525 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4526 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4527 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4528 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4529 {
4530 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4531 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4532 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4533 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4534 {
4535 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4536 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4537 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4538 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4539 {
4540 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4541 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4542 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4543 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4544 {
4545 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4546 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4547 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4548 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4549 {
4550 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4551 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4552 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4553 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4554 {
4555 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4556 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4557 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4558 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4559 {
4560 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4561 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4562 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4563 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4564 {
4565 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4566 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4567 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4568 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4569 {
4570 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4571 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4572 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4573 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4574 {
4575 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4576 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4577 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4578 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4579 {
4580 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4581 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4582 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4583 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4584 {
4585 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4586 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4587 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4588 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4589 {
4590 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4591 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4592 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4593 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4594 {
4595 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4596 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4597 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4598 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4599 {
4600 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4601 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4602 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4603 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4604 {
4605 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4606 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4607 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4608 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4609 {
4610 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4611 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4612 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4613 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4614 {
4615 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4616 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4617 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4618 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4619 {
4620 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4621 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4622 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4623 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4624 {
4625 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4626 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4627 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4628 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4629 {
4630 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4631 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4632 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4633 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4634 {
4635 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4636 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4637 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4638 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4639 {
4640 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4641 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4642 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4643 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4644 {
4645 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4646 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4647 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4648 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4649 {
4650 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4651 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4652 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4653 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4654};
4655
4656static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v11[] = {
4657 {
4658 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4659 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4660 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4661 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4662 {
4663 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4664 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4665 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4666 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4667 {
4668 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4669 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4670 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4671 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4672 {
4673 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4674 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4675 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4676 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4677 {
4678 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4679 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4680 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4681 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4682 {
4683 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4684 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4685 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4686 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4687 {
4688 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4689 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4690 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4691 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4692 {
4693 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4694 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4695 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4696 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4697 {
4698 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4699 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4700 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4701 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4702 {
4703 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4704 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4705 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4706 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4707 {
4708 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4709 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4710 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4711 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4712 {
4713 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4714 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4715 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4716 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4717 {
4718 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4719 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4720 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4721 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4722 {
4723 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4724 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4725 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4726 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4727 {
4728 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4729 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4730 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4731 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4732 {
4733 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4734 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4735 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4736 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4737 {
4738 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4739 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4740 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4741 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4742 {
4743 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4744 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4745 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4746 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4747 {
4748 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4749 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4750 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4751 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4752 {
4753 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4754 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4755 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4756 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4757 {
4758 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4759 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4760 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4761 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4762 {
4763 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4764 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4765 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4766 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4767 {
4768 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4769 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4770 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4771 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4772 {
4773 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4774 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4775 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4776 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4777 {
4778 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4779 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4780 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4781 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4782 {
4783 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4784 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4785 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4786 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4787 {
4788 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4789 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4790 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4791 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4792 {
4793 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4794 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4795 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4796 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4797 {
4798 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4799 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4800 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4801 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4802 {
4803 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4804 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4805 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4806 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4807 {
4808 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4809 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4810 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4811 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4812 {
4813 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4814 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4815 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4816 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4817 {
4818 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4819 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4820 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4821 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4822 {
4823 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4824 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4825 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4826 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4827 {
4828 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4829 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4830 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4831 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4832 {
4833 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4834 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4835 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4836 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4837 {
4838 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4839 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4840 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4841 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4842 {
4843 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4844 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4845 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4846 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4847 {
4848 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4849 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4850 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4851 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4852 {
4853 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4854 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4855 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4856 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4857 {
4858 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4859 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4860 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4861 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4862 {
4863 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4864 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4865 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4866 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4867 {
4868 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4869 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4870 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4871 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4872 {
4873 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4874 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4875 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4876 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4877 {
4878 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4879 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4880 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4881 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4882 {
4883 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4884 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4885 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4886 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4887 {
4888 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4889 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4890 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4891 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4892 {
4893 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4894 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4895 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4896 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4897 {
4898 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4899 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4900 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4901 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4902 {
4903 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4904 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4905 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4906 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4907 {
4908 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4909 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4910 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4911 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4912 {
4913 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4914 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4915 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4916 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4917 {
4918 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4919 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4920 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4921 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4922 {
4923 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4924 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4925 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4926 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4927 {
4928 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4929 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4930 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4931 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4932 {
4933 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4934 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4935 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4936 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4937 {
4938 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4939 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4940 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4941 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4942 {
4943 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4944 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4945 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4946 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4947 {
4948 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4949 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4950 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4951 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4952 {
4953 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4954 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4955 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4956 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4957 {
4958 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4959 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4960 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4961 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4962 {
4963 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4964 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4965 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4966 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4967 {
4968 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4969 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4970 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4971 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4972 {
4973 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4974 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4975 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4976 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4977 {
4978 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4979 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4980 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4981 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4982 {
4983 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4984 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4985 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4986 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4987 {
4988 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4989 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4990 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4991 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4992 {
4993 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
4994 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4995 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4996 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4997 {
4998 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
4999 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
5000 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
5001 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5002 {
5003 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5004 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5005 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5006 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5007 {
5008 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5009 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5010 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5011 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5012 {
5013 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5014 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5015 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5016 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5017 {
5018 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5019 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5020 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5021 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5022 {
5023 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5024 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5025 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5026 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5027 {
5028 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5029 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5030 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5031 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5032 {
5033 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5034 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5035 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5036 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5037 {
5038 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5039 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5040 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5041 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5042 {
5043 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5044 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5045 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5046 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5047 {
5048 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5049 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5050 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5051 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5052 {
5053 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5054 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5055 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5056 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5057 {
5058 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5059 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5060 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5061 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5062 {
5063 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5064 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5065 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5066 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5067 {
5068 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5069 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5070 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5071 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5072 {
5073 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5074 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5075 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5076 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5077 {
5078 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5079 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5080 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5081 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5082 {
5083 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5084 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5085 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5086 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5087 {
5088 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5089 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5090 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5091 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5092 {
5093 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5094 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5095 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5096 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5097 {
5098 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5099 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5100 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5101 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5102 {
5103 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5104 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5105 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5106 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5107 {
5108 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5109 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5110 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5111 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5112 {
5113 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5114 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5115 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5116 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5117 {
5118 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5119 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5120 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5121 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5122 {
5123 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5124 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5125 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5126 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5127 {
5128 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5129 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5130 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5131 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5132 {
5133 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5134 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5135 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5136 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5137 {
5138 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5139 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5140 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5141 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5142 {
5143 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5144 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5145 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5146 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5147 {
5148 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5149 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5150 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5151 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5152 {
5153 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5154 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5155 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5156 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5157 {
5158 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5159 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5160 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5161 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5162 {
5163 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5164 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5165 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5166 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5167 {
5168 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5169 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5170 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5171 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5172 {
5173 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5174 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5175 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5176 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5177 {
5178 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5179 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5180 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5181 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5182 {
5183 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5184 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5185 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5186 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5187 {
5188 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5189 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5190 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5191 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5192 {
5193 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5194 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5195 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5196 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5197 {
5198 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5199 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5200 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5201 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5202 {
5203 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5204 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5205 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5206 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5207 {
5208 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5209 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5210 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5211 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5212 {
5213 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5214 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5215 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5216 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5217 {
5218 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5219 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5220 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5221 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5222 {
5223 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5224 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5225 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5226 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5227 {
5228 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5229 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5230 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5231 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5232 {
5233 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5234 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5235 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5236 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5237 {
5238 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5239 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5240 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5241 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5242 {
5243 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5244 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5245 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5246 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5247 {
5248 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5249 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5250 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5251 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5252 {
5253 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5254 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5255 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5256 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5257 {
5258 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5259 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5260 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5261 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5262 {
5263 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5264 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5265 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5266 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5267 {
5268 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5269 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5270 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5271 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5272 {
5273 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5274 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5275 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5276 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5277};
5278
5279static chan_info_nphy_radio2057_t chan_info_nphyrev7_2057_rev4[] = {
5280 {
5281 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5282 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5283 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5284 0x0215,
5285 0x0216,
5286 },
5287 {
5288 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5289 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5290 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5291 0x0214,
5292 0x0215,
5293 },
5294 {
5295 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5296 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5297 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5298 0x0213,
5299 0x0214,
5300 },
5301 {
5302 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5303 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5304 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5305 0x0212,
5306 0x0213,
5307 },
5308 {
5309 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5310 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5311 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5312 0x0211,
5313 0x0212,
5314 },
5315 {
5316 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5318 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5319 0x020f,
5320 0x0211,
5321 },
5322 {
5323 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5324 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5325 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5326 0x020e,
5327 0x020f,
5328 },
5329 {
5330 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5331 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5332 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5333 0x020d,
5334 0x020e,
5335 },
5336 {
5337 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5338 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5339 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5340 0x020c,
5341 0x020d,
5342 },
5343 {
5344 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5345 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5346 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5347 0x020b,
5348 0x020c,
5349 },
5350 {
5351 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5352 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5353 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5354 0x020a,
5355 0x020b,
5356 },
5357 {
5358 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5359 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5360 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5361 0x0209,
5362 0x020a,
5363 },
5364 {
5365 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5366 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5367 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5368 0x0208,
5369 0x0209,
5370 },
5371 {
5372 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5373 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5374 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5375 0x0207,
5376 0x0208,
5377 },
5378 {
5379 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5380 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5381 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5382 0x0206,
5383 0x0207,
5384 },
5385 {
5386 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5387 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5388 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5389 0x0205,
5390 0x0206,
5391 },
5392 {
5393 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5394 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5395 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5396 0x0204,
5397 0x0205,
5398 },
5399 {
5400 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5401 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5402 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5403 0x0203,
5404 0x0204,
5405 },
5406 {
5407 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5408 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5409 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5410 0x0202,
5411 0x0203,
5412 },
5413 {
5414 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5415 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5416 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5417 0x0201,
5418 0x0202,
5419 },
5420 {
5421 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5422 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5423 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5424 0x0200,
5425 0x0201,
5426 },
5427 {
5428 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5429 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5430 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5431 0x01ff,
5432 0x0200,
5433 },
5434 {
5435 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5436 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5437 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5438 0x01fe,
5439 0x01ff,
5440 },
5441 {
5442 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5443 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5444 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5445 0x01fc,
5446 0x01fd,
5447 },
5448 {
5449 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5450 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5451 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5452 0x01fb,
5453 0x01fc,
5454 },
5455 {
5456 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5457 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5458 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5459 0x01fa,
5460 0x01fb,
5461 },
5462 {
5463 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5464 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5465 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5466 0x01f9,
5467 0x01fa,
5468 },
5469 {
5470 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5471 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5472 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5473 0x01f8,
5474 0x01f9,
5475 },
5476 {
5477 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5478 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5479 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5480 0x01f7,
5481 0x01f8,
5482 },
5483 {
5484 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5485 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5486 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5487 0x01f6,
5488 0x01f7,
5489 },
5490 {
5491 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5492 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5493 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5494 0x01f5,
5495 0x01f6,
5496 },
5497 {
5498 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5499 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5500 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5501 0x01f4,
5502 0x01f5,
5503 },
5504 {
5505 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5506 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5507 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5508 0x01f3,
5509 0x01f4,
5510 },
5511 {
5512 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5513 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5514 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5515 0x01f2,
5516 0x01f3,
5517 },
5518 {
5519 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5520 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5521 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5522 0x01f1,
5523 0x01f2,
5524 },
5525 {
5526 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5527 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5528 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5529 0x01f0,
5530 0x01f1,
5531 },
5532 {
5533 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5534 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5535 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5536 0x01f0,
5537 0x01f0,
5538 },
5539 {
5540 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5541 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5542 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5543 0x01ef,
5544 0x01f0,
5545 },
5546 {
5547 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5548 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5549 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5550 0x01ee,
5551 0x01ef,
5552 },
5553 {
5554 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5555 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5556 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5557 0x01ed,
5558 0x01ee,
5559 },
5560 {
5561 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5562 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5563 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5564 0x01ec,
5565 0x01ed,
5566 },
5567 {
5568 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5569 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5570 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5571 0x01eb,
5572 0x01ec,
5573 },
5574 {
5575 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5576 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5577 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5578 0x01ea,
5579 0x01eb,
5580 },
5581 {
5582 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5583 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5584 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5585 0x01e9,
5586 0x01ea,
5587 },
5588 {
5589 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5590 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5591 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5592 0x01e8,
5593 0x01e9,
5594 },
5595 {
5596 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5597 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5598 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5599 0x01e7,
5600 0x01e8,
5601 },
5602 {
5603 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5604 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5605 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5606 0x01e6,
5607 0x01e7,
5608 },
5609 {
5610 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5611 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5612 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5613 0x01e5,
5614 0x01e6,
5615 },
5616 {
5617 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5618 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5619 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5620 0x01e5,
5621 0x01e5,
5622 },
5623 {
5624 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5625 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5626 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5627 0x01e4,
5628 0x01e5,
5629 },
5630 {
5631 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5632 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5633 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5634 0x01e3,
5635 0x01e4,
5636 },
5637 {
5638 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5639 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5640 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5641 0x01e2,
5642 0x01e3,
5643 },
5644 {
5645 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5646 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5647 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5648 0x01e1,
5649 0x01e2,
5650 },
5651 {
5652 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5653 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5654 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5655 0x01e0,
5656 0x01e1,
5657 },
5658 {
5659 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5660 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5661 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5662 0x01df,
5663 0x01e0,
5664 },
5665 {
5666 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5667 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5668 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5669 0x01de,
5670 0x01df,
5671 },
5672 {
5673 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5674 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5675 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5676 0x01dd,
5677 0x01de,
5678 },
5679 {
5680 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5681 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5682 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5683 0x01dd,
5684 0x01dd,
5685 },
5686 {
5687 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5688 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5689 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5690 0x01dc,
5691 0x01dd,
5692 },
5693 {
5694 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5695 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5696 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5697 0x01db,
5698 0x01dc,
5699 },
5700 {
5701 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5702 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5703 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5704 0x01da,
5705 0x01db,
5706 },
5707 {
5708 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5709 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5710 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5711 0x01d9,
5712 0x01da,
5713 },
5714 {
5715 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5716 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5717 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5718 0x01d8,
5719 0x01d9,
5720 },
5721 {
5722 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5723 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5724 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5725 0x01d7,
5726 0x01d8,
5727 },
5728 {
5729 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5730 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5731 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5732 0x01d7,
5733 0x01d7,
5734 },
5735 {
5736 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5737 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5738 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5739 0x01d6,
5740 0x01d7,
5741 },
5742 {
5743 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5744 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5745 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5746 0x01d5,
5747 0x01d6,
5748 },
5749 {
5750 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5751 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5752 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5753 0x01d4,
5754 0x01d5,
5755 },
5756 {
5757 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5758 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5759 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5760 0x01d3,
5761 0x01d4,
5762 },
5763 {
5764 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5765 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5766 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5767 0x01d2,
5768 0x01d3,
5769 },
5770 {
5771 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5772 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5773 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5774 0x01d2,
5775 0x01d2,
5776 },
5777 {
5778 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5779 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5780 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5781 0x01d1,
5782 0x01d2,
5783 },
5784 {
5785 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5786 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5787 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5788 0x01d0,
5789 0x01d1,
5790 },
5791 {
5792 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5793 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5794 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5795 0x01cf,
5796 0x01d0,
5797 },
5798 {
5799 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5800 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5801 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5802 0x01ce,
5803 0x01cf,
5804 },
5805 {
5806 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5807 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5808 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5809 0x01ce,
5810 0x01ce,
5811 },
5812 {
5813 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5814 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5815 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5816 0x01cd,
5817 0x01ce,
5818 },
5819 {
5820 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5821 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5822 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5823 0x01cc,
5824 0x01cd,
5825 },
5826 {
5827 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5828 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5829 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5830 0x01cb,
5831 0x01cc,
5832 },
5833 {
5834 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5835 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5836 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5837 0x01ca,
5838 0x01cb,
5839 },
5840 {
5841 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5842 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5843 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5844 0x01ca,
5845 0x01cb,
5846 },
5847 {
5848 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5849 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5850 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5851 0x01c9,
5852 0x01ca,
5853 },
5854 {
5855 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5856 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5857 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5858 0x01c9,
5859 0x01ca,
5860 },
5861 {
5862 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5863 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5864 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5865 0x01c9,
5866 0x01c9,
5867 },
5868 {
5869 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5870 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5871 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5872 0x01c8,
5873 0x01c9,
5874 },
5875 {
5876 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5877 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5878 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5879 0x01c8,
5880 0x01c9,
5881 },
5882 {
5883 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5884 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5885 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5886 0x01c8,
5887 0x01c8,
5888 },
5889 {
5890 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5891 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5892 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5893 0x01c7,
5894 0x01c8,
5895 },
5896 {
5897 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5898 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5899 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5900 0x01c7,
5901 0x01c8,
5902 },
5903 {
5904 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5905 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5906 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5907 0x01c6,
5908 0x01c7,
5909 },
5910 {
5911 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5912 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5913 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5914 0x01c6,
5915 0x01c7,
5916 },
5917 {
5918 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5919 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5920 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5921 0x01c6,
5922 0x01c6,
5923 },
5924 {
5925 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5926 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5927 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5928 0x01c5,
5929 0x01c6,
5930 },
5931 {
5932 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5933 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5934 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5935 0x01c5,
5936 0x01c6,
5937 },
5938 {
5939 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5940 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5941 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5942 0x01c4,
5943 0x01c5,
5944 },
5945 {
5946 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5947 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5948 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5949 0x01c4,
5950 0x01c5,
5951 },
5952 {
5953 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5954 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5955 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5956 0x01c4,
5957 0x01c4,
5958 },
5959 {
5960 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5961 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5962 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5963 0x01c3,
5964 0x01c4,
5965 },
5966 {
5967 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5968 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5969 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5970 0x01c3,
5971 0x01c4,
5972 },
5973 {
5974 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5975 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5976 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
5977 0x01c2,
5978 0x01c3,
5979 },
5980 {
5981 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
5982 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5983 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
5984 0x01c2,
5985 0x01c3,
5986 },
5987 {
5988 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
5989 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5990 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
5991 0x01c2,
5992 0x01c2,
5993 },
5994 {
5995 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
5996 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5997 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
5998 0x01c1,
5999 0x01c2,
6000 },
6001 {
6002 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6003 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6004 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6005 0x01c0,
6006 0x01c1,
6007 },
6008 {
6009 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6010 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6011 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6012 0x01bf,
6013 0x01c0,
6014 },
6015 {
6016 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6017 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6018 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6019 0x01bf,
6020 0x01bf,
6021 },
6022 {
6023 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6024 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6025 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6026 0x01be,
6027 0x01bf,
6028 },
6029 {
6030 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6031 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6032 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6033 0x01bd,
6034 0x01be,
6035 },
6036 {
6037 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6038 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6039 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6040 0x01bc,
6041 0x01bd,
6042 },
6043 {
6044 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6045 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6046 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6047 0x043f,
6048 0x0443,
6049 },
6050 {
6051 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6052 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6053 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6054 0x043d,
6055 0x0441,
6056 },
6057 {
6058 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6059 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6060 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6061 0x043a,
6062 0x043f,
6063 },
6064 {
6065 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6066 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6067 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6068 0x0438,
6069 0x043d,
6070 },
6071 {
6072 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6073 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6074 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6075 0x0436,
6076 0x043a,
6077 },
6078 {
6079 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6080 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6081 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6082 0x0434,
6083 0x0438,
6084 },
6085 {
6086 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6087 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6088 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6089 0x0431,
6090 0x0436,
6091 },
6092 {
6093 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6094 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6095 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6096 0x042f,
6097 0x0434,
6098 },
6099 {
6100 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6101 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6102 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6103 0x042d,
6104 0x0431,
6105 },
6106 {
6107 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6108 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6109 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6110 0x042b,
6111 0x042f,
6112 },
6113 {
6114 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6115 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6116 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6117 0x0429,
6118 0x042d,
6119 },
6120 {
6121 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6122 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6123 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6124 0x0427,
6125 0x042b,
6126 },
6127 {
6128 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6129 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6130 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6131 0x0424,
6132 0x0429,
6133 },
6134 {
6135 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6136 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6137 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6138 0x041f,
6139 0x0424}
6140};
6141
6142static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev8_2057_rev5[] = {
6143 {
6144 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6145 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6146 0x043a, 0x043f, 0x0443},
6147 {
6148 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6149 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6150 0x0438, 0x043d, 0x0441},
6151 {
6152 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6153 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6154 0x0436, 0x043a, 0x043f},
6155 {
6156 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6157 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6158 0x0434, 0x0438, 0x043d},
6159 {
6160 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6161 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6162 0x0431, 0x0436, 0x043a},
6163 {
6164 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6165 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6166 0x042f, 0x0434, 0x0438},
6167 {
6168 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6169 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6170 0x042d, 0x0431, 0x0436},
6171 {
6172 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6173 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6174 0x042b, 0x042f, 0x0434},
6175 {
6176 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6177 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6178 0x0429, 0x042d, 0x0431},
6179 {
6180 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6181 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6182 0x0427, 0x042b, 0x042f},
6183 {
6184 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6185 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6186 0x0424, 0x0429, 0x042d},
6187 {
6188 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6189 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6190 0x0422, 0x0427, 0x042b},
6191 {
6192 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6193 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6194 0x0420, 0x0424, 0x0429},
6195 {
6196 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6197 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6198 0x041b, 0x041f, 0x0424}
6199};
6200
6201static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev9_2057_rev5v1[] = {
6202 {
6203 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6204 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6205 0x043a, 0x043f, 0x0443},
6206 {
6207 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6208 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6209 0x0438, 0x043d, 0x0441},
6210 {
6211 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6212 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6213 0x0436, 0x043a, 0x043f},
6214 {
6215 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6216 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6217 0x0434, 0x0438, 0x043d},
6218 {
6219 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6220 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6221 0x0431, 0x0436, 0x043a},
6222 {
6223 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6224 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6225 0x042f, 0x0434, 0x0438},
6226 {
6227 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6228 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6229 0x042d, 0x0431, 0x0436},
6230 {
6231 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6232 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6233 0x042b, 0x042f, 0x0434},
6234 {
6235 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6236 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6237 0x0429, 0x042d, 0x0431},
6238 {
6239 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6240 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6241 0x0427, 0x042b, 0x042f},
6242 {
6243 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6244 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6245 0x0424, 0x0429, 0x042d},
6246 {
6247 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6248 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6249 0x0422, 0x0427, 0x042b},
6250 {
6251 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6252 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6253 0x0420, 0x0424, 0x0429},
6254 {
6255 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6256 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6257 0x041b, 0x041f, 0x0424}
6258};
6259
6260static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev7[] = {
6261 {
6262 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6263 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6264 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6265 0x0215,
6266 0x0216},
6267 {
6268 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6269 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6270 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6271 0x0214,
6272 0x0215},
6273 {
6274 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6275 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6276 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6277 0x0213,
6278 0x0214},
6279 {
6280 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6281 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6282 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6283 0x0212,
6284 0x0213},
6285 {
6286 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6287 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6288 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6289 0x0211,
6290 0x0212},
6291 {
6292 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6293 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6294 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6295 0x020f,
6296 0x0211},
6297 {
6298 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6299 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6300 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6301 0x020e,
6302 0x020f},
6303 {
6304 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6305 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6306 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6307 0x020d,
6308 0x020e},
6309 {
6310 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6311 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6312 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6313 0x020c,
6314 0x020d},
6315 {
6316 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6317 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6318 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6319 0x020b,
6320 0x020c},
6321 {
6322 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6323 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6324 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6325 0x020a,
6326 0x020b},
6327 {
6328 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6329 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6330 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6331 0x0209,
6332 0x020a},
6333 {
6334 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6335 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6336 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6337 0x0208,
6338 0x0209},
6339 {
6340 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6341 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6342 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6343 0x0207,
6344 0x0208},
6345 {
6346 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6347 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6348 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6349 0x0206,
6350 0x0207},
6351 {
6352 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6353 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6354 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6355 0x0205,
6356 0x0206},
6357 {
6358 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6359 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6360 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6361 0x0204,
6362 0x0205},
6363 {
6364 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6365 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6366 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6367 0x0203,
6368 0x0204},
6369 {
6370 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6371 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6372 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6373 0x0202,
6374 0x0203},
6375 {
6376 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6377 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6378 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6379 0x0201,
6380 0x0202},
6381 {
6382 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6383 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6384 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6385 0x0200,
6386 0x0201},
6387 {
6388 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6389 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6390 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6391 0x01ff,
6392 0x0200},
6393 {
6394 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6395 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6396 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6397 0x01fe,
6398 0x01ff},
6399 {
6400 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6401 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6402 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6403 0x01fc,
6404 0x01fd},
6405 {
6406 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6407 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6408 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6409 0x01fb,
6410 0x01fc},
6411 {
6412 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6413 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6414 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6415 0x01fa,
6416 0x01fb},
6417 {
6418 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6419 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6420 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6421 0x01f9,
6422 0x01fa},
6423 {
6424 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6425 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6426 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6427 0x01f8,
6428 0x01f9},
6429 {
6430 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6431 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6432 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6433 0x01f7,
6434 0x01f8},
6435 {
6436 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6437 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6438 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6439 0x01f6,
6440 0x01f7},
6441 {
6442 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6443 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6444 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6445 0x01f5,
6446 0x01f6},
6447 {
6448 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6449 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6450 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6451 0x01f4,
6452 0x01f5},
6453 {
6454 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6455 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6456 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6457 0x01f3,
6458 0x01f4},
6459 {
6460 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6461 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6462 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6463 0x01f2,
6464 0x01f3},
6465 {
6466 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6467 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6468 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6469 0x01f1,
6470 0x01f2},
6471 {
6472 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6473 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6474 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6475 0x01f0,
6476 0x01f1},
6477 {
6478 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6479 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6480 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6481 0x01f0,
6482 0x01f0},
6483 {
6484 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6485 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6486 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6487 0x01ef,
6488 0x01f0},
6489 {
6490 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6491 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6492 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6493 0x01ee,
6494 0x01ef},
6495 {
6496 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6497 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6498 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6499 0x01ed,
6500 0x01ee},
6501 {
6502 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6503 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6504 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6505 0x01ec,
6506 0x01ed},
6507 {
6508 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6509 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6510 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6511 0x01eb,
6512 0x01ec},
6513 {
6514 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6515 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6516 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6517 0x01ea,
6518 0x01eb},
6519 {
6520 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6521 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6522 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6523 0x01e9,
6524 0x01ea},
6525 {
6526 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6527 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6528 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6529 0x01e8,
6530 0x01e9},
6531 {
6532 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6533 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6534 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6535 0x01e7,
6536 0x01e8},
6537 {
6538 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6539 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6540 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6541 0x01e6,
6542 0x01e7},
6543 {
6544 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6545 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6546 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6547 0x01e5,
6548 0x01e6},
6549 {
6550 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6551 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6552 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6553 0x01e5,
6554 0x01e5},
6555 {
6556 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6557 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6558 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6559 0x01e4,
6560 0x01e5},
6561 {
6562 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6563 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6564 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6565 0x01e3,
6566 0x01e4},
6567 {
6568 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6569 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6570 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6571 0x01e2,
6572 0x01e3},
6573 {
6574 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6575 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6576 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6577 0x01e1,
6578 0x01e2},
6579 {
6580 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6581 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6582 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6583 0x01e0,
6584 0x01e1},
6585 {
6586 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6587 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6588 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6589 0x01df,
6590 0x01e0},
6591 {
6592 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6593 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6594 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6595 0x01de,
6596 0x01df},
6597 {
6598 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6599 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6600 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6601 0x01dd,
6602 0x01de},
6603 {
6604 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6605 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6606 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6607 0x01dd,
6608 0x01dd},
6609 {
6610 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6611 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6612 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6613 0x01dc,
6614 0x01dd},
6615 {
6616 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6617 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6618 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6619 0x01db,
6620 0x01dc},
6621 {
6622 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6623 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6624 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6625 0x01da,
6626 0x01db},
6627 {
6628 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6629 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6630 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6631 0x01d9,
6632 0x01da},
6633 {
6634 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6635 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6636 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6637 0x01d8,
6638 0x01d9},
6639 {
6640 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6641 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6642 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6643 0x01d7,
6644 0x01d8},
6645 {
6646 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6647 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6648 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6649 0x01d7,
6650 0x01d7},
6651 {
6652 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6653 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6654 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6655 0x01d6,
6656 0x01d7},
6657 {
6658 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6659 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6660 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6661 0x01d5,
6662 0x01d6},
6663 {
6664 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6665 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6666 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6667 0x01d4,
6668 0x01d5},
6669 {
6670 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6671 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6672 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6673 0x01d3,
6674 0x01d4},
6675 {
6676 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6677 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6678 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6679 0x01d2,
6680 0x01d3},
6681 {
6682 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6683 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6684 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6685 0x01d2,
6686 0x01d2},
6687 {
6688 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6689 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6690 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6691 0x01d1,
6692 0x01d2},
6693 {
6694 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6695 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6696 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6697 0x01d0,
6698 0x01d1},
6699 {
6700 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6701 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6702 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6703 0x01cf,
6704 0x01d0},
6705 {
6706 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6707 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6708 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6709 0x01ce,
6710 0x01cf},
6711 {
6712 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6713 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6714 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6715 0x01ce,
6716 0x01ce},
6717 {
6718 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6719 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6720 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6721 0x01cd,
6722 0x01ce},
6723 {
6724 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6725 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6726 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6727 0x01cc,
6728 0x01cd},
6729 {
6730 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6731 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6732 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6733 0x01cb,
6734 0x01cc},
6735 {
6736 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6737 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6738 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6739 0x01ca,
6740 0x01cb},
6741 {
6742 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6743 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6744 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6745 0x01ca,
6746 0x01cb},
6747 {
6748 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6749 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6750 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6751 0x01c9,
6752 0x01ca},
6753 {
6754 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6755 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6756 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6757 0x01c9,
6758 0x01ca},
6759 {
6760 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6761 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6762 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6763 0x01c9,
6764 0x01c9},
6765 {
6766 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6767 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6768 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6769 0x01c8,
6770 0x01c9},
6771 {
6772 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6773 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6774 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6775 0x01c8,
6776 0x01c9},
6777 {
6778 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6779 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6780 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6781 0x01c8,
6782 0x01c8},
6783 {
6784 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6785 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6786 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6787 0x01c7,
6788 0x01c8},
6789 {
6790 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6791 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6792 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6793 0x01c7,
6794 0x01c8},
6795 {
6796 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6797 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6798 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6799 0x01c6,
6800 0x01c7},
6801 {
6802 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6803 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6804 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6805 0x01c6,
6806 0x01c7},
6807 {
6808 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6809 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6810 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6811 0x01c6,
6812 0x01c6},
6813 {
6814 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6815 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6816 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6817 0x01c5,
6818 0x01c6},
6819 {
6820 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6821 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6822 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6823 0x01c5,
6824 0x01c6},
6825 {
6826 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6827 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6828 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6829 0x01c4,
6830 0x01c5},
6831 {
6832 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6833 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6834 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6835 0x01c4,
6836 0x01c5},
6837 {
6838 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6839 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6840 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6841 0x01c4,
6842 0x01c4},
6843 {
6844 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6845 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6846 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6847 0x01c3,
6848 0x01c4},
6849 {
6850 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6851 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6852 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6853 0x01c3,
6854 0x01c4},
6855 {
6856 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6857 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6858 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6859 0x01c2,
6860 0x01c3},
6861 {
6862 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6863 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6864 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6865 0x01c2,
6866 0x01c3},
6867 {
6868 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6869 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6870 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6871 0x01c2,
6872 0x01c2},
6873 {
6874 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6875 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6876 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6877 0x01c1,
6878 0x01c2},
6879 {
6880 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6881 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6882 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6883 0x01c0,
6884 0x01c1},
6885 {
6886 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6887 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6888 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6889 0x01bf,
6890 0x01c0},
6891 {
6892 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6893 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6894 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6895 0x01bf,
6896 0x01bf},
6897 {
6898 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6899 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6900 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6901 0x01be,
6902 0x01bf},
6903 {
6904 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6905 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6906 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6907 0x01bd,
6908 0x01be},
6909 {
6910 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6911 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6912 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6913 0x01bc,
6914 0x01bd},
6915 {
6916 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6917 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6918 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6919 0x043f,
6920 0x0443},
6921 {
6922 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6923 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6924 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6925 0x043d,
6926 0x0441},
6927 {
6928 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6929 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6930 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6931 0x043a,
6932 0x043f},
6933 {
6934 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6935 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6936 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6937 0x0438,
6938 0x043d},
6939 {
6940 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6941 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6942 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6943 0x0436,
6944 0x043a},
6945 {
6946 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6947 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6948 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6949 0x0434,
6950 0x0438},
6951 {
6952 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6953 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6954 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6955 0x0431,
6956 0x0436},
6957 {
6958 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6959 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6960 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6961 0x042f,
6962 0x0434},
6963 {
6964 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6965 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6966 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6967 0x042d,
6968 0x0431},
6969 {
6970 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6971 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6972 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6973 0x042b,
6974 0x042f},
6975 {
6976 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6977 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6978 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6979 0x0429,
6980 0x042d},
6981 {
6982 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6983 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6984 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6985 0x0427,
6986 0x042b},
6987 {
6988 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6989 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6990 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6991 0x0424,
6992 0x0429},
6993 {
6994 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6995 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
6996 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6997 0x041f,
6998 0x0424}
6999};
7000
7001static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev8[] = {
7002 {
7003 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7004 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7005 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7006 0x0214,
7007 0x0215},
7008 {
7009 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7010 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7011 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7012 0x0213,
7013 0x0214},
7014 {
7015 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7016 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7017 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7018 0x0212,
7019 0x0213},
7020 {
7021 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7022 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7023 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7024 0x0211,
7025 0x0212},
7026 {
7027 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7028 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7029 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7030 0x020f,
7031 0x0211},
7032 {
7033 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7034 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7035 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7036 0x020e,
7037 0x020f},
7038 {
7039 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7040 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7041 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7042 0x020d,
7043 0x020e},
7044 {
7045 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7046 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7047 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7048 0x020c,
7049 0x020d},
7050 {
7051 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7052 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7053 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7054 0x020b,
7055 0x020c},
7056 {
7057 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7058 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7059 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7060 0x020a,
7061 0x020b},
7062 {
7063 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7064 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7065 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7066 0x0209,
7067 0x020a},
7068 {
7069 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7070 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7071 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7072 0x0208,
7073 0x0209},
7074 {
7075 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7076 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7077 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7078 0x0207,
7079 0x0208},
7080 {
7081 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7082 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7083 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7084 0x0206,
7085 0x0207},
7086 {
7087 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7088 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7089 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7090 0x0205,
7091 0x0206},
7092 {
7093 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7094 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7095 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7096 0x0204,
7097 0x0205},
7098 {
7099 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7100 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7101 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7102 0x0203,
7103 0x0204},
7104 {
7105 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7106 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7107 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7108 0x0202,
7109 0x0203},
7110 {
7111 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7112 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7113 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7114 0x0201,
7115 0x0202},
7116 {
7117 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7118 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7119 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7120 0x0200,
7121 0x0201},
7122 {
7123 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7124 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7125 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7126 0x01ff,
7127 0x0200},
7128 {
7129 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7130 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7131 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7132 0x01fe,
7133 0x01ff},
7134 {
7135 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7136 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7137 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7138 0x01fc,
7139 0x01fd},
7140 {
7141 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7142 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7143 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7144 0x01fb,
7145 0x01fc},
7146 {
7147 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7148 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7149 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7150 0x01fa,
7151 0x01fb},
7152 {
7153 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7154 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7155 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7156 0x01f9,
7157 0x01fa},
7158 {
7159 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7160 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7161 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7162 0x01f8,
7163 0x01f9},
7164 {
7165 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7166 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7167 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7168 0x01f7,
7169 0x01f8},
7170 {
7171 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7172 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7173 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7174 0x01f6,
7175 0x01f7},
7176 {
7177 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7178 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7179 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7180 0x01f5,
7181 0x01f6},
7182 {
7183 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7184 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7185 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7186 0x01f4,
7187 0x01f5},
7188 {
7189 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7190 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7191 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7192 0x01f3,
7193 0x01f4},
7194 {
7195 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7196 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7197 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7198 0x01f2,
7199 0x01f3},
7200 {
7201 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7202 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7203 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7204 0x01f1,
7205 0x01f2},
7206 {
7207 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7208 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7209 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7210 0x01f0,
7211 0x01f1},
7212 {
7213 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7214 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7215 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7216 0x01f0,
7217 0x01f0},
7218 {
7219 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7220 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7221 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7222 0x01ef,
7223 0x01f0},
7224 {
7225 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7226 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7227 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7228 0x01ee,
7229 0x01ef},
7230 {
7231 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7232 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7233 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7234 0x01ed,
7235 0x01ee},
7236 {
7237 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7238 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7239 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7240 0x01ec,
7241 0x01ed},
7242 {
7243 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7244 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7245 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7246 0x01eb,
7247 0x01ec},
7248 {
7249 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7250 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7251 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7252 0x01ea,
7253 0x01eb},
7254 {
7255 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7256 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7257 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7258 0x01e9,
7259 0x01ea},
7260 {
7261 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7262 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7263 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7264 0x01e8,
7265 0x01e9},
7266 {
7267 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7268 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7269 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7270 0x01e7,
7271 0x01e8},
7272 {
7273 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7274 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7275 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7276 0x01e6,
7277 0x01e7},
7278 {
7279 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7280 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7281 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7282 0x01e5,
7283 0x01e6},
7284 {
7285 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7286 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7287 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7288 0x01e5,
7289 0x01e5},
7290 {
7291 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7292 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7293 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7294 0x01e4,
7295 0x01e5},
7296 {
7297 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7298 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7299 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7300 0x01e3,
7301 0x01e4},
7302 {
7303 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7304 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7305 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7306 0x01e2,
7307 0x01e3},
7308 {
7309 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7310 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7311 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7312 0x01e1,
7313 0x01e2},
7314 {
7315 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7316 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7317 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7318 0x01e0,
7319 0x01e1},
7320 {
7321 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7322 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7323 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7324 0x01df,
7325 0x01e0},
7326 {
7327 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7328 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7329 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7330 0x01de,
7331 0x01df},
7332 {
7333 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7334 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7335 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7336 0x01dd,
7337 0x01de},
7338 {
7339 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7340 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7341 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7342 0x01dd,
7343 0x01dd},
7344 {
7345 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7346 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7347 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7348 0x01dc,
7349 0x01dd},
7350 {
7351 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7352 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7353 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7354 0x01db,
7355 0x01dc},
7356 {
7357 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7358 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7359 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7360 0x01da,
7361 0x01db},
7362 {
7363 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7364 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7365 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7366 0x01d9,
7367 0x01da},
7368 {
7369 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7370 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7371 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7372 0x01d8,
7373 0x01d9},
7374 {
7375 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7376 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7377 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7378 0x01d7,
7379 0x01d8},
7380 {
7381 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7382 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7383 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7384 0x01d7,
7385 0x01d7},
7386 {
7387 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7388 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7389 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7390 0x01d6,
7391 0x01d7},
7392 {
7393 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7394 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7395 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7396 0x01d5,
7397 0x01d6},
7398 {
7399 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7400 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7401 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7402 0x01d4,
7403 0x01d5},
7404 {
7405 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7406 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7407 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7408 0x01d3,
7409 0x01d4},
7410 {
7411 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7412 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7413 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7414 0x01d2,
7415 0x01d3},
7416 {
7417 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7418 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7419 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7420 0x01d2,
7421 0x01d2},
7422 {
7423 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7424 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7425 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7426 0x01d1,
7427 0x01d2},
7428 {
7429 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7430 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7431 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7432 0x01d0,
7433 0x01d1},
7434 {
7435 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7436 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7437 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7438 0x01cf,
7439 0x01d0},
7440 {
7441 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7442 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7443 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7444 0x01ce,
7445 0x01cf},
7446 {
7447 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7448 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7449 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7450 0x01ce,
7451 0x01ce},
7452 {
7453 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7454 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7455 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7456 0x01cd,
7457 0x01ce},
7458 {
7459 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7460 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7461 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7462 0x01cc,
7463 0x01cd},
7464 {
7465 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7466 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7467 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7468 0x01cb,
7469 0x01cc},
7470 {
7471 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7472 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7473 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7474 0x01ca,
7475 0x01cb},
7476 {
7477 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7478 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7479 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7480 0x01ca,
7481 0x01cb},
7482 {
7483 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7484 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7485 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7486 0x01c9,
7487 0x01ca},
7488 {
7489 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7490 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7491 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7492 0x01c9,
7493 0x01ca},
7494 {
7495 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7496 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7497 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7498 0x01c9,
7499 0x01c9},
7500 {
7501 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7502 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7503 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7504 0x01c8,
7505 0x01c9},
7506 {
7507 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7508 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7509 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7510 0x01c8,
7511 0x01c9},
7512 {
7513 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7514 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7515 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7516 0x01c8,
7517 0x01c8},
7518 {
7519 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7520 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7521 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7522 0x01c7,
7523 0x01c8},
7524 {
7525 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7526 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7527 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7528 0x01c7,
7529 0x01c8},
7530 {
7531 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7532 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7533 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7534 0x01c6,
7535 0x01c7},
7536 {
7537 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7538 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7539 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7540 0x01c6,
7541 0x01c7},
7542 {
7543 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7544 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7545 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7546 0x01c6,
7547 0x01c6},
7548 {
7549 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7550 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7551 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7552 0x01c5,
7553 0x01c6},
7554 {
7555 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7556 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7557 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7558 0x01c5,
7559 0x01c6},
7560 {
7561 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7562 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7563 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7564 0x01c4,
7565 0x01c5},
7566 {
7567 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7568 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7569 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7570 0x01c4,
7571 0x01c5},
7572 {
7573 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7574 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7575 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7576 0x01c4,
7577 0x01c4},
7578 {
7579 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7580 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7581 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7582 0x01c3,
7583 0x01c4},
7584 {
7585 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7586 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7587 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7588 0x01c3,
7589 0x01c4},
7590 {
7591 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7592 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7593 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7594 0x01c2,
7595 0x01c3},
7596 {
7597 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7598 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7599 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7600 0x01c2,
7601 0x01c3},
7602 {
7603 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7604 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7605 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7606 0x01c2,
7607 0x01c2},
7608 {
7609 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7610 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7611 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7612 0x01c1,
7613 0x01c2},
7614 {
7615 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7616 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7617 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7618 0x01c0,
7619 0x01c1},
7620 {
7621 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7622 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7623 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7624 0x01bf,
7625 0x01c0},
7626 {
7627 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7628 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7629 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7630 0x01bf,
7631 0x01bf},
7632 {
7633 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7634 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7635 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7636 0x01be,
7637 0x01bf},
7638 {
7639 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7640 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7641 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7642 0x01bd,
7643 0x01be},
7644 {
7645 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7646 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7647 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7648 0x01bc,
7649 0x01bd},
7650 {
7651 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7652 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7653 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7654 0x043f,
7655 0x0443},
7656 {
7657 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7658 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7659 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7660 0x043d,
7661 0x0441},
7662 {
7663 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7664 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7665 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7666 0x043a,
7667 0x043f},
7668 {
7669 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7670 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7671 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7672 0x0438,
7673 0x043d},
7674 {
7675 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7676 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7677 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7678 0x0436,
7679 0x043a},
7680 {
7681 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7682 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7683 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7684 0x0434,
7685 0x0438},
7686 {
7687 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7688 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7689 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7690 0x0431,
7691 0x0436},
7692 {
7693 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7694 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7695 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7696 0x042f,
7697 0x0434},
7698 {
7699 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7700 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7701 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7702 0x042d,
7703 0x0431},
7704 {
7705 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7706 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7707 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7708 0x042b,
7709 0x042f},
7710 {
7711 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7712 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7713 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7714 0x0429,
7715 0x042d},
7716 {
7717 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7718 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7719 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7720 0x0427,
7721 0x042b},
7722 {
7723 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7724 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7725 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7726 0x0424,
7727 0x0429},
7728 {
7729 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7730 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7731 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7732 0x041f,
7733 0x0424}
7734};
7735
7736radio_regs_t regs_2055[] = {
7737 {0x02, 0x80, 0x80, 0, 0},
7738 {0x03, 0, 0, 0, 0},
7739 {0x04, 0x27, 0x27, 0, 0},
7740 {0x05, 0, 0, 0, 0},
7741 {0x06, 0x27, 0x27, 0, 0},
7742 {0x07, 0x7f, 0x7f, 1, 1},
7743 {0x08, 0x7, 0x7, 1, 1},
7744 {0x09, 0x7f, 0x7f, 1, 1},
7745 {0x0A, 0x7, 0x7, 1, 1},
7746 {0x0B, 0x15, 0x15, 0, 0},
7747 {0x0C, 0x15, 0x15, 0, 0},
7748 {0x0D, 0x4f, 0x4f, 1, 1},
7749 {0x0E, 0x5, 0x5, 1, 1},
7750 {0x0F, 0x4f, 0x4f, 1, 1},
7751 {0x10, 0x5, 0x5, 1, 1},
7752 {0x11, 0xd0, 0xd0, 0, 0},
7753 {0x12, 0x2, 0x2, 0, 0},
7754 {0x13, 0, 0, 0, 0},
7755 {0x14, 0x40, 0x40, 0, 0},
7756 {0x15, 0, 0, 0, 0},
7757 {0x16, 0, 0, 0, 0},
7758 {0x17, 0, 0, 0, 0},
7759 {0x18, 0, 0, 0, 0},
7760 {0x19, 0, 0, 0, 0},
7761 {0x1A, 0, 0, 0, 0},
7762 {0x1B, 0, 0, 0, 0},
7763 {0x1C, 0, 0, 0, 0},
7764 {0x1D, 0xc0, 0xc0, 0, 0},
7765 {0x1E, 0xff, 0xff, 0, 0},
7766 {0x1F, 0xc0, 0xc0, 0, 0},
7767 {0x20, 0xff, 0xff, 0, 0},
7768 {0x21, 0xc0, 0xc0, 0, 0},
7769 {0x22, 0, 0, 0, 0},
7770 {0x23, 0x2c, 0x2c, 0, 0},
7771 {0x24, 0, 0, 0, 0},
7772 {0x25, 0, 0, 0, 0},
7773 {0x26, 0, 0, 0, 0},
7774 {0x27, 0, 0, 0, 0},
7775 {0x28, 0, 0, 0, 0},
7776 {0x29, 0, 0, 0, 0},
7777 {0x2A, 0, 0, 0, 0},
7778 {0x2B, 0, 0, 0, 0},
7779 {0x2C, 0, 0, 0, 0},
7780 {0x2D, 0xa4, 0xa4, 0, 0},
7781 {0x2E, 0x38, 0x38, 0, 0},
7782 {0x2F, 0, 0, 0, 0},
7783 {0x30, 0x4, 0x4, 1, 1},
7784 {0x31, 0, 0, 0, 0},
7785 {0x32, 0xa, 0xa, 0, 0},
7786 {0x33, 0x87, 0x87, 0, 0},
7787 {0x34, 0x9, 0x9, 0, 0},
7788 {0x35, 0x70, 0x70, 0, 0},
7789 {0x36, 0x11, 0x11, 0, 0},
7790 {0x37, 0x18, 0x18, 1, 1},
7791 {0x38, 0x6, 0x6, 0, 0},
7792 {0x39, 0x4, 0x4, 1, 1},
7793 {0x3A, 0x6, 0x6, 0, 0},
7794 {0x3B, 0x9e, 0x9e, 0, 0},
7795 {0x3C, 0x9, 0x9, 0, 0},
7796 {0x3D, 0xc8, 0xc8, 1, 1},
7797 {0x3E, 0x88, 0x88, 0, 0},
7798 {0x3F, 0, 0, 0, 0},
7799 {0x40, 0, 0, 0, 0},
7800 {0x41, 0, 0, 0, 0},
7801 {0x42, 0x1, 0x1, 0, 0},
7802 {0x43, 0x2, 0x2, 0, 0},
7803 {0x44, 0x96, 0x96, 0, 0},
7804 {0x45, 0x3e, 0x3e, 0, 0},
7805 {0x46, 0x3e, 0x3e, 0, 0},
7806 {0x47, 0x13, 0x13, 0, 0},
7807 {0x48, 0x2, 0x2, 0, 0},
7808 {0x49, 0x15, 0x15, 0, 0},
7809 {0x4A, 0x7, 0x7, 0, 0},
7810 {0x4B, 0, 0, 0, 0},
7811 {0x4C, 0, 0, 0, 0},
7812 {0x4D, 0, 0, 0, 0},
7813 {0x4E, 0, 0, 0, 0},
7814 {0x4F, 0, 0, 0, 0},
7815 {0x50, 0x8, 0x8, 0, 0},
7816 {0x51, 0x8, 0x8, 0, 0},
7817 {0x52, 0x6, 0x6, 0, 0},
7818 {0x53, 0x84, 0x84, 1, 1},
7819 {0x54, 0xc3, 0xc3, 0, 0},
7820 {0x55, 0x8f, 0x8f, 0, 0},
7821 {0x56, 0xff, 0xff, 0, 0},
7822 {0x57, 0xff, 0xff, 0, 0},
7823 {0x58, 0x88, 0x88, 0, 0},
7824 {0x59, 0x88, 0x88, 0, 0},
7825 {0x5A, 0, 0, 0, 0},
7826 {0x5B, 0xcc, 0xcc, 0, 0},
7827 {0x5C, 0x6, 0x6, 0, 0},
7828 {0x5D, 0x80, 0x80, 0, 0},
7829 {0x5E, 0x80, 0x80, 0, 0},
7830 {0x5F, 0xf8, 0xf8, 0, 0},
7831 {0x60, 0x88, 0x88, 0, 0},
7832 {0x61, 0x88, 0x88, 0, 0},
7833 {0x62, 0x88, 0x8, 1, 1},
7834 {0x63, 0x88, 0x88, 0, 0},
7835 {0x64, 0, 0, 0, 0},
7836 {0x65, 0x1, 0x1, 1, 1},
7837 {0x66, 0x8a, 0x8a, 0, 0},
7838 {0x67, 0x8, 0x8, 0, 0},
7839 {0x68, 0x83, 0x83, 0, 0},
7840 {0x69, 0x6, 0x6, 0, 0},
7841 {0x6A, 0xa0, 0xa0, 0, 0},
7842 {0x6B, 0xa, 0xa, 0, 0},
7843 {0x6C, 0x87, 0x87, 1, 1},
7844 {0x6D, 0x2a, 0x2a, 0, 0},
7845 {0x6E, 0x2a, 0x2a, 0, 0},
7846 {0x6F, 0x2a, 0x2a, 0, 0},
7847 {0x70, 0x2a, 0x2a, 0, 0},
7848 {0x71, 0x18, 0x18, 0, 0},
7849 {0x72, 0x6a, 0x6a, 1, 1},
7850 {0x73, 0xab, 0xab, 1, 1},
7851 {0x74, 0x13, 0x13, 1, 1},
7852 {0x75, 0xc1, 0xc1, 1, 1},
7853 {0x76, 0xaa, 0xaa, 1, 1},
7854 {0x77, 0x87, 0x87, 1, 1},
7855 {0x78, 0, 0, 0, 0},
7856 {0x79, 0x6, 0x6, 0, 0},
7857 {0x7A, 0x7, 0x7, 0, 0},
7858 {0x7B, 0x7, 0x7, 0, 0},
7859 {0x7C, 0x15, 0x15, 0, 0},
7860 {0x7D, 0x55, 0x55, 0, 0},
7861 {0x7E, 0x97, 0x97, 1, 1},
7862 {0x7F, 0x8, 0x8, 0, 0},
7863 {0x80, 0x14, 0x14, 1, 1},
7864 {0x81, 0x33, 0x33, 0, 0},
7865 {0x82, 0x88, 0x88, 0, 0},
7866 {0x83, 0x6, 0x6, 0, 0},
7867 {0x84, 0x3, 0x3, 1, 1},
7868 {0x85, 0xa, 0xa, 0, 0},
7869 {0x86, 0x3, 0x3, 1, 1},
7870 {0x87, 0x2a, 0x2a, 0, 0},
7871 {0x88, 0xa4, 0xa4, 0, 0},
7872 {0x89, 0x18, 0x18, 0, 0},
7873 {0x8A, 0x28, 0x28, 0, 0},
7874 {0x8B, 0, 0, 0, 0},
7875 {0x8C, 0x4a, 0x4a, 0, 0},
7876 {0x8D, 0, 0, 0, 0},
7877 {0x8E, 0xf8, 0xf8, 0, 0},
7878 {0x8F, 0x88, 0x88, 0, 0},
7879 {0x90, 0x88, 0x88, 0, 0},
7880 {0x91, 0x88, 0x8, 1, 1},
7881 {0x92, 0x88, 0x88, 0, 0},
7882 {0x93, 0, 0, 0, 0},
7883 {0x94, 0x1, 0x1, 1, 1},
7884 {0x95, 0x8a, 0x8a, 0, 0},
7885 {0x96, 0x8, 0x8, 0, 0},
7886 {0x97, 0x83, 0x83, 0, 0},
7887 {0x98, 0x6, 0x6, 0, 0},
7888 {0x99, 0xa0, 0xa0, 0, 0},
7889 {0x9A, 0xa, 0xa, 0, 0},
7890 {0x9B, 0x87, 0x87, 1, 1},
7891 {0x9C, 0x2a, 0x2a, 0, 0},
7892 {0x9D, 0x2a, 0x2a, 0, 0},
7893 {0x9E, 0x2a, 0x2a, 0, 0},
7894 {0x9F, 0x2a, 0x2a, 0, 0},
7895 {0xA0, 0x18, 0x18, 0, 0},
7896 {0xA1, 0x6a, 0x6a, 1, 1},
7897 {0xA2, 0xab, 0xab, 1, 1},
7898 {0xA3, 0x13, 0x13, 1, 1},
7899 {0xA4, 0xc1, 0xc1, 1, 1},
7900 {0xA5, 0xaa, 0xaa, 1, 1},
7901 {0xA6, 0x87, 0x87, 1, 1},
7902 {0xA7, 0, 0, 0, 0},
7903 {0xA8, 0x6, 0x6, 0, 0},
7904 {0xA9, 0x7, 0x7, 0, 0},
7905 {0xAA, 0x7, 0x7, 0, 0},
7906 {0xAB, 0x15, 0x15, 0, 0},
7907 {0xAC, 0x55, 0x55, 0, 0},
7908 {0xAD, 0x97, 0x97, 1, 1},
7909 {0xAE, 0x8, 0x8, 0, 0},
7910 {0xAF, 0x14, 0x14, 1, 1},
7911 {0xB0, 0x33, 0x33, 0, 0},
7912 {0xB1, 0x88, 0x88, 0, 0},
7913 {0xB2, 0x6, 0x6, 0, 0},
7914 {0xB3, 0x3, 0x3, 1, 1},
7915 {0xB4, 0xa, 0xa, 0, 0},
7916 {0xB5, 0x3, 0x3, 1, 1},
7917 {0xB6, 0x2a, 0x2a, 0, 0},
7918 {0xB7, 0xa4, 0xa4, 0, 0},
7919 {0xB8, 0x18, 0x18, 0, 0},
7920 {0xB9, 0x28, 0x28, 0, 0},
7921 {0xBA, 0, 0, 0, 0},
7922 {0xBB, 0x4a, 0x4a, 0, 0},
7923 {0xBC, 0, 0, 0, 0},
7924 {0xBD, 0x71, 0x71, 0, 0},
7925 {0xBE, 0x72, 0x72, 0, 0},
7926 {0xBF, 0x73, 0x73, 0, 0},
7927 {0xC0, 0x74, 0x74, 0, 0},
7928 {0xC1, 0x75, 0x75, 0, 0},
7929 {0xC2, 0x76, 0x76, 0, 0},
7930 {0xC3, 0x77, 0x77, 0, 0},
7931 {0xC4, 0x78, 0x78, 0, 0},
7932 {0xC5, 0x79, 0x79, 0, 0},
7933 {0xC6, 0x7a, 0x7a, 0, 0},
7934 {0xC7, 0, 0, 0, 0},
7935 {0xC8, 0, 0, 0, 0},
7936 {0xC9, 0, 0, 0, 0},
7937 {0xCA, 0, 0, 0, 0},
7938 {0xCB, 0, 0, 0, 0},
7939 {0xCC, 0, 0, 0, 0},
7940 {0xCD, 0, 0, 0, 0},
7941 {0xCE, 0x6, 0x6, 0, 0},
7942 {0xCF, 0, 0, 0, 0},
7943 {0xD0, 0, 0, 0, 0},
7944 {0xD1, 0x18, 0x18, 0, 0},
7945 {0xD2, 0x88, 0x88, 0, 0},
7946 {0xD3, 0, 0, 0, 0},
7947 {0xD4, 0, 0, 0, 0},
7948 {0xD5, 0, 0, 0, 0},
7949 {0xD6, 0, 0, 0, 0},
7950 {0xD7, 0, 0, 0, 0},
7951 {0xD8, 0, 0, 0, 0},
7952 {0xD9, 0, 0, 0, 0},
7953 {0xDA, 0x6, 0x6, 0, 0},
7954 {0xDB, 0, 0, 0, 0},
7955 {0xDC, 0, 0, 0, 0},
7956 {0xDD, 0x18, 0x18, 0, 0},
7957 {0xDE, 0x88, 0x88, 0, 0},
7958 {0xDF, 0, 0, 0, 0},
7959 {0xE0, 0, 0, 0, 0},
7960 {0xE1, 0, 0, 0, 0},
7961 {0xE2, 0, 0, 0, 0},
7962 {0xFFFF, 0, 0, 0, 0},
7963};
7964
7965radio_regs_t regs_SYN_2056[] = {
7966 {0x02, 0, 0, 0, 0},
7967 {0x03, 0, 0, 0, 0},
7968 {0x04, 0, 0, 0, 0},
7969 {0x05, 0, 0, 0, 0},
7970 {0x06, 0, 0, 0, 0},
7971 {0x07, 0, 0, 0, 0},
7972 {0x08, 0, 0, 0, 0},
7973 {0x09, 0x1, 0x1, 0, 0},
7974 {0x0A, 0, 0, 0, 0},
7975 {0x0B, 0, 0, 0, 0},
7976 {0x0C, 0, 0, 0, 0},
7977 {0x0D, 0, 0, 0, 0},
7978 {0x0E, 0, 0, 0, 0},
7979 {0x0F, 0, 0, 0, 0},
7980 {0x10, 0, 0, 0, 0},
7981 {0x11, 0, 0, 0, 0},
7982 {0x12, 0, 0, 0, 0},
7983 {0x13, 0, 0, 0, 0},
7984 {0x14, 0, 0, 0, 0},
7985 {0x15, 0, 0, 0, 0},
7986 {0x16, 0, 0, 0, 0},
7987 {0x17, 0, 0, 0, 0},
7988 {0x18, 0, 0, 0, 0},
7989 {0x19, 0, 0, 0, 0},
7990 {0x1A, 0, 0, 0, 0},
7991 {0x1B, 0, 0, 0, 0},
7992 {0x1C, 0, 0, 0, 0},
7993 {0x1D, 0, 0, 0, 0},
7994 {0x1E, 0, 0, 0, 0},
7995 {0x1F, 0, 0, 0, 0},
7996 {0x20, 0, 0, 0, 0},
7997 {0x21, 0, 0, 0, 0},
7998 {0x22, 0x60, 0x60, 0, 0},
7999 {0x23, 0x6, 0x6, 0, 0},
8000 {0x24, 0xc, 0xc, 0, 0},
8001 {0x25, 0, 0, 0, 0},
8002 {0x26, 0, 0, 0, 0},
8003 {0x27, 0, 0, 0, 0},
8004 {0x28, 0x1, 0x1, 0, 0},
8005 {0x29, 0, 0, 0, 0},
8006 {0x2A, 0, 0, 0, 0},
8007 {0x2B, 0, 0, 0, 0},
8008 {0x2C, 0, 0, 0, 0},
8009 {0x2D, 0, 0, 0, 0},
8010 {0x2E, 0xd, 0xd, 0, 0},
8011 {0x2F, 0x1f, 0x1f, 0, 0},
8012 {0x30, 0x15, 0x15, 0, 0},
8013 {0x31, 0xf, 0xf, 0, 0},
8014 {0x32, 0, 0, 0, 0},
8015 {0x33, 0, 0, 0, 0},
8016 {0x34, 0, 0, 0, 0},
8017 {0x35, 0, 0, 0, 0},
8018 {0x36, 0, 0, 0, 0},
8019 {0x37, 0, 0, 0, 0},
8020 {0x38, 0, 0, 0, 0},
8021 {0x39, 0, 0, 0, 0},
8022 {0x3A, 0, 0, 0, 0},
8023 {0x3B, 0, 0, 0, 0},
8024 {0x3C, 0x13, 0x13, 0, 0},
8025 {0x3D, 0xf, 0xf, 0, 0},
8026 {0x3E, 0x18, 0x18, 0, 0},
8027 {0x3F, 0, 0, 0, 0},
8028 {0x40, 0, 0, 0, 0},
8029 {0x41, 0x20, 0x20, 0, 0},
8030 {0x42, 0x20, 0x20, 0, 0},
8031 {0x43, 0, 0, 0, 0},
8032 {0x44, 0x77, 0x77, 0, 0},
8033 {0x45, 0x7, 0x7, 0, 0},
8034 {0x46, 0x1, 0x1, 0, 0},
8035 {0x47, 0x4, 0x4, 0, 0},
8036 {0x48, 0xf, 0xf, 0, 0},
8037 {0x49, 0x30, 0x30, 0, 0},
8038 {0x4A, 0x32, 0x32, 0, 0},
8039 {0x4B, 0xd, 0xd, 0, 0},
8040 {0x4C, 0xd, 0xd, 0, 0},
8041 {0x4D, 0x4, 0x4, 0, 0},
8042 {0x4E, 0x6, 0x6, 0, 0},
8043 {0x4F, 0x1, 0x1, 0, 0},
8044 {0x50, 0x1c, 0x1c, 0, 0},
8045 {0x51, 0x2, 0x2, 0, 0},
8046 {0x52, 0x2, 0x2, 0, 0},
8047 {0x53, 0xf7, 0xf7, 1, 1},
8048 {0x54, 0xb4, 0xb4, 0, 0},
8049 {0x55, 0xd2, 0xd2, 0, 0},
8050 {0x56, 0, 0, 0, 0},
8051 {0x57, 0, 0, 0, 0},
8052 {0x58, 0x4, 0x4, 0, 0},
8053 {0x59, 0x96, 0x96, 0, 0},
8054 {0x5A, 0x3e, 0x3e, 0, 0},
8055 {0x5B, 0x3e, 0x3e, 0, 0},
8056 {0x5C, 0x13, 0x13, 0, 0},
8057 {0x5D, 0x2, 0x2, 0, 0},
8058 {0x5E, 0, 0, 0, 0},
8059 {0x5F, 0x7, 0x7, 0, 0},
8060 {0x60, 0x7, 0x7, 1, 1},
8061 {0x61, 0x8, 0x8, 0, 0},
8062 {0x62, 0x3, 0x3, 0, 0},
8063 {0x63, 0, 0, 0, 0},
8064 {0x64, 0, 0, 0, 0},
8065 {0x65, 0, 0, 0, 0},
8066 {0x66, 0, 0, 0, 0},
8067 {0x67, 0, 0, 0, 0},
8068 {0x68, 0x40, 0x40, 0, 0},
8069 {0x69, 0, 0, 0, 0},
8070 {0x6A, 0, 0, 0, 0},
8071 {0x6B, 0, 0, 0, 0},
8072 {0x6C, 0, 0, 0, 0},
8073 {0x6D, 0x1, 0x1, 0, 0},
8074 {0x6E, 0, 0, 0, 0},
8075 {0x6F, 0, 0, 0, 0},
8076 {0x70, 0x60, 0x60, 0, 0},
8077 {0x71, 0x66, 0x66, 0, 0},
8078 {0x72, 0xc, 0xc, 0, 0},
8079 {0x73, 0x66, 0x66, 0, 0},
8080 {0x74, 0x8f, 0x8f, 1, 1},
8081 {0x75, 0, 0, 0, 0},
8082 {0x76, 0xcc, 0xcc, 0, 0},
8083 {0x77, 0x1, 0x1, 0, 0},
8084 {0x78, 0x66, 0x66, 0, 0},
8085 {0x79, 0x66, 0x66, 0, 0},
8086 {0x7A, 0, 0, 0, 0},
8087 {0x7B, 0, 0, 0, 0},
8088 {0x7C, 0, 0, 0, 0},
8089 {0x7D, 0, 0, 0, 0},
8090 {0x7E, 0, 0, 0, 0},
8091 {0x7F, 0, 0, 0, 0},
8092 {0x80, 0, 0, 0, 0},
8093 {0x81, 0, 0, 0, 0},
8094 {0x82, 0, 0, 0, 0},
8095 {0x83, 0, 0, 0, 0},
8096 {0x84, 0, 0, 0, 0},
8097 {0x85, 0xff, 0xff, 0, 0},
8098 {0x86, 0, 0, 0, 0},
8099 {0x87, 0, 0, 0, 0},
8100 {0x88, 0, 0, 0, 0},
8101 {0x89, 0, 0, 0, 0},
8102 {0x8A, 0, 0, 0, 0},
8103 {0x8B, 0, 0, 0, 0},
8104 {0x8C, 0, 0, 0, 0},
8105 {0x8D, 0, 0, 0, 0},
8106 {0x8E, 0, 0, 0, 0},
8107 {0x8F, 0, 0, 0, 0},
8108 {0x90, 0, 0, 0, 0},
8109 {0x91, 0, 0, 0, 0},
8110 {0x92, 0, 0, 0, 0},
8111 {0x93, 0, 0, 0, 0},
8112 {0x94, 0, 0, 0, 0},
8113 {0x95, 0, 0, 0, 0},
8114 {0x96, 0, 0, 0, 0},
8115 {0x97, 0, 0, 0, 0},
8116 {0x98, 0, 0, 0, 0},
8117 {0x99, 0, 0, 0, 0},
8118 {0x9A, 0, 0, 0, 0},
8119 {0x9B, 0, 0, 0, 0},
8120 {0x9C, 0, 0, 0, 0},
8121 {0x9D, 0, 0, 0, 0},
8122 {0x9E, 0, 0, 0, 0},
8123 {0x9F, 0x6, 0x6, 0, 0},
8124 {0xA0, 0x66, 0x66, 0, 0},
8125 {0xA1, 0x66, 0x66, 0, 0},
8126 {0xA2, 0x66, 0x66, 0, 0},
8127 {0xA3, 0x66, 0x66, 0, 0},
8128 {0xA4, 0x66, 0x66, 0, 0},
8129 {0xA5, 0x66, 0x66, 0, 0},
8130 {0xA6, 0x66, 0x66, 0, 0},
8131 {0xA7, 0x66, 0x66, 0, 0},
8132 {0xA8, 0x66, 0x66, 0, 0},
8133 {0xA9, 0x66, 0x66, 0, 0},
8134 {0xAA, 0x66, 0x66, 0, 0},
8135 {0xAB, 0x66, 0x66, 0, 0},
8136 {0xAC, 0x66, 0x66, 0, 0},
8137 {0xAD, 0x66, 0x66, 0, 0},
8138 {0xAE, 0x66, 0x66, 0, 0},
8139 {0xAF, 0x66, 0x66, 0, 0},
8140 {0xB0, 0x66, 0x66, 0, 0},
8141 {0xB1, 0x66, 0x66, 0, 0},
8142 {0xB2, 0x66, 0x66, 0, 0},
8143 {0xB3, 0xa, 0xa, 0, 0},
8144 {0xB4, 0, 0, 0, 0},
8145 {0xB5, 0, 0, 0, 0},
8146 {0xB6, 0, 0, 0, 0},
8147 {0xFFFF, 0, 0, 0, 0}
8148};
8149
8150radio_regs_t regs_TX_2056[] = {
8151 {0x02, 0, 0, 0, 0},
8152 {0x03, 0, 0, 0, 0},
8153 {0x04, 0, 0, 0, 0},
8154 {0x05, 0, 0, 0, 0},
8155 {0x06, 0, 0, 0, 0},
8156 {0x07, 0, 0, 0, 0},
8157 {0x08, 0, 0, 0, 0},
8158 {0x09, 0, 0, 0, 0},
8159 {0x0A, 0, 0, 0, 0},
8160 {0x0B, 0, 0, 0, 0},
8161 {0x0C, 0, 0, 0, 0},
8162 {0x0D, 0, 0, 0, 0},
8163 {0x0E, 0, 0, 0, 0},
8164 {0x0F, 0, 0, 0, 0},
8165 {0x10, 0, 0, 0, 0},
8166 {0x11, 0, 0, 0, 0},
8167 {0x12, 0, 0, 0, 0},
8168 {0x13, 0, 0, 0, 0},
8169 {0x14, 0, 0, 0, 0},
8170 {0x15, 0, 0, 0, 0},
8171 {0x16, 0, 0, 0, 0},
8172 {0x17, 0, 0, 0, 0},
8173 {0x18, 0, 0, 0, 0},
8174 {0x19, 0, 0, 0, 0},
8175 {0x1A, 0, 0, 0, 0},
8176 {0x1B, 0, 0, 0, 0},
8177 {0x1C, 0, 0, 0, 0},
8178 {0x1D, 0, 0, 0, 0},
8179 {0x1E, 0, 0, 0, 0},
8180 {0x1F, 0, 0, 0, 0},
8181 {0x20, 0, 0, 0, 0},
8182 {0x21, 0x88, 0x88, 0, 0},
8183 {0x22, 0x88, 0x88, 0, 0},
8184 {0x23, 0x88, 0x88, 0, 0},
8185 {0x24, 0x88, 0x88, 0, 0},
8186 {0x25, 0xc, 0xc, 0, 0},
8187 {0x26, 0, 0, 0, 0},
8188 {0x27, 0x3, 0x3, 0, 0},
8189 {0x28, 0, 0, 0, 0},
8190 {0x29, 0x3, 0x3, 0, 0},
8191 {0x2A, 0x37, 0x37, 0, 0},
8192 {0x2B, 0x3, 0x3, 0, 0},
8193 {0x2C, 0, 0, 0, 0},
8194 {0x2D, 0, 0, 0, 0},
8195 {0x2E, 0x1, 0x1, 0, 0},
8196 {0x2F, 0x1, 0x1, 0, 0},
8197 {0x30, 0, 0, 0, 0},
8198 {0x31, 0, 0, 0, 0},
8199 {0x32, 0, 0, 0, 0},
8200 {0x33, 0x11, 0x11, 0, 0},
8201 {0x34, 0x11, 0x11, 0, 0},
8202 {0x35, 0, 0, 0, 0},
8203 {0x36, 0, 0, 0, 0},
8204 {0x37, 0x3, 0x3, 0, 0},
8205 {0x38, 0xf, 0xf, 0, 0},
8206 {0x39, 0, 0, 0, 0},
8207 {0x3A, 0x2d, 0x2d, 0, 0},
8208 {0x3B, 0, 0, 0, 0},
8209 {0x3C, 0x6e, 0x6e, 0, 0},
8210 {0x3D, 0xf0, 0xf0, 1, 1},
8211 {0x3E, 0, 0, 0, 0},
8212 {0x3F, 0, 0, 0, 0},
8213 {0x40, 0, 0, 0, 0},
8214 {0x41, 0x3, 0x3, 0, 0},
8215 {0x42, 0x3, 0x3, 0, 0},
8216 {0x43, 0, 0, 0, 0},
8217 {0x44, 0x1e, 0x1e, 0, 0},
8218 {0x45, 0, 0, 0, 0},
8219 {0x46, 0x6e, 0x6e, 0, 0},
8220 {0x47, 0xf0, 0xf0, 1, 1},
8221 {0x48, 0, 0, 0, 0},
8222 {0x49, 0x2, 0x2, 0, 0},
8223 {0x4A, 0xff, 0xff, 1, 1},
8224 {0x4B, 0xc, 0xc, 0, 0},
8225 {0x4C, 0, 0, 0, 0},
8226 {0x4D, 0x38, 0x38, 0, 0},
8227 {0x4E, 0x70, 0x70, 1, 1},
8228 {0x4F, 0x2, 0x2, 0, 0},
8229 {0x50, 0x88, 0x88, 0, 0},
8230 {0x51, 0xc, 0xc, 0, 0},
8231 {0x52, 0, 0, 0, 0},
8232 {0x53, 0x8, 0x8, 0, 0},
8233 {0x54, 0x70, 0x70, 1, 1},
8234 {0x55, 0x2, 0x2, 0, 0},
8235 {0x56, 0xff, 0xff, 1, 1},
8236 {0x57, 0, 0, 0, 0},
8237 {0x58, 0x83, 0x83, 0, 0},
8238 {0x59, 0x77, 0x77, 1, 1},
8239 {0x5A, 0, 0, 0, 0},
8240 {0x5B, 0x2, 0x2, 0, 0},
8241 {0x5C, 0x88, 0x88, 0, 0},
8242 {0x5D, 0, 0, 0, 0},
8243 {0x5E, 0x8, 0x8, 0, 0},
8244 {0x5F, 0x77, 0x77, 1, 1},
8245 {0x60, 0x1, 0x1, 0, 0},
8246 {0x61, 0, 0, 0, 0},
8247 {0x62, 0x7, 0x7, 0, 0},
8248 {0x63, 0, 0, 0, 0},
8249 {0x64, 0x7, 0x7, 0, 0},
8250 {0x65, 0, 0, 0, 0},
8251 {0x66, 0, 0, 0, 0},
8252 {0x67, 0x74, 0x74, 1, 1},
8253 {0x68, 0, 0, 0, 0},
8254 {0x69, 0xa, 0xa, 0, 0},
8255 {0x6A, 0, 0, 0, 0},
8256 {0x6B, 0, 0, 0, 0},
8257 {0x6C, 0, 0, 0, 0},
8258 {0x6D, 0, 0, 0, 0},
8259 {0x6E, 0, 0, 0, 0},
8260 {0x6F, 0, 0, 0, 0},
8261 {0x70, 0, 0, 0, 0},
8262 {0x71, 0x2, 0x2, 0, 0},
8263 {0x72, 0, 0, 0, 0},
8264 {0x73, 0, 0, 0, 0},
8265 {0x74, 0xe, 0xe, 0, 0},
8266 {0x75, 0xe, 0xe, 0, 0},
8267 {0x76, 0xe, 0xe, 0, 0},
8268 {0x77, 0x13, 0x13, 0, 0},
8269 {0x78, 0x13, 0x13, 0, 0},
8270 {0x79, 0x1b, 0x1b, 0, 0},
8271 {0x7A, 0x1b, 0x1b, 0, 0},
8272 {0x7B, 0x55, 0x55, 0, 0},
8273 {0x7C, 0x5b, 0x5b, 0, 0},
8274 {0x7D, 0, 0, 0, 0},
8275 {0x7E, 0, 0, 0, 0},
8276 {0x7F, 0, 0, 0, 0},
8277 {0x80, 0, 0, 0, 0},
8278 {0x81, 0, 0, 0, 0},
8279 {0x82, 0, 0, 0, 0},
8280 {0x83, 0, 0, 0, 0},
8281 {0x84, 0, 0, 0, 0},
8282 {0x85, 0, 0, 0, 0},
8283 {0x86, 0, 0, 0, 0},
8284 {0x87, 0, 0, 0, 0},
8285 {0x88, 0, 0, 0, 0},
8286 {0x89, 0, 0, 0, 0},
8287 {0x8A, 0, 0, 0, 0},
8288 {0x8B, 0, 0, 0, 0},
8289 {0x8C, 0, 0, 0, 0},
8290 {0x8D, 0, 0, 0, 0},
8291 {0x8E, 0, 0, 0, 0},
8292 {0x8F, 0, 0, 0, 0},
8293 {0x90, 0, 0, 0, 0},
8294 {0x91, 0, 0, 0, 0},
8295 {0x92, 0, 0, 0, 0},
8296 {0xFFFF, 0, 0, 0, 0}
8297};
8298
8299radio_regs_t regs_RX_2056[] = {
8300 {0x02, 0, 0, 0, 0},
8301 {0x03, 0, 0, 0, 0},
8302 {0x04, 0, 0, 0, 0},
8303 {0x05, 0, 0, 0, 0},
8304 {0x06, 0, 0, 0, 0},
8305 {0x07, 0, 0, 0, 0},
8306 {0x08, 0, 0, 0, 0},
8307 {0x09, 0, 0, 0, 0},
8308 {0x0A, 0, 0, 0, 0},
8309 {0x0B, 0, 0, 0, 0},
8310 {0x0C, 0, 0, 0, 0},
8311 {0x0D, 0, 0, 0, 0},
8312 {0x0E, 0, 0, 0, 0},
8313 {0x0F, 0, 0, 0, 0},
8314 {0x10, 0, 0, 0, 0},
8315 {0x11, 0, 0, 0, 0},
8316 {0x12, 0, 0, 0, 0},
8317 {0x13, 0, 0, 0, 0},
8318 {0x14, 0, 0, 0, 0},
8319 {0x15, 0, 0, 0, 0},
8320 {0x16, 0, 0, 0, 0},
8321 {0x17, 0, 0, 0, 0},
8322 {0x18, 0, 0, 0, 0},
8323 {0x19, 0, 0, 0, 0},
8324 {0x1A, 0, 0, 0, 0},
8325 {0x1B, 0, 0, 0, 0},
8326 {0x1C, 0, 0, 0, 0},
8327 {0x1D, 0, 0, 0, 0},
8328 {0x1E, 0, 0, 0, 0},
8329 {0x1F, 0, 0, 0, 0},
8330 {0x20, 0x3, 0x3, 0, 0},
8331 {0x21, 0, 0, 0, 0},
8332 {0x22, 0, 0, 0, 0},
8333 {0x23, 0x90, 0x90, 0, 0},
8334 {0x24, 0x55, 0x55, 0, 0},
8335 {0x25, 0x15, 0x15, 0, 0},
8336 {0x26, 0x5, 0x5, 0, 0},
8337 {0x27, 0x15, 0x15, 0, 0},
8338 {0x28, 0x5, 0x5, 0, 0},
8339 {0x29, 0x20, 0x20, 0, 0},
8340 {0x2A, 0x11, 0x11, 0, 0},
8341 {0x2B, 0x90, 0x90, 0, 0},
8342 {0x2C, 0, 0, 0, 0},
8343 {0x2D, 0x88, 0x88, 0, 0},
8344 {0x2E, 0x32, 0x32, 0, 0},
8345 {0x2F, 0x77, 0x77, 0, 0},
8346 {0x30, 0x17, 0x17, 1, 1},
8347 {0x31, 0xff, 0xff, 1, 1},
8348 {0x32, 0x20, 0x20, 0, 0},
8349 {0x33, 0, 0, 0, 0},
8350 {0x34, 0x88, 0x88, 0, 0},
8351 {0x35, 0x32, 0x32, 0, 0},
8352 {0x36, 0x77, 0x77, 0, 0},
8353 {0x37, 0x17, 0x17, 1, 1},
8354 {0x38, 0xf0, 0xf0, 1, 1},
8355 {0x39, 0x20, 0x20, 0, 0},
8356 {0x3A, 0x8, 0x8, 0, 0},
8357 {0x3B, 0x99, 0x99, 0, 0},
8358 {0x3C, 0, 0, 0, 0},
8359 {0x3D, 0x44, 0x44, 1, 1},
8360 {0x3E, 0, 0, 0, 0},
8361 {0x3F, 0x44, 0x44, 0, 0},
8362 {0x40, 0xf, 0xf, 1, 1},
8363 {0x41, 0x6, 0x6, 0, 0},
8364 {0x42, 0x4, 0x4, 0, 0},
8365 {0x43, 0x50, 0x50, 1, 1},
8366 {0x44, 0x8, 0x8, 0, 0},
8367 {0x45, 0x99, 0x99, 0, 0},
8368 {0x46, 0, 0, 0, 0},
8369 {0x47, 0x11, 0x11, 0, 0},
8370 {0x48, 0, 0, 0, 0},
8371 {0x49, 0x44, 0x44, 0, 0},
8372 {0x4A, 0x7, 0x7, 0, 0},
8373 {0x4B, 0x6, 0x6, 0, 0},
8374 {0x4C, 0x4, 0x4, 0, 0},
8375 {0x4D, 0, 0, 0, 0},
8376 {0x4E, 0, 0, 0, 0},
8377 {0x4F, 0x66, 0x66, 0, 0},
8378 {0x50, 0x66, 0x66, 0, 0},
8379 {0x51, 0x57, 0x57, 0, 0},
8380 {0x52, 0x57, 0x57, 0, 0},
8381 {0x53, 0x44, 0x44, 0, 0},
8382 {0x54, 0, 0, 0, 0},
8383 {0x55, 0, 0, 0, 0},
8384 {0x56, 0x8, 0x8, 0, 0},
8385 {0x57, 0x8, 0x8, 0, 0},
8386 {0x58, 0x7, 0x7, 0, 0},
8387 {0x59, 0x22, 0x22, 0, 0},
8388 {0x5A, 0x22, 0x22, 0, 0},
8389 {0x5B, 0x2, 0x2, 0, 0},
8390 {0x5C, 0x23, 0x23, 0, 0},
8391 {0x5D, 0x7, 0x7, 0, 0},
8392 {0x5E, 0x55, 0x55, 0, 0},
8393 {0x5F, 0x23, 0x23, 0, 0},
8394 {0x60, 0x41, 0x41, 0, 0},
8395 {0x61, 0x1, 0x1, 0, 0},
8396 {0x62, 0xa, 0xa, 0, 0},
8397 {0x63, 0, 0, 0, 0},
8398 {0x64, 0, 0, 0, 0},
8399 {0x65, 0, 0, 0, 0},
8400 {0x66, 0, 0, 0, 0},
8401 {0x67, 0, 0, 0, 0},
8402 {0x68, 0, 0, 0, 0},
8403 {0x69, 0, 0, 0, 0},
8404 {0x6A, 0, 0, 0, 0},
8405 {0x6B, 0xc, 0xc, 0, 0},
8406 {0x6C, 0, 0, 0, 0},
8407 {0x6D, 0, 0, 0, 0},
8408 {0x6E, 0, 0, 0, 0},
8409 {0x6F, 0, 0, 0, 0},
8410 {0x70, 0, 0, 0, 0},
8411 {0x71, 0, 0, 0, 0},
8412 {0x72, 0x22, 0x22, 0, 0},
8413 {0x73, 0x22, 0x22, 0, 0},
8414 {0x74, 0x2, 0x2, 0, 0},
8415 {0x75, 0xa, 0xa, 0, 0},
8416 {0x76, 0x1, 0x1, 0, 0},
8417 {0x77, 0x22, 0x22, 0, 0},
8418 {0x78, 0x30, 0x30, 0, 0},
8419 {0x79, 0, 0, 0, 0},
8420 {0x7A, 0, 0, 0, 0},
8421 {0x7B, 0, 0, 0, 0},
8422 {0x7C, 0, 0, 0, 0},
8423 {0x7D, 0, 0, 0, 0},
8424 {0x7E, 0, 0, 0, 0},
8425 {0x7F, 0, 0, 0, 0},
8426 {0x80, 0, 0, 0, 0},
8427 {0x81, 0, 0, 0, 0},
8428 {0x82, 0, 0, 0, 0},
8429 {0x83, 0, 0, 0, 0},
8430 {0x84, 0, 0, 0, 0},
8431 {0x85, 0, 0, 0, 0},
8432 {0x86, 0, 0, 0, 0},
8433 {0x87, 0, 0, 0, 0},
8434 {0x88, 0, 0, 0, 0},
8435 {0x89, 0, 0, 0, 0},
8436 {0x8A, 0, 0, 0, 0},
8437 {0x8B, 0, 0, 0, 0},
8438 {0x8C, 0, 0, 0, 0},
8439 {0x8D, 0, 0, 0, 0},
8440 {0x8E, 0, 0, 0, 0},
8441 {0x8F, 0, 0, 0, 0},
8442 {0x90, 0, 0, 0, 0},
8443 {0x91, 0, 0, 0, 0},
8444 {0x92, 0, 0, 0, 0},
8445 {0x93, 0, 0, 0, 0},
8446 {0x94, 0, 0, 0, 0},
8447 {0xFFFF, 0, 0, 0, 0}
8448};
8449
8450radio_regs_t regs_SYN_2056_A1[] = {
8451 {0x02, 0, 0, 0, 0},
8452 {0x03, 0, 0, 0, 0},
8453 {0x04, 0, 0, 0, 0},
8454 {0x05, 0, 0, 0, 0},
8455 {0x06, 0, 0, 0, 0},
8456 {0x07, 0, 0, 0, 0},
8457 {0x08, 0, 0, 0, 0},
8458 {0x09, 0x1, 0x1, 0, 0},
8459 {0x0A, 0, 0, 0, 0},
8460 {0x0B, 0, 0, 0, 0},
8461 {0x0C, 0, 0, 0, 0},
8462 {0x0D, 0, 0, 0, 0},
8463 {0x0E, 0, 0, 0, 0},
8464 {0x0F, 0, 0, 0, 0},
8465 {0x10, 0, 0, 0, 0},
8466 {0x11, 0, 0, 0, 0},
8467 {0x12, 0, 0, 0, 0},
8468 {0x13, 0, 0, 0, 0},
8469 {0x14, 0, 0, 0, 0},
8470 {0x15, 0, 0, 0, 0},
8471 {0x16, 0, 0, 0, 0},
8472 {0x17, 0, 0, 0, 0},
8473 {0x18, 0, 0, 0, 0},
8474 {0x19, 0, 0, 0, 0},
8475 {0x1A, 0, 0, 0, 0},
8476 {0x1B, 0, 0, 0, 0},
8477 {0x1C, 0, 0, 0, 0},
8478 {0x1D, 0, 0, 0, 0},
8479 {0x1E, 0, 0, 0, 0},
8480 {0x1F, 0, 0, 0, 0},
8481 {0x20, 0, 0, 0, 0},
8482 {0x21, 0, 0, 0, 0},
8483 {0x22, 0x60, 0x60, 0, 0},
8484 {0x23, 0x6, 0x6, 0, 0},
8485 {0x24, 0xc, 0xc, 0, 0},
8486 {0x25, 0, 0, 0, 0},
8487 {0x26, 0, 0, 0, 0},
8488 {0x27, 0, 0, 0, 0},
8489 {0x28, 0x1, 0x1, 0, 0},
8490 {0x29, 0, 0, 0, 0},
8491 {0x2A, 0, 0, 0, 0},
8492 {0x2B, 0, 0, 0, 0},
8493 {0x2C, 0, 0, 0, 0},
8494 {0x2D, 0, 0, 0, 0},
8495 {0x2E, 0xd, 0xd, 0, 0},
8496 {0x2F, 0x1f, 0x1f, 0, 0},
8497 {0x30, 0x15, 0x15, 0, 0},
8498 {0x31, 0xf, 0xf, 0, 0},
8499 {0x32, 0, 0, 0, 0},
8500 {0x33, 0, 0, 0, 0},
8501 {0x34, 0, 0, 0, 0},
8502 {0x35, 0, 0, 0, 0},
8503 {0x36, 0, 0, 0, 0},
8504 {0x37, 0, 0, 0, 0},
8505 {0x38, 0, 0, 0, 0},
8506 {0x39, 0, 0, 0, 0},
8507 {0x3A, 0, 0, 0, 0},
8508 {0x3B, 0, 0, 0, 0},
8509 {0x3C, 0x13, 0x13, 0, 0},
8510 {0x3D, 0xf, 0xf, 0, 0},
8511 {0x3E, 0x18, 0x18, 0, 0},
8512 {0x3F, 0, 0, 0, 0},
8513 {0x40, 0, 0, 0, 0},
8514 {0x41, 0x20, 0x20, 0, 0},
8515 {0x42, 0x20, 0x20, 0, 0},
8516 {0x43, 0, 0, 0, 0},
8517 {0x44, 0x77, 0x77, 0, 0},
8518 {0x45, 0x7, 0x7, 0, 0},
8519 {0x46, 0x1, 0x1, 0, 0},
8520 {0x47, 0x4, 0x4, 0, 0},
8521 {0x48, 0xf, 0xf, 0, 0},
8522 {0x49, 0x30, 0x30, 0, 0},
8523 {0x4A, 0x32, 0x32, 0, 0},
8524 {0x4B, 0xd, 0xd, 0, 0},
8525 {0x4C, 0xd, 0xd, 0, 0},
8526 {0x4D, 0x4, 0x4, 0, 0},
8527 {0x4E, 0x6, 0x6, 0, 0},
8528 {0x4F, 0x1, 0x1, 0, 0},
8529 {0x50, 0x1c, 0x1c, 0, 0},
8530 {0x51, 0x2, 0x2, 0, 0},
8531 {0x52, 0x2, 0x2, 0, 0},
8532 {0x53, 0xf7, 0xf7, 1, 1},
8533 {0x54, 0xb4, 0xb4, 0, 0},
8534 {0x55, 0xd2, 0xd2, 0, 0},
8535 {0x56, 0, 0, 0, 0},
8536 {0x57, 0, 0, 0, 0},
8537 {0x58, 0x4, 0x4, 0, 0},
8538 {0x59, 0x96, 0x96, 0, 0},
8539 {0x5A, 0x3e, 0x3e, 0, 0},
8540 {0x5B, 0x3e, 0x3e, 0, 0},
8541 {0x5C, 0x13, 0x13, 0, 0},
8542 {0x5D, 0x2, 0x2, 0, 0},
8543 {0x5E, 0, 0, 0, 0},
8544 {0x5F, 0x7, 0x7, 0, 0},
8545 {0x60, 0x7, 0x7, 1, 1},
8546 {0x61, 0x8, 0x8, 0, 0},
8547 {0x62, 0x3, 0x3, 0, 0},
8548 {0x63, 0, 0, 0, 0},
8549 {0x64, 0, 0, 0, 0},
8550 {0x65, 0, 0, 0, 0},
8551 {0x66, 0, 0, 0, 0},
8552 {0x67, 0, 0, 0, 0},
8553 {0x68, 0x40, 0x40, 0, 0},
8554 {0x69, 0, 0, 0, 0},
8555 {0x6A, 0, 0, 0, 0},
8556 {0x6B, 0, 0, 0, 0},
8557 {0x6C, 0, 0, 0, 0},
8558 {0x6D, 0x1, 0x1, 0, 0},
8559 {0x6E, 0, 0, 0, 0},
8560 {0x6F, 0, 0, 0, 0},
8561 {0x70, 0x60, 0x60, 0, 0},
8562 {0x71, 0x66, 0x66, 0, 0},
8563 {0x72, 0xc, 0xc, 0, 0},
8564 {0x73, 0x66, 0x66, 0, 0},
8565 {0x74, 0x8f, 0x8f, 1, 1},
8566 {0x75, 0, 0, 0, 0},
8567 {0x76, 0xcc, 0xcc, 0, 0},
8568 {0x77, 0x1, 0x1, 0, 0},
8569 {0x78, 0x66, 0x66, 0, 0},
8570 {0x79, 0x66, 0x66, 0, 0},
8571 {0x7A, 0, 0, 0, 0},
8572 {0x7B, 0, 0, 0, 0},
8573 {0x7C, 0, 0, 0, 0},
8574 {0x7D, 0, 0, 0, 0},
8575 {0x7E, 0, 0, 0, 0},
8576 {0x7F, 0, 0, 0, 0},
8577 {0x80, 0, 0, 0, 0},
8578 {0x81, 0, 0, 0, 0},
8579 {0x82, 0, 0, 0, 0},
8580 {0x83, 0, 0, 0, 0},
8581 {0x84, 0, 0, 0, 0},
8582 {0x85, 0xff, 0xff, 0, 0},
8583 {0x86, 0, 0, 0, 0},
8584 {0x87, 0, 0, 0, 0},
8585 {0x88, 0, 0, 0, 0},
8586 {0x89, 0, 0, 0, 0},
8587 {0x8A, 0, 0, 0, 0},
8588 {0x8B, 0, 0, 0, 0},
8589 {0x8C, 0, 0, 0, 0},
8590 {0x8D, 0, 0, 0, 0},
8591 {0x8E, 0, 0, 0, 0},
8592 {0x8F, 0, 0, 0, 0},
8593 {0x90, 0, 0, 0, 0},
8594 {0x91, 0, 0, 0, 0},
8595 {0x92, 0, 0, 0, 0},
8596 {0x93, 0, 0, 0, 0},
8597 {0x94, 0, 0, 0, 0},
8598 {0x95, 0, 0, 0, 0},
8599 {0x96, 0, 0, 0, 0},
8600 {0x97, 0, 0, 0, 0},
8601 {0x98, 0, 0, 0, 0},
8602 {0x99, 0, 0, 0, 0},
8603 {0x9A, 0, 0, 0, 0},
8604 {0x9B, 0, 0, 0, 0},
8605 {0x9C, 0, 0, 0, 0},
8606 {0x9D, 0, 0, 0, 0},
8607 {0x9E, 0, 0, 0, 0},
8608 {0x9F, 0x6, 0x6, 0, 0},
8609 {0xA0, 0x66, 0x66, 0, 0},
8610 {0xA1, 0x66, 0x66, 0, 0},
8611 {0xA2, 0x66, 0x66, 0, 0},
8612 {0xA3, 0x66, 0x66, 0, 0},
8613 {0xA4, 0x66, 0x66, 0, 0},
8614 {0xA5, 0x66, 0x66, 0, 0},
8615 {0xA6, 0x66, 0x66, 0, 0},
8616 {0xA7, 0x66, 0x66, 0, 0},
8617 {0xA8, 0x66, 0x66, 0, 0},
8618 {0xA9, 0x66, 0x66, 0, 0},
8619 {0xAA, 0x66, 0x66, 0, 0},
8620 {0xAB, 0x66, 0x66, 0, 0},
8621 {0xAC, 0x66, 0x66, 0, 0},
8622 {0xAD, 0x66, 0x66, 0, 0},
8623 {0xAE, 0x66, 0x66, 0, 0},
8624 {0xAF, 0x66, 0x66, 0, 0},
8625 {0xB0, 0x66, 0x66, 0, 0},
8626 {0xB1, 0x66, 0x66, 0, 0},
8627 {0xB2, 0x66, 0x66, 0, 0},
8628 {0xB3, 0xa, 0xa, 0, 0},
8629 {0xB4, 0, 0, 0, 0},
8630 {0xB5, 0, 0, 0, 0},
8631 {0xB6, 0, 0, 0, 0},
8632 {0xFFFF, 0, 0, 0, 0}
8633};
8634
8635radio_regs_t regs_TX_2056_A1[] = {
8636 {0x02, 0, 0, 0, 0},
8637 {0x03, 0, 0, 0, 0},
8638 {0x04, 0, 0, 0, 0},
8639 {0x05, 0, 0, 0, 0},
8640 {0x06, 0, 0, 0, 0},
8641 {0x07, 0, 0, 0, 0},
8642 {0x08, 0, 0, 0, 0},
8643 {0x09, 0, 0, 0, 0},
8644 {0x0A, 0, 0, 0, 0},
8645 {0x0B, 0, 0, 0, 0},
8646 {0x0C, 0, 0, 0, 0},
8647 {0x0D, 0, 0, 0, 0},
8648 {0x0E, 0, 0, 0, 0},
8649 {0x0F, 0, 0, 0, 0},
8650 {0x10, 0, 0, 0, 0},
8651 {0x11, 0, 0, 0, 0},
8652 {0x12, 0, 0, 0, 0},
8653 {0x13, 0, 0, 0, 0},
8654 {0x14, 0, 0, 0, 0},
8655 {0x15, 0, 0, 0, 0},
8656 {0x16, 0, 0, 0, 0},
8657 {0x17, 0, 0, 0, 0},
8658 {0x18, 0, 0, 0, 0},
8659 {0x19, 0, 0, 0, 0},
8660 {0x1A, 0, 0, 0, 0},
8661 {0x1B, 0, 0, 0, 0},
8662 {0x1C, 0, 0, 0, 0},
8663 {0x1D, 0, 0, 0, 0},
8664 {0x1E, 0, 0, 0, 0},
8665 {0x1F, 0, 0, 0, 0},
8666 {0x20, 0, 0, 0, 0},
8667 {0x21, 0x88, 0x88, 0, 0},
8668 {0x22, 0x88, 0x88, 0, 0},
8669 {0x23, 0x88, 0x88, 0, 0},
8670 {0x24, 0x88, 0x88, 0, 0},
8671 {0x25, 0xc, 0xc, 0, 0},
8672 {0x26, 0, 0, 0, 0},
8673 {0x27, 0x3, 0x3, 0, 0},
8674 {0x28, 0, 0, 0, 0},
8675 {0x29, 0x3, 0x3, 0, 0},
8676 {0x2A, 0x37, 0x37, 0, 0},
8677 {0x2B, 0x3, 0x3, 0, 0},
8678 {0x2C, 0, 0, 0, 0},
8679 {0x2D, 0, 0, 0, 0},
8680 {0x2E, 0x1, 0x1, 0, 0},
8681 {0x2F, 0x1, 0x1, 0, 0},
8682 {0x30, 0, 0, 0, 0},
8683 {0x31, 0, 0, 0, 0},
8684 {0x32, 0, 0, 0, 0},
8685 {0x33, 0x11, 0x11, 0, 0},
8686 {0x34, 0x11, 0x11, 0, 0},
8687 {0x35, 0, 0, 0, 0},
8688 {0x36, 0, 0, 0, 0},
8689 {0x37, 0x3, 0x3, 0, 0},
8690 {0x38, 0xf, 0xf, 0, 0},
8691 {0x39, 0, 0, 0, 0},
8692 {0x3A, 0x2d, 0x2d, 0, 0},
8693 {0x3B, 0, 0, 0, 0},
8694 {0x3C, 0x6e, 0x6e, 0, 0},
8695 {0x3D, 0xf0, 0xf0, 1, 1},
8696 {0x3E, 0, 0, 0, 0},
8697 {0x3F, 0, 0, 0, 0},
8698 {0x40, 0, 0, 0, 0},
8699 {0x41, 0x3, 0x3, 0, 0},
8700 {0x42, 0x3, 0x3, 0, 0},
8701 {0x43, 0, 0, 0, 0},
8702 {0x44, 0x1e, 0x1e, 0, 0},
8703 {0x45, 0, 0, 0, 0},
8704 {0x46, 0x6e, 0x6e, 0, 0},
8705 {0x47, 0xf0, 0xf0, 1, 1},
8706 {0x48, 0, 0, 0, 0},
8707 {0x49, 0x2, 0x2, 0, 0},
8708 {0x4A, 0xff, 0xff, 1, 1},
8709 {0x4B, 0xc, 0xc, 0, 0},
8710 {0x4C, 0, 0, 0, 0},
8711 {0x4D, 0x38, 0x38, 0, 0},
8712 {0x4E, 0x70, 0x70, 1, 1},
8713 {0x4F, 0x2, 0x2, 0, 0},
8714 {0x50, 0x88, 0x88, 0, 0},
8715 {0x51, 0xc, 0xc, 0, 0},
8716 {0x52, 0, 0, 0, 0},
8717 {0x53, 0x8, 0x8, 0, 0},
8718 {0x54, 0x70, 0x70, 1, 1},
8719 {0x55, 0x2, 0x2, 0, 0},
8720 {0x56, 0xff, 0xff, 1, 1},
8721 {0x57, 0, 0, 0, 0},
8722 {0x58, 0x83, 0x83, 0, 0},
8723 {0x59, 0x77, 0x77, 1, 1},
8724 {0x5A, 0, 0, 0, 0},
8725 {0x5B, 0x2, 0x2, 0, 0},
8726 {0x5C, 0x88, 0x88, 0, 0},
8727 {0x5D, 0, 0, 0, 0},
8728 {0x5E, 0x8, 0x8, 0, 0},
8729 {0x5F, 0x77, 0x77, 1, 1},
8730 {0x60, 0x1, 0x1, 0, 0},
8731 {0x61, 0, 0, 0, 0},
8732 {0x62, 0x7, 0x7, 0, 0},
8733 {0x63, 0, 0, 0, 0},
8734 {0x64, 0x7, 0x7, 0, 0},
8735 {0x65, 0, 0, 0, 0},
8736 {0x66, 0, 0, 0, 0},
8737 {0x67, 0x72, 0x72, 1, 1},
8738 {0x68, 0, 0, 0, 0},
8739 {0x69, 0xa, 0xa, 0, 0},
8740 {0x6A, 0, 0, 0, 0},
8741 {0x6B, 0, 0, 0, 0},
8742 {0x6C, 0, 0, 0, 0},
8743 {0x6D, 0, 0, 0, 0},
8744 {0x6E, 0, 0, 0, 0},
8745 {0x6F, 0, 0, 0, 0},
8746 {0x70, 0, 0, 0, 0},
8747 {0x71, 0x2, 0x2, 0, 0},
8748 {0x72, 0, 0, 0, 0},
8749 {0x73, 0, 0, 0, 0},
8750 {0x74, 0xe, 0xe, 0, 0},
8751 {0x75, 0xe, 0xe, 0, 0},
8752 {0x76, 0xe, 0xe, 0, 0},
8753 {0x77, 0x13, 0x13, 0, 0},
8754 {0x78, 0x13, 0x13, 0, 0},
8755 {0x79, 0x1b, 0x1b, 0, 0},
8756 {0x7A, 0x1b, 0x1b, 0, 0},
8757 {0x7B, 0x55, 0x55, 0, 0},
8758 {0x7C, 0x5b, 0x5b, 0, 0},
8759 {0x7D, 0, 0, 0, 0},
8760 {0x7E, 0, 0, 0, 0},
8761 {0x7F, 0, 0, 0, 0},
8762 {0x80, 0, 0, 0, 0},
8763 {0x81, 0, 0, 0, 0},
8764 {0x82, 0, 0, 0, 0},
8765 {0x83, 0, 0, 0, 0},
8766 {0x84, 0, 0, 0, 0},
8767 {0x85, 0, 0, 0, 0},
8768 {0x86, 0, 0, 0, 0},
8769 {0x87, 0, 0, 0, 0},
8770 {0x88, 0, 0, 0, 0},
8771 {0x89, 0, 0, 0, 0},
8772 {0x8A, 0, 0, 0, 0},
8773 {0x8B, 0, 0, 0, 0},
8774 {0x8C, 0, 0, 0, 0},
8775 {0x8D, 0, 0, 0, 0},
8776 {0x8E, 0, 0, 0, 0},
8777 {0x8F, 0, 0, 0, 0},
8778 {0x90, 0, 0, 0, 0},
8779 {0x91, 0, 0, 0, 0},
8780 {0x92, 0, 0, 0, 0},
8781 {0xFFFF, 0, 0, 0, 0}
8782};
8783
8784radio_regs_t regs_RX_2056_A1[] = {
8785 {0x02, 0, 0, 0, 0},
8786 {0x03, 0, 0, 0, 0},
8787 {0x04, 0, 0, 0, 0},
8788 {0x05, 0, 0, 0, 0},
8789 {0x06, 0, 0, 0, 0},
8790 {0x07, 0, 0, 0, 0},
8791 {0x08, 0, 0, 0, 0},
8792 {0x09, 0, 0, 0, 0},
8793 {0x0A, 0, 0, 0, 0},
8794 {0x0B, 0, 0, 0, 0},
8795 {0x0C, 0, 0, 0, 0},
8796 {0x0D, 0, 0, 0, 0},
8797 {0x0E, 0, 0, 0, 0},
8798 {0x0F, 0, 0, 0, 0},
8799 {0x10, 0, 0, 0, 0},
8800 {0x11, 0, 0, 0, 0},
8801 {0x12, 0, 0, 0, 0},
8802 {0x13, 0, 0, 0, 0},
8803 {0x14, 0, 0, 0, 0},
8804 {0x15, 0, 0, 0, 0},
8805 {0x16, 0, 0, 0, 0},
8806 {0x17, 0, 0, 0, 0},
8807 {0x18, 0, 0, 0, 0},
8808 {0x19, 0, 0, 0, 0},
8809 {0x1A, 0, 0, 0, 0},
8810 {0x1B, 0, 0, 0, 0},
8811 {0x1C, 0, 0, 0, 0},
8812 {0x1D, 0, 0, 0, 0},
8813 {0x1E, 0, 0, 0, 0},
8814 {0x1F, 0, 0, 0, 0},
8815 {0x20, 0x3, 0x3, 0, 0},
8816 {0x21, 0, 0, 0, 0},
8817 {0x22, 0, 0, 0, 0},
8818 {0x23, 0x90, 0x90, 0, 0},
8819 {0x24, 0x55, 0x55, 0, 0},
8820 {0x25, 0x15, 0x15, 0, 0},
8821 {0x26, 0x5, 0x5, 0, 0},
8822 {0x27, 0x15, 0x15, 0, 0},
8823 {0x28, 0x5, 0x5, 0, 0},
8824 {0x29, 0x20, 0x20, 0, 0},
8825 {0x2A, 0x11, 0x11, 0, 0},
8826 {0x2B, 0x90, 0x90, 0, 0},
8827 {0x2C, 0, 0, 0, 0},
8828 {0x2D, 0x88, 0x88, 0, 0},
8829 {0x2E, 0x32, 0x32, 0, 0},
8830 {0x2F, 0x77, 0x77, 0, 0},
8831 {0x30, 0x17, 0x17, 1, 1},
8832 {0x31, 0xff, 0xff, 1, 1},
8833 {0x32, 0x20, 0x20, 0, 0},
8834 {0x33, 0, 0, 0, 0},
8835 {0x34, 0x88, 0x88, 0, 0},
8836 {0x35, 0x32, 0x32, 0, 0},
8837 {0x36, 0x77, 0x77, 0, 0},
8838 {0x37, 0x17, 0x17, 1, 1},
8839 {0x38, 0xf0, 0xf0, 1, 1},
8840 {0x39, 0x20, 0x20, 0, 0},
8841 {0x3A, 0x8, 0x8, 0, 0},
8842 {0x3B, 0x55, 0x55, 1, 1},
8843 {0x3C, 0, 0, 0, 0},
8844 {0x3D, 0x44, 0x44, 1, 1},
8845 {0x3E, 0, 0, 0, 0},
8846 {0x3F, 0x44, 0x44, 0, 0},
8847 {0x40, 0xf, 0xf, 1, 1},
8848 {0x41, 0x6, 0x6, 0, 0},
8849 {0x42, 0x4, 0x4, 0, 0},
8850 {0x43, 0x50, 0x50, 1, 1},
8851 {0x44, 0x8, 0x8, 0, 0},
8852 {0x45, 0x55, 0x55, 1, 1},
8853 {0x46, 0, 0, 0, 0},
8854 {0x47, 0x11, 0x11, 0, 0},
8855 {0x48, 0, 0, 0, 0},
8856 {0x49, 0x44, 0x44, 0, 0},
8857 {0x4A, 0x7, 0x7, 0, 0},
8858 {0x4B, 0x6, 0x6, 0, 0},
8859 {0x4C, 0x4, 0x4, 0, 0},
8860 {0x4D, 0, 0, 0, 0},
8861 {0x4E, 0, 0, 0, 0},
8862 {0x4F, 0x26, 0x26, 1, 1},
8863 {0x50, 0x26, 0x26, 1, 1},
8864 {0x51, 0xf, 0xf, 1, 1},
8865 {0x52, 0xf, 0xf, 1, 1},
8866 {0x53, 0x44, 0x44, 0, 0},
8867 {0x54, 0, 0, 0, 0},
8868 {0x55, 0, 0, 0, 0},
8869 {0x56, 0x8, 0x8, 0, 0},
8870 {0x57, 0x8, 0x8, 0, 0},
8871 {0x58, 0x7, 0x7, 0, 0},
8872 {0x59, 0x22, 0x22, 0, 0},
8873 {0x5A, 0x22, 0x22, 0, 0},
8874 {0x5B, 0x2, 0x2, 0, 0},
8875 {0x5C, 0x2f, 0x2f, 1, 1},
8876 {0x5D, 0x7, 0x7, 0, 0},
8877 {0x5E, 0x55, 0x55, 0, 0},
8878 {0x5F, 0x23, 0x23, 0, 0},
8879 {0x60, 0x41, 0x41, 0, 0},
8880 {0x61, 0x1, 0x1, 0, 0},
8881 {0x62, 0xa, 0xa, 0, 0},
8882 {0x63, 0, 0, 0, 0},
8883 {0x64, 0, 0, 0, 0},
8884 {0x65, 0, 0, 0, 0},
8885 {0x66, 0, 0, 0, 0},
8886 {0x67, 0, 0, 0, 0},
8887 {0x68, 0, 0, 0, 0},
8888 {0x69, 0, 0, 0, 0},
8889 {0x6A, 0, 0, 0, 0},
8890 {0x6B, 0xc, 0xc, 0, 0},
8891 {0x6C, 0, 0, 0, 0},
8892 {0x6D, 0, 0, 0, 0},
8893 {0x6E, 0, 0, 0, 0},
8894 {0x6F, 0, 0, 0, 0},
8895 {0x70, 0, 0, 0, 0},
8896 {0x71, 0, 0, 0, 0},
8897 {0x72, 0x22, 0x22, 0, 0},
8898 {0x73, 0x22, 0x22, 0, 0},
8899 {0x74, 0, 0, 1, 1},
8900 {0x75, 0xa, 0xa, 0, 0},
8901 {0x76, 0x1, 0x1, 0, 0},
8902 {0x77, 0x22, 0x22, 0, 0},
8903 {0x78, 0x30, 0x30, 0, 0},
8904 {0x79, 0, 0, 0, 0},
8905 {0x7A, 0, 0, 0, 0},
8906 {0x7B, 0, 0, 0, 0},
8907 {0x7C, 0, 0, 0, 0},
8908 {0x7D, 0, 0, 0, 0},
8909 {0x7E, 0, 0, 0, 0},
8910 {0x7F, 0, 0, 0, 0},
8911 {0x80, 0, 0, 0, 0},
8912 {0x81, 0, 0, 0, 0},
8913 {0x82, 0, 0, 0, 0},
8914 {0x83, 0, 0, 0, 0},
8915 {0x84, 0, 0, 0, 0},
8916 {0x85, 0, 0, 0, 0},
8917 {0x86, 0, 0, 0, 0},
8918 {0x87, 0, 0, 0, 0},
8919 {0x88, 0, 0, 0, 0},
8920 {0x89, 0, 0, 0, 0},
8921 {0x8A, 0, 0, 0, 0},
8922 {0x8B, 0, 0, 0, 0},
8923 {0x8C, 0, 0, 0, 0},
8924 {0x8D, 0, 0, 0, 0},
8925 {0x8E, 0, 0, 0, 0},
8926 {0x8F, 0, 0, 0, 0},
8927 {0x90, 0, 0, 0, 0},
8928 {0x91, 0, 0, 0, 0},
8929 {0x92, 0, 0, 0, 0},
8930 {0x93, 0, 0, 0, 0},
8931 {0x94, 0, 0, 0, 0},
8932 {0xFFFF, 0, 0, 0, 0}
8933};
8934
8935radio_regs_t regs_SYN_2056_rev5[] = {
8936 {0x02, 0, 0, 0, 0},
8937 {0x03, 0, 0, 0, 0},
8938 {0x04, 0, 0, 0, 0},
8939 {0x05, 0, 0, 0, 0},
8940 {0x06, 0, 0, 0, 0},
8941 {0x07, 0, 0, 0, 0},
8942 {0x08, 0, 0, 0, 0},
8943 {0x09, 0x1, 0x1, 0, 0},
8944 {0x0A, 0, 0, 0, 0},
8945 {0x0B, 0, 0, 0, 0},
8946 {0x0C, 0, 0, 0, 0},
8947 {0x0D, 0, 0, 0, 0},
8948 {0x0E, 0, 0, 0, 0},
8949 {0x0F, 0, 0, 0, 0},
8950 {0x10, 0, 0, 0, 0},
8951 {0x11, 0, 0, 0, 0},
8952 {0x12, 0, 0, 0, 0},
8953 {0x13, 0, 0, 0, 0},
8954 {0x14, 0, 0, 0, 0},
8955 {0x15, 0, 0, 0, 0},
8956 {0x16, 0, 0, 0, 0},
8957 {0x17, 0, 0, 0, 0},
8958 {0x18, 0, 0, 0, 0},
8959 {0x19, 0, 0, 0, 0},
8960 {0x1A, 0, 0, 0, 0},
8961 {0x1B, 0, 0, 0, 0},
8962 {0x1C, 0, 0, 0, 0},
8963 {0x1D, 0, 0, 0, 0},
8964 {0x1E, 0, 0, 0, 0},
8965 {0x1F, 0, 0, 0, 0},
8966 {0x20, 0, 0, 0, 0},
8967 {0x21, 0, 0, 0, 0},
8968 {0x22, 0x60, 0x60, 0, 0},
8969 {0x23, 0x6, 0x6, 0, 0},
8970 {0x24, 0xc, 0xc, 0, 0},
8971 {0x25, 0, 0, 0, 0},
8972 {0x26, 0, 0, 0, 0},
8973 {0x27, 0, 0, 0, 0},
8974 {0x28, 0x1, 0x1, 0, 0},
8975 {0x29, 0, 0, 0, 0},
8976 {0x2A, 0, 0, 0, 0},
8977 {0x2B, 0, 0, 0, 0},
8978 {0x2C, 0, 0, 0, 0},
8979 {0x2D, 0, 0, 0, 0},
8980 {0x2E, 0, 0, 0, 0},
8981 {0x2F, 0x1f, 0x1f, 0, 0},
8982 {0x30, 0x15, 0x15, 0, 0},
8983 {0x31, 0xf, 0xf, 0, 0},
8984 {0x32, 0, 0, 0, 0},
8985 {0x33, 0, 0, 0, 0},
8986 {0x34, 0, 0, 0, 0},
8987 {0x35, 0, 0, 0, 0},
8988 {0x36, 0, 0, 0, 0},
8989 {0x37, 0, 0, 0, 0},
8990 {0x38, 0, 0, 0, 0},
8991 {0x39, 0, 0, 0, 0},
8992 {0x3A, 0, 0, 0, 0},
8993 {0x3B, 0, 0, 0, 0},
8994 {0x3C, 0x13, 0x13, 0, 0},
8995 {0x3D, 0xf, 0xf, 0, 0},
8996 {0x3E, 0x18, 0x18, 0, 0},
8997 {0x3F, 0, 0, 0, 0},
8998 {0x40, 0, 0, 0, 0},
8999 {0x41, 0x20, 0x20, 0, 0},
9000 {0x42, 0x20, 0x20, 0, 0},
9001 {0x43, 0, 0, 0, 0},
9002 {0x44, 0x77, 0x77, 0, 0},
9003 {0x45, 0x7, 0x7, 0, 0},
9004 {0x46, 0x1, 0x1, 0, 0},
9005 {0x47, 0x4, 0x4, 0, 0},
9006 {0x48, 0xf, 0xf, 0, 0},
9007 {0x49, 0x30, 0x30, 0, 0},
9008 {0x4A, 0x32, 0x32, 0, 0},
9009 {0x4B, 0xd, 0xd, 0, 0},
9010 {0x4C, 0xd, 0xd, 0, 0},
9011 {0x4D, 0x4, 0x4, 0, 0},
9012 {0x4E, 0x6, 0x6, 0, 0},
9013 {0x4F, 0x1, 0x1, 0, 0},
9014 {0x50, 0x1c, 0x1c, 0, 0},
9015 {0x51, 0x2, 0x2, 0, 0},
9016 {0x52, 0x2, 0x2, 0, 0},
9017 {0x53, 0xf7, 0xf7, 1, 1},
9018 {0x54, 0xb4, 0xb4, 0, 0},
9019 {0x55, 0xd2, 0xd2, 0, 0},
9020 {0x56, 0, 0, 0, 0},
9021 {0x57, 0, 0, 0, 0},
9022 {0x58, 0x4, 0x4, 0, 0},
9023 {0x59, 0x96, 0x96, 0, 0},
9024 {0x5A, 0x3e, 0x3e, 0, 0},
9025 {0x5B, 0x3e, 0x3e, 0, 0},
9026 {0x5C, 0x13, 0x13, 0, 0},
9027 {0x5D, 0x2, 0x2, 0, 0},
9028 {0x5E, 0, 0, 0, 0},
9029 {0x5F, 0x7, 0x7, 0, 0},
9030 {0x60, 0x7, 0x7, 1, 1},
9031 {0x61, 0x8, 0x8, 0, 0},
9032 {0x62, 0x3, 0x3, 0, 0},
9033 {0x63, 0, 0, 0, 0},
9034 {0x64, 0, 0, 0, 0},
9035 {0x65, 0, 0, 0, 0},
9036 {0x66, 0, 0, 0, 0},
9037 {0x67, 0, 0, 0, 0},
9038 {0x68, 0x40, 0x40, 0, 0},
9039 {0x69, 0, 0, 0, 0},
9040 {0x6A, 0, 0, 0, 0},
9041 {0x6B, 0, 0, 0, 0},
9042 {0x6C, 0, 0, 0, 0},
9043 {0x6D, 0x1, 0x1, 0, 0},
9044 {0x6E, 0, 0, 0, 0},
9045 {0x6F, 0, 0, 0, 0},
9046 {0x70, 0x60, 0x60, 0, 0},
9047 {0x71, 0x66, 0x66, 0, 0},
9048 {0x72, 0xc, 0xc, 0, 0},
9049 {0x73, 0x66, 0x66, 0, 0},
9050 {0x74, 0x8f, 0x8f, 1, 1},
9051 {0x75, 0, 0, 0, 0},
9052 {0x76, 0xcc, 0xcc, 0, 0},
9053 {0x77, 0x1, 0x1, 0, 0},
9054 {0x78, 0x66, 0x66, 0, 0},
9055 {0x79, 0x66, 0x66, 0, 0},
9056 {0x7A, 0, 0, 0, 0},
9057 {0x7B, 0, 0, 0, 0},
9058 {0x7C, 0, 0, 0, 0},
9059 {0x7D, 0, 0, 0, 0},
9060 {0x7E, 0, 0, 0, 0},
9061 {0x7F, 0, 0, 0, 0},
9062 {0x80, 0, 0, 0, 0},
9063 {0x81, 0, 0, 0, 0},
9064 {0x82, 0, 0, 0, 0},
9065 {0x83, 0, 0, 0, 0},
9066 {0x84, 0, 0, 0, 0},
9067 {0x85, 0xff, 0xff, 0, 0},
9068 {0x86, 0, 0, 0, 0},
9069 {0x87, 0, 0, 0, 0},
9070 {0x88, 0, 0, 0, 0},
9071 {0x89, 0, 0, 0, 0},
9072 {0x8A, 0, 0, 0, 0},
9073 {0x8B, 0, 0, 0, 0},
9074 {0x8C, 0, 0, 0, 0},
9075 {0x8D, 0, 0, 0, 0},
9076 {0x8E, 0, 0, 0, 0},
9077 {0x8F, 0, 0, 0, 0},
9078 {0x90, 0, 0, 0, 0},
9079 {0x91, 0, 0, 0, 0},
9080 {0x92, 0, 0, 0, 0},
9081 {0x93, 0, 0, 0, 0},
9082 {0x94, 0, 0, 0, 0},
9083 {0x95, 0, 0, 0, 0},
9084 {0x96, 0, 0, 0, 0},
9085 {0x97, 0, 0, 0, 0},
9086 {0x98, 0, 0, 0, 0},
9087 {0x99, 0, 0, 0, 0},
9088 {0x9A, 0, 0, 0, 0},
9089 {0x9B, 0, 0, 0, 0},
9090 {0x9C, 0, 0, 0, 0},
9091 {0x9D, 0, 0, 0, 0},
9092 {0x9E, 0, 0, 0, 0},
9093 {0x9F, 0x6, 0x6, 0, 0},
9094 {0xA0, 0x66, 0x66, 0, 0},
9095 {0xA1, 0x66, 0x66, 0, 0},
9096 {0xA2, 0x66, 0x66, 0, 0},
9097 {0xA3, 0x66, 0x66, 0, 0},
9098 {0xA4, 0x66, 0x66, 0, 0},
9099 {0xA5, 0x66, 0x66, 0, 0},
9100 {0xA6, 0x66, 0x66, 0, 0},
9101 {0xA7, 0x66, 0x66, 0, 0},
9102 {0xA8, 0x66, 0x66, 0, 0},
9103 {0xA9, 0x66, 0x66, 0, 0},
9104 {0xAA, 0x66, 0x66, 0, 0},
9105 {0xAB, 0x66, 0x66, 0, 0},
9106 {0xAC, 0x66, 0x66, 0, 0},
9107 {0xAD, 0x66, 0x66, 0, 0},
9108 {0xAE, 0x66, 0x66, 0, 0},
9109 {0xAF, 0x66, 0x66, 0, 0},
9110 {0xB0, 0x66, 0x66, 0, 0},
9111 {0xB1, 0x66, 0x66, 0, 0},
9112 {0xB2, 0x66, 0x66, 0, 0},
9113 {0xB3, 0xa, 0xa, 0, 0},
9114 {0xB4, 0, 0, 0, 0},
9115 {0xB5, 0, 0, 0, 0},
9116 {0xB6, 0, 0, 0, 0},
9117 {0xFFFF, 0, 0, 0, 0}
9118};
9119
9120radio_regs_t regs_TX_2056_rev5[] = {
9121 {0x02, 0, 0, 0, 0},
9122 {0x03, 0, 0, 0, 0},
9123 {0x04, 0, 0, 0, 0},
9124 {0x05, 0, 0, 0, 0},
9125 {0x06, 0, 0, 0, 0},
9126 {0x07, 0, 0, 0, 0},
9127 {0x08, 0, 0, 0, 0},
9128 {0x09, 0, 0, 0, 0},
9129 {0x0A, 0, 0, 0, 0},
9130 {0x0B, 0, 0, 0, 0},
9131 {0x0C, 0, 0, 0, 0},
9132 {0x0D, 0, 0, 0, 0},
9133 {0x0E, 0, 0, 0, 0},
9134 {0x0F, 0, 0, 0, 0},
9135 {0x10, 0, 0, 0, 0},
9136 {0x11, 0, 0, 0, 0},
9137 {0x12, 0, 0, 0, 0},
9138 {0x13, 0, 0, 0, 0},
9139 {0x14, 0, 0, 0, 0},
9140 {0x15, 0, 0, 0, 0},
9141 {0x16, 0, 0, 0, 0},
9142 {0x17, 0, 0, 0, 0},
9143 {0x18, 0, 0, 0, 0},
9144 {0x19, 0, 0, 0, 0},
9145 {0x1A, 0, 0, 0, 0},
9146 {0x1B, 0, 0, 0, 0},
9147 {0x1C, 0, 0, 0, 0},
9148 {0x1D, 0, 0, 0, 0},
9149 {0x1E, 0, 0, 0, 0},
9150 {0x1F, 0, 0, 0, 0},
9151 {0x20, 0, 0, 0, 0},
9152 {0x21, 0x88, 0x88, 0, 0},
9153 {0x22, 0x88, 0x88, 0, 0},
9154 {0x23, 0x88, 0x88, 0, 0},
9155 {0x24, 0x88, 0x88, 0, 0},
9156 {0x25, 0xc, 0xc, 0, 0},
9157 {0x26, 0, 0, 0, 0},
9158 {0x27, 0x3, 0x3, 0, 0},
9159 {0x28, 0, 0, 0, 0},
9160 {0x29, 0x3, 0x3, 0, 0},
9161 {0x2A, 0x37, 0x37, 0, 0},
9162 {0x2B, 0x3, 0x3, 0, 0},
9163 {0x2C, 0, 0, 0, 0},
9164 {0x2D, 0, 0, 0, 0},
9165 {0x2E, 0x1, 0x1, 0, 0},
9166 {0x2F, 0x1, 0x1, 0, 0},
9167 {0x30, 0, 0, 0, 0},
9168 {0x31, 0, 0, 0, 0},
9169 {0x32, 0, 0, 0, 0},
9170 {0x33, 0x11, 0x11, 0, 0},
9171 {0x34, 0x11, 0x11, 0, 0},
9172 {0x35, 0, 0, 0, 0},
9173 {0x36, 0, 0, 0, 0},
9174 {0x37, 0x3, 0x3, 0, 0},
9175 {0x38, 0xf, 0xf, 0, 0},
9176 {0x39, 0, 0, 0, 0},
9177 {0x3A, 0x2d, 0x2d, 0, 0},
9178 {0x3B, 0, 0, 0, 0},
9179 {0x3C, 0x6e, 0x6e, 0, 0},
9180 {0x3D, 0xf0, 0xf0, 1, 1},
9181 {0x3E, 0, 0, 0, 0},
9182 {0x3F, 0, 0, 0, 0},
9183 {0x40, 0, 0, 0, 0},
9184 {0x41, 0x3, 0x3, 0, 0},
9185 {0x42, 0x3, 0x3, 0, 0},
9186 {0x43, 0, 0, 0, 0},
9187 {0x44, 0x1e, 0x1e, 0, 0},
9188 {0x45, 0, 0, 0, 0},
9189 {0x46, 0x6e, 0x6e, 0, 0},
9190 {0x47, 0xf0, 0xf0, 1, 1},
9191 {0x48, 0, 0, 0, 0},
9192 {0x49, 0x2, 0x2, 0, 0},
9193 {0x4A, 0xff, 0xff, 1, 1},
9194 {0x4B, 0xc, 0xc, 0, 0},
9195 {0x4C, 0, 0, 0, 0},
9196 {0x4D, 0x38, 0x38, 0, 0},
9197 {0x4E, 0x70, 0x70, 1, 1},
9198 {0x4F, 0x2, 0x2, 0, 0},
9199 {0x50, 0x88, 0x88, 0, 0},
9200 {0x51, 0xc, 0xc, 0, 0},
9201 {0x52, 0, 0, 0, 0},
9202 {0x53, 0x8, 0x8, 0, 0},
9203 {0x54, 0x70, 0x70, 1, 1},
9204 {0x55, 0x2, 0x2, 0, 0},
9205 {0x56, 0xff, 0xff, 1, 1},
9206 {0x57, 0, 0, 0, 0},
9207 {0x58, 0x83, 0x83, 0, 0},
9208 {0x59, 0x77, 0x77, 1, 1},
9209 {0x5A, 0, 0, 0, 0},
9210 {0x5B, 0x2, 0x2, 0, 0},
9211 {0x5C, 0x88, 0x88, 0, 0},
9212 {0x5D, 0, 0, 0, 0},
9213 {0x5E, 0x8, 0x8, 0, 0},
9214 {0x5F, 0x77, 0x77, 1, 1},
9215 {0x60, 0x1, 0x1, 0, 0},
9216 {0x61, 0, 0, 0, 0},
9217 {0x62, 0x7, 0x7, 0, 0},
9218 {0x63, 0, 0, 0, 0},
9219 {0x64, 0x7, 0x7, 0, 0},
9220 {0x65, 0, 0, 0, 0},
9221 {0x66, 0, 0, 0, 0},
9222 {0x67, 0, 0, 1, 1},
9223 {0x68, 0, 0, 0, 0},
9224 {0x69, 0xa, 0xa, 0, 0},
9225 {0x6A, 0, 0, 0, 0},
9226 {0x6B, 0, 0, 0, 0},
9227 {0x6C, 0, 0, 0, 0},
9228 {0x6D, 0, 0, 0, 0},
9229 {0x6E, 0, 0, 0, 0},
9230 {0x6F, 0, 0, 0, 0},
9231 {0x70, 0, 0, 0, 0},
9232 {0x71, 0x2, 0x2, 0, 0},
9233 {0x72, 0, 0, 0, 0},
9234 {0x73, 0, 0, 0, 0},
9235 {0x74, 0xe, 0xe, 0, 0},
9236 {0x75, 0xe, 0xe, 0, 0},
9237 {0x76, 0xe, 0xe, 0, 0},
9238 {0x77, 0x13, 0x13, 0, 0},
9239 {0x78, 0x13, 0x13, 0, 0},
9240 {0x79, 0x1b, 0x1b, 0, 0},
9241 {0x7A, 0x1b, 0x1b, 0, 0},
9242 {0x7B, 0x55, 0x55, 0, 0},
9243 {0x7C, 0x5b, 0x5b, 0, 0},
9244 {0x7D, 0, 0, 0, 0},
9245 {0x7E, 0, 0, 0, 0},
9246 {0x7F, 0, 0, 0, 0},
9247 {0x80, 0, 0, 0, 0},
9248 {0x81, 0, 0, 0, 0},
9249 {0x82, 0, 0, 0, 0},
9250 {0x83, 0, 0, 0, 0},
9251 {0x84, 0, 0, 0, 0},
9252 {0x85, 0, 0, 0, 0},
9253 {0x86, 0, 0, 0, 0},
9254 {0x87, 0, 0, 0, 0},
9255 {0x88, 0, 0, 0, 0},
9256 {0x89, 0, 0, 0, 0},
9257 {0x8A, 0, 0, 0, 0},
9258 {0x8B, 0, 0, 0, 0},
9259 {0x8C, 0, 0, 0, 0},
9260 {0x8D, 0, 0, 0, 0},
9261 {0x8E, 0, 0, 0, 0},
9262 {0x8F, 0, 0, 0, 0},
9263 {0x90, 0, 0, 0, 0},
9264 {0x91, 0, 0, 0, 0},
9265 {0x92, 0, 0, 0, 0},
9266 {0x93, 0x70, 0x70, 0, 0},
9267 {0x94, 0x70, 0x70, 0, 0},
9268 {0x95, 0x71, 0x71, 1, 1},
9269 {0x96, 0x71, 0x71, 1, 1},
9270 {0x97, 0x72, 0x72, 1, 1},
9271 {0x98, 0x73, 0x73, 1, 1},
9272 {0x99, 0x74, 0x74, 1, 1},
9273 {0x9A, 0x75, 0x75, 1, 1},
9274 {0xFFFF, 0, 0, 0, 0}
9275};
9276
9277radio_regs_t regs_RX_2056_rev5[] = {
9278 {0x02, 0, 0, 0, 0},
9279 {0x03, 0, 0, 0, 0},
9280 {0x04, 0, 0, 0, 0},
9281 {0x05, 0, 0, 0, 0},
9282 {0x06, 0, 0, 0, 0},
9283 {0x07, 0, 0, 0, 0},
9284 {0x08, 0, 0, 0, 0},
9285 {0x09, 0, 0, 0, 0},
9286 {0x0A, 0, 0, 0, 0},
9287 {0x0B, 0, 0, 0, 0},
9288 {0x0C, 0, 0, 0, 0},
9289 {0x0D, 0, 0, 0, 0},
9290 {0x0E, 0, 0, 0, 0},
9291 {0x0F, 0, 0, 0, 0},
9292 {0x10, 0, 0, 0, 0},
9293 {0x11, 0, 0, 0, 0},
9294 {0x12, 0, 0, 0, 0},
9295 {0x13, 0, 0, 0, 0},
9296 {0x14, 0, 0, 0, 0},
9297 {0x15, 0, 0, 0, 0},
9298 {0x16, 0, 0, 0, 0},
9299 {0x17, 0, 0, 0, 0},
9300 {0x18, 0, 0, 0, 0},
9301 {0x19, 0, 0, 0, 0},
9302 {0x1A, 0, 0, 0, 0},
9303 {0x1B, 0, 0, 0, 0},
9304 {0x1C, 0, 0, 0, 0},
9305 {0x1D, 0, 0, 0, 0},
9306 {0x1E, 0, 0, 0, 0},
9307 {0x1F, 0, 0, 0, 0},
9308 {0x20, 0x3, 0x3, 0, 0},
9309 {0x21, 0, 0, 0, 0},
9310 {0x22, 0, 0, 0, 0},
9311 {0x23, 0x90, 0x90, 0, 0},
9312 {0x24, 0x55, 0x55, 0, 0},
9313 {0x25, 0x15, 0x15, 0, 0},
9314 {0x26, 0x5, 0x5, 0, 0},
9315 {0x27, 0x15, 0x15, 0, 0},
9316 {0x28, 0x5, 0x5, 0, 0},
9317 {0x29, 0x20, 0x20, 0, 0},
9318 {0x2A, 0x11, 0x11, 0, 0},
9319 {0x2B, 0x90, 0x90, 0, 0},
9320 {0x2C, 0, 0, 0, 0},
9321 {0x2D, 0x88, 0x88, 0, 0},
9322 {0x2E, 0x32, 0x32, 0, 0},
9323 {0x2F, 0x77, 0x77, 0, 0},
9324 {0x30, 0x17, 0x17, 1, 1},
9325 {0x31, 0xff, 0xff, 1, 1},
9326 {0x32, 0x20, 0x20, 0, 0},
9327 {0x33, 0, 0, 0, 0},
9328 {0x34, 0x88, 0x88, 0, 0},
9329 {0x35, 0x32, 0x32, 0, 0},
9330 {0x36, 0x77, 0x77, 0, 0},
9331 {0x37, 0x17, 0x17, 1, 1},
9332 {0x38, 0xf0, 0xf0, 1, 1},
9333 {0x39, 0x20, 0x20, 0, 0},
9334 {0x3A, 0x8, 0x8, 0, 0},
9335 {0x3B, 0x55, 0x55, 1, 1},
9336 {0x3C, 0, 0, 0, 0},
9337 {0x3D, 0x88, 0x88, 1, 1},
9338 {0x3E, 0, 0, 0, 0},
9339 {0x3F, 0, 0, 1, 1},
9340 {0x40, 0x7, 0x7, 1, 1},
9341 {0x41, 0x6, 0x6, 0, 0},
9342 {0x42, 0x4, 0x4, 0, 0},
9343 {0x43, 0, 0, 0, 0},
9344 {0x44, 0x8, 0x8, 0, 0},
9345 {0x45, 0x55, 0x55, 1, 1},
9346 {0x46, 0, 0, 0, 0},
9347 {0x47, 0x11, 0x11, 0, 0},
9348 {0x48, 0, 0, 0, 0},
9349 {0x49, 0, 0, 1, 1},
9350 {0x4A, 0x7, 0x7, 0, 0},
9351 {0x4B, 0x6, 0x6, 0, 0},
9352 {0x4C, 0x4, 0x4, 0, 0},
9353 {0x4D, 0, 0, 0, 0},
9354 {0x4E, 0, 0, 0, 0},
9355 {0x4F, 0x26, 0x26, 1, 1},
9356 {0x50, 0x26, 0x26, 1, 1},
9357 {0x51, 0xf, 0xf, 1, 1},
9358 {0x52, 0xf, 0xf, 1, 1},
9359 {0x53, 0x44, 0x44, 0, 0},
9360 {0x54, 0, 0, 0, 0},
9361 {0x55, 0, 0, 0, 0},
9362 {0x56, 0x8, 0x8, 0, 0},
9363 {0x57, 0x8, 0x8, 0, 0},
9364 {0x58, 0x7, 0x7, 0, 0},
9365 {0x59, 0x22, 0x22, 0, 0},
9366 {0x5A, 0x22, 0x22, 0, 0},
9367 {0x5B, 0x2, 0x2, 0, 0},
9368 {0x5C, 0x4, 0x4, 1, 1},
9369 {0x5D, 0x7, 0x7, 0, 0},
9370 {0x5E, 0x55, 0x55, 0, 0},
9371 {0x5F, 0x23, 0x23, 0, 0},
9372 {0x60, 0x41, 0x41, 0, 0},
9373 {0x61, 0x1, 0x1, 0, 0},
9374 {0x62, 0xa, 0xa, 0, 0},
9375 {0x63, 0, 0, 0, 0},
9376 {0x64, 0, 0, 0, 0},
9377 {0x65, 0, 0, 0, 0},
9378 {0x66, 0, 0, 0, 0},
9379 {0x67, 0, 0, 0, 0},
9380 {0x68, 0, 0, 0, 0},
9381 {0x69, 0, 0, 0, 0},
9382 {0x6A, 0, 0, 0, 0},
9383 {0x6B, 0xc, 0xc, 0, 0},
9384 {0x6C, 0, 0, 0, 0},
9385 {0x6D, 0, 0, 0, 0},
9386 {0x6E, 0, 0, 0, 0},
9387 {0x6F, 0, 0, 0, 0},
9388 {0x70, 0, 0, 0, 0},
9389 {0x71, 0, 0, 0, 0},
9390 {0x72, 0x22, 0x22, 0, 0},
9391 {0x73, 0x22, 0x22, 0, 0},
9392 {0x74, 0, 0, 1, 1},
9393 {0x75, 0xa, 0xa, 0, 0},
9394 {0x76, 0x1, 0x1, 0, 0},
9395 {0x77, 0x22, 0x22, 0, 0},
9396 {0x78, 0x30, 0x30, 0, 0},
9397 {0x79, 0, 0, 0, 0},
9398 {0x7A, 0, 0, 0, 0},
9399 {0x7B, 0, 0, 0, 0},
9400 {0x7C, 0, 0, 0, 0},
9401 {0x7D, 0, 0, 0, 0},
9402 {0x7E, 0, 0, 0, 0},
9403 {0x7F, 0, 0, 0, 0},
9404 {0x80, 0, 0, 0, 0},
9405 {0x81, 0, 0, 0, 0},
9406 {0x82, 0, 0, 0, 0},
9407 {0x83, 0, 0, 0, 0},
9408 {0x84, 0, 0, 0, 0},
9409 {0x85, 0, 0, 0, 0},
9410 {0x86, 0, 0, 0, 0},
9411 {0x87, 0, 0, 0, 0},
9412 {0x88, 0, 0, 0, 0},
9413 {0x89, 0, 0, 0, 0},
9414 {0x8A, 0, 0, 0, 0},
9415 {0x8B, 0, 0, 0, 0},
9416 {0x8C, 0, 0, 0, 0},
9417 {0x8D, 0, 0, 0, 0},
9418 {0x8E, 0, 0, 0, 0},
9419 {0x8F, 0, 0, 0, 0},
9420 {0x90, 0, 0, 0, 0},
9421 {0x91, 0, 0, 0, 0},
9422 {0x92, 0, 0, 0, 0},
9423 {0x93, 0, 0, 0, 0},
9424 {0x94, 0, 0, 0, 0},
9425 {0xFFFF, 0, 0, 0, 0}
9426};
9427
9428radio_regs_t regs_SYN_2056_rev6[] = {
9429 {0x02, 0, 0, 0, 0},
9430 {0x03, 0, 0, 0, 0},
9431 {0x04, 0, 0, 0, 0},
9432 {0x05, 0, 0, 0, 0},
9433 {0x06, 0, 0, 0, 0},
9434 {0x07, 0, 0, 0, 0},
9435 {0x08, 0, 0, 0, 0},
9436 {0x09, 0x1, 0x1, 0, 0},
9437 {0x0A, 0, 0, 0, 0},
9438 {0x0B, 0, 0, 0, 0},
9439 {0x0C, 0, 0, 0, 0},
9440 {0x0D, 0, 0, 0, 0},
9441 {0x0E, 0, 0, 0, 0},
9442 {0x0F, 0, 0, 0, 0},
9443 {0x10, 0, 0, 0, 0},
9444 {0x11, 0, 0, 0, 0},
9445 {0x12, 0, 0, 0, 0},
9446 {0x13, 0, 0, 0, 0},
9447 {0x14, 0, 0, 0, 0},
9448 {0x15, 0, 0, 0, 0},
9449 {0x16, 0, 0, 0, 0},
9450 {0x17, 0, 0, 0, 0},
9451 {0x18, 0, 0, 0, 0},
9452 {0x19, 0, 0, 0, 0},
9453 {0x1A, 0, 0, 0, 0},
9454 {0x1B, 0, 0, 0, 0},
9455 {0x1C, 0, 0, 0, 0},
9456 {0x1D, 0, 0, 0, 0},
9457 {0x1E, 0, 0, 0, 0},
9458 {0x1F, 0, 0, 0, 0},
9459 {0x20, 0, 0, 0, 0},
9460 {0x21, 0, 0, 0, 0},
9461 {0x22, 0x60, 0x60, 0, 0},
9462 {0x23, 0x6, 0x6, 0, 0},
9463 {0x24, 0xc, 0xc, 0, 0},
9464 {0x25, 0, 0, 0, 0},
9465 {0x26, 0, 0, 0, 0},
9466 {0x27, 0, 0, 0, 0},
9467 {0x28, 0x1, 0x1, 0, 0},
9468 {0x29, 0, 0, 0, 0},
9469 {0x2A, 0, 0, 0, 0},
9470 {0x2B, 0, 0, 0, 0},
9471 {0x2C, 0, 0, 0, 0},
9472 {0x2D, 0, 0, 0, 0},
9473 {0x2E, 0, 0, 0, 0},
9474 {0x2F, 0x1f, 0x1f, 0, 0},
9475 {0x30, 0x15, 0x15, 0, 0},
9476 {0x31, 0xf, 0xf, 0, 0},
9477 {0x32, 0, 0, 0, 0},
9478 {0x33, 0, 0, 0, 0},
9479 {0x34, 0, 0, 0, 0},
9480 {0x35, 0, 0, 0, 0},
9481 {0x36, 0, 0, 0, 0},
9482 {0x37, 0, 0, 0, 0},
9483 {0x38, 0, 0, 0, 0},
9484 {0x39, 0, 0, 0, 0},
9485 {0x3A, 0, 0, 0, 0},
9486 {0x3B, 0, 0, 0, 0},
9487 {0x3C, 0x13, 0x13, 0, 0},
9488 {0x3D, 0xf, 0xf, 0, 0},
9489 {0x3E, 0x18, 0x18, 0, 0},
9490 {0x3F, 0, 0, 0, 0},
9491 {0x40, 0, 0, 0, 0},
9492 {0x41, 0x20, 0x20, 0, 0},
9493 {0x42, 0x20, 0x20, 0, 0},
9494 {0x43, 0, 0, 0, 0},
9495 {0x44, 0x77, 0x77, 0, 0},
9496 {0x45, 0x7, 0x7, 0, 0},
9497 {0x46, 0x1, 0x1, 0, 0},
9498 {0x47, 0x4, 0x4, 0, 0},
9499 {0x48, 0xf, 0xf, 0, 0},
9500 {0x49, 0x30, 0x30, 0, 0},
9501 {0x4A, 0x32, 0x32, 0, 0},
9502 {0x4B, 0xd, 0xd, 0, 0},
9503 {0x4C, 0xd, 0xd, 0, 0},
9504 {0x4D, 0x4, 0x4, 0, 0},
9505 {0x4E, 0x6, 0x6, 0, 0},
9506 {0x4F, 0x1, 0x1, 0, 0},
9507 {0x50, 0x1c, 0x1c, 0, 0},
9508 {0x51, 0x2, 0x2, 0, 0},
9509 {0x52, 0x2, 0x2, 0, 0},
9510 {0x53, 0xf7, 0xf7, 1, 1},
9511 {0x54, 0xb4, 0xb4, 0, 0},
9512 {0x55, 0xd2, 0xd2, 0, 0},
9513 {0x56, 0, 0, 0, 0},
9514 {0x57, 0, 0, 0, 0},
9515 {0x58, 0x4, 0x4, 0, 0},
9516 {0x59, 0x96, 0x96, 0, 0},
9517 {0x5A, 0x3e, 0x3e, 0, 0},
9518 {0x5B, 0x3e, 0x3e, 0, 0},
9519 {0x5C, 0x13, 0x13, 0, 0},
9520 {0x5D, 0x2, 0x2, 0, 0},
9521 {0x5E, 0, 0, 0, 0},
9522 {0x5F, 0x7, 0x7, 0, 0},
9523 {0x60, 0x7, 0x7, 1, 1},
9524 {0x61, 0x8, 0x8, 0, 0},
9525 {0x62, 0x3, 0x3, 0, 0},
9526 {0x63, 0, 0, 0, 0},
9527 {0x64, 0, 0, 0, 0},
9528 {0x65, 0, 0, 0, 0},
9529 {0x66, 0, 0, 0, 0},
9530 {0x67, 0, 0, 0, 0},
9531 {0x68, 0x40, 0x40, 0, 0},
9532 {0x69, 0, 0, 0, 0},
9533 {0x6A, 0, 0, 0, 0},
9534 {0x6B, 0, 0, 0, 0},
9535 {0x6C, 0, 0, 0, 0},
9536 {0x6D, 0x1, 0x1, 0, 0},
9537 {0x6E, 0, 0, 0, 0},
9538 {0x6F, 0, 0, 0, 0},
9539 {0x70, 0x60, 0x60, 0, 0},
9540 {0x71, 0x66, 0x66, 0, 0},
9541 {0x72, 0xc, 0xc, 0, 0},
9542 {0x73, 0x66, 0x66, 0, 0},
9543 {0x74, 0x8f, 0x8f, 1, 1},
9544 {0x75, 0, 0, 0, 0},
9545 {0x76, 0xcc, 0xcc, 0, 0},
9546 {0x77, 0x1, 0x1, 0, 0},
9547 {0x78, 0x66, 0x66, 0, 0},
9548 {0x79, 0x66, 0x66, 0, 0},
9549 {0x7A, 0, 0, 0, 0},
9550 {0x7B, 0, 0, 0, 0},
9551 {0x7C, 0, 0, 0, 0},
9552 {0x7D, 0, 0, 0, 0},
9553 {0x7E, 0, 0, 0, 0},
9554 {0x7F, 0, 0, 0, 0},
9555 {0x80, 0, 0, 0, 0},
9556 {0x81, 0, 0, 0, 0},
9557 {0x82, 0, 0, 0, 0},
9558 {0x83, 0, 0, 0, 0},
9559 {0x84, 0, 0, 0, 0},
9560 {0x85, 0xff, 0xff, 0, 0},
9561 {0x86, 0, 0, 0, 0},
9562 {0x87, 0, 0, 0, 0},
9563 {0x88, 0, 0, 0, 0},
9564 {0x89, 0, 0, 0, 0},
9565 {0x8A, 0, 0, 0, 0},
9566 {0x8B, 0, 0, 0, 0},
9567 {0x8C, 0, 0, 0, 0},
9568 {0x8D, 0, 0, 0, 0},
9569 {0x8E, 0, 0, 0, 0},
9570 {0x8F, 0, 0, 0, 0},
9571 {0x90, 0, 0, 0, 0},
9572 {0x91, 0, 0, 0, 0},
9573 {0x92, 0, 0, 0, 0},
9574 {0x93, 0, 0, 0, 0},
9575 {0x94, 0, 0, 0, 0},
9576 {0x95, 0, 0, 0, 0},
9577 {0x96, 0, 0, 0, 0},
9578 {0x97, 0, 0, 0, 0},
9579 {0x98, 0, 0, 0, 0},
9580 {0x99, 0, 0, 0, 0},
9581 {0x9A, 0, 0, 0, 0},
9582 {0x9B, 0, 0, 0, 0},
9583 {0x9C, 0, 0, 0, 0},
9584 {0x9D, 0, 0, 0, 0},
9585 {0x9E, 0, 0, 0, 0},
9586 {0x9F, 0x6, 0x6, 0, 0},
9587 {0xA0, 0x66, 0x66, 0, 0},
9588 {0xA1, 0x66, 0x66, 0, 0},
9589 {0xA2, 0x66, 0x66, 0, 0},
9590 {0xA3, 0x66, 0x66, 0, 0},
9591 {0xA4, 0x66, 0x66, 0, 0},
9592 {0xA5, 0x66, 0x66, 0, 0},
9593 {0xA6, 0x66, 0x66, 0, 0},
9594 {0xA7, 0x66, 0x66, 0, 0},
9595 {0xA8, 0x66, 0x66, 0, 0},
9596 {0xA9, 0x66, 0x66, 0, 0},
9597 {0xAA, 0x66, 0x66, 0, 0},
9598 {0xAB, 0x66, 0x66, 0, 0},
9599 {0xAC, 0x66, 0x66, 0, 0},
9600 {0xAD, 0x66, 0x66, 0, 0},
9601 {0xAE, 0x66, 0x66, 0, 0},
9602 {0xAF, 0x66, 0x66, 0, 0},
9603 {0xB0, 0x66, 0x66, 0, 0},
9604 {0xB1, 0x66, 0x66, 0, 0},
9605 {0xB2, 0x66, 0x66, 0, 0},
9606 {0xB3, 0xa, 0xa, 0, 0},
9607 {0xB4, 0, 0, 0, 0},
9608 {0xB5, 0, 0, 0, 0},
9609 {0xB6, 0, 0, 0, 0},
9610 {0xFFFF, 0, 0, 0, 0}
9611};
9612
9613radio_regs_t regs_TX_2056_rev6[] = {
9614 {0x02, 0, 0, 0, 0},
9615 {0x03, 0, 0, 0, 0},
9616 {0x04, 0, 0, 0, 0},
9617 {0x05, 0, 0, 0, 0},
9618 {0x06, 0, 0, 0, 0},
9619 {0x07, 0, 0, 0, 0},
9620 {0x08, 0, 0, 0, 0},
9621 {0x09, 0, 0, 0, 0},
9622 {0x0A, 0, 0, 0, 0},
9623 {0x0B, 0, 0, 0, 0},
9624 {0x0C, 0, 0, 0, 0},
9625 {0x0D, 0, 0, 0, 0},
9626 {0x0E, 0, 0, 0, 0},
9627 {0x0F, 0, 0, 0, 0},
9628 {0x10, 0, 0, 0, 0},
9629 {0x11, 0, 0, 0, 0},
9630 {0x12, 0, 0, 0, 0},
9631 {0x13, 0, 0, 0, 0},
9632 {0x14, 0, 0, 0, 0},
9633 {0x15, 0, 0, 0, 0},
9634 {0x16, 0, 0, 0, 0},
9635 {0x17, 0, 0, 0, 0},
9636 {0x18, 0, 0, 0, 0},
9637 {0x19, 0, 0, 0, 0},
9638 {0x1A, 0, 0, 0, 0},
9639 {0x1B, 0, 0, 0, 0},
9640 {0x1C, 0, 0, 0, 0},
9641 {0x1D, 0, 0, 0, 0},
9642 {0x1E, 0, 0, 0, 0},
9643 {0x1F, 0, 0, 0, 0},
9644 {0x20, 0, 0, 0, 0},
9645 {0x21, 0x88, 0x88, 0, 0},
9646 {0x22, 0x88, 0x88, 0, 0},
9647 {0x23, 0x88, 0x88, 0, 0},
9648 {0x24, 0x88, 0x88, 0, 0},
9649 {0x25, 0xc, 0xc, 0, 0},
9650 {0x26, 0, 0, 0, 0},
9651 {0x27, 0x3, 0x3, 0, 0},
9652 {0x28, 0, 0, 0, 0},
9653 {0x29, 0x3, 0x3, 0, 0},
9654 {0x2A, 0x37, 0x37, 0, 0},
9655 {0x2B, 0x3, 0x3, 0, 0},
9656 {0x2C, 0, 0, 0, 0},
9657 {0x2D, 0, 0, 0, 0},
9658 {0x2E, 0x1, 0x1, 0, 0},
9659 {0x2F, 0x1, 0x1, 0, 0},
9660 {0x30, 0, 0, 0, 0},
9661 {0x31, 0, 0, 0, 0},
9662 {0x32, 0, 0, 0, 0},
9663 {0x33, 0x11, 0x11, 0, 0},
9664 {0x34, 0xee, 0xee, 1, 1},
9665 {0x35, 0, 0, 0, 0},
9666 {0x36, 0, 0, 0, 0},
9667 {0x37, 0x3, 0x3, 0, 0},
9668 {0x38, 0x50, 0x50, 1, 1},
9669 {0x39, 0, 0, 0, 0},
9670 {0x3A, 0x50, 0x50, 1, 1},
9671 {0x3B, 0, 0, 0, 0},
9672 {0x3C, 0x6e, 0x6e, 0, 0},
9673 {0x3D, 0xf0, 0xf0, 1, 1},
9674 {0x3E, 0, 0, 0, 0},
9675 {0x3F, 0, 0, 0, 0},
9676 {0x40, 0, 0, 0, 0},
9677 {0x41, 0x3, 0x3, 0, 0},
9678 {0x42, 0x3, 0x3, 0, 0},
9679 {0x43, 0, 0, 0, 0},
9680 {0x44, 0x1e, 0x1e, 0, 0},
9681 {0x45, 0, 0, 0, 0},
9682 {0x46, 0x6e, 0x6e, 0, 0},
9683 {0x47, 0xf0, 0xf0, 1, 1},
9684 {0x48, 0, 0, 0, 0},
9685 {0x49, 0x2, 0x2, 0, 0},
9686 {0x4A, 0xff, 0xff, 1, 1},
9687 {0x4B, 0xc, 0xc, 0, 0},
9688 {0x4C, 0, 0, 0, 0},
9689 {0x4D, 0x38, 0x38, 0, 0},
9690 {0x4E, 0x70, 0x70, 1, 1},
9691 {0x4F, 0x2, 0x2, 0, 0},
9692 {0x50, 0x88, 0x88, 0, 0},
9693 {0x51, 0xc, 0xc, 0, 0},
9694 {0x52, 0, 0, 0, 0},
9695 {0x53, 0x8, 0x8, 0, 0},
9696 {0x54, 0x70, 0x70, 1, 1},
9697 {0x55, 0x2, 0x2, 0, 0},
9698 {0x56, 0xff, 0xff, 1, 1},
9699 {0x57, 0, 0, 0, 0},
9700 {0x58, 0x83, 0x83, 0, 0},
9701 {0x59, 0x77, 0x77, 1, 1},
9702 {0x5A, 0, 0, 0, 0},
9703 {0x5B, 0x2, 0x2, 0, 0},
9704 {0x5C, 0x88, 0x88, 0, 0},
9705 {0x5D, 0, 0, 0, 0},
9706 {0x5E, 0x8, 0x8, 0, 0},
9707 {0x5F, 0x77, 0x77, 1, 1},
9708 {0x60, 0x1, 0x1, 0, 0},
9709 {0x61, 0, 0, 0, 0},
9710 {0x62, 0x7, 0x7, 0, 0},
9711 {0x63, 0, 0, 0, 0},
9712 {0x64, 0x7, 0x7, 0, 0},
9713 {0x65, 0, 0, 0, 0},
9714 {0x66, 0, 0, 0, 0},
9715 {0x67, 0, 0, 1, 1},
9716 {0x68, 0, 0, 0, 0},
9717 {0x69, 0xa, 0xa, 0, 0},
9718 {0x6A, 0, 0, 0, 0},
9719 {0x6B, 0, 0, 0, 0},
9720 {0x6C, 0, 0, 0, 0},
9721 {0x6D, 0, 0, 0, 0},
9722 {0x6E, 0, 0, 0, 0},
9723 {0x6F, 0, 0, 0, 0},
9724 {0x70, 0, 0, 0, 0},
9725 {0x71, 0x2, 0x2, 0, 0},
9726 {0x72, 0, 0, 0, 0},
9727 {0x73, 0, 0, 0, 0},
9728 {0x74, 0xe, 0xe, 0, 0},
9729 {0x75, 0xe, 0xe, 0, 0},
9730 {0x76, 0xe, 0xe, 0, 0},
9731 {0x77, 0x13, 0x13, 0, 0},
9732 {0x78, 0x13, 0x13, 0, 0},
9733 {0x79, 0x1b, 0x1b, 0, 0},
9734 {0x7A, 0x1b, 0x1b, 0, 0},
9735 {0x7B, 0x55, 0x55, 0, 0},
9736 {0x7C, 0x5b, 0x5b, 0, 0},
9737 {0x7D, 0x30, 0x30, 1, 1},
9738 {0x7E, 0, 0, 0, 0},
9739 {0x7F, 0, 0, 0, 0},
9740 {0x80, 0, 0, 0, 0},
9741 {0x81, 0, 0, 0, 0},
9742 {0x82, 0, 0, 0, 0},
9743 {0x83, 0, 0, 0, 0},
9744 {0x84, 0, 0, 0, 0},
9745 {0x85, 0, 0, 0, 0},
9746 {0x86, 0, 0, 0, 0},
9747 {0x87, 0, 0, 0, 0},
9748 {0x88, 0, 0, 0, 0},
9749 {0x89, 0, 0, 0, 0},
9750 {0x8A, 0, 0, 0, 0},
9751 {0x8B, 0, 0, 0, 0},
9752 {0x8C, 0, 0, 0, 0},
9753 {0x8D, 0, 0, 0, 0},
9754 {0x8E, 0, 0, 0, 0},
9755 {0x8F, 0, 0, 0, 0},
9756 {0x90, 0, 0, 0, 0},
9757 {0x91, 0, 0, 0, 0},
9758 {0x92, 0, 0, 0, 0},
9759 {0x93, 0x70, 0x70, 0, 0},
9760 {0x94, 0x70, 0x70, 0, 0},
9761 {0x95, 0x70, 0x70, 0, 0},
9762 {0x96, 0x70, 0x70, 0, 0},
9763 {0x97, 0x70, 0x70, 0, 0},
9764 {0x98, 0x70, 0x70, 0, 0},
9765 {0x99, 0x70, 0x70, 0, 0},
9766 {0x9A, 0x70, 0x70, 0, 0},
9767 {0xFFFF, 0, 0, 0, 0}
9768};
9769
9770radio_regs_t regs_RX_2056_rev6[] = {
9771 {0x02, 0, 0, 0, 0},
9772 {0x03, 0, 0, 0, 0},
9773 {0x04, 0, 0, 0, 0},
9774 {0x05, 0, 0, 0, 0},
9775 {0x06, 0, 0, 0, 0},
9776 {0x07, 0, 0, 0, 0},
9777 {0x08, 0, 0, 0, 0},
9778 {0x09, 0, 0, 0, 0},
9779 {0x0A, 0, 0, 0, 0},
9780 {0x0B, 0, 0, 0, 0},
9781 {0x0C, 0, 0, 0, 0},
9782 {0x0D, 0, 0, 0, 0},
9783 {0x0E, 0, 0, 0, 0},
9784 {0x0F, 0, 0, 0, 0},
9785 {0x10, 0, 0, 0, 0},
9786 {0x11, 0, 0, 0, 0},
9787 {0x12, 0, 0, 0, 0},
9788 {0x13, 0, 0, 0, 0},
9789 {0x14, 0, 0, 0, 0},
9790 {0x15, 0, 0, 0, 0},
9791 {0x16, 0, 0, 0, 0},
9792 {0x17, 0, 0, 0, 0},
9793 {0x18, 0, 0, 0, 0},
9794 {0x19, 0, 0, 0, 0},
9795 {0x1A, 0, 0, 0, 0},
9796 {0x1B, 0, 0, 0, 0},
9797 {0x1C, 0, 0, 0, 0},
9798 {0x1D, 0, 0, 0, 0},
9799 {0x1E, 0, 0, 0, 0},
9800 {0x1F, 0, 0, 0, 0},
9801 {0x20, 0x3, 0x3, 0, 0},
9802 {0x21, 0, 0, 0, 0},
9803 {0x22, 0, 0, 0, 0},
9804 {0x23, 0x90, 0x90, 0, 0},
9805 {0x24, 0x55, 0x55, 0, 0},
9806 {0x25, 0x15, 0x15, 0, 0},
9807 {0x26, 0x5, 0x5, 0, 0},
9808 {0x27, 0x15, 0x15, 0, 0},
9809 {0x28, 0x5, 0x5, 0, 0},
9810 {0x29, 0x20, 0x20, 0, 0},
9811 {0x2A, 0x11, 0x11, 0, 0},
9812 {0x2B, 0x90, 0x90, 0, 0},
9813 {0x2C, 0, 0, 0, 0},
9814 {0x2D, 0x88, 0x88, 0, 0},
9815 {0x2E, 0x32, 0x32, 0, 0},
9816 {0x2F, 0x77, 0x77, 0, 0},
9817 {0x30, 0x17, 0x17, 1, 1},
9818 {0x31, 0xff, 0xff, 1, 1},
9819 {0x32, 0x20, 0x20, 0, 0},
9820 {0x33, 0, 0, 0, 0},
9821 {0x34, 0x88, 0x88, 0, 0},
9822 {0x35, 0x32, 0x32, 0, 0},
9823 {0x36, 0x77, 0x77, 0, 0},
9824 {0x37, 0x17, 0x17, 1, 1},
9825 {0x38, 0xf0, 0xf0, 1, 1},
9826 {0x39, 0x20, 0x20, 0, 0},
9827 {0x3A, 0x8, 0x8, 0, 0},
9828 {0x3B, 0x55, 0x55, 1, 1},
9829 {0x3C, 0, 0, 0, 0},
9830 {0x3D, 0x88, 0x88, 1, 1},
9831 {0x3E, 0, 0, 0, 0},
9832 {0x3F, 0x44, 0x44, 0, 0},
9833 {0x40, 0x7, 0x7, 1, 1},
9834 {0x41, 0x6, 0x6, 0, 0},
9835 {0x42, 0x4, 0x4, 0, 0},
9836 {0x43, 0, 0, 0, 0},
9837 {0x44, 0x8, 0x8, 0, 0},
9838 {0x45, 0x55, 0x55, 1, 1},
9839 {0x46, 0, 0, 0, 0},
9840 {0x47, 0x11, 0x11, 0, 0},
9841 {0x48, 0, 0, 0, 0},
9842 {0x49, 0x44, 0x44, 0, 0},
9843 {0x4A, 0x7, 0x7, 0, 0},
9844 {0x4B, 0x6, 0x6, 0, 0},
9845 {0x4C, 0x4, 0x4, 0, 0},
9846 {0x4D, 0, 0, 0, 0},
9847 {0x4E, 0, 0, 0, 0},
9848 {0x4F, 0x26, 0x26, 1, 1},
9849 {0x50, 0x26, 0x26, 1, 1},
9850 {0x51, 0xf, 0xf, 1, 1},
9851 {0x52, 0xf, 0xf, 1, 1},
9852 {0x53, 0x44, 0x44, 0, 0},
9853 {0x54, 0, 0, 0, 0},
9854 {0x55, 0, 0, 0, 0},
9855 {0x56, 0x8, 0x8, 0, 0},
9856 {0x57, 0x8, 0x8, 0, 0},
9857 {0x58, 0x7, 0x7, 0, 0},
9858 {0x59, 0x22, 0x22, 0, 0},
9859 {0x5A, 0x22, 0x22, 0, 0},
9860 {0x5B, 0x2, 0x2, 0, 0},
9861 {0x5C, 0x4, 0x4, 1, 1},
9862 {0x5D, 0x7, 0x7, 0, 0},
9863 {0x5E, 0x55, 0x55, 0, 0},
9864 {0x5F, 0x23, 0x23, 0, 0},
9865 {0x60, 0x41, 0x41, 0, 0},
9866 {0x61, 0x1, 0x1, 0, 0},
9867 {0x62, 0xa, 0xa, 0, 0},
9868 {0x63, 0, 0, 0, 0},
9869 {0x64, 0, 0, 0, 0},
9870 {0x65, 0, 0, 0, 0},
9871 {0x66, 0, 0, 0, 0},
9872 {0x67, 0, 0, 0, 0},
9873 {0x68, 0, 0, 0, 0},
9874 {0x69, 0, 0, 0, 0},
9875 {0x6A, 0, 0, 0, 0},
9876 {0x6B, 0xc, 0xc, 0, 0},
9877 {0x6C, 0, 0, 0, 0},
9878 {0x6D, 0, 0, 0, 0},
9879 {0x6E, 0, 0, 0, 0},
9880 {0x6F, 0, 0, 0, 0},
9881 {0x70, 0, 0, 0, 0},
9882 {0x71, 0, 0, 0, 0},
9883 {0x72, 0x22, 0x22, 0, 0},
9884 {0x73, 0x22, 0x22, 0, 0},
9885 {0x74, 0, 0, 1, 1},
9886 {0x75, 0xa, 0xa, 0, 0},
9887 {0x76, 0x1, 0x1, 0, 0},
9888 {0x77, 0x22, 0x22, 0, 0},
9889 {0x78, 0x30, 0x30, 0, 0},
9890 {0x79, 0, 0, 0, 0},
9891 {0x7A, 0, 0, 0, 0},
9892 {0x7B, 0, 0, 0, 0},
9893 {0x7C, 0, 0, 0, 0},
9894 {0x7D, 0x5, 0x5, 1, 1},
9895 {0x7E, 0, 0, 0, 0},
9896 {0x7F, 0, 0, 0, 0},
9897 {0x80, 0, 0, 0, 0},
9898 {0x81, 0, 0, 0, 0},
9899 {0x82, 0, 0, 0, 0},
9900 {0x83, 0, 0, 0, 0},
9901 {0x84, 0, 0, 0, 0},
9902 {0x85, 0, 0, 0, 0},
9903 {0x86, 0, 0, 0, 0},
9904 {0x87, 0, 0, 0, 0},
9905 {0x88, 0, 0, 0, 0},
9906 {0x89, 0, 0, 0, 0},
9907 {0x8A, 0, 0, 0, 0},
9908 {0x8B, 0, 0, 0, 0},
9909 {0x8C, 0, 0, 0, 0},
9910 {0x8D, 0, 0, 0, 0},
9911 {0x8E, 0, 0, 0, 0},
9912 {0x8F, 0, 0, 0, 0},
9913 {0x90, 0, 0, 0, 0},
9914 {0x91, 0, 0, 0, 0},
9915 {0x92, 0, 0, 0, 0},
9916 {0x93, 0, 0, 0, 0},
9917 {0x94, 0, 0, 0, 0},
9918 {0xFFFF, 0, 0, 0, 0}
9919};
9920
9921radio_regs_t regs_SYN_2056_rev7[] = {
9922 {0x02, 0, 0, 0, 0},
9923 {0x03, 0, 0, 0, 0},
9924 {0x04, 0, 0, 0, 0},
9925 {0x05, 0, 0, 0, 0},
9926 {0x06, 0, 0, 0, 0},
9927 {0x07, 0, 0, 0, 0},
9928 {0x08, 0, 0, 0, 0},
9929 {0x09, 0x1, 0x1, 0, 0},
9930 {0x0A, 0, 0, 0, 0},
9931 {0x0B, 0, 0, 0, 0},
9932 {0x0C, 0, 0, 0, 0},
9933 {0x0D, 0, 0, 0, 0},
9934 {0x0E, 0, 0, 0, 0},
9935 {0x0F, 0, 0, 0, 0},
9936 {0x10, 0, 0, 0, 0},
9937 {0x11, 0, 0, 0, 0},
9938 {0x12, 0, 0, 0, 0},
9939 {0x13, 0, 0, 0, 0},
9940 {0x14, 0, 0, 0, 0},
9941 {0x15, 0, 0, 0, 0},
9942 {0x16, 0, 0, 0, 0},
9943 {0x17, 0, 0, 0, 0},
9944 {0x18, 0, 0, 0, 0},
9945 {0x19, 0, 0, 0, 0},
9946 {0x1A, 0, 0, 0, 0},
9947 {0x1B, 0, 0, 0, 0},
9948 {0x1C, 0, 0, 0, 0},
9949 {0x1D, 0, 0, 0, 0},
9950 {0x1E, 0, 0, 0, 0},
9951 {0x1F, 0, 0, 0, 0},
9952 {0x20, 0, 0, 0, 0},
9953 {0x21, 0, 0, 0, 0},
9954 {0x22, 0x60, 0x60, 0, 0},
9955 {0x23, 0x6, 0x6, 0, 0},
9956 {0x24, 0xc, 0xc, 0, 0},
9957 {0x25, 0, 0, 0, 0},
9958 {0x26, 0, 0, 0, 0},
9959 {0x27, 0, 0, 0, 0},
9960 {0x28, 0x1, 0x1, 0, 0},
9961 {0x29, 0, 0, 0, 0},
9962 {0x2A, 0, 0, 0, 0},
9963 {0x2B, 0, 0, 0, 0},
9964 {0x2C, 0, 0, 0, 0},
9965 {0x2D, 0, 0, 0, 0},
9966 {0x2E, 0, 0, 0, 0},
9967 {0x2F, 0x1f, 0x1f, 0, 0},
9968 {0x30, 0x15, 0x15, 0, 0},
9969 {0x31, 0xf, 0xf, 0, 0},
9970 {0x32, 0, 0, 0, 0},
9971 {0x33, 0, 0, 0, 0},
9972 {0x34, 0, 0, 0, 0},
9973 {0x35, 0, 0, 0, 0},
9974 {0x36, 0, 0, 0, 0},
9975 {0x37, 0, 0, 0, 0},
9976 {0x38, 0, 0, 0, 0},
9977 {0x39, 0, 0, 0, 0},
9978 {0x3A, 0, 0, 0, 0},
9979 {0x3B, 0, 0, 0, 0},
9980 {0x3C, 0x13, 0x13, 0, 0},
9981 {0x3D, 0xf, 0xf, 0, 0},
9982 {0x3E, 0x18, 0x18, 0, 0},
9983 {0x3F, 0, 0, 0, 0},
9984 {0x40, 0, 0, 0, 0},
9985 {0x41, 0x20, 0x20, 0, 0},
9986 {0x42, 0x20, 0x20, 0, 0},
9987 {0x43, 0, 0, 0, 0},
9988 {0x44, 0x77, 0x77, 0, 0},
9989 {0x45, 0x7, 0x7, 0, 0},
9990 {0x46, 0x1, 0x1, 0, 0},
9991 {0x47, 0x4, 0x4, 0, 0},
9992 {0x48, 0xf, 0xf, 0, 0},
9993 {0x49, 0x30, 0x30, 0, 0},
9994 {0x4A, 0x32, 0x32, 0, 0},
9995 {0x4B, 0xd, 0xd, 0, 0},
9996 {0x4C, 0xd, 0xd, 0, 0},
9997 {0x4D, 0x4, 0x4, 0, 0},
9998 {0x4E, 0x6, 0x6, 0, 0},
9999 {0x4F, 0x1, 0x1, 0, 0},
10000 {0x50, 0x1c, 0x1c, 0, 0},
10001 {0x51, 0x2, 0x2, 0, 0},
10002 {0x52, 0x2, 0x2, 0, 0},
10003 {0x53, 0xf7, 0xf7, 1, 1},
10004 {0x54, 0xb4, 0xb4, 0, 0},
10005 {0x55, 0xd2, 0xd2, 0, 0},
10006 {0x56, 0, 0, 0, 0},
10007 {0x57, 0, 0, 0, 0},
10008 {0x58, 0x4, 0x4, 0, 0},
10009 {0x59, 0x96, 0x96, 0, 0},
10010 {0x5A, 0x3e, 0x3e, 0, 0},
10011 {0x5B, 0x3e, 0x3e, 0, 0},
10012 {0x5C, 0x13, 0x13, 0, 0},
10013 {0x5D, 0x2, 0x2, 0, 0},
10014 {0x5E, 0, 0, 0, 0},
10015 {0x5F, 0x7, 0x7, 0, 0},
10016 {0x60, 0x7, 0x7, 1, 1},
10017 {0x61, 0x8, 0x8, 0, 0},
10018 {0x62, 0x3, 0x3, 0, 0},
10019 {0x63, 0, 0, 0, 0},
10020 {0x64, 0, 0, 0, 0},
10021 {0x65, 0, 0, 0, 0},
10022 {0x66, 0, 0, 0, 0},
10023 {0x67, 0, 0, 0, 0},
10024 {0x68, 0x40, 0x40, 0, 0},
10025 {0x69, 0, 0, 0, 0},
10026 {0x6A, 0, 0, 0, 0},
10027 {0x6B, 0, 0, 0, 0},
10028 {0x6C, 0, 0, 0, 0},
10029 {0x6D, 0x1, 0x1, 0, 0},
10030 {0x6E, 0, 0, 0, 0},
10031 {0x6F, 0, 0, 0, 0},
10032 {0x70, 0x60, 0x60, 0, 0},
10033 {0x71, 0x66, 0x66, 0, 0},
10034 {0x72, 0xc, 0xc, 0, 0},
10035 {0x73, 0x66, 0x66, 0, 0},
10036 {0x74, 0x8f, 0x8f, 1, 1},
10037 {0x75, 0, 0, 0, 0},
10038 {0x76, 0xcc, 0xcc, 0, 0},
10039 {0x77, 0x1, 0x1, 0, 0},
10040 {0x78, 0x66, 0x66, 0, 0},
10041 {0x79, 0x66, 0x66, 0, 0},
10042 {0x7A, 0, 0, 0, 0},
10043 {0x7B, 0, 0, 0, 0},
10044 {0x7C, 0, 0, 0, 0},
10045 {0x7D, 0, 0, 0, 0},
10046 {0x7E, 0, 0, 0, 0},
10047 {0x7F, 0, 0, 0, 0},
10048 {0x80, 0, 0, 0, 0},
10049 {0x81, 0, 0, 0, 0},
10050 {0x82, 0, 0, 0, 0},
10051 {0x83, 0, 0, 0, 0},
10052 {0x84, 0, 0, 0, 0},
10053 {0x85, 0xff, 0xff, 0, 0},
10054 {0x86, 0, 0, 0, 0},
10055 {0x87, 0, 0, 0, 0},
10056 {0x88, 0, 0, 0, 0},
10057 {0x89, 0, 0, 0, 0},
10058 {0x8A, 0, 0, 0, 0},
10059 {0x8B, 0, 0, 0, 0},
10060 {0x8C, 0, 0, 0, 0},
10061 {0x8D, 0, 0, 0, 0},
10062 {0x8E, 0, 0, 0, 0},
10063 {0x8F, 0, 0, 0, 0},
10064 {0x90, 0, 0, 0, 0},
10065 {0x91, 0, 0, 0, 0},
10066 {0x92, 0, 0, 0, 0},
10067 {0x93, 0, 0, 0, 0},
10068 {0x94, 0, 0, 0, 0},
10069 {0x95, 0, 0, 0, 0},
10070 {0x96, 0, 0, 0, 0},
10071 {0x97, 0, 0, 0, 0},
10072 {0x98, 0, 0, 0, 0},
10073 {0x99, 0, 0, 0, 0},
10074 {0x9A, 0, 0, 0, 0},
10075 {0x9B, 0, 0, 0, 0},
10076 {0x9C, 0, 0, 0, 0},
10077 {0x9D, 0, 0, 0, 0},
10078 {0x9E, 0, 0, 0, 0},
10079 {0x9F, 0x6, 0x6, 0, 0},
10080 {0xA0, 0x66, 0x66, 0, 0},
10081 {0xA1, 0x66, 0x66, 0, 0},
10082 {0xA2, 0x66, 0x66, 0, 0},
10083 {0xA3, 0x66, 0x66, 0, 0},
10084 {0xA4, 0x66, 0x66, 0, 0},
10085 {0xA5, 0x66, 0x66, 0, 0},
10086 {0xA6, 0x66, 0x66, 0, 0},
10087 {0xA7, 0x66, 0x66, 0, 0},
10088 {0xA8, 0x66, 0x66, 0, 0},
10089 {0xA9, 0x66, 0x66, 0, 0},
10090 {0xAA, 0x66, 0x66, 0, 0},
10091 {0xAB, 0x66, 0x66, 0, 0},
10092 {0xAC, 0x66, 0x66, 0, 0},
10093 {0xAD, 0x66, 0x66, 0, 0},
10094 {0xAE, 0x66, 0x66, 0, 0},
10095 {0xAF, 0x66, 0x66, 0, 0},
10096 {0xB0, 0x66, 0x66, 0, 0},
10097 {0xB1, 0x66, 0x66, 0, 0},
10098 {0xB2, 0x66, 0x66, 0, 0},
10099 {0xB3, 0xa, 0xa, 0, 0},
10100 {0xB4, 0, 0, 0, 0},
10101 {0xB5, 0, 0, 0, 0},
10102 {0xB6, 0, 0, 0, 0},
10103 {0xFFFF, 0, 0, 0, 0},
10104};
10105
10106radio_regs_t regs_TX_2056_rev7[] = {
10107 {0x02, 0, 0, 0, 0},
10108 {0x03, 0, 0, 0, 0},
10109 {0x04, 0, 0, 0, 0},
10110 {0x05, 0, 0, 0, 0},
10111 {0x06, 0, 0, 0, 0},
10112 {0x07, 0, 0, 0, 0},
10113 {0x08, 0, 0, 0, 0},
10114 {0x09, 0, 0, 0, 0},
10115 {0x0A, 0, 0, 0, 0},
10116 {0x0B, 0, 0, 0, 0},
10117 {0x0C, 0, 0, 0, 0},
10118 {0x0D, 0, 0, 0, 0},
10119 {0x0E, 0, 0, 0, 0},
10120 {0x0F, 0, 0, 0, 0},
10121 {0x10, 0, 0, 0, 0},
10122 {0x11, 0, 0, 0, 0},
10123 {0x12, 0, 0, 0, 0},
10124 {0x13, 0, 0, 0, 0},
10125 {0x14, 0, 0, 0, 0},
10126 {0x15, 0, 0, 0, 0},
10127 {0x16, 0, 0, 0, 0},
10128 {0x17, 0, 0, 0, 0},
10129 {0x18, 0, 0, 0, 0},
10130 {0x19, 0, 0, 0, 0},
10131 {0x1A, 0, 0, 0, 0},
10132 {0x1B, 0, 0, 0, 0},
10133 {0x1C, 0, 0, 0, 0},
10134 {0x1D, 0, 0, 0, 0},
10135 {0x1E, 0, 0, 0, 0},
10136 {0x1F, 0, 0, 0, 0},
10137 {0x20, 0, 0, 0, 0},
10138 {0x21, 0x88, 0x88, 0, 0},
10139 {0x22, 0x88, 0x88, 0, 0},
10140 {0x23, 0x88, 0x88, 0, 0},
10141 {0x24, 0x88, 0x88, 0, 0},
10142 {0x25, 0xc, 0xc, 0, 0},
10143 {0x26, 0, 0, 0, 0},
10144 {0x27, 0x3, 0x3, 0, 0},
10145 {0x28, 0, 0, 0, 0},
10146 {0x29, 0x3, 0x3, 0, 0},
10147 {0x2A, 0x37, 0x37, 0, 0},
10148 {0x2B, 0x3, 0x3, 0, 0},
10149 {0x2C, 0, 0, 0, 0},
10150 {0x2D, 0, 0, 0, 0},
10151 {0x2E, 0x1, 0x1, 0, 0},
10152 {0x2F, 0x1, 0x1, 0, 0},
10153 {0x30, 0, 0, 0, 0},
10154 {0x31, 0, 0, 0, 0},
10155 {0x32, 0, 0, 0, 0},
10156 {0x33, 0x11, 0x11, 0, 0},
10157 {0x34, 0xee, 0xee, 1, 1},
10158 {0x35, 0, 0, 0, 0},
10159 {0x36, 0, 0, 0, 0},
10160 {0x37, 0x3, 0x3, 0, 0},
10161 {0x38, 0x50, 0x50, 1, 1},
10162 {0x39, 0, 0, 0, 0},
10163 {0x3A, 0x50, 0x50, 1, 1},
10164 {0x3B, 0, 0, 0, 0},
10165 {0x3C, 0x6e, 0x6e, 0, 0},
10166 {0x3D, 0xf0, 0xf0, 1, 1},
10167 {0x3E, 0, 0, 0, 0},
10168 {0x3F, 0, 0, 0, 0},
10169 {0x40, 0, 0, 0, 0},
10170 {0x41, 0x3, 0x3, 0, 0},
10171 {0x42, 0x3, 0x3, 0, 0},
10172 {0x43, 0, 0, 0, 0},
10173 {0x44, 0x1e, 0x1e, 0, 0},
10174 {0x45, 0, 0, 0, 0},
10175 {0x46, 0x6e, 0x6e, 0, 0},
10176 {0x47, 0xf0, 0xf0, 1, 1},
10177 {0x48, 0, 0, 0, 0},
10178 {0x49, 0x2, 0x2, 0, 0},
10179 {0x4A, 0xff, 0xff, 1, 1},
10180 {0x4B, 0xc, 0xc, 0, 0},
10181 {0x4C, 0, 0, 0, 0},
10182 {0x4D, 0x38, 0x38, 0, 0},
10183 {0x4E, 0x70, 0x70, 1, 1},
10184 {0x4F, 0x2, 0x2, 0, 0},
10185 {0x50, 0x88, 0x88, 0, 0},
10186 {0x51, 0xc, 0xc, 0, 0},
10187 {0x52, 0, 0, 0, 0},
10188 {0x53, 0x8, 0x8, 0, 0},
10189 {0x54, 0x70, 0x70, 1, 1},
10190 {0x55, 0x2, 0x2, 0, 0},
10191 {0x56, 0xff, 0xff, 1, 1},
10192 {0x57, 0, 0, 0, 0},
10193 {0x58, 0x83, 0x83, 0, 0},
10194 {0x59, 0x77, 0x77, 1, 1},
10195 {0x5A, 0, 0, 0, 0},
10196 {0x5B, 0x2, 0x2, 0, 0},
10197 {0x5C, 0x88, 0x88, 0, 0},
10198 {0x5D, 0, 0, 0, 0},
10199 {0x5E, 0x8, 0x8, 0, 0},
10200 {0x5F, 0x77, 0x77, 1, 1},
10201 {0x60, 0x1, 0x1, 0, 0},
10202 {0x61, 0, 0, 0, 0},
10203 {0x62, 0x7, 0x7, 0, 0},
10204 {0x63, 0, 0, 0, 0},
10205 {0x64, 0x7, 0x7, 0, 0},
10206 {0x65, 0, 0, 0, 0},
10207 {0x66, 0, 0, 0, 0},
10208 {0x67, 0, 0, 1, 1},
10209 {0x68, 0, 0, 0, 0},
10210 {0x69, 0xa, 0xa, 0, 0},
10211 {0x6A, 0, 0, 0, 0},
10212 {0x6B, 0, 0, 0, 0},
10213 {0x6C, 0, 0, 0, 0},
10214 {0x6D, 0, 0, 0, 0},
10215 {0x6E, 0, 0, 0, 0},
10216 {0x6F, 0, 0, 0, 0},
10217 {0x70, 0, 0, 0, 0},
10218 {0x71, 0x2, 0x2, 0, 0},
10219 {0x72, 0, 0, 0, 0},
10220 {0x73, 0, 0, 0, 0},
10221 {0x74, 0xe, 0xe, 0, 0},
10222 {0x75, 0xe, 0xe, 0, 0},
10223 {0x76, 0xe, 0xe, 0, 0},
10224 {0x77, 0x13, 0x13, 0, 0},
10225 {0x78, 0x13, 0x13, 0, 0},
10226 {0x79, 0x1b, 0x1b, 0, 0},
10227 {0x7A, 0x1b, 0x1b, 0, 0},
10228 {0x7B, 0x55, 0x55, 0, 0},
10229 {0x7C, 0x5b, 0x5b, 0, 0},
10230 {0x7D, 0x30, 0x30, 1, 1},
10231 {0x7E, 0, 0, 0, 0},
10232 {0x7F, 0, 0, 0, 0},
10233 {0x80, 0, 0, 0, 0},
10234 {0x81, 0, 0, 0, 0},
10235 {0x82, 0, 0, 0, 0},
10236 {0x83, 0, 0, 0, 0},
10237 {0x84, 0, 0, 0, 0},
10238 {0x85, 0, 0, 0, 0},
10239 {0x86, 0, 0, 0, 0},
10240 {0x87, 0, 0, 0, 0},
10241 {0x88, 0, 0, 0, 0},
10242 {0x89, 0, 0, 0, 0},
10243 {0x8A, 0, 0, 0, 0},
10244 {0x8B, 0, 0, 0, 0},
10245 {0x8C, 0, 0, 0, 0},
10246 {0x8D, 0, 0, 0, 0},
10247 {0x8E, 0, 0, 0, 0},
10248 {0x8F, 0, 0, 0, 0},
10249 {0x90, 0, 0, 0, 0},
10250 {0x91, 0, 0, 0, 0},
10251 {0x92, 0, 0, 0, 0},
10252 {0x93, 0x70, 0x70, 0, 0},
10253 {0x94, 0x70, 0x70, 0, 0},
10254 {0x95, 0x71, 0x71, 1, 1},
10255 {0x96, 0x71, 0x71, 1, 1},
10256 {0x97, 0x72, 0x72, 1, 1},
10257 {0x98, 0x73, 0x73, 1, 1},
10258 {0x99, 0x74, 0x74, 1, 1},
10259 {0x9A, 0x75, 0x75, 1, 1},
10260 {0xFFFF, 0, 0, 0, 0},
10261};
10262
10263radio_regs_t regs_RX_2056_rev7[] = {
10264 {0x02, 0, 0, 0, 0},
10265 {0x03, 0, 0, 0, 0},
10266 {0x04, 0, 0, 0, 0},
10267 {0x05, 0, 0, 0, 0},
10268 {0x06, 0, 0, 0, 0},
10269 {0x07, 0, 0, 0, 0},
10270 {0x08, 0, 0, 0, 0},
10271 {0x09, 0, 0, 0, 0},
10272 {0x0A, 0, 0, 0, 0},
10273 {0x0B, 0, 0, 0, 0},
10274 {0x0C, 0, 0, 0, 0},
10275 {0x0D, 0, 0, 0, 0},
10276 {0x0E, 0, 0, 0, 0},
10277 {0x0F, 0, 0, 0, 0},
10278 {0x10, 0, 0, 0, 0},
10279 {0x11, 0, 0, 0, 0},
10280 {0x12, 0, 0, 0, 0},
10281 {0x13, 0, 0, 0, 0},
10282 {0x14, 0, 0, 0, 0},
10283 {0x15, 0, 0, 0, 0},
10284 {0x16, 0, 0, 0, 0},
10285 {0x17, 0, 0, 0, 0},
10286 {0x18, 0, 0, 0, 0},
10287 {0x19, 0, 0, 0, 0},
10288 {0x1A, 0, 0, 0, 0},
10289 {0x1B, 0, 0, 0, 0},
10290 {0x1C, 0, 0, 0, 0},
10291 {0x1D, 0, 0, 0, 0},
10292 {0x1E, 0, 0, 0, 0},
10293 {0x1F, 0, 0, 0, 0},
10294 {0x20, 0x3, 0x3, 0, 0},
10295 {0x21, 0, 0, 0, 0},
10296 {0x22, 0, 0, 0, 0},
10297 {0x23, 0x90, 0x90, 0, 0},
10298 {0x24, 0x55, 0x55, 0, 0},
10299 {0x25, 0x15, 0x15, 0, 0},
10300 {0x26, 0x5, 0x5, 0, 0},
10301 {0x27, 0x15, 0x15, 0, 0},
10302 {0x28, 0x5, 0x5, 0, 0},
10303 {0x29, 0x20, 0x20, 0, 0},
10304 {0x2A, 0x11, 0x11, 0, 0},
10305 {0x2B, 0x90, 0x90, 0, 0},
10306 {0x2C, 0, 0, 0, 0},
10307 {0x2D, 0x88, 0x88, 0, 0},
10308 {0x2E, 0x32, 0x32, 0, 0},
10309 {0x2F, 0x77, 0x77, 0, 0},
10310 {0x30, 0x17, 0x17, 1, 1},
10311 {0x31, 0xff, 0xff, 1, 1},
10312 {0x32, 0x20, 0x20, 0, 0},
10313 {0x33, 0, 0, 0, 0},
10314 {0x34, 0x88, 0x88, 0, 0},
10315 {0x35, 0x32, 0x32, 0, 0},
10316 {0x36, 0x77, 0x77, 0, 0},
10317 {0x37, 0x17, 0x17, 1, 1},
10318 {0x38, 0xf0, 0xf0, 1, 1},
10319 {0x39, 0x20, 0x20, 0, 0},
10320 {0x3A, 0x8, 0x8, 0, 0},
10321 {0x3B, 0x55, 0x55, 1, 1},
10322 {0x3C, 0, 0, 0, 0},
10323 {0x3D, 0x88, 0x88, 1, 1},
10324 {0x3E, 0, 0, 0, 0},
10325 {0x3F, 0, 0, 1, 1},
10326 {0x40, 0x7, 0x7, 1, 1},
10327 {0x41, 0x6, 0x6, 0, 0},
10328 {0x42, 0x4, 0x4, 0, 0},
10329 {0x43, 0, 0, 0, 0},
10330 {0x44, 0x8, 0x8, 0, 0},
10331 {0x45, 0x55, 0x55, 1, 1},
10332 {0x46, 0, 0, 0, 0},
10333 {0x47, 0x11, 0x11, 0, 0},
10334 {0x48, 0, 0, 0, 0},
10335 {0x49, 0, 0, 1, 1},
10336 {0x4A, 0x7, 0x7, 0, 0},
10337 {0x4B, 0x6, 0x6, 0, 0},
10338 {0x4C, 0x4, 0x4, 0, 0},
10339 {0x4D, 0, 0, 0, 0},
10340 {0x4E, 0, 0, 0, 0},
10341 {0x4F, 0x26, 0x26, 1, 1},
10342 {0x50, 0x26, 0x26, 1, 1},
10343 {0x51, 0xf, 0xf, 1, 1},
10344 {0x52, 0xf, 0xf, 1, 1},
10345 {0x53, 0x44, 0x44, 0, 0},
10346 {0x54, 0, 0, 0, 0},
10347 {0x55, 0, 0, 0, 0},
10348 {0x56, 0x8, 0x8, 0, 0},
10349 {0x57, 0x8, 0x8, 0, 0},
10350 {0x58, 0x7, 0x7, 0, 0},
10351 {0x59, 0x22, 0x22, 0, 0},
10352 {0x5A, 0x22, 0x22, 0, 0},
10353 {0x5B, 0x2, 0x2, 0, 0},
10354 {0x5C, 0x4, 0x4, 1, 1},
10355 {0x5D, 0x7, 0x7, 0, 0},
10356 {0x5E, 0x55, 0x55, 0, 0},
10357 {0x5F, 0x23, 0x23, 0, 0},
10358 {0x60, 0x41, 0x41, 0, 0},
10359 {0x61, 0x1, 0x1, 0, 0},
10360 {0x62, 0xa, 0xa, 0, 0},
10361 {0x63, 0, 0, 0, 0},
10362 {0x64, 0, 0, 0, 0},
10363 {0x65, 0, 0, 0, 0},
10364 {0x66, 0, 0, 0, 0},
10365 {0x67, 0, 0, 0, 0},
10366 {0x68, 0, 0, 0, 0},
10367 {0x69, 0, 0, 0, 0},
10368 {0x6A, 0, 0, 0, 0},
10369 {0x6B, 0xc, 0xc, 0, 0},
10370 {0x6C, 0, 0, 0, 0},
10371 {0x6D, 0, 0, 0, 0},
10372 {0x6E, 0, 0, 0, 0},
10373 {0x6F, 0, 0, 0, 0},
10374 {0x70, 0, 0, 0, 0},
10375 {0x71, 0, 0, 0, 0},
10376 {0x72, 0x22, 0x22, 0, 0},
10377 {0x73, 0x22, 0x22, 0, 0},
10378 {0x74, 0, 0, 1, 1},
10379 {0x75, 0xa, 0xa, 0, 0},
10380 {0x76, 0x1, 0x1, 0, 0},
10381 {0x77, 0x22, 0x22, 0, 0},
10382 {0x78, 0x30, 0x30, 0, 0},
10383 {0x79, 0, 0, 0, 0},
10384 {0x7A, 0, 0, 0, 0},
10385 {0x7B, 0, 0, 0, 0},
10386 {0x7C, 0, 0, 0, 0},
10387 {0x7D, 0, 0, 0, 0},
10388 {0x7E, 0, 0, 0, 0},
10389 {0x7F, 0, 0, 0, 0},
10390 {0x80, 0, 0, 0, 0},
10391 {0x81, 0, 0, 0, 0},
10392 {0x82, 0, 0, 0, 0},
10393 {0x83, 0, 0, 0, 0},
10394 {0x84, 0, 0, 0, 0},
10395 {0x85, 0, 0, 0, 0},
10396 {0x86, 0, 0, 0, 0},
10397 {0x87, 0, 0, 0, 0},
10398 {0x88, 0, 0, 0, 0},
10399 {0x89, 0, 0, 0, 0},
10400 {0x8A, 0, 0, 0, 0},
10401 {0x8B, 0, 0, 0, 0},
10402 {0x8C, 0, 0, 0, 0},
10403 {0x8D, 0, 0, 0, 0},
10404 {0x8E, 0, 0, 0, 0},
10405 {0x8F, 0, 0, 0, 0},
10406 {0x90, 0, 0, 0, 0},
10407 {0x91, 0, 0, 0, 0},
10408 {0x92, 0, 0, 0, 0},
10409 {0x93, 0, 0, 0, 0},
10410 {0x94, 0, 0, 0, 0},
10411 {0xFFFF, 0, 0, 0, 0},
10412};
10413
10414radio_regs_t regs_SYN_2056_rev8[] = {
10415 {0x02, 0, 0, 0, 0},
10416 {0x03, 0, 0, 0, 0},
10417 {0x04, 0, 0, 0, 0},
10418 {0x05, 0, 0, 0, 0},
10419 {0x06, 0, 0, 0, 0},
10420 {0x07, 0, 0, 0, 0},
10421 {0x08, 0, 0, 0, 0},
10422 {0x09, 0x1, 0x1, 0, 0},
10423 {0x0A, 0, 0, 0, 0},
10424 {0x0B, 0, 0, 0, 0},
10425 {0x0C, 0, 0, 0, 0},
10426 {0x0D, 0, 0, 0, 0},
10427 {0x0E, 0, 0, 0, 0},
10428 {0x0F, 0, 0, 0, 0},
10429 {0x10, 0, 0, 0, 0},
10430 {0x11, 0, 0, 0, 0},
10431 {0x12, 0, 0, 0, 0},
10432 {0x13, 0, 0, 0, 0},
10433 {0x14, 0, 0, 0, 0},
10434 {0x15, 0, 0, 0, 0},
10435 {0x16, 0, 0, 0, 0},
10436 {0x17, 0, 0, 0, 0},
10437 {0x18, 0, 0, 0, 0},
10438 {0x19, 0, 0, 0, 0},
10439 {0x1A, 0, 0, 0, 0},
10440 {0x1B, 0, 0, 0, 0},
10441 {0x1C, 0, 0, 0, 0},
10442 {0x1D, 0, 0, 0, 0},
10443 {0x1E, 0, 0, 0, 0},
10444 {0x1F, 0, 0, 0, 0},
10445 {0x20, 0, 0, 0, 0},
10446 {0x21, 0, 0, 0, 0},
10447 {0x22, 0x60, 0x60, 0, 0},
10448 {0x23, 0x6, 0x6, 0, 0},
10449 {0x24, 0xc, 0xc, 0, 0},
10450 {0x25, 0, 0, 0, 0},
10451 {0x26, 0, 0, 0, 0},
10452 {0x27, 0, 0, 0, 0},
10453 {0x28, 0x1, 0x1, 0, 0},
10454 {0x29, 0, 0, 0, 0},
10455 {0x2A, 0, 0, 0, 0},
10456 {0x2B, 0, 0, 0, 0},
10457 {0x2C, 0, 0, 0, 0},
10458 {0x2D, 0, 0, 0, 0},
10459 {0x2E, 0, 0, 0, 0},
10460 {0x2F, 0x1f, 0x1f, 0, 0},
10461 {0x30, 0x15, 0x15, 0, 0},
10462 {0x31, 0xf, 0xf, 0, 0},
10463 {0x32, 0, 0, 0, 0},
10464 {0x33, 0, 0, 0, 0},
10465 {0x34, 0, 0, 0, 0},
10466 {0x35, 0, 0, 0, 0},
10467 {0x36, 0, 0, 0, 0},
10468 {0x37, 0, 0, 0, 0},
10469 {0x38, 0, 0, 0, 0},
10470 {0x39, 0, 0, 0, 0},
10471 {0x3A, 0, 0, 0, 0},
10472 {0x3B, 0, 0, 0, 0},
10473 {0x3C, 0x13, 0x13, 0, 0},
10474 {0x3D, 0xf, 0xf, 0, 0},
10475 {0x3E, 0x18, 0x18, 0, 0},
10476 {0x3F, 0, 0, 0, 0},
10477 {0x40, 0, 0, 0, 0},
10478 {0x41, 0x20, 0x20, 0, 0},
10479 {0x42, 0x20, 0x20, 0, 0},
10480 {0x43, 0, 0, 0, 0},
10481 {0x44, 0x77, 0x77, 0, 0},
10482 {0x45, 0x7, 0x7, 0, 0},
10483 {0x46, 0x1, 0x1, 0, 0},
10484 {0x47, 0x4, 0x4, 0, 0},
10485 {0x48, 0xf, 0xf, 0, 0},
10486 {0x49, 0x30, 0x30, 0, 0},
10487 {0x4A, 0x32, 0x32, 0, 0},
10488 {0x4B, 0xd, 0xd, 0, 0},
10489 {0x4C, 0xd, 0xd, 0, 0},
10490 {0x4D, 0x4, 0x4, 0, 0},
10491 {0x4E, 0x6, 0x6, 0, 0},
10492 {0x4F, 0x1, 0x1, 0, 0},
10493 {0x50, 0x1c, 0x1c, 0, 0},
10494 {0x51, 0x2, 0x2, 0, 0},
10495 {0x52, 0x2, 0x2, 0, 0},
10496 {0x53, 0xf7, 0xf7, 1, 1},
10497 {0x54, 0xb4, 0xb4, 0, 0},
10498 {0x55, 0xd2, 0xd2, 0, 0},
10499 {0x56, 0, 0, 0, 0},
10500 {0x57, 0, 0, 0, 0},
10501 {0x58, 0x4, 0x4, 0, 0},
10502 {0x59, 0x96, 0x96, 0, 0},
10503 {0x5A, 0x3e, 0x3e, 0, 0},
10504 {0x5B, 0x3e, 0x3e, 0, 0},
10505 {0x5C, 0x13, 0x13, 0, 0},
10506 {0x5D, 0x2, 0x2, 0, 0},
10507 {0x5E, 0, 0, 0, 0},
10508 {0x5F, 0x7, 0x7, 0, 0},
10509 {0x60, 0x7, 0x7, 1, 1},
10510 {0x61, 0x8, 0x8, 0, 0},
10511 {0x62, 0x3, 0x3, 0, 0},
10512 {0x63, 0, 0, 0, 0},
10513 {0x64, 0, 0, 0, 0},
10514 {0x65, 0, 0, 0, 0},
10515 {0x66, 0, 0, 0, 0},
10516 {0x67, 0, 0, 0, 0},
10517 {0x68, 0x40, 0x40, 0, 0},
10518 {0x69, 0, 0, 0, 0},
10519 {0x6A, 0, 0, 0, 0},
10520 {0x6B, 0, 0, 0, 0},
10521 {0x6C, 0, 0, 0, 0},
10522 {0x6D, 0x1, 0x1, 0, 0},
10523 {0x6E, 0, 0, 0, 0},
10524 {0x6F, 0, 0, 0, 0},
10525 {0x70, 0x60, 0x60, 0, 0},
10526 {0x71, 0x66, 0x66, 0, 0},
10527 {0x72, 0xc, 0xc, 0, 0},
10528 {0x73, 0x66, 0x66, 0, 0},
10529 {0x74, 0x8f, 0x8f, 1, 1},
10530 {0x75, 0, 0, 0, 0},
10531 {0x76, 0xcc, 0xcc, 0, 0},
10532 {0x77, 0x1, 0x1, 0, 0},
10533 {0x78, 0x66, 0x66, 0, 0},
10534 {0x79, 0x66, 0x66, 0, 0},
10535 {0x7A, 0, 0, 0, 0},
10536 {0x7B, 0, 0, 0, 0},
10537 {0x7C, 0, 0, 0, 0},
10538 {0x7D, 0, 0, 0, 0},
10539 {0x7E, 0, 0, 0, 0},
10540 {0x7F, 0, 0, 0, 0},
10541 {0x80, 0, 0, 0, 0},
10542 {0x81, 0, 0, 0, 0},
10543 {0x82, 0, 0, 0, 0},
10544 {0x83, 0, 0, 0, 0},
10545 {0x84, 0, 0, 0, 0},
10546 {0x85, 0xff, 0xff, 0, 0},
10547 {0x86, 0, 0, 0, 0},
10548 {0x87, 0, 0, 0, 0},
10549 {0x88, 0, 0, 0, 0},
10550 {0x89, 0, 0, 0, 0},
10551 {0x8A, 0, 0, 0, 0},
10552 {0x8B, 0, 0, 0, 0},
10553 {0x8C, 0, 0, 0, 0},
10554 {0x8D, 0, 0, 0, 0},
10555 {0x8E, 0, 0, 0, 0},
10556 {0x8F, 0, 0, 0, 0},
10557 {0x90, 0, 0, 0, 0},
10558 {0x91, 0, 0, 0, 0},
10559 {0x92, 0, 0, 0, 0},
10560 {0x93, 0, 0, 0, 0},
10561 {0x94, 0, 0, 0, 0},
10562 {0x95, 0, 0, 0, 0},
10563 {0x96, 0, 0, 0, 0},
10564 {0x97, 0, 0, 0, 0},
10565 {0x98, 0, 0, 0, 0},
10566 {0x99, 0, 0, 0, 0},
10567 {0x9A, 0, 0, 0, 0},
10568 {0x9B, 0, 0, 0, 0},
10569 {0x9C, 0, 0, 0, 0},
10570 {0x9D, 0, 0, 0, 0},
10571 {0x9E, 0, 0, 0, 0},
10572 {0x9F, 0x6, 0x6, 0, 0},
10573 {0xA0, 0x66, 0x66, 0, 0},
10574 {0xA1, 0x66, 0x66, 0, 0},
10575 {0xA2, 0x66, 0x66, 0, 0},
10576 {0xA3, 0x66, 0x66, 0, 0},
10577 {0xA4, 0x66, 0x66, 0, 0},
10578 {0xA5, 0x66, 0x66, 0, 0},
10579 {0xA6, 0x66, 0x66, 0, 0},
10580 {0xA7, 0x66, 0x66, 0, 0},
10581 {0xA8, 0x66, 0x66, 0, 0},
10582 {0xA9, 0x66, 0x66, 0, 0},
10583 {0xAA, 0x66, 0x66, 0, 0},
10584 {0xAB, 0x66, 0x66, 0, 0},
10585 {0xAC, 0x66, 0x66, 0, 0},
10586 {0xAD, 0x66, 0x66, 0, 0},
10587 {0xAE, 0x66, 0x66, 0, 0},
10588 {0xAF, 0x66, 0x66, 0, 0},
10589 {0xB0, 0x66, 0x66, 0, 0},
10590 {0xB1, 0x66, 0x66, 0, 0},
10591 {0xB2, 0x66, 0x66, 0, 0},
10592 {0xB3, 0xa, 0xa, 0, 0},
10593 {0xB4, 0, 0, 0, 0},
10594 {0xB5, 0, 0, 0, 0},
10595 {0xB6, 0, 0, 0, 0},
10596 {0xFFFF, 0, 0, 0, 0},
10597};
10598
10599radio_regs_t regs_TX_2056_rev8[] = {
10600 {0x02, 0, 0, 0, 0},
10601 {0x03, 0, 0, 0, 0},
10602 {0x04, 0, 0, 0, 0},
10603 {0x05, 0, 0, 0, 0},
10604 {0x06, 0, 0, 0, 0},
10605 {0x07, 0, 0, 0, 0},
10606 {0x08, 0, 0, 0, 0},
10607 {0x09, 0, 0, 0, 0},
10608 {0x0A, 0, 0, 0, 0},
10609 {0x0B, 0, 0, 0, 0},
10610 {0x0C, 0, 0, 0, 0},
10611 {0x0D, 0, 0, 0, 0},
10612 {0x0E, 0, 0, 0, 0},
10613 {0x0F, 0, 0, 0, 0},
10614 {0x10, 0, 0, 0, 0},
10615 {0x11, 0, 0, 0, 0},
10616 {0x12, 0, 0, 0, 0},
10617 {0x13, 0, 0, 0, 0},
10618 {0x14, 0, 0, 0, 0},
10619 {0x15, 0, 0, 0, 0},
10620 {0x16, 0, 0, 0, 0},
10621 {0x17, 0, 0, 0, 0},
10622 {0x18, 0, 0, 0, 0},
10623 {0x19, 0, 0, 0, 0},
10624 {0x1A, 0, 0, 0, 0},
10625 {0x1B, 0, 0, 0, 0},
10626 {0x1C, 0, 0, 0, 0},
10627 {0x1D, 0, 0, 0, 0},
10628 {0x1E, 0, 0, 0, 0},
10629 {0x1F, 0, 0, 0, 0},
10630 {0x20, 0, 0, 0, 0},
10631 {0x21, 0x88, 0x88, 0, 0},
10632 {0x22, 0x88, 0x88, 0, 0},
10633 {0x23, 0x88, 0x88, 0, 0},
10634 {0x24, 0x88, 0x88, 0, 0},
10635 {0x25, 0xc, 0xc, 0, 0},
10636 {0x26, 0, 0, 0, 0},
10637 {0x27, 0x3, 0x3, 0, 0},
10638 {0x28, 0, 0, 0, 0},
10639 {0x29, 0x3, 0x3, 0, 0},
10640 {0x2A, 0x37, 0x37, 0, 0},
10641 {0x2B, 0x3, 0x3, 0, 0},
10642 {0x2C, 0, 0, 0, 0},
10643 {0x2D, 0, 0, 0, 0},
10644 {0x2E, 0x1, 0x1, 0, 0},
10645 {0x2F, 0x1, 0x1, 0, 0},
10646 {0x30, 0, 0, 0, 0},
10647 {0x31, 0, 0, 0, 0},
10648 {0x32, 0, 0, 0, 0},
10649 {0x33, 0x11, 0x11, 0, 0},
10650 {0x34, 0xee, 0xee, 1, 1},
10651 {0x35, 0, 0, 0, 0},
10652 {0x36, 0, 0, 0, 0},
10653 {0x37, 0x3, 0x3, 0, 0},
10654 {0x38, 0x50, 0x50, 1, 1},
10655 {0x39, 0, 0, 0, 0},
10656 {0x3A, 0x50, 0x50, 1, 1},
10657 {0x3B, 0, 0, 0, 0},
10658 {0x3C, 0x6e, 0x6e, 0, 0},
10659 {0x3D, 0xf0, 0xf0, 1, 1},
10660 {0x3E, 0, 0, 0, 0},
10661 {0x3F, 0, 0, 0, 0},
10662 {0x40, 0, 0, 0, 0},
10663 {0x41, 0x3, 0x3, 0, 0},
10664 {0x42, 0x3, 0x3, 0, 0},
10665 {0x43, 0, 0, 0, 0},
10666 {0x44, 0x1e, 0x1e, 0, 0},
10667 {0x45, 0, 0, 0, 0},
10668 {0x46, 0x6e, 0x6e, 0, 0},
10669 {0x47, 0xf0, 0xf0, 1, 1},
10670 {0x48, 0, 0, 0, 0},
10671 {0x49, 0x2, 0x2, 0, 0},
10672 {0x4A, 0xff, 0xff, 1, 1},
10673 {0x4B, 0xc, 0xc, 0, 0},
10674 {0x4C, 0, 0, 0, 0},
10675 {0x4D, 0x38, 0x38, 0, 0},
10676 {0x4E, 0x70, 0x70, 1, 1},
10677 {0x4F, 0x2, 0x2, 0, 0},
10678 {0x50, 0x88, 0x88, 0, 0},
10679 {0x51, 0xc, 0xc, 0, 0},
10680 {0x52, 0, 0, 0, 0},
10681 {0x53, 0x8, 0x8, 0, 0},
10682 {0x54, 0x70, 0x70, 1, 1},
10683 {0x55, 0x2, 0x2, 0, 0},
10684 {0x56, 0xff, 0xff, 1, 1},
10685 {0x57, 0, 0, 0, 0},
10686 {0x58, 0x83, 0x83, 0, 0},
10687 {0x59, 0x77, 0x77, 1, 1},
10688 {0x5A, 0, 0, 0, 0},
10689 {0x5B, 0x2, 0x2, 0, 0},
10690 {0x5C, 0x88, 0x88, 0, 0},
10691 {0x5D, 0, 0, 0, 0},
10692 {0x5E, 0x8, 0x8, 0, 0},
10693 {0x5F, 0x77, 0x77, 1, 1},
10694 {0x60, 0x1, 0x1, 0, 0},
10695 {0x61, 0, 0, 0, 0},
10696 {0x62, 0x7, 0x7, 0, 0},
10697 {0x63, 0, 0, 0, 0},
10698 {0x64, 0x7, 0x7, 0, 0},
10699 {0x65, 0, 0, 0, 0},
10700 {0x66, 0, 0, 0, 0},
10701 {0x67, 0, 0, 1, 1},
10702 {0x68, 0, 0, 0, 0},
10703 {0x69, 0xa, 0xa, 0, 0},
10704 {0x6A, 0, 0, 0, 0},
10705 {0x6B, 0, 0, 0, 0},
10706 {0x6C, 0, 0, 0, 0},
10707 {0x6D, 0, 0, 0, 0},
10708 {0x6E, 0, 0, 0, 0},
10709 {0x6F, 0, 0, 0, 0},
10710 {0x70, 0, 0, 0, 0},
10711 {0x71, 0x2, 0x2, 0, 0},
10712 {0x72, 0, 0, 0, 0},
10713 {0x73, 0, 0, 0, 0},
10714 {0x74, 0xe, 0xe, 0, 0},
10715 {0x75, 0xe, 0xe, 0, 0},
10716 {0x76, 0xe, 0xe, 0, 0},
10717 {0x77, 0x13, 0x13, 0, 0},
10718 {0x78, 0x13, 0x13, 0, 0},
10719 {0x79, 0x1b, 0x1b, 0, 0},
10720 {0x7A, 0x1b, 0x1b, 0, 0},
10721 {0x7B, 0x55, 0x55, 0, 0},
10722 {0x7C, 0x5b, 0x5b, 0, 0},
10723 {0x7D, 0x30, 0x30, 1, 1},
10724 {0x7E, 0, 0, 0, 0},
10725 {0x7F, 0, 0, 0, 0},
10726 {0x80, 0, 0, 0, 0},
10727 {0x81, 0, 0, 0, 0},
10728 {0x82, 0, 0, 0, 0},
10729 {0x83, 0, 0, 0, 0},
10730 {0x84, 0, 0, 0, 0},
10731 {0x85, 0, 0, 0, 0},
10732 {0x86, 0, 0, 0, 0},
10733 {0x87, 0, 0, 0, 0},
10734 {0x88, 0, 0, 0, 0},
10735 {0x89, 0, 0, 0, 0},
10736 {0x8A, 0, 0, 0, 0},
10737 {0x8B, 0, 0, 0, 0},
10738 {0x8C, 0, 0, 0, 0},
10739 {0x8D, 0, 0, 0, 0},
10740 {0x8E, 0, 0, 0, 0},
10741 {0x8F, 0, 0, 0, 0},
10742 {0x90, 0, 0, 0, 0},
10743 {0x91, 0, 0, 0, 0},
10744 {0x92, 0, 0, 0, 0},
10745 {0x93, 0x70, 0x70, 0, 0},
10746 {0x94, 0x70, 0x70, 0, 0},
10747 {0x95, 0x70, 0x70, 0, 0},
10748 {0x96, 0x70, 0x70, 0, 0},
10749 {0x97, 0x70, 0x70, 0, 0},
10750 {0x98, 0x70, 0x70, 0, 0},
10751 {0x99, 0x70, 0x70, 0, 0},
10752 {0x9A, 0x70, 0x70, 0, 0},
10753 {0xFFFF, 0, 0, 0, 0},
10754};
10755
10756radio_regs_t regs_RX_2056_rev8[] = {
10757 {0x02, 0, 0, 0, 0},
10758 {0x03, 0, 0, 0, 0},
10759 {0x04, 0, 0, 0, 0},
10760 {0x05, 0, 0, 0, 0},
10761 {0x06, 0, 0, 0, 0},
10762 {0x07, 0, 0, 0, 0},
10763 {0x08, 0, 0, 0, 0},
10764 {0x09, 0, 0, 0, 0},
10765 {0x0A, 0, 0, 0, 0},
10766 {0x0B, 0, 0, 0, 0},
10767 {0x0C, 0, 0, 0, 0},
10768 {0x0D, 0, 0, 0, 0},
10769 {0x0E, 0, 0, 0, 0},
10770 {0x0F, 0, 0, 0, 0},
10771 {0x10, 0, 0, 0, 0},
10772 {0x11, 0, 0, 0, 0},
10773 {0x12, 0, 0, 0, 0},
10774 {0x13, 0, 0, 0, 0},
10775 {0x14, 0, 0, 0, 0},
10776 {0x15, 0, 0, 0, 0},
10777 {0x16, 0, 0, 0, 0},
10778 {0x17, 0, 0, 0, 0},
10779 {0x18, 0, 0, 0, 0},
10780 {0x19, 0, 0, 0, 0},
10781 {0x1A, 0, 0, 0, 0},
10782 {0x1B, 0, 0, 0, 0},
10783 {0x1C, 0, 0, 0, 0},
10784 {0x1D, 0, 0, 0, 0},
10785 {0x1E, 0, 0, 0, 0},
10786 {0x1F, 0, 0, 0, 0},
10787 {0x20, 0x3, 0x3, 0, 0},
10788 {0x21, 0, 0, 0, 0},
10789 {0x22, 0, 0, 0, 0},
10790 {0x23, 0x90, 0x90, 0, 0},
10791 {0x24, 0x55, 0x55, 0, 0},
10792 {0x25, 0x15, 0x15, 0, 0},
10793 {0x26, 0x5, 0x5, 0, 0},
10794 {0x27, 0x15, 0x15, 0, 0},
10795 {0x28, 0x5, 0x5, 0, 0},
10796 {0x29, 0x20, 0x20, 0, 0},
10797 {0x2A, 0x11, 0x11, 0, 0},
10798 {0x2B, 0x90, 0x90, 0, 0},
10799 {0x2C, 0, 0, 0, 0},
10800 {0x2D, 0x88, 0x88, 0, 0},
10801 {0x2E, 0x32, 0x32, 0, 0},
10802 {0x2F, 0x77, 0x77, 0, 0},
10803 {0x30, 0x17, 0x17, 1, 1},
10804 {0x31, 0xff, 0xff, 1, 1},
10805 {0x32, 0x20, 0x20, 0, 0},
10806 {0x33, 0, 0, 0, 0},
10807 {0x34, 0x88, 0x88, 0, 0},
10808 {0x35, 0x32, 0x32, 0, 0},
10809 {0x36, 0x77, 0x77, 0, 0},
10810 {0x37, 0x17, 0x17, 1, 1},
10811 {0x38, 0xf0, 0xf0, 1, 1},
10812 {0x39, 0x20, 0x20, 0, 0},
10813 {0x3A, 0x8, 0x8, 0, 0},
10814 {0x3B, 0x55, 0x55, 1, 1},
10815 {0x3C, 0, 0, 0, 0},
10816 {0x3D, 0x88, 0x88, 1, 1},
10817 {0x3E, 0, 0, 0, 0},
10818 {0x3F, 0x44, 0x44, 0, 0},
10819 {0x40, 0x7, 0x7, 1, 1},
10820 {0x41, 0x6, 0x6, 0, 0},
10821 {0x42, 0x4, 0x4, 0, 0},
10822 {0x43, 0, 0, 0, 0},
10823 {0x44, 0x8, 0x8, 0, 0},
10824 {0x45, 0x55, 0x55, 1, 1},
10825 {0x46, 0, 0, 0, 0},
10826 {0x47, 0x11, 0x11, 0, 0},
10827 {0x48, 0, 0, 0, 0},
10828 {0x49, 0x44, 0x44, 0, 0},
10829 {0x4A, 0x7, 0x7, 0, 0},
10830 {0x4B, 0x6, 0x6, 0, 0},
10831 {0x4C, 0x4, 0x4, 0, 0},
10832 {0x4D, 0, 0, 0, 0},
10833 {0x4E, 0, 0, 0, 0},
10834 {0x4F, 0x26, 0x26, 1, 1},
10835 {0x50, 0x26, 0x26, 1, 1},
10836 {0x51, 0xf, 0xf, 1, 1},
10837 {0x52, 0xf, 0xf, 1, 1},
10838 {0x53, 0x44, 0x44, 0, 0},
10839 {0x54, 0, 0, 0, 0},
10840 {0x55, 0, 0, 0, 0},
10841 {0x56, 0x8, 0x8, 0, 0},
10842 {0x57, 0x8, 0x8, 0, 0},
10843 {0x58, 0x7, 0x7, 0, 0},
10844 {0x59, 0x22, 0x22, 0, 0},
10845 {0x5A, 0x22, 0x22, 0, 0},
10846 {0x5B, 0x2, 0x2, 0, 0},
10847 {0x5C, 0x4, 0x4, 1, 1},
10848 {0x5D, 0x7, 0x7, 0, 0},
10849 {0x5E, 0x55, 0x55, 0, 0},
10850 {0x5F, 0x23, 0x23, 0, 0},
10851 {0x60, 0x41, 0x41, 0, 0},
10852 {0x61, 0x1, 0x1, 0, 0},
10853 {0x62, 0xa, 0xa, 0, 0},
10854 {0x63, 0, 0, 0, 0},
10855 {0x64, 0, 0, 0, 0},
10856 {0x65, 0, 0, 0, 0},
10857 {0x66, 0, 0, 0, 0},
10858 {0x67, 0, 0, 0, 0},
10859 {0x68, 0, 0, 0, 0},
10860 {0x69, 0, 0, 0, 0},
10861 {0x6A, 0, 0, 0, 0},
10862 {0x6B, 0xc, 0xc, 0, 0},
10863 {0x6C, 0, 0, 0, 0},
10864 {0x6D, 0, 0, 0, 0},
10865 {0x6E, 0, 0, 0, 0},
10866 {0x6F, 0, 0, 0, 0},
10867 {0x70, 0, 0, 0, 0},
10868 {0x71, 0, 0, 0, 0},
10869 {0x72, 0x22, 0x22, 0, 0},
10870 {0x73, 0x22, 0x22, 0, 0},
10871 {0x74, 0, 0, 1, 1},
10872 {0x75, 0xa, 0xa, 0, 0},
10873 {0x76, 0x1, 0x1, 0, 0},
10874 {0x77, 0x22, 0x22, 0, 0},
10875 {0x78, 0x30, 0x30, 0, 0},
10876 {0x79, 0, 0, 0, 0},
10877 {0x7A, 0, 0, 0, 0},
10878 {0x7B, 0, 0, 0, 0},
10879 {0x7C, 0, 0, 0, 0},
10880 {0x7D, 0x5, 0x5, 1, 1},
10881 {0x7E, 0, 0, 0, 0},
10882 {0x7F, 0, 0, 0, 0},
10883 {0x80, 0, 0, 0, 0},
10884 {0x81, 0, 0, 0, 0},
10885 {0x82, 0, 0, 0, 0},
10886 {0x83, 0, 0, 0, 0},
10887 {0x84, 0, 0, 0, 0},
10888 {0x85, 0, 0, 0, 0},
10889 {0x86, 0, 0, 0, 0},
10890 {0x87, 0, 0, 0, 0},
10891 {0x88, 0, 0, 0, 0},
10892 {0x89, 0, 0, 0, 0},
10893 {0x8A, 0, 0, 0, 0},
10894 {0x8B, 0, 0, 0, 0},
10895 {0x8C, 0, 0, 0, 0},
10896 {0x8D, 0, 0, 0, 0},
10897 {0x8E, 0, 0, 0, 0},
10898 {0x8F, 0, 0, 0, 0},
10899 {0x90, 0, 0, 0, 0},
10900 {0x91, 0, 0, 0, 0},
10901 {0x92, 0, 0, 0, 0},
10902 {0x93, 0, 0, 0, 0},
10903 {0x94, 0, 0, 0, 0},
10904 {0xFFFF, 0, 0, 0, 0},
10905};
10906
10907radio_regs_t regs_SYN_2056_rev11[] = {
10908 {0x02, 0, 0, 0, 0},
10909 {0x03, 0, 0, 0, 0},
10910 {0x04, 0, 0, 0, 0},
10911 {0x05, 0, 0, 0, 0},
10912 {0x06, 0, 0, 0, 0},
10913 {0x07, 0, 0, 0, 0},
10914 {0x08, 0, 0, 0, 0},
10915 {0x09, 0x1, 0x1, 0, 0},
10916 {0x0A, 0, 0, 0, 0},
10917 {0x0B, 0, 0, 0, 0},
10918 {0x0C, 0, 0, 0, 0},
10919 {0x0D, 0, 0, 0, 0},
10920 {0x0E, 0, 0, 0, 0},
10921 {0x0F, 0, 0, 0, 0},
10922 {0x10, 0, 0, 0, 0},
10923 {0x11, 0, 0, 0, 0},
10924 {0x12, 0, 0, 0, 0},
10925 {0x13, 0, 0, 0, 0},
10926 {0x14, 0, 0, 0, 0},
10927 {0x15, 0, 0, 0, 0},
10928 {0x16, 0, 0, 0, 0},
10929 {0x17, 0, 0, 0, 0},
10930 {0x18, 0, 0, 0, 0},
10931 {0x19, 0, 0, 0, 0},
10932 {0x1A, 0, 0, 0, 0},
10933 {0x1B, 0, 0, 0, 0},
10934 {0x1C, 0, 0, 0, 0},
10935 {0x1D, 0, 0, 0, 0},
10936 {0x1E, 0, 0, 0, 0},
10937 {0x1F, 0, 0, 0, 0},
10938 {0x20, 0, 0, 0, 0},
10939 {0x21, 0, 0, 0, 0},
10940 {0x22, 0x60, 0x60, 0, 0},
10941 {0x23, 0x6, 0x6, 0, 0},
10942 {0x24, 0xc, 0xc, 0, 0},
10943 {0x25, 0, 0, 0, 0},
10944 {0x26, 0, 0, 0, 0},
10945 {0x27, 0, 0, 0, 0},
10946 {0x28, 0x1, 0x1, 0, 0},
10947 {0x29, 0, 0, 0, 0},
10948 {0x2A, 0, 0, 0, 0},
10949 {0x2B, 0, 0, 0, 0},
10950 {0x2C, 0, 0, 0, 0},
10951 {0x2D, 0, 0, 0, 0},
10952 {0x2E, 0, 0, 0, 0},
10953 {0x2F, 0x1f, 0x1f, 0, 0},
10954 {0x30, 0x15, 0x15, 0, 0},
10955 {0x31, 0xf, 0xf, 0, 0},
10956 {0x32, 0, 0, 0, 0},
10957 {0x33, 0, 0, 0, 0},
10958 {0x34, 0, 0, 0, 0},
10959 {0x35, 0, 0, 0, 0},
10960 {0x36, 0, 0, 0, 0},
10961 {0x37, 0, 0, 0, 0},
10962 {0x38, 0, 0, 0, 0},
10963 {0x39, 0, 0, 0, 0},
10964 {0x3A, 0, 0, 0, 0},
10965 {0x3B, 0, 0, 0, 0},
10966 {0x3C, 0x13, 0x13, 0, 0},
10967 {0x3D, 0xf, 0xf, 0, 0},
10968 {0x3E, 0x18, 0x18, 0, 0},
10969 {0x3F, 0, 0, 0, 0},
10970 {0x40, 0, 0, 0, 0},
10971 {0x41, 0x20, 0x20, 0, 0},
10972 {0x42, 0x20, 0x20, 0, 0},
10973 {0x43, 0, 0, 0, 0},
10974 {0x44, 0x77, 0x77, 0, 0},
10975 {0x45, 0x7, 0x7, 0, 0},
10976 {0x46, 0x1, 0x1, 0, 0},
10977 {0x47, 0x6, 0x6, 1, 1},
10978 {0x48, 0xf, 0xf, 0, 0},
10979 {0x49, 0x3f, 0x3f, 1, 1},
10980 {0x4A, 0x32, 0x32, 0, 0},
10981 {0x4B, 0x6, 0x6, 1, 1},
10982 {0x4C, 0x6, 0x6, 1, 1},
10983 {0x4D, 0x4, 0x4, 0, 0},
10984 {0x4E, 0x2b, 0x2b, 1, 1},
10985 {0x4F, 0x1, 0x1, 0, 0},
10986 {0x50, 0x1c, 0x1c, 0, 0},
10987 {0x51, 0x2, 0x2, 0, 0},
10988 {0x52, 0x2, 0x2, 0, 0},
10989 {0x53, 0xf7, 0xf7, 1, 1},
10990 {0x54, 0xb4, 0xb4, 0, 0},
10991 {0x55, 0xd2, 0xd2, 0, 0},
10992 {0x56, 0, 0, 0, 0},
10993 {0x57, 0, 0, 0, 0},
10994 {0x58, 0x4, 0x4, 0, 0},
10995 {0x59, 0x96, 0x96, 0, 0},
10996 {0x5A, 0x3e, 0x3e, 0, 0},
10997 {0x5B, 0x3e, 0x3e, 0, 0},
10998 {0x5C, 0x13, 0x13, 0, 0},
10999 {0x5D, 0x2, 0x2, 0, 0},
11000 {0x5E, 0, 0, 0, 0},
11001 {0x5F, 0x7, 0x7, 0, 0},
11002 {0x60, 0x7, 0x7, 1, 1},
11003 {0x61, 0x8, 0x8, 0, 0},
11004 {0x62, 0x3, 0x3, 0, 0},
11005 {0x63, 0, 0, 0, 0},
11006 {0x64, 0, 0, 0, 0},
11007 {0x65, 0, 0, 0, 0},
11008 {0x66, 0, 0, 0, 0},
11009 {0x67, 0, 0, 0, 0},
11010 {0x68, 0x40, 0x40, 0, 0},
11011 {0x69, 0, 0, 0, 0},
11012 {0x6A, 0, 0, 0, 0},
11013 {0x6B, 0, 0, 0, 0},
11014 {0x6C, 0, 0, 0, 0},
11015 {0x6D, 0x1, 0x1, 0, 0},
11016 {0x6E, 0, 0, 0, 0},
11017 {0x6F, 0, 0, 0, 0},
11018 {0x70, 0x60, 0x60, 0, 0},
11019 {0x71, 0x66, 0x66, 0, 0},
11020 {0x72, 0xc, 0xc, 0, 0},
11021 {0x73, 0x66, 0x66, 0, 0},
11022 {0x74, 0x8f, 0x8f, 1, 1},
11023 {0x75, 0, 0, 0, 0},
11024 {0x76, 0xcc, 0xcc, 0, 0},
11025 {0x77, 0x1, 0x1, 0, 0},
11026 {0x78, 0x66, 0x66, 0, 0},
11027 {0x79, 0x66, 0x66, 0, 0},
11028 {0x7A, 0, 0, 0, 0},
11029 {0x7B, 0, 0, 0, 0},
11030 {0x7C, 0, 0, 0, 0},
11031 {0x7D, 0, 0, 0, 0},
11032 {0x7E, 0, 0, 0, 0},
11033 {0x7F, 0, 0, 0, 0},
11034 {0x80, 0, 0, 0, 0},
11035 {0x81, 0, 0, 0, 0},
11036 {0x82, 0, 0, 0, 0},
11037 {0x83, 0, 0, 0, 0},
11038 {0x84, 0, 0, 0, 0},
11039 {0x85, 0xff, 0xff, 0, 0},
11040 {0x86, 0, 0, 0, 0},
11041 {0x87, 0, 0, 0, 0},
11042 {0x88, 0, 0, 0, 0},
11043 {0x89, 0, 0, 0, 0},
11044 {0x8A, 0, 0, 0, 0},
11045 {0x8B, 0, 0, 0, 0},
11046 {0x8C, 0, 0, 0, 0},
11047 {0x8D, 0, 0, 0, 0},
11048 {0x8E, 0, 0, 0, 0},
11049 {0x8F, 0, 0, 0, 0},
11050 {0x90, 0, 0, 0, 0},
11051 {0x91, 0, 0, 0, 0},
11052 {0x92, 0, 0, 0, 0},
11053 {0x93, 0, 0, 0, 0},
11054 {0x94, 0, 0, 0, 0},
11055 {0x95, 0, 0, 0, 0},
11056 {0x96, 0, 0, 0, 0},
11057 {0x97, 0, 0, 0, 0},
11058 {0x98, 0, 0, 0, 0},
11059 {0x99, 0, 0, 0, 0},
11060 {0x9A, 0, 0, 0, 0},
11061 {0x9B, 0, 0, 0, 0},
11062 {0x9C, 0, 0, 0, 0},
11063 {0x9D, 0, 0, 0, 0},
11064 {0x9E, 0, 0, 0, 0},
11065 {0x9F, 0x6, 0x6, 0, 0},
11066 {0xA0, 0x66, 0x66, 0, 0},
11067 {0xA1, 0x66, 0x66, 0, 0},
11068 {0xA2, 0x66, 0x66, 0, 0},
11069 {0xA3, 0x66, 0x66, 0, 0},
11070 {0xA4, 0x66, 0x66, 0, 0},
11071 {0xA5, 0x66, 0x66, 0, 0},
11072 {0xA6, 0x66, 0x66, 0, 0},
11073 {0xA7, 0x66, 0x66, 0, 0},
11074 {0xA8, 0x66, 0x66, 0, 0},
11075 {0xA9, 0x66, 0x66, 0, 0},
11076 {0xAA, 0x66, 0x66, 0, 0},
11077 {0xAB, 0x66, 0x66, 0, 0},
11078 {0xAC, 0x66, 0x66, 0, 0},
11079 {0xAD, 0x66, 0x66, 0, 0},
11080 {0xAE, 0x66, 0x66, 0, 0},
11081 {0xAF, 0x66, 0x66, 0, 0},
11082 {0xB0, 0x66, 0x66, 0, 0},
11083 {0xB1, 0x66, 0x66, 0, 0},
11084 {0xB2, 0x66, 0x66, 0, 0},
11085 {0xB3, 0xa, 0xa, 0, 0},
11086 {0xB4, 0, 0, 0, 0},
11087 {0xB5, 0, 0, 0, 0},
11088 {0xB6, 0, 0, 0, 0},
11089 {0xFFFF, 0, 0, 0, 0},
11090};
11091
11092radio_regs_t regs_TX_2056_rev11[] = {
11093 {0x02, 0, 0, 0, 0},
11094 {0x03, 0, 0, 0, 0},
11095 {0x04, 0, 0, 0, 0},
11096 {0x05, 0, 0, 0, 0},
11097 {0x06, 0, 0, 0, 0},
11098 {0x07, 0, 0, 0, 0},
11099 {0x08, 0, 0, 0, 0},
11100 {0x09, 0, 0, 0, 0},
11101 {0x0A, 0, 0, 0, 0},
11102 {0x0B, 0, 0, 0, 0},
11103 {0x0C, 0, 0, 0, 0},
11104 {0x0D, 0, 0, 0, 0},
11105 {0x0E, 0, 0, 0, 0},
11106 {0x0F, 0, 0, 0, 0},
11107 {0x10, 0, 0, 0, 0},
11108 {0x11, 0, 0, 0, 0},
11109 {0x12, 0, 0, 0, 0},
11110 {0x13, 0, 0, 0, 0},
11111 {0x14, 0, 0, 0, 0},
11112 {0x15, 0, 0, 0, 0},
11113 {0x16, 0, 0, 0, 0},
11114 {0x17, 0, 0, 0, 0},
11115 {0x18, 0, 0, 0, 0},
11116 {0x19, 0, 0, 0, 0},
11117 {0x1A, 0, 0, 0, 0},
11118 {0x1B, 0, 0, 0, 0},
11119 {0x1C, 0, 0, 0, 0},
11120 {0x1D, 0, 0, 0, 0},
11121 {0x1E, 0, 0, 0, 0},
11122 {0x1F, 0, 0, 0, 0},
11123 {0x20, 0, 0, 0, 0},
11124 {0x21, 0x88, 0x88, 0, 0},
11125 {0x22, 0x88, 0x88, 0, 0},
11126 {0x23, 0x88, 0x88, 0, 0},
11127 {0x24, 0x88, 0x88, 0, 0},
11128 {0x25, 0xc, 0xc, 0, 0},
11129 {0x26, 0, 0, 0, 0},
11130 {0x27, 0x3, 0x3, 0, 0},
11131 {0x28, 0, 0, 0, 0},
11132 {0x29, 0x3, 0x3, 0, 0},
11133 {0x2A, 0x37, 0x37, 0, 0},
11134 {0x2B, 0x3, 0x3, 0, 0},
11135 {0x2C, 0, 0, 0, 0},
11136 {0x2D, 0, 0, 0, 0},
11137 {0x2E, 0x1, 0x1, 0, 0},
11138 {0x2F, 0x1, 0x1, 0, 0},
11139 {0x30, 0, 0, 0, 0},
11140 {0x31, 0, 0, 0, 0},
11141 {0x32, 0, 0, 0, 0},
11142 {0x33, 0x11, 0x11, 0, 0},
11143 {0x34, 0xee, 0xee, 1, 1},
11144 {0x35, 0, 0, 0, 0},
11145 {0x36, 0, 0, 0, 0},
11146 {0x37, 0x3, 0x3, 0, 0},
11147 {0x38, 0x50, 0x50, 1, 1},
11148 {0x39, 0, 0, 0, 0},
11149 {0x3A, 0x50, 0x50, 1, 1},
11150 {0x3B, 0, 0, 0, 0},
11151 {0x3C, 0x6e, 0x6e, 0, 0},
11152 {0x3D, 0xf0, 0xf0, 1, 1},
11153 {0x3E, 0, 0, 0, 0},
11154 {0x3F, 0, 0, 0, 0},
11155 {0x40, 0, 0, 0, 0},
11156 {0x41, 0x3, 0x3, 0, 0},
11157 {0x42, 0x3, 0x3, 0, 0},
11158 {0x43, 0, 0, 0, 0},
11159 {0x44, 0x1e, 0x1e, 0, 0},
11160 {0x45, 0, 0, 0, 0},
11161 {0x46, 0x6e, 0x6e, 0, 0},
11162 {0x47, 0xf0, 0xf0, 1, 1},
11163 {0x48, 0, 0, 0, 0},
11164 {0x49, 0x2, 0x2, 0, 0},
11165 {0x4A, 0xff, 0xff, 1, 1},
11166 {0x4B, 0xc, 0xc, 0, 0},
11167 {0x4C, 0, 0, 0, 0},
11168 {0x4D, 0x38, 0x38, 0, 0},
11169 {0x4E, 0x70, 0x70, 1, 1},
11170 {0x4F, 0x2, 0x2, 0, 0},
11171 {0x50, 0x88, 0x88, 0, 0},
11172 {0x51, 0xc, 0xc, 0, 0},
11173 {0x52, 0, 0, 0, 0},
11174 {0x53, 0x8, 0x8, 0, 0},
11175 {0x54, 0x70, 0x70, 1, 1},
11176 {0x55, 0x2, 0x2, 0, 0},
11177 {0x56, 0xff, 0xff, 1, 1},
11178 {0x57, 0, 0, 0, 0},
11179 {0x58, 0x83, 0x83, 0, 0},
11180 {0x59, 0x77, 0x77, 1, 1},
11181 {0x5A, 0, 0, 0, 0},
11182 {0x5B, 0x2, 0x2, 0, 0},
11183 {0x5C, 0x88, 0x88, 0, 0},
11184 {0x5D, 0, 0, 0, 0},
11185 {0x5E, 0x8, 0x8, 0, 0},
11186 {0x5F, 0x77, 0x77, 1, 1},
11187 {0x60, 0x1, 0x1, 0, 0},
11188 {0x61, 0, 0, 0, 0},
11189 {0x62, 0x7, 0x7, 0, 0},
11190 {0x63, 0, 0, 0, 0},
11191 {0x64, 0x7, 0x7, 0, 0},
11192 {0x65, 0, 0, 0, 0},
11193 {0x66, 0, 0, 0, 0},
11194 {0x67, 0, 0, 1, 1},
11195 {0x68, 0, 0, 0, 0},
11196 {0x69, 0xa, 0xa, 0, 0},
11197 {0x6A, 0, 0, 0, 0},
11198 {0x6B, 0, 0, 0, 0},
11199 {0x6C, 0, 0, 0, 0},
11200 {0x6D, 0, 0, 0, 0},
11201 {0x6E, 0, 0, 0, 0},
11202 {0x6F, 0, 0, 0, 0},
11203 {0x70, 0, 0, 0, 0},
11204 {0x71, 0x2, 0x2, 0, 0},
11205 {0x72, 0, 0, 0, 0},
11206 {0x73, 0, 0, 0, 0},
11207 {0x74, 0xe, 0xe, 0, 0},
11208 {0x75, 0xe, 0xe, 0, 0},
11209 {0x76, 0xe, 0xe, 0, 0},
11210 {0x77, 0x13, 0x13, 0, 0},
11211 {0x78, 0x13, 0x13, 0, 0},
11212 {0x79, 0x1b, 0x1b, 0, 0},
11213 {0x7A, 0x1b, 0x1b, 0, 0},
11214 {0x7B, 0x55, 0x55, 0, 0},
11215 {0x7C, 0x5b, 0x5b, 0, 0},
11216 {0x7D, 0x30, 0x30, 1, 1},
11217 {0x7E, 0, 0, 0, 0},
11218 {0x7F, 0, 0, 0, 0},
11219 {0x80, 0, 0, 0, 0},
11220 {0x81, 0, 0, 0, 0},
11221 {0x82, 0, 0, 0, 0},
11222 {0x83, 0, 0, 0, 0},
11223 {0x84, 0, 0, 0, 0},
11224 {0x85, 0, 0, 0, 0},
11225 {0x86, 0, 0, 0, 0},
11226 {0x87, 0, 0, 0, 0},
11227 {0x88, 0, 0, 0, 0},
11228 {0x89, 0, 0, 0, 0},
11229 {0x8A, 0, 0, 0, 0},
11230 {0x8B, 0, 0, 0, 0},
11231 {0x8C, 0, 0, 0, 0},
11232 {0x8D, 0, 0, 0, 0},
11233 {0x8E, 0, 0, 0, 0},
11234 {0x8F, 0, 0, 0, 0},
11235 {0x90, 0, 0, 0, 0},
11236 {0x91, 0, 0, 0, 0},
11237 {0x92, 0, 0, 0, 0},
11238 {0x93, 0x70, 0x70, 0, 0},
11239 {0x94, 0x70, 0x70, 0, 0},
11240 {0x95, 0x70, 0x70, 0, 0},
11241 {0x96, 0x70, 0x70, 0, 0},
11242 {0x97, 0x70, 0x70, 0, 0},
11243 {0x98, 0x70, 0x70, 0, 0},
11244 {0x99, 0x70, 0x70, 0, 0},
11245 {0x9A, 0x70, 0x70, 0, 0},
11246 {0xFFFF, 0, 0, 0, 0},
11247};
11248
11249radio_regs_t regs_RX_2056_rev11[] = {
11250 {0x02, 0, 0, 0, 0},
11251 {0x03, 0, 0, 0, 0},
11252 {0x04, 0, 0, 0, 0},
11253 {0x05, 0, 0, 0, 0},
11254 {0x06, 0, 0, 0, 0},
11255 {0x07, 0, 0, 0, 0},
11256 {0x08, 0, 0, 0, 0},
11257 {0x09, 0, 0, 0, 0},
11258 {0x0A, 0, 0, 0, 0},
11259 {0x0B, 0, 0, 0, 0},
11260 {0x0C, 0, 0, 0, 0},
11261 {0x0D, 0, 0, 0, 0},
11262 {0x0E, 0, 0, 0, 0},
11263 {0x0F, 0, 0, 0, 0},
11264 {0x10, 0, 0, 0, 0},
11265 {0x11, 0, 0, 0, 0},
11266 {0x12, 0, 0, 0, 0},
11267 {0x13, 0, 0, 0, 0},
11268 {0x14, 0, 0, 0, 0},
11269 {0x15, 0, 0, 0, 0},
11270 {0x16, 0, 0, 0, 0},
11271 {0x17, 0, 0, 0, 0},
11272 {0x18, 0, 0, 0, 0},
11273 {0x19, 0, 0, 0, 0},
11274 {0x1A, 0, 0, 0, 0},
11275 {0x1B, 0, 0, 0, 0},
11276 {0x1C, 0, 0, 0, 0},
11277 {0x1D, 0, 0, 0, 0},
11278 {0x1E, 0, 0, 0, 0},
11279 {0x1F, 0, 0, 0, 0},
11280 {0x20, 0x3, 0x3, 0, 0},
11281 {0x21, 0, 0, 0, 0},
11282 {0x22, 0, 0, 0, 0},
11283 {0x23, 0x90, 0x90, 0, 0},
11284 {0x24, 0x55, 0x55, 0, 0},
11285 {0x25, 0x15, 0x15, 0, 0},
11286 {0x26, 0x5, 0x5, 0, 0},
11287 {0x27, 0x15, 0x15, 0, 0},
11288 {0x28, 0x5, 0x5, 0, 0},
11289 {0x29, 0x20, 0x20, 0, 0},
11290 {0x2A, 0x11, 0x11, 0, 0},
11291 {0x2B, 0x90, 0x90, 0, 0},
11292 {0x2C, 0, 0, 0, 0},
11293 {0x2D, 0x88, 0x88, 0, 0},
11294 {0x2E, 0x32, 0x32, 0, 0},
11295 {0x2F, 0x77, 0x77, 0, 0},
11296 {0x30, 0x17, 0x17, 1, 1},
11297 {0x31, 0xff, 0xff, 1, 1},
11298 {0x32, 0x20, 0x20, 0, 0},
11299 {0x33, 0, 0, 0, 0},
11300 {0x34, 0x88, 0x88, 0, 0},
11301 {0x35, 0x32, 0x32, 0, 0},
11302 {0x36, 0x77, 0x77, 0, 0},
11303 {0x37, 0x17, 0x17, 1, 1},
11304 {0x38, 0xf0, 0xf0, 1, 1},
11305 {0x39, 0x20, 0x20, 0, 0},
11306 {0x3A, 0x8, 0x8, 0, 0},
11307 {0x3B, 0x55, 0x55, 1, 1},
11308 {0x3C, 0, 0, 0, 0},
11309 {0x3D, 0x88, 0x88, 1, 1},
11310 {0x3E, 0, 0, 0, 0},
11311 {0x3F, 0x44, 0x44, 0, 0},
11312 {0x40, 0x7, 0x7, 1, 1},
11313 {0x41, 0x6, 0x6, 0, 0},
11314 {0x42, 0x4, 0x4, 0, 0},
11315 {0x43, 0, 0, 0, 0},
11316 {0x44, 0x8, 0x8, 0, 0},
11317 {0x45, 0x55, 0x55, 1, 1},
11318 {0x46, 0, 0, 0, 0},
11319 {0x47, 0x11, 0x11, 0, 0},
11320 {0x48, 0, 0, 0, 0},
11321 {0x49, 0x44, 0x44, 0, 0},
11322 {0x4A, 0x7, 0x7, 0, 0},
11323 {0x4B, 0x6, 0x6, 0, 0},
11324 {0x4C, 0x4, 0x4, 0, 0},
11325 {0x4D, 0, 0, 0, 0},
11326 {0x4E, 0, 0, 0, 0},
11327 {0x4F, 0x26, 0x26, 1, 1},
11328 {0x50, 0x26, 0x26, 1, 1},
11329 {0x51, 0xf, 0xf, 1, 1},
11330 {0x52, 0xf, 0xf, 1, 1},
11331 {0x53, 0x44, 0x44, 0, 0},
11332 {0x54, 0, 0, 0, 0},
11333 {0x55, 0, 0, 0, 0},
11334 {0x56, 0x8, 0x8, 0, 0},
11335 {0x57, 0x8, 0x8, 0, 0},
11336 {0x58, 0x7, 0x7, 0, 0},
11337 {0x59, 0x22, 0x22, 0, 0},
11338 {0x5A, 0x22, 0x22, 0, 0},
11339 {0x5B, 0x2, 0x2, 0, 0},
11340 {0x5C, 0x4, 0x4, 1, 1},
11341 {0x5D, 0x7, 0x7, 0, 0},
11342 {0x5E, 0x55, 0x55, 0, 0},
11343 {0x5F, 0x23, 0x23, 0, 0},
11344 {0x60, 0x41, 0x41, 0, 0},
11345 {0x61, 0x1, 0x1, 0, 0},
11346 {0x62, 0xa, 0xa, 0, 0},
11347 {0x63, 0, 0, 0, 0},
11348 {0x64, 0, 0, 0, 0},
11349 {0x65, 0, 0, 0, 0},
11350 {0x66, 0, 0, 0, 0},
11351 {0x67, 0, 0, 0, 0},
11352 {0x68, 0, 0, 0, 0},
11353 {0x69, 0, 0, 0, 0},
11354 {0x6A, 0, 0, 0, 0},
11355 {0x6B, 0xc, 0xc, 0, 0},
11356 {0x6C, 0, 0, 0, 0},
11357 {0x6D, 0, 0, 0, 0},
11358 {0x6E, 0, 0, 0, 0},
11359 {0x6F, 0, 0, 0, 0},
11360 {0x70, 0, 0, 0, 0},
11361 {0x71, 0, 0, 0, 0},
11362 {0x72, 0x22, 0x22, 0, 0},
11363 {0x73, 0x22, 0x22, 0, 0},
11364 {0x74, 0, 0, 1, 1},
11365 {0x75, 0xa, 0xa, 0, 0},
11366 {0x76, 0x1, 0x1, 0, 0},
11367 {0x77, 0x22, 0x22, 0, 0},
11368 {0x78, 0x30, 0x30, 0, 0},
11369 {0x79, 0, 0, 0, 0},
11370 {0x7A, 0, 0, 0, 0},
11371 {0x7B, 0, 0, 0, 0},
11372 {0x7C, 0, 0, 0, 0},
11373 {0x7D, 0x5, 0x5, 1, 1},
11374 {0x7E, 0, 0, 0, 0},
11375 {0x7F, 0, 0, 0, 0},
11376 {0x80, 0, 0, 0, 0},
11377 {0x81, 0, 0, 0, 0},
11378 {0x82, 0, 0, 0, 0},
11379 {0x83, 0, 0, 0, 0},
11380 {0x84, 0, 0, 0, 0},
11381 {0x85, 0, 0, 0, 0},
11382 {0x86, 0, 0, 0, 0},
11383 {0x87, 0, 0, 0, 0},
11384 {0x88, 0, 0, 0, 0},
11385 {0x89, 0, 0, 0, 0},
11386 {0x8A, 0, 0, 0, 0},
11387 {0x8B, 0, 0, 0, 0},
11388 {0x8C, 0, 0, 0, 0},
11389 {0x8D, 0, 0, 0, 0},
11390 {0x8E, 0, 0, 0, 0},
11391 {0x8F, 0, 0, 0, 0},
11392 {0x90, 0, 0, 0, 0},
11393 {0x91, 0, 0, 0, 0},
11394 {0x92, 0, 0, 0, 0},
11395 {0x93, 0, 0, 0, 0},
11396 {0x94, 0, 0, 0, 0},
11397 {0xFFFF, 0, 0, 0, 0},
11398};
11399
11400radio_20xx_regs_t regs_2057_rev4[] = {
11401 {0x00, 0x84, 0},
11402 {0x01, 0, 0},
11403 {0x02, 0x60, 0},
11404 {0x03, 0x1f, 0},
11405 {0x04, 0x4, 0},
11406 {0x05, 0x2, 0},
11407 {0x06, 0x1, 0},
11408 {0x07, 0x1, 0},
11409 {0x08, 0x1, 0},
11410 {0x09, 0x69, 0},
11411 {0x0A, 0x66, 0},
11412 {0x0B, 0x6, 0},
11413 {0x0C, 0x18, 0},
11414 {0x0D, 0x3, 0},
11415 {0x0E, 0x20, 1},
11416 {0x0F, 0x20, 0},
11417 {0x10, 0, 0},
11418 {0x11, 0x7c, 0},
11419 {0x12, 0x42, 0},
11420 {0x13, 0xbd, 0},
11421 {0x14, 0x7, 0},
11422 {0x15, 0xf7, 0},
11423 {0x16, 0x8, 0},
11424 {0x17, 0x17, 0},
11425 {0x18, 0x7, 0},
11426 {0x19, 0, 0},
11427 {0x1A, 0x2, 0},
11428 {0x1B, 0x13, 0},
11429 {0x1C, 0x3e, 0},
11430 {0x1D, 0x3e, 0},
11431 {0x1E, 0x96, 0},
11432 {0x1F, 0x4, 0},
11433 {0x20, 0, 0},
11434 {0x21, 0, 0},
11435 {0x22, 0x17, 0},
11436 {0x23, 0x4, 0},
11437 {0x24, 0x1, 0},
11438 {0x25, 0x6, 0},
11439 {0x26, 0x4, 0},
11440 {0x27, 0xd, 0},
11441 {0x28, 0xd, 0},
11442 {0x29, 0x30, 0},
11443 {0x2A, 0x32, 0},
11444 {0x2B, 0x8, 0},
11445 {0x2C, 0x1c, 0},
11446 {0x2D, 0x2, 0},
11447 {0x2E, 0x4, 0},
11448 {0x2F, 0x7f, 0},
11449 {0x30, 0x27, 0},
11450 {0x31, 0, 1},
11451 {0x32, 0, 1},
11452 {0x33, 0, 1},
11453 {0x34, 0, 0},
11454 {0x35, 0x26, 1},
11455 {0x36, 0x18, 0},
11456 {0x37, 0x7, 0},
11457 {0x38, 0x66, 0},
11458 {0x39, 0x66, 0},
11459 {0x3A, 0x66, 0},
11460 {0x3B, 0x66, 0},
11461 {0x3C, 0xff, 1},
11462 {0x3D, 0xff, 1},
11463 {0x3E, 0xff, 1},
11464 {0x3F, 0xff, 1},
11465 {0x40, 0x16, 0},
11466 {0x41, 0x7, 0},
11467 {0x42, 0x19, 0},
11468 {0x43, 0x7, 0},
11469 {0x44, 0x6, 0},
11470 {0x45, 0x3, 0},
11471 {0x46, 0x1, 0},
11472 {0x47, 0x7, 0},
11473 {0x48, 0x33, 0},
11474 {0x49, 0x5, 0},
11475 {0x4A, 0x77, 0},
11476 {0x4B, 0x66, 0},
11477 {0x4C, 0x66, 0},
11478 {0x4D, 0, 0},
11479 {0x4E, 0x4, 0},
11480 {0x4F, 0xc, 0},
11481 {0x50, 0, 0},
11482 {0x51, 0x75, 0},
11483 {0x56, 0x7, 0},
11484 {0x57, 0, 0},
11485 {0x58, 0, 0},
11486 {0x59, 0xa8, 0},
11487 {0x5A, 0, 0},
11488 {0x5B, 0x1f, 0},
11489 {0x5C, 0x30, 0},
11490 {0x5D, 0x1, 0},
11491 {0x5E, 0x30, 0},
11492 {0x5F, 0x70, 0},
11493 {0x60, 0, 0},
11494 {0x61, 0, 0},
11495 {0x62, 0x33, 1},
11496 {0x63, 0x19, 0},
11497 {0x64, 0x62, 0},
11498 {0x65, 0, 0},
11499 {0x66, 0x11, 0},
11500 {0x69, 0, 0},
11501 {0x6A, 0x7e, 0},
11502 {0x6B, 0x3f, 0},
11503 {0x6C, 0x7f, 0},
11504 {0x6D, 0x78, 0},
11505 {0x6E, 0xc8, 0},
11506 {0x6F, 0x88, 0},
11507 {0x70, 0x8, 0},
11508 {0x71, 0xf, 0},
11509 {0x72, 0xbc, 0},
11510 {0x73, 0x8, 0},
11511 {0x74, 0x60, 0},
11512 {0x75, 0x1e, 0},
11513 {0x76, 0x70, 0},
11514 {0x77, 0, 0},
11515 {0x78, 0, 0},
11516 {0x79, 0, 0},
11517 {0x7A, 0x33, 0},
11518 {0x7B, 0x1e, 0},
11519 {0x7C, 0x62, 0},
11520 {0x7D, 0x11, 0},
11521 {0x80, 0x3c, 0},
11522 {0x81, 0x9c, 0},
11523 {0x82, 0xa, 0},
11524 {0x83, 0x9d, 0},
11525 {0x84, 0xa, 0},
11526 {0x85, 0, 0},
11527 {0x86, 0x40, 0},
11528 {0x87, 0x40, 0},
11529 {0x88, 0x88, 0},
11530 {0x89, 0x10, 0},
11531 {0x8A, 0xf0, 1},
11532 {0x8B, 0x10, 1},
11533 {0x8C, 0xf0, 1},
11534 {0x8D, 0, 0},
11535 {0x8E, 0, 0},
11536 {0x8F, 0x10, 0},
11537 {0x90, 0x55, 0},
11538 {0x91, 0x3f, 1},
11539 {0x92, 0x36, 1},
11540 {0x93, 0, 0},
11541 {0x94, 0, 0},
11542 {0x95, 0, 0},
11543 {0x96, 0x87, 0},
11544 {0x97, 0x11, 0},
11545 {0x98, 0, 0},
11546 {0x99, 0x33, 0},
11547 {0x9A, 0x88, 0},
11548 {0x9B, 0, 0},
11549 {0x9C, 0x87, 0},
11550 {0x9D, 0x11, 0},
11551 {0x9E, 0, 0},
11552 {0x9F, 0x33, 0},
11553 {0xA0, 0x88, 0},
11554 {0xA1, 0xe1, 0},
11555 {0xA2, 0x3f, 0},
11556 {0xA3, 0x44, 0},
11557 {0xA4, 0x8c, 1},
11558 {0xA5, 0x6d, 0},
11559 {0xA6, 0x22, 0},
11560 {0xA7, 0xbe, 0},
11561 {0xA8, 0x55, 1},
11562 {0xA9, 0xc, 0},
11563 {0xAA, 0xc, 0},
11564 {0xAB, 0xaa, 0},
11565 {0xAC, 0x2, 0},
11566 {0xAD, 0, 0},
11567 {0xAE, 0x10, 0},
11568 {0xAF, 0x1, 1},
11569 {0xB0, 0, 0},
11570 {0xB1, 0, 0},
11571 {0xB2, 0x80, 0},
11572 {0xB3, 0x60, 0},
11573 {0xB4, 0x44, 0},
11574 {0xB5, 0x55, 0},
11575 {0xB6, 0x1, 0},
11576 {0xB7, 0x55, 0},
11577 {0xB8, 0x1, 0},
11578 {0xB9, 0x5, 0},
11579 {0xBA, 0x55, 0},
11580 {0xBB, 0x55, 0},
11581 {0xC1, 0, 0},
11582 {0xC2, 0, 0},
11583 {0xC3, 0, 0},
11584 {0xC4, 0, 0},
11585 {0xC5, 0, 0},
11586 {0xC6, 0, 0},
11587 {0xC7, 0, 0},
11588 {0xC8, 0, 0},
11589 {0xC9, 0, 0},
11590 {0xCA, 0, 0},
11591 {0xCB, 0, 0},
11592 {0xCC, 0, 0},
11593 {0xCD, 0, 0},
11594 {0xCE, 0x5e, 0},
11595 {0xCF, 0xc, 0},
11596 {0xD0, 0xc, 0},
11597 {0xD1, 0xc, 0},
11598 {0xD2, 0, 0},
11599 {0xD3, 0x2b, 0},
11600 {0xD4, 0xc, 0},
11601 {0xD5, 0, 0},
11602 {0xD6, 0x75, 0},
11603 {0xDB, 0x7, 0},
11604 {0xDC, 0, 0},
11605 {0xDD, 0, 0},
11606 {0xDE, 0xa8, 0},
11607 {0xDF, 0, 0},
11608 {0xE0, 0x1f, 0},
11609 {0xE1, 0x30, 0},
11610 {0xE2, 0x1, 0},
11611 {0xE3, 0x30, 0},
11612 {0xE4, 0x70, 0},
11613 {0xE5, 0, 0},
11614 {0xE6, 0, 0},
11615 {0xE7, 0x33, 0},
11616 {0xE8, 0x19, 0},
11617 {0xE9, 0x62, 0},
11618 {0xEA, 0, 0},
11619 {0xEB, 0x11, 0},
11620 {0xEE, 0, 0},
11621 {0xEF, 0x7e, 0},
11622 {0xF0, 0x3f, 0},
11623 {0xF1, 0x7f, 0},
11624 {0xF2, 0x78, 0},
11625 {0xF3, 0xc8, 0},
11626 {0xF4, 0x88, 0},
11627 {0xF5, 0x8, 0},
11628 {0xF6, 0xf, 0},
11629 {0xF7, 0xbc, 0},
11630 {0xF8, 0x8, 0},
11631 {0xF9, 0x60, 0},
11632 {0xFA, 0x1e, 0},
11633 {0xFB, 0x70, 0},
11634 {0xFC, 0, 0},
11635 {0xFD, 0, 0},
11636 {0xFE, 0, 0},
11637 {0xFF, 0x33, 0},
11638 {0x100, 0x1e, 0},
11639 {0x101, 0x62, 0},
11640 {0x102, 0x11, 0},
11641 {0x105, 0x3c, 0},
11642 {0x106, 0x9c, 0},
11643 {0x107, 0xa, 0},
11644 {0x108, 0x9d, 0},
11645 {0x109, 0xa, 0},
11646 {0x10A, 0, 0},
11647 {0x10B, 0x40, 0},
11648 {0x10C, 0x40, 0},
11649 {0x10D, 0x88, 0},
11650 {0x10E, 0x10, 0},
11651 {0x10F, 0xf0, 1},
11652 {0x110, 0x10, 1},
11653 {0x111, 0xf0, 1},
11654 {0x112, 0, 0},
11655 {0x113, 0, 0},
11656 {0x114, 0x10, 0},
11657 {0x115, 0x55, 0},
11658 {0x116, 0x3f, 1},
11659 {0x117, 0x36, 1},
11660 {0x118, 0, 0},
11661 {0x119, 0, 0},
11662 {0x11A, 0, 0},
11663 {0x11B, 0x87, 0},
11664 {0x11C, 0x11, 0},
11665 {0x11D, 0, 0},
11666 {0x11E, 0x33, 0},
11667 {0x11F, 0x88, 0},
11668 {0x120, 0, 0},
11669 {0x121, 0x87, 0},
11670 {0x122, 0x11, 0},
11671 {0x123, 0, 0},
11672 {0x124, 0x33, 0},
11673 {0x125, 0x88, 0},
11674 {0x126, 0xe1, 0},
11675 {0x127, 0x3f, 0},
11676 {0x128, 0x44, 0},
11677 {0x129, 0x8c, 1},
11678 {0x12A, 0x6d, 0},
11679 {0x12B, 0x22, 0},
11680 {0x12C, 0xbe, 0},
11681 {0x12D, 0x55, 1},
11682 {0x12E, 0xc, 0},
11683 {0x12F, 0xc, 0},
11684 {0x130, 0xaa, 0},
11685 {0x131, 0x2, 0},
11686 {0x132, 0, 0},
11687 {0x133, 0x10, 0},
11688 {0x134, 0x1, 1},
11689 {0x135, 0, 0},
11690 {0x136, 0, 0},
11691 {0x137, 0x80, 0},
11692 {0x138, 0x60, 0},
11693 {0x139, 0x44, 0},
11694 {0x13A, 0x55, 0},
11695 {0x13B, 0x1, 0},
11696 {0x13C, 0x55, 0},
11697 {0x13D, 0x1, 0},
11698 {0x13E, 0x5, 0},
11699 {0x13F, 0x55, 0},
11700 {0x140, 0x55, 0},
11701 {0x146, 0, 0},
11702 {0x147, 0, 0},
11703 {0x148, 0, 0},
11704 {0x149, 0, 0},
11705 {0x14A, 0, 0},
11706 {0x14B, 0, 0},
11707 {0x14C, 0, 0},
11708 {0x14D, 0, 0},
11709 {0x14E, 0, 0},
11710 {0x14F, 0, 0},
11711 {0x150, 0, 0},
11712 {0x151, 0, 0},
11713 {0x152, 0, 0},
11714 {0x153, 0, 0},
11715 {0x154, 0xc, 0},
11716 {0x155, 0xc, 0},
11717 {0x156, 0xc, 0},
11718 {0x157, 0, 0},
11719 {0x158, 0x2b, 0},
11720 {0x159, 0x84, 0},
11721 {0x15A, 0x15, 0},
11722 {0x15B, 0xf, 0},
11723 {0x15C, 0, 0},
11724 {0x15D, 0, 0},
11725 {0x15E, 0, 1},
11726 {0x15F, 0, 1},
11727 {0x160, 0, 1},
11728 {0x161, 0, 1},
11729 {0x162, 0, 1},
11730 {0x163, 0, 1},
11731 {0x164, 0, 0},
11732 {0x165, 0, 0},
11733 {0x166, 0, 0},
11734 {0x167, 0, 0},
11735 {0x168, 0, 0},
11736 {0x169, 0x2, 1},
11737 {0x16A, 0, 1},
11738 {0x16B, 0, 1},
11739 {0x16C, 0, 1},
11740 {0x16D, 0, 0},
11741 {0x170, 0, 0},
11742 {0x171, 0x77, 0},
11743 {0x172, 0x77, 0},
11744 {0x173, 0x77, 0},
11745 {0x174, 0x77, 0},
11746 {0x175, 0, 0},
11747 {0x176, 0x3, 0},
11748 {0x177, 0x37, 0},
11749 {0x178, 0x3, 0},
11750 {0x179, 0, 0},
11751 {0x17A, 0x21, 0},
11752 {0x17B, 0x21, 0},
11753 {0x17C, 0, 0},
11754 {0x17D, 0xaa, 0},
11755 {0x17E, 0, 0},
11756 {0x17F, 0xaa, 0},
11757 {0x180, 0, 0},
11758 {0x190, 0, 0},
11759 {0x191, 0x77, 0},
11760 {0x192, 0x77, 0},
11761 {0x193, 0x77, 0},
11762 {0x194, 0x77, 0},
11763 {0x195, 0, 0},
11764 {0x196, 0x3, 0},
11765 {0x197, 0x37, 0},
11766 {0x198, 0x3, 0},
11767 {0x199, 0, 0},
11768 {0x19A, 0x21, 0},
11769 {0x19B, 0x21, 0},
11770 {0x19C, 0, 0},
11771 {0x19D, 0xaa, 0},
11772 {0x19E, 0, 0},
11773 {0x19F, 0xaa, 0},
11774 {0x1A0, 0, 0},
11775 {0x1A1, 0x2, 0},
11776 {0x1A2, 0xf, 0},
11777 {0x1A3, 0xf, 0},
11778 {0x1A4, 0, 1},
11779 {0x1A5, 0, 1},
11780 {0x1A6, 0, 1},
11781 {0x1A7, 0x2, 0},
11782 {0x1A8, 0xf, 0},
11783 {0x1A9, 0xf, 0},
11784 {0x1AA, 0, 1},
11785 {0x1AB, 0, 1},
11786 {0x1AC, 0, 1},
11787 {0xFFFF, 0, 0},
11788};
11789
11790radio_20xx_regs_t regs_2057_rev5[] = {
11791 {0x00, 0, 1},
11792 {0x01, 0x57, 1},
11793 {0x02, 0x20, 1},
11794 {0x03, 0x1f, 0},
11795 {0x04, 0x4, 0},
11796 {0x05, 0x2, 0},
11797 {0x06, 0x1, 0},
11798 {0x07, 0x1, 0},
11799 {0x08, 0x1, 0},
11800 {0x09, 0x69, 0},
11801 {0x0A, 0x66, 0},
11802 {0x0B, 0x6, 0},
11803 {0x0C, 0x18, 0},
11804 {0x0D, 0x3, 0},
11805 {0x0E, 0x20, 0},
11806 {0x0F, 0x20, 0},
11807 {0x10, 0, 0},
11808 {0x11, 0x7c, 0},
11809 {0x12, 0x42, 0},
11810 {0x13, 0xbd, 0},
11811 {0x14, 0x7, 0},
11812 {0x15, 0x87, 0},
11813 {0x16, 0x8, 0},
11814 {0x17, 0x17, 0},
11815 {0x18, 0x7, 0},
11816 {0x19, 0, 0},
11817 {0x1A, 0x2, 0},
11818 {0x1B, 0x13, 0},
11819 {0x1C, 0x3e, 0},
11820 {0x1D, 0x3e, 0},
11821 {0x1E, 0x96, 0},
11822 {0x1F, 0x4, 0},
11823 {0x20, 0, 0},
11824 {0x21, 0, 0},
11825 {0x22, 0x17, 0},
11826 {0x23, 0x6, 1},
11827 {0x24, 0x1, 0},
11828 {0x25, 0x6, 0},
11829 {0x26, 0x4, 0},
11830 {0x27, 0xd, 0},
11831 {0x28, 0xd, 0},
11832 {0x29, 0x30, 0},
11833 {0x2A, 0x32, 0},
11834 {0x2B, 0x8, 0},
11835 {0x2C, 0x1c, 0},
11836 {0x2D, 0x2, 0},
11837 {0x2E, 0x4, 0},
11838 {0x2F, 0x7f, 0},
11839 {0x30, 0x27, 0},
11840 {0x31, 0, 1},
11841 {0x32, 0, 1},
11842 {0x33, 0, 1},
11843 {0x34, 0, 0},
11844 {0x35, 0x20, 0},
11845 {0x36, 0x18, 0},
11846 {0x37, 0x7, 0},
11847 {0x38, 0x66, 0},
11848 {0x39, 0x66, 0},
11849 {0x3C, 0xff, 0},
11850 {0x3D, 0xff, 0},
11851 {0x40, 0x16, 0},
11852 {0x41, 0x7, 0},
11853 {0x45, 0x3, 0},
11854 {0x46, 0x1, 0},
11855 {0x47, 0x7, 0},
11856 {0x4B, 0x66, 0},
11857 {0x4C, 0x66, 0},
11858 {0x4D, 0, 0},
11859 {0x4E, 0x4, 0},
11860 {0x4F, 0xc, 0},
11861 {0x50, 0, 0},
11862 {0x51, 0x70, 1},
11863 {0x56, 0x7, 0},
11864 {0x57, 0, 0},
11865 {0x58, 0, 0},
11866 {0x59, 0x88, 1},
11867 {0x5A, 0, 0},
11868 {0x5B, 0x1f, 0},
11869 {0x5C, 0x20, 1},
11870 {0x5D, 0x1, 0},
11871 {0x5E, 0x30, 0},
11872 {0x5F, 0x70, 0},
11873 {0x60, 0, 0},
11874 {0x61, 0, 0},
11875 {0x62, 0x33, 1},
11876 {0x63, 0xf, 1},
11877 {0x64, 0xf, 1},
11878 {0x65, 0, 0},
11879 {0x66, 0x11, 0},
11880 {0x80, 0x3c, 0},
11881 {0x81, 0x1, 1},
11882 {0x82, 0xa, 0},
11883 {0x85, 0, 0},
11884 {0x86, 0x40, 0},
11885 {0x87, 0x40, 0},
11886 {0x88, 0x88, 0},
11887 {0x89, 0x10, 0},
11888 {0x8A, 0xf0, 0},
11889 {0x8B, 0x10, 0},
11890 {0x8C, 0xf0, 0},
11891 {0x8F, 0x10, 0},
11892 {0x90, 0x55, 0},
11893 {0x91, 0x3f, 1},
11894 {0x92, 0x36, 1},
11895 {0x93, 0, 0},
11896 {0x94, 0, 0},
11897 {0x95, 0, 0},
11898 {0x96, 0x87, 0},
11899 {0x97, 0x11, 0},
11900 {0x98, 0, 0},
11901 {0x99, 0x33, 0},
11902 {0x9A, 0x88, 0},
11903 {0xA1, 0x20, 1},
11904 {0xA2, 0x3f, 0},
11905 {0xA3, 0x44, 0},
11906 {0xA4, 0x8c, 0},
11907 {0xA5, 0x6c, 0},
11908 {0xA6, 0x22, 0},
11909 {0xA7, 0xbe, 0},
11910 {0xA8, 0x55, 0},
11911 {0xAA, 0xc, 0},
11912 {0xAB, 0xaa, 0},
11913 {0xAC, 0x2, 0},
11914 {0xAD, 0, 0},
11915 {0xAE, 0x10, 0},
11916 {0xAF, 0x1, 0},
11917 {0xB0, 0, 0},
11918 {0xB1, 0, 0},
11919 {0xB2, 0x80, 0},
11920 {0xB3, 0x60, 0},
11921 {0xB4, 0x44, 0},
11922 {0xB5, 0x55, 0},
11923 {0xB6, 0x1, 0},
11924 {0xB7, 0x55, 0},
11925 {0xB8, 0x1, 0},
11926 {0xB9, 0x5, 0},
11927 {0xBA, 0x55, 0},
11928 {0xBB, 0x55, 0},
11929 {0xC3, 0, 0},
11930 {0xC4, 0, 0},
11931 {0xC5, 0, 0},
11932 {0xC6, 0, 0},
11933 {0xC7, 0, 0},
11934 {0xC8, 0, 0},
11935 {0xC9, 0, 0},
11936 {0xCA, 0, 0},
11937 {0xCB, 0, 0},
11938 {0xCD, 0, 0},
11939 {0xCE, 0x5e, 0},
11940 {0xCF, 0xc, 0},
11941 {0xD0, 0xc, 0},
11942 {0xD1, 0xc, 0},
11943 {0xD2, 0, 0},
11944 {0xD3, 0x2b, 0},
11945 {0xD4, 0xc, 0},
11946 {0xD5, 0, 0},
11947 {0xD6, 0x70, 1},
11948 {0xDB, 0x7, 0},
11949 {0xDC, 0, 0},
11950 {0xDD, 0, 0},
11951 {0xDE, 0x88, 1},
11952 {0xDF, 0, 0},
11953 {0xE0, 0x1f, 0},
11954 {0xE1, 0x20, 1},
11955 {0xE2, 0x1, 0},
11956 {0xE3, 0x30, 0},
11957 {0xE4, 0x70, 0},
11958 {0xE5, 0, 0},
11959 {0xE6, 0, 0},
11960 {0xE7, 0x33, 0},
11961 {0xE8, 0xf, 1},
11962 {0xE9, 0xf, 1},
11963 {0xEA, 0, 0},
11964 {0xEB, 0x11, 0},
11965 {0x105, 0x3c, 0},
11966 {0x106, 0x1, 1},
11967 {0x107, 0xa, 0},
11968 {0x10A, 0, 0},
11969 {0x10B, 0x40, 0},
11970 {0x10C, 0x40, 0},
11971 {0x10D, 0x88, 0},
11972 {0x10E, 0x10, 0},
11973 {0x10F, 0xf0, 0},
11974 {0x110, 0x10, 0},
11975 {0x111, 0xf0, 0},
11976 {0x114, 0x10, 0},
11977 {0x115, 0x55, 0},
11978 {0x116, 0x3f, 1},
11979 {0x117, 0x36, 1},
11980 {0x118, 0, 0},
11981 {0x119, 0, 0},
11982 {0x11A, 0, 0},
11983 {0x11B, 0x87, 0},
11984 {0x11C, 0x11, 0},
11985 {0x11D, 0, 0},
11986 {0x11E, 0x33, 0},
11987 {0x11F, 0x88, 0},
11988 {0x126, 0x20, 1},
11989 {0x127, 0x3f, 0},
11990 {0x128, 0x44, 0},
11991 {0x129, 0x8c, 0},
11992 {0x12A, 0x6c, 0},
11993 {0x12B, 0x22, 0},
11994 {0x12C, 0xbe, 0},
11995 {0x12D, 0x55, 0},
11996 {0x12F, 0xc, 0},
11997 {0x130, 0xaa, 0},
11998 {0x131, 0x2, 0},
11999 {0x132, 0, 0},
12000 {0x133, 0x10, 0},
12001 {0x134, 0x1, 0},
12002 {0x135, 0, 0},
12003 {0x136, 0, 0},
12004 {0x137, 0x80, 0},
12005 {0x138, 0x60, 0},
12006 {0x139, 0x44, 0},
12007 {0x13A, 0x55, 0},
12008 {0x13B, 0x1, 0},
12009 {0x13C, 0x55, 0},
12010 {0x13D, 0x1, 0},
12011 {0x13E, 0x5, 0},
12012 {0x13F, 0x55, 0},
12013 {0x140, 0x55, 0},
12014 {0x148, 0, 0},
12015 {0x149, 0, 0},
12016 {0x14A, 0, 0},
12017 {0x14B, 0, 0},
12018 {0x14C, 0, 0},
12019 {0x14D, 0, 0},
12020 {0x14E, 0, 0},
12021 {0x14F, 0, 0},
12022 {0x150, 0, 0},
12023 {0x154, 0xc, 0},
12024 {0x155, 0xc, 0},
12025 {0x156, 0xc, 0},
12026 {0x157, 0, 0},
12027 {0x158, 0x2b, 0},
12028 {0x159, 0x84, 0},
12029 {0x15A, 0x15, 0},
12030 {0x15B, 0xf, 0},
12031 {0x15C, 0, 0},
12032 {0x15D, 0, 0},
12033 {0x15E, 0, 1},
12034 {0x15F, 0, 1},
12035 {0x160, 0, 1},
12036 {0x161, 0, 1},
12037 {0x162, 0, 1},
12038 {0x163, 0, 1},
12039 {0x164, 0, 0},
12040 {0x165, 0, 0},
12041 {0x166, 0, 0},
12042 {0x167, 0, 0},
12043 {0x168, 0, 0},
12044 {0x169, 0, 0},
12045 {0x16A, 0, 1},
12046 {0x16B, 0, 1},
12047 {0x16C, 0, 1},
12048 {0x16D, 0, 0},
12049 {0x170, 0, 0},
12050 {0x171, 0x77, 0},
12051 {0x172, 0x77, 0},
12052 {0x173, 0x77, 0},
12053 {0x174, 0x77, 0},
12054 {0x175, 0, 0},
12055 {0x176, 0x3, 0},
12056 {0x177, 0x37, 0},
12057 {0x178, 0x3, 0},
12058 {0x179, 0, 0},
12059 {0x17B, 0x21, 0},
12060 {0x17C, 0, 0},
12061 {0x17D, 0xaa, 0},
12062 {0x17E, 0, 0},
12063 {0x190, 0, 0},
12064 {0x191, 0x77, 0},
12065 {0x192, 0x77, 0},
12066 {0x193, 0x77, 0},
12067 {0x194, 0x77, 0},
12068 {0x195, 0, 0},
12069 {0x196, 0x3, 0},
12070 {0x197, 0x37, 0},
12071 {0x198, 0x3, 0},
12072 {0x199, 0, 0},
12073 {0x19B, 0x21, 0},
12074 {0x19C, 0, 0},
12075 {0x19D, 0xaa, 0},
12076 {0x19E, 0, 0},
12077 {0x1A1, 0x2, 0},
12078 {0x1A2, 0xf, 0},
12079 {0x1A3, 0xf, 0},
12080 {0x1A4, 0, 1},
12081 {0x1A5, 0, 1},
12082 {0x1A6, 0, 1},
12083 {0x1A7, 0x2, 0},
12084 {0x1A8, 0xf, 0},
12085 {0x1A9, 0xf, 0},
12086 {0x1AA, 0, 1},
12087 {0x1AB, 0, 1},
12088 {0x1AC, 0, 1},
12089 {0x1AD, 0x84, 0},
12090 {0x1AE, 0x60, 0},
12091 {0x1AF, 0x47, 0},
12092 {0x1B0, 0x47, 0},
12093 {0x1B1, 0, 0},
12094 {0x1B2, 0, 0},
12095 {0x1B3, 0, 0},
12096 {0x1B4, 0, 0},
12097 {0x1B5, 0, 0},
12098 {0x1B6, 0, 0},
12099 {0x1B7, 0xc, 1},
12100 {0x1B8, 0, 0},
12101 {0x1B9, 0, 0},
12102 {0x1BA, 0, 0},
12103 {0x1BB, 0, 0},
12104 {0x1BC, 0, 0},
12105 {0x1BD, 0, 0},
12106 {0x1BE, 0, 0},
12107 {0x1BF, 0, 0},
12108 {0x1C0, 0, 0},
12109 {0x1C1, 0x1, 1},
12110 {0x1C2, 0x80, 1},
12111 {0x1C3, 0, 0},
12112 {0x1C4, 0, 0},
12113 {0x1C5, 0, 0},
12114 {0x1C6, 0, 0},
12115 {0x1C7, 0, 0},
12116 {0x1C8, 0, 0},
12117 {0x1C9, 0, 0},
12118 {0x1CA, 0, 0},
12119 {0xFFFF, 0, 0}
12120};
12121
12122radio_20xx_regs_t regs_2057_rev5v1[] = {
12123 {0x00, 0x15, 1},
12124 {0x01, 0x57, 1},
12125 {0x02, 0x20, 1},
12126 {0x03, 0x1f, 0},
12127 {0x04, 0x4, 0},
12128 {0x05, 0x2, 0},
12129 {0x06, 0x1, 0},
12130 {0x07, 0x1, 0},
12131 {0x08, 0x1, 0},
12132 {0x09, 0x69, 0},
12133 {0x0A, 0x66, 0},
12134 {0x0B, 0x6, 0},
12135 {0x0C, 0x18, 0},
12136 {0x0D, 0x3, 0},
12137 {0x0E, 0x20, 0},
12138 {0x0F, 0x20, 0},
12139 {0x10, 0, 0},
12140 {0x11, 0x7c, 0},
12141 {0x12, 0x42, 0},
12142 {0x13, 0xbd, 0},
12143 {0x14, 0x7, 0},
12144 {0x15, 0x87, 0},
12145 {0x16, 0x8, 0},
12146 {0x17, 0x17, 0},
12147 {0x18, 0x7, 0},
12148 {0x19, 0, 0},
12149 {0x1A, 0x2, 0},
12150 {0x1B, 0x13, 0},
12151 {0x1C, 0x3e, 0},
12152 {0x1D, 0x3e, 0},
12153 {0x1E, 0x96, 0},
12154 {0x1F, 0x4, 0},
12155 {0x20, 0, 0},
12156 {0x21, 0, 0},
12157 {0x22, 0x17, 0},
12158 {0x23, 0x6, 1},
12159 {0x24, 0x1, 0},
12160 {0x25, 0x6, 0},
12161 {0x26, 0x4, 0},
12162 {0x27, 0xd, 0},
12163 {0x28, 0xd, 0},
12164 {0x29, 0x30, 0},
12165 {0x2A, 0x32, 0},
12166 {0x2B, 0x8, 0},
12167 {0x2C, 0x1c, 0},
12168 {0x2D, 0x2, 0},
12169 {0x2E, 0x4, 0},
12170 {0x2F, 0x7f, 0},
12171 {0x30, 0x27, 0},
12172 {0x31, 0, 1},
12173 {0x32, 0, 1},
12174 {0x33, 0, 1},
12175 {0x34, 0, 0},
12176 {0x35, 0x20, 0},
12177 {0x36, 0x18, 0},
12178 {0x37, 0x7, 0},
12179 {0x38, 0x66, 0},
12180 {0x39, 0x66, 0},
12181 {0x3C, 0xff, 0},
12182 {0x3D, 0xff, 0},
12183 {0x40, 0x16, 0},
12184 {0x41, 0x7, 0},
12185 {0x45, 0x3, 0},
12186 {0x46, 0x1, 0},
12187 {0x47, 0x7, 0},
12188 {0x4B, 0x66, 0},
12189 {0x4C, 0x66, 0},
12190 {0x4D, 0, 0},
12191 {0x4E, 0x4, 0},
12192 {0x4F, 0xc, 0},
12193 {0x50, 0, 0},
12194 {0x51, 0x70, 1},
12195 {0x56, 0x7, 0},
12196 {0x57, 0, 0},
12197 {0x58, 0, 0},
12198 {0x59, 0x88, 1},
12199 {0x5A, 0, 0},
12200 {0x5B, 0x1f, 0},
12201 {0x5C, 0x20, 1},
12202 {0x5D, 0x1, 0},
12203 {0x5E, 0x30, 0},
12204 {0x5F, 0x70, 0},
12205 {0x60, 0, 0},
12206 {0x61, 0, 0},
12207 {0x62, 0x33, 1},
12208 {0x63, 0xf, 1},
12209 {0x64, 0xf, 1},
12210 {0x65, 0, 0},
12211 {0x66, 0x11, 0},
12212 {0x80, 0x3c, 0},
12213 {0x81, 0x1, 1},
12214 {0x82, 0xa, 0},
12215 {0x85, 0, 0},
12216 {0x86, 0x40, 0},
12217 {0x87, 0x40, 0},
12218 {0x88, 0x88, 0},
12219 {0x89, 0x10, 0},
12220 {0x8A, 0xf0, 0},
12221 {0x8B, 0x10, 0},
12222 {0x8C, 0xf0, 0},
12223 {0x8F, 0x10, 0},
12224 {0x90, 0x55, 0},
12225 {0x91, 0x3f, 1},
12226 {0x92, 0x36, 1},
12227 {0x93, 0, 0},
12228 {0x94, 0, 0},
12229 {0x95, 0, 0},
12230 {0x96, 0x87, 0},
12231 {0x97, 0x11, 0},
12232 {0x98, 0, 0},
12233 {0x99, 0x33, 0},
12234 {0x9A, 0x88, 0},
12235 {0xA1, 0x20, 1},
12236 {0xA2, 0x3f, 0},
12237 {0xA3, 0x44, 0},
12238 {0xA4, 0x8c, 0},
12239 {0xA5, 0x6c, 0},
12240 {0xA6, 0x22, 0},
12241 {0xA7, 0xbe, 0},
12242 {0xA8, 0x55, 0},
12243 {0xAA, 0xc, 0},
12244 {0xAB, 0xaa, 0},
12245 {0xAC, 0x2, 0},
12246 {0xAD, 0, 0},
12247 {0xAE, 0x10, 0},
12248 {0xAF, 0x1, 0},
12249 {0xB0, 0, 0},
12250 {0xB1, 0, 0},
12251 {0xB2, 0x80, 0},
12252 {0xB3, 0x60, 0},
12253 {0xB4, 0x44, 0},
12254 {0xB5, 0x55, 0},
12255 {0xB6, 0x1, 0},
12256 {0xB7, 0x55, 0},
12257 {0xB8, 0x1, 0},
12258 {0xB9, 0x5, 0},
12259 {0xBA, 0x55, 0},
12260 {0xBB, 0x55, 0},
12261 {0xC3, 0, 0},
12262 {0xC4, 0, 0},
12263 {0xC5, 0, 0},
12264 {0xC6, 0, 0},
12265 {0xC7, 0, 0},
12266 {0xC8, 0, 0},
12267 {0xC9, 0x1, 1},
12268 {0xCA, 0, 0},
12269 {0xCB, 0, 0},
12270 {0xCD, 0, 0},
12271 {0xCE, 0x5e, 0},
12272 {0xCF, 0xc, 0},
12273 {0xD0, 0xc, 0},
12274 {0xD1, 0xc, 0},
12275 {0xD2, 0, 0},
12276 {0xD3, 0x2b, 0},
12277 {0xD4, 0xc, 0},
12278 {0xD5, 0, 0},
12279 {0xD6, 0x70, 1},
12280 {0xDB, 0x7, 0},
12281 {0xDC, 0, 0},
12282 {0xDD, 0, 0},
12283 {0xDE, 0x88, 1},
12284 {0xDF, 0, 0},
12285 {0xE0, 0x1f, 0},
12286 {0xE1, 0x20, 1},
12287 {0xE2, 0x1, 0},
12288 {0xE3, 0x30, 0},
12289 {0xE4, 0x70, 0},
12290 {0xE5, 0, 0},
12291 {0xE6, 0, 0},
12292 {0xE7, 0x33, 0},
12293 {0xE8, 0xf, 1},
12294 {0xE9, 0xf, 1},
12295 {0xEA, 0, 0},
12296 {0xEB, 0x11, 0},
12297 {0x105, 0x3c, 0},
12298 {0x106, 0x1, 1},
12299 {0x107, 0xa, 0},
12300 {0x10A, 0, 0},
12301 {0x10B, 0x40, 0},
12302 {0x10C, 0x40, 0},
12303 {0x10D, 0x88, 0},
12304 {0x10E, 0x10, 0},
12305 {0x10F, 0xf0, 0},
12306 {0x110, 0x10, 0},
12307 {0x111, 0xf0, 0},
12308 {0x114, 0x10, 0},
12309 {0x115, 0x55, 0},
12310 {0x116, 0x3f, 1},
12311 {0x117, 0x36, 1},
12312 {0x118, 0, 0},
12313 {0x119, 0, 0},
12314 {0x11A, 0, 0},
12315 {0x11B, 0x87, 0},
12316 {0x11C, 0x11, 0},
12317 {0x11D, 0, 0},
12318 {0x11E, 0x33, 0},
12319 {0x11F, 0x88, 0},
12320 {0x126, 0x20, 1},
12321 {0x127, 0x3f, 0},
12322 {0x128, 0x44, 0},
12323 {0x129, 0x8c, 0},
12324 {0x12A, 0x6c, 0},
12325 {0x12B, 0x22, 0},
12326 {0x12C, 0xbe, 0},
12327 {0x12D, 0x55, 0},
12328 {0x12F, 0xc, 0},
12329 {0x130, 0xaa, 0},
12330 {0x131, 0x2, 0},
12331 {0x132, 0, 0},
12332 {0x133, 0x10, 0},
12333 {0x134, 0x1, 0},
12334 {0x135, 0, 0},
12335 {0x136, 0, 0},
12336 {0x137, 0x80, 0},
12337 {0x138, 0x60, 0},
12338 {0x139, 0x44, 0},
12339 {0x13A, 0x55, 0},
12340 {0x13B, 0x1, 0},
12341 {0x13C, 0x55, 0},
12342 {0x13D, 0x1, 0},
12343 {0x13E, 0x5, 0},
12344 {0x13F, 0x55, 0},
12345 {0x140, 0x55, 0},
12346 {0x148, 0, 0},
12347 {0x149, 0, 0},
12348 {0x14A, 0, 0},
12349 {0x14B, 0, 0},
12350 {0x14C, 0, 0},
12351 {0x14D, 0, 0},
12352 {0x14E, 0x1, 1},
12353 {0x14F, 0, 0},
12354 {0x150, 0, 0},
12355 {0x154, 0xc, 0},
12356 {0x155, 0xc, 0},
12357 {0x156, 0xc, 0},
12358 {0x157, 0, 0},
12359 {0x158, 0x2b, 0},
12360 {0x159, 0x84, 0},
12361 {0x15A, 0x15, 0},
12362 {0x15B, 0xf, 0},
12363 {0x15C, 0, 0},
12364 {0x15D, 0, 0},
12365 {0x15E, 0, 1},
12366 {0x15F, 0, 1},
12367 {0x160, 0, 1},
12368 {0x161, 0, 1},
12369 {0x162, 0, 1},
12370 {0x163, 0, 1},
12371 {0x164, 0, 0},
12372 {0x165, 0, 0},
12373 {0x166, 0, 0},
12374 {0x167, 0, 0},
12375 {0x168, 0, 0},
12376 {0x169, 0, 0},
12377 {0x16A, 0, 1},
12378 {0x16B, 0, 1},
12379 {0x16C, 0, 1},
12380 {0x16D, 0, 0},
12381 {0x170, 0, 0},
12382 {0x171, 0x77, 0},
12383 {0x172, 0x77, 0},
12384 {0x173, 0x77, 0},
12385 {0x174, 0x77, 0},
12386 {0x175, 0, 0},
12387 {0x176, 0x3, 0},
12388 {0x177, 0x37, 0},
12389 {0x178, 0x3, 0},
12390 {0x179, 0, 0},
12391 {0x17B, 0x21, 0},
12392 {0x17C, 0, 0},
12393 {0x17D, 0xaa, 0},
12394 {0x17E, 0, 0},
12395 {0x190, 0, 0},
12396 {0x191, 0x77, 0},
12397 {0x192, 0x77, 0},
12398 {0x193, 0x77, 0},
12399 {0x194, 0x77, 0},
12400 {0x195, 0, 0},
12401 {0x196, 0x3, 0},
12402 {0x197, 0x37, 0},
12403 {0x198, 0x3, 0},
12404 {0x199, 0, 0},
12405 {0x19B, 0x21, 0},
12406 {0x19C, 0, 0},
12407 {0x19D, 0xaa, 0},
12408 {0x19E, 0, 0},
12409 {0x1A1, 0x2, 0},
12410 {0x1A2, 0xf, 0},
12411 {0x1A3, 0xf, 0},
12412 {0x1A4, 0, 1},
12413 {0x1A5, 0, 1},
12414 {0x1A6, 0, 1},
12415 {0x1A7, 0x2, 0},
12416 {0x1A8, 0xf, 0},
12417 {0x1A9, 0xf, 0},
12418 {0x1AA, 0, 1},
12419 {0x1AB, 0, 1},
12420 {0x1AC, 0, 1},
12421 {0x1AD, 0x84, 0},
12422 {0x1AE, 0x60, 0},
12423 {0x1AF, 0x47, 0},
12424 {0x1B0, 0x47, 0},
12425 {0x1B1, 0, 0},
12426 {0x1B2, 0, 0},
12427 {0x1B3, 0, 0},
12428 {0x1B4, 0, 0},
12429 {0x1B5, 0, 0},
12430 {0x1B6, 0, 0},
12431 {0x1B7, 0xc, 1},
12432 {0x1B8, 0, 0},
12433 {0x1B9, 0, 0},
12434 {0x1BA, 0, 0},
12435 {0x1BB, 0, 0},
12436 {0x1BC, 0, 0},
12437 {0x1BD, 0, 0},
12438 {0x1BE, 0, 0},
12439 {0x1BF, 0, 0},
12440 {0x1C0, 0, 0},
12441 {0x1C1, 0x1, 1},
12442 {0x1C2, 0x80, 1},
12443 {0x1C3, 0, 0},
12444 {0x1C4, 0, 0},
12445 {0x1C5, 0, 0},
12446 {0x1C6, 0, 0},
12447 {0x1C7, 0, 0},
12448 {0x1C8, 0, 0},
12449 {0x1C9, 0, 0},
12450 {0x1CA, 0, 0},
12451 {0xFFFF, 0, 0}
12452};
12453
12454radio_20xx_regs_t regs_2057_rev7[] = {
12455 {0x00, 0, 1},
12456 {0x01, 0x57, 1},
12457 {0x02, 0x20, 1},
12458 {0x03, 0x1f, 0},
12459 {0x04, 0x4, 0},
12460 {0x05, 0x2, 0},
12461 {0x06, 0x1, 0},
12462 {0x07, 0x1, 0},
12463 {0x08, 0x1, 0},
12464 {0x09, 0x69, 0},
12465 {0x0A, 0x66, 0},
12466 {0x0B, 0x6, 0},
12467 {0x0C, 0x18, 0},
12468 {0x0D, 0x3, 0},
12469 {0x0E, 0x20, 0},
12470 {0x0F, 0x20, 0},
12471 {0x10, 0, 0},
12472 {0x11, 0x7c, 0},
12473 {0x12, 0x42, 0},
12474 {0x13, 0xbd, 0},
12475 {0x14, 0x7, 0},
12476 {0x15, 0x87, 0},
12477 {0x16, 0x8, 0},
12478 {0x17, 0x17, 0},
12479 {0x18, 0x7, 0},
12480 {0x19, 0, 0},
12481 {0x1A, 0x2, 0},
12482 {0x1B, 0x13, 0},
12483 {0x1C, 0x3e, 0},
12484 {0x1D, 0x3e, 0},
12485 {0x1E, 0x96, 0},
12486 {0x1F, 0x4, 0},
12487 {0x20, 0, 0},
12488 {0x21, 0, 0},
12489 {0x22, 0x17, 0},
12490 {0x23, 0x6, 0},
12491 {0x24, 0x1, 0},
12492 {0x25, 0x6, 0},
12493 {0x26, 0x4, 0},
12494 {0x27, 0xd, 0},
12495 {0x28, 0xd, 0},
12496 {0x29, 0x30, 0},
12497 {0x2A, 0x32, 0},
12498 {0x2B, 0x8, 0},
12499 {0x2C, 0x1c, 0},
12500 {0x2D, 0x2, 0},
12501 {0x2E, 0x4, 0},
12502 {0x2F, 0x7f, 0},
12503 {0x30, 0x27, 0},
12504 {0x31, 0, 1},
12505 {0x32, 0, 1},
12506 {0x33, 0, 1},
12507 {0x34, 0, 0},
12508 {0x35, 0x20, 0},
12509 {0x36, 0x18, 0},
12510 {0x37, 0x7, 0},
12511 {0x38, 0x66, 0},
12512 {0x39, 0x66, 0},
12513 {0x3A, 0x66, 0},
12514 {0x3B, 0x66, 0},
12515 {0x3C, 0xff, 0},
12516 {0x3D, 0xff, 0},
12517 {0x3E, 0xff, 0},
12518 {0x3F, 0xff, 0},
12519 {0x40, 0x16, 0},
12520 {0x41, 0x7, 0},
12521 {0x42, 0x19, 0},
12522 {0x43, 0x7, 0},
12523 {0x44, 0x6, 0},
12524 {0x45, 0x3, 0},
12525 {0x46, 0x1, 0},
12526 {0x47, 0x7, 0},
12527 {0x48, 0x33, 0},
12528 {0x49, 0x5, 0},
12529 {0x4A, 0x77, 0},
12530 {0x4B, 0x66, 0},
12531 {0x4C, 0x66, 0},
12532 {0x4D, 0, 0},
12533 {0x4E, 0x4, 0},
12534 {0x4F, 0xc, 0},
12535 {0x50, 0, 0},
12536 {0x51, 0x70, 1},
12537 {0x56, 0x7, 0},
12538 {0x57, 0, 0},
12539 {0x58, 0, 0},
12540 {0x59, 0x88, 1},
12541 {0x5A, 0, 0},
12542 {0x5B, 0x1f, 0},
12543 {0x5C, 0x20, 1},
12544 {0x5D, 0x1, 0},
12545 {0x5E, 0x30, 0},
12546 {0x5F, 0x70, 0},
12547 {0x60, 0, 0},
12548 {0x61, 0, 0},
12549 {0x62, 0x33, 1},
12550 {0x63, 0xf, 1},
12551 {0x64, 0x13, 1},
12552 {0x65, 0, 0},
12553 {0x66, 0xee, 1},
12554 {0x69, 0, 0},
12555 {0x6A, 0x7e, 0},
12556 {0x6B, 0x3f, 0},
12557 {0x6C, 0x7f, 0},
12558 {0x6D, 0x78, 0},
12559 {0x6E, 0x58, 1},
12560 {0x6F, 0x88, 0},
12561 {0x70, 0x8, 0},
12562 {0x71, 0xf, 0},
12563 {0x72, 0xbc, 0},
12564 {0x73, 0x8, 0},
12565 {0x74, 0x60, 0},
12566 {0x75, 0x13, 1},
12567 {0x76, 0x70, 0},
12568 {0x77, 0, 0},
12569 {0x78, 0, 0},
12570 {0x79, 0, 0},
12571 {0x7A, 0x33, 0},
12572 {0x7B, 0x13, 1},
12573 {0x7C, 0x14, 1},
12574 {0x7D, 0xee, 1},
12575 {0x80, 0x3c, 0},
12576 {0x81, 0x1, 1},
12577 {0x82, 0xa, 0},
12578 {0x83, 0x9d, 0},
12579 {0x84, 0xa, 0},
12580 {0x85, 0, 0},
12581 {0x86, 0x40, 0},
12582 {0x87, 0x40, 0},
12583 {0x88, 0x88, 0},
12584 {0x89, 0x10, 0},
12585 {0x8A, 0xf0, 0},
12586 {0x8B, 0x10, 0},
12587 {0x8C, 0xf0, 0},
12588 {0x8D, 0, 0},
12589 {0x8E, 0, 0},
12590 {0x8F, 0x10, 0},
12591 {0x90, 0x55, 0},
12592 {0x91, 0x3f, 1},
12593 {0x92, 0x36, 1},
12594 {0x93, 0, 0},
12595 {0x94, 0, 0},
12596 {0x95, 0, 0},
12597 {0x96, 0x87, 0},
12598 {0x97, 0x11, 0},
12599 {0x98, 0, 0},
12600 {0x99, 0x33, 0},
12601 {0x9A, 0x88, 0},
12602 {0x9B, 0, 0},
12603 {0x9C, 0x87, 0},
12604 {0x9D, 0x11, 0},
12605 {0x9E, 0, 0},
12606 {0x9F, 0x33, 0},
12607 {0xA0, 0x88, 0},
12608 {0xA1, 0x20, 1},
12609 {0xA2, 0x3f, 0},
12610 {0xA3, 0x44, 0},
12611 {0xA4, 0x8c, 0},
12612 {0xA5, 0x6c, 0},
12613 {0xA6, 0x22, 0},
12614 {0xA7, 0xbe, 0},
12615 {0xA8, 0x55, 0},
12616 {0xAA, 0xc, 0},
12617 {0xAB, 0xaa, 0},
12618 {0xAC, 0x2, 0},
12619 {0xAD, 0, 0},
12620 {0xAE, 0x10, 0},
12621 {0xAF, 0x1, 0},
12622 {0xB0, 0, 0},
12623 {0xB1, 0, 0},
12624 {0xB2, 0x80, 0},
12625 {0xB3, 0x60, 0},
12626 {0xB4, 0x44, 0},
12627 {0xB5, 0x55, 0},
12628 {0xB6, 0x1, 0},
12629 {0xB7, 0x55, 0},
12630 {0xB8, 0x1, 0},
12631 {0xB9, 0x5, 0},
12632 {0xBA, 0x55, 0},
12633 {0xBB, 0x55, 0},
12634 {0xC1, 0, 0},
12635 {0xC2, 0, 0},
12636 {0xC3, 0, 0},
12637 {0xC4, 0, 0},
12638 {0xC5, 0, 0},
12639 {0xC6, 0, 0},
12640 {0xC7, 0, 0},
12641 {0xC8, 0, 0},
12642 {0xC9, 0, 0},
12643 {0xCA, 0, 0},
12644 {0xCB, 0, 0},
12645 {0xCC, 0, 0},
12646 {0xCD, 0, 0},
12647 {0xCE, 0x5e, 0},
12648 {0xCF, 0xc, 0},
12649 {0xD0, 0xc, 0},
12650 {0xD1, 0xc, 0},
12651 {0xD2, 0, 0},
12652 {0xD3, 0x2b, 0},
12653 {0xD4, 0xc, 0},
12654 {0xD5, 0, 0},
12655 {0xD6, 0x70, 1},
12656 {0xDB, 0x7, 0},
12657 {0xDC, 0, 0},
12658 {0xDD, 0, 0},
12659 {0xDE, 0x88, 1},
12660 {0xDF, 0, 0},
12661 {0xE0, 0x1f, 0},
12662 {0xE1, 0x20, 1},
12663 {0xE2, 0x1, 0},
12664 {0xE3, 0x30, 0},
12665 {0xE4, 0x70, 0},
12666 {0xE5, 0, 0},
12667 {0xE6, 0, 0},
12668 {0xE7, 0x33, 0},
12669 {0xE8, 0xf, 1},
12670 {0xE9, 0x13, 1},
12671 {0xEA, 0, 0},
12672 {0xEB, 0xee, 1},
12673 {0xEE, 0, 0},
12674 {0xEF, 0x7e, 0},
12675 {0xF0, 0x3f, 0},
12676 {0xF1, 0x7f, 0},
12677 {0xF2, 0x78, 0},
12678 {0xF3, 0x58, 1},
12679 {0xF4, 0x88, 0},
12680 {0xF5, 0x8, 0},
12681 {0xF6, 0xf, 0},
12682 {0xF7, 0xbc, 0},
12683 {0xF8, 0x8, 0},
12684 {0xF9, 0x60, 0},
12685 {0xFA, 0x13, 1},
12686 {0xFB, 0x70, 0},
12687 {0xFC, 0, 0},
12688 {0xFD, 0, 0},
12689 {0xFE, 0, 0},
12690 {0xFF, 0x33, 0},
12691 {0x100, 0x13, 1},
12692 {0x101, 0x14, 1},
12693 {0x102, 0xee, 1},
12694 {0x105, 0x3c, 0},
12695 {0x106, 0x1, 1},
12696 {0x107, 0xa, 0},
12697 {0x108, 0x9d, 0},
12698 {0x109, 0xa, 0},
12699 {0x10A, 0, 0},
12700 {0x10B, 0x40, 0},
12701 {0x10C, 0x40, 0},
12702 {0x10D, 0x88, 0},
12703 {0x10E, 0x10, 0},
12704 {0x10F, 0xf0, 0},
12705 {0x110, 0x10, 0},
12706 {0x111, 0xf0, 0},
12707 {0x112, 0, 0},
12708 {0x113, 0, 0},
12709 {0x114, 0x10, 0},
12710 {0x115, 0x55, 0},
12711 {0x116, 0x3f, 1},
12712 {0x117, 0x36, 1},
12713 {0x118, 0, 0},
12714 {0x119, 0, 0},
12715 {0x11A, 0, 0},
12716 {0x11B, 0x87, 0},
12717 {0x11C, 0x11, 0},
12718 {0x11D, 0, 0},
12719 {0x11E, 0x33, 0},
12720 {0x11F, 0x88, 0},
12721 {0x120, 0, 0},
12722 {0x121, 0x87, 0},
12723 {0x122, 0x11, 0},
12724 {0x123, 0, 0},
12725 {0x124, 0x33, 0},
12726 {0x125, 0x88, 0},
12727 {0x126, 0x20, 1},
12728 {0x127, 0x3f, 0},
12729 {0x128, 0x44, 0},
12730 {0x129, 0x8c, 0},
12731 {0x12A, 0x6c, 0},
12732 {0x12B, 0x22, 0},
12733 {0x12C, 0xbe, 0},
12734 {0x12D, 0x55, 0},
12735 {0x12F, 0xc, 0},
12736 {0x130, 0xaa, 0},
12737 {0x131, 0x2, 0},
12738 {0x132, 0, 0},
12739 {0x133, 0x10, 0},
12740 {0x134, 0x1, 0},
12741 {0x135, 0, 0},
12742 {0x136, 0, 0},
12743 {0x137, 0x80, 0},
12744 {0x138, 0x60, 0},
12745 {0x139, 0x44, 0},
12746 {0x13A, 0x55, 0},
12747 {0x13B, 0x1, 0},
12748 {0x13C, 0x55, 0},
12749 {0x13D, 0x1, 0},
12750 {0x13E, 0x5, 0},
12751 {0x13F, 0x55, 0},
12752 {0x140, 0x55, 0},
12753 {0x146, 0, 0},
12754 {0x147, 0, 0},
12755 {0x148, 0, 0},
12756 {0x149, 0, 0},
12757 {0x14A, 0, 0},
12758 {0x14B, 0, 0},
12759 {0x14C, 0, 0},
12760 {0x14D, 0, 0},
12761 {0x14E, 0, 0},
12762 {0x14F, 0, 0},
12763 {0x150, 0, 0},
12764 {0x151, 0, 0},
12765 {0x154, 0xc, 0},
12766 {0x155, 0xc, 0},
12767 {0x156, 0xc, 0},
12768 {0x157, 0, 0},
12769 {0x158, 0x2b, 0},
12770 {0x159, 0x84, 0},
12771 {0x15A, 0x15, 0},
12772 {0x15B, 0xf, 0},
12773 {0x15C, 0, 0},
12774 {0x15D, 0, 0},
12775 {0x15E, 0, 1},
12776 {0x15F, 0, 1},
12777 {0x160, 0, 1},
12778 {0x161, 0, 1},
12779 {0x162, 0, 1},
12780 {0x163, 0, 1},
12781 {0x164, 0, 0},
12782 {0x165, 0, 0},
12783 {0x166, 0, 0},
12784 {0x167, 0, 0},
12785 {0x168, 0, 0},
12786 {0x169, 0, 0},
12787 {0x16A, 0, 1},
12788 {0x16B, 0, 1},
12789 {0x16C, 0, 1},
12790 {0x16D, 0, 0},
12791 {0x170, 0, 0},
12792 {0x171, 0x77, 0},
12793 {0x172, 0x77, 0},
12794 {0x173, 0x77, 0},
12795 {0x174, 0x77, 0},
12796 {0x175, 0, 0},
12797 {0x176, 0x3, 0},
12798 {0x177, 0x37, 0},
12799 {0x178, 0x3, 0},
12800 {0x179, 0, 0},
12801 {0x17A, 0x21, 0},
12802 {0x17B, 0x21, 0},
12803 {0x17C, 0, 0},
12804 {0x17D, 0xaa, 0},
12805 {0x17E, 0, 0},
12806 {0x17F, 0xaa, 0},
12807 {0x180, 0, 0},
12808 {0x190, 0, 0},
12809 {0x191, 0x77, 0},
12810 {0x192, 0x77, 0},
12811 {0x193, 0x77, 0},
12812 {0x194, 0x77, 0},
12813 {0x195, 0, 0},
12814 {0x196, 0x3, 0},
12815 {0x197, 0x37, 0},
12816 {0x198, 0x3, 0},
12817 {0x199, 0, 0},
12818 {0x19A, 0x21, 0},
12819 {0x19B, 0x21, 0},
12820 {0x19C, 0, 0},
12821 {0x19D, 0xaa, 0},
12822 {0x19E, 0, 0},
12823 {0x19F, 0xaa, 0},
12824 {0x1A0, 0, 0},
12825 {0x1A1, 0x2, 0},
12826 {0x1A2, 0xf, 0},
12827 {0x1A3, 0xf, 0},
12828 {0x1A4, 0, 1},
12829 {0x1A5, 0, 1},
12830 {0x1A6, 0, 1},
12831 {0x1A7, 0x2, 0},
12832 {0x1A8, 0xf, 0},
12833 {0x1A9, 0xf, 0},
12834 {0x1AA, 0, 1},
12835 {0x1AB, 0, 1},
12836 {0x1AC, 0, 1},
12837 {0x1AD, 0x84, 0},
12838 {0x1AE, 0x60, 0},
12839 {0x1AF, 0x47, 0},
12840 {0x1B0, 0x47, 0},
12841 {0x1B1, 0, 0},
12842 {0x1B2, 0, 0},
12843 {0x1B3, 0, 0},
12844 {0x1B4, 0, 0},
12845 {0x1B5, 0, 0},
12846 {0x1B6, 0, 0},
12847 {0x1B7, 0x5, 1},
12848 {0x1B8, 0, 0},
12849 {0x1B9, 0, 0},
12850 {0x1BA, 0, 0},
12851 {0x1BB, 0, 0},
12852 {0x1BC, 0, 0},
12853 {0x1BD, 0, 0},
12854 {0x1BE, 0, 0},
12855 {0x1BF, 0, 0},
12856 {0x1C0, 0, 0},
12857 {0x1C1, 0, 0},
12858 {0x1C2, 0xa0, 1},
12859 {0x1C3, 0, 0},
12860 {0x1C4, 0, 0},
12861 {0x1C5, 0, 0},
12862 {0x1C6, 0, 0},
12863 {0x1C7, 0, 0},
12864 {0x1C8, 0, 0},
12865 {0x1C9, 0, 0},
12866 {0x1CA, 0, 0},
12867 {0xFFFF, 0, 0}
12868};
12869
12870radio_20xx_regs_t regs_2057_rev8[] = {
12871 {0x00, 0x8, 1},
12872 {0x01, 0x57, 1},
12873 {0x02, 0x20, 1},
12874 {0x03, 0x1f, 0},
12875 {0x04, 0x4, 0},
12876 {0x05, 0x2, 0},
12877 {0x06, 0x1, 0},
12878 {0x07, 0x1, 0},
12879 {0x08, 0x1, 0},
12880 {0x09, 0x69, 0},
12881 {0x0A, 0x66, 0},
12882 {0x0B, 0x6, 0},
12883 {0x0C, 0x18, 0},
12884 {0x0D, 0x3, 0},
12885 {0x0E, 0x20, 0},
12886 {0x0F, 0x20, 0},
12887 {0x10, 0, 0},
12888 {0x11, 0x7c, 0},
12889 {0x12, 0x42, 0},
12890 {0x13, 0xbd, 0},
12891 {0x14, 0x7, 0},
12892 {0x15, 0x87, 0},
12893 {0x16, 0x8, 0},
12894 {0x17, 0x17, 0},
12895 {0x18, 0x7, 0},
12896 {0x19, 0, 0},
12897 {0x1A, 0x2, 0},
12898 {0x1B, 0x13, 0},
12899 {0x1C, 0x3e, 0},
12900 {0x1D, 0x3e, 0},
12901 {0x1E, 0x96, 0},
12902 {0x1F, 0x4, 0},
12903 {0x20, 0, 0},
12904 {0x21, 0, 0},
12905 {0x22, 0x17, 0},
12906 {0x23, 0x6, 0},
12907 {0x24, 0x1, 0},
12908 {0x25, 0x6, 0},
12909 {0x26, 0x4, 0},
12910 {0x27, 0xd, 0},
12911 {0x28, 0xd, 0},
12912 {0x29, 0x30, 0},
12913 {0x2A, 0x32, 0},
12914 {0x2B, 0x8, 0},
12915 {0x2C, 0x1c, 0},
12916 {0x2D, 0x2, 0},
12917 {0x2E, 0x4, 0},
12918 {0x2F, 0x7f, 0},
12919 {0x30, 0x27, 0},
12920 {0x31, 0, 1},
12921 {0x32, 0, 1},
12922 {0x33, 0, 1},
12923 {0x34, 0, 0},
12924 {0x35, 0x20, 0},
12925 {0x36, 0x18, 0},
12926 {0x37, 0x7, 0},
12927 {0x38, 0x66, 0},
12928 {0x39, 0x66, 0},
12929 {0x3A, 0x66, 0},
12930 {0x3B, 0x66, 0},
12931 {0x3C, 0xff, 0},
12932 {0x3D, 0xff, 0},
12933 {0x3E, 0xff, 0},
12934 {0x3F, 0xff, 0},
12935 {0x40, 0x16, 0},
12936 {0x41, 0x7, 0},
12937 {0x42, 0x19, 0},
12938 {0x43, 0x7, 0},
12939 {0x44, 0x6, 0},
12940 {0x45, 0x3, 0},
12941 {0x46, 0x1, 0},
12942 {0x47, 0x7, 0},
12943 {0x48, 0x33, 0},
12944 {0x49, 0x5, 0},
12945 {0x4A, 0x77, 0},
12946 {0x4B, 0x66, 0},
12947 {0x4C, 0x66, 0},
12948 {0x4D, 0, 0},
12949 {0x4E, 0x4, 0},
12950 {0x4F, 0xc, 0},
12951 {0x50, 0, 0},
12952 {0x51, 0x70, 1},
12953 {0x56, 0x7, 0},
12954 {0x57, 0, 0},
12955 {0x58, 0, 0},
12956 {0x59, 0x88, 1},
12957 {0x5A, 0, 0},
12958 {0x5B, 0x1f, 0},
12959 {0x5C, 0x20, 1},
12960 {0x5D, 0x1, 0},
12961 {0x5E, 0x30, 0},
12962 {0x5F, 0x70, 0},
12963 {0x60, 0, 0},
12964 {0x61, 0, 0},
12965 {0x62, 0x33, 1},
12966 {0x63, 0xf, 1},
12967 {0x64, 0xf, 1},
12968 {0x65, 0, 0},
12969 {0x66, 0x11, 0},
12970 {0x69, 0, 0},
12971 {0x6A, 0x7e, 0},
12972 {0x6B, 0x3f, 0},
12973 {0x6C, 0x7f, 0},
12974 {0x6D, 0x78, 0},
12975 {0x6E, 0x58, 1},
12976 {0x6F, 0x88, 0},
12977 {0x70, 0x8, 0},
12978 {0x71, 0xf, 0},
12979 {0x72, 0xbc, 0},
12980 {0x73, 0x8, 0},
12981 {0x74, 0x60, 0},
12982 {0x75, 0x13, 1},
12983 {0x76, 0x70, 0},
12984 {0x77, 0, 0},
12985 {0x78, 0, 0},
12986 {0x79, 0, 0},
12987 {0x7A, 0x33, 0},
12988 {0x7B, 0x13, 1},
12989 {0x7C, 0xf, 1},
12990 {0x7D, 0xee, 1},
12991 {0x80, 0x3c, 0},
12992 {0x81, 0x1, 1},
12993 {0x82, 0xa, 0},
12994 {0x83, 0x9d, 0},
12995 {0x84, 0xa, 0},
12996 {0x85, 0, 0},
12997 {0x86, 0x40, 0},
12998 {0x87, 0x40, 0},
12999 {0x88, 0x88, 0},
13000 {0x89, 0x10, 0},
13001 {0x8A, 0xf0, 0},
13002 {0x8B, 0x10, 0},
13003 {0x8C, 0xf0, 0},
13004 {0x8D, 0, 0},
13005 {0x8E, 0, 0},
13006 {0x8F, 0x10, 0},
13007 {0x90, 0x55, 0},
13008 {0x91, 0x3f, 1},
13009 {0x92, 0x36, 1},
13010 {0x93, 0, 0},
13011 {0x94, 0, 0},
13012 {0x95, 0, 0},
13013 {0x96, 0x87, 0},
13014 {0x97, 0x11, 0},
13015 {0x98, 0, 0},
13016 {0x99, 0x33, 0},
13017 {0x9A, 0x88, 0},
13018 {0x9B, 0, 0},
13019 {0x9C, 0x87, 0},
13020 {0x9D, 0x11, 0},
13021 {0x9E, 0, 0},
13022 {0x9F, 0x33, 0},
13023 {0xA0, 0x88, 0},
13024 {0xA1, 0x20, 1},
13025 {0xA2, 0x3f, 0},
13026 {0xA3, 0x44, 0},
13027 {0xA4, 0x8c, 0},
13028 {0xA5, 0x6c, 0},
13029 {0xA6, 0x22, 0},
13030 {0xA7, 0xbe, 0},
13031 {0xA8, 0x55, 0},
13032 {0xAA, 0xc, 0},
13033 {0xAB, 0xaa, 0},
13034 {0xAC, 0x2, 0},
13035 {0xAD, 0, 0},
13036 {0xAE, 0x10, 0},
13037 {0xAF, 0x1, 0},
13038 {0xB0, 0, 0},
13039 {0xB1, 0, 0},
13040 {0xB2, 0x80, 0},
13041 {0xB3, 0x60, 0},
13042 {0xB4, 0x44, 0},
13043 {0xB5, 0x55, 0},
13044 {0xB6, 0x1, 0},
13045 {0xB7, 0x55, 0},
13046 {0xB8, 0x1, 0},
13047 {0xB9, 0x5, 0},
13048 {0xBA, 0x55, 0},
13049 {0xBB, 0x55, 0},
13050 {0xC1, 0, 0},
13051 {0xC2, 0, 0},
13052 {0xC3, 0, 0},
13053 {0xC4, 0, 0},
13054 {0xC5, 0, 0},
13055 {0xC6, 0, 0},
13056 {0xC7, 0, 0},
13057 {0xC8, 0, 0},
13058 {0xC9, 0x1, 1},
13059 {0xCA, 0, 0},
13060 {0xCB, 0, 0},
13061 {0xCC, 0, 0},
13062 {0xCD, 0, 0},
13063 {0xCE, 0x5e, 0},
13064 {0xCF, 0xc, 0},
13065 {0xD0, 0xc, 0},
13066 {0xD1, 0xc, 0},
13067 {0xD2, 0, 0},
13068 {0xD3, 0x2b, 0},
13069 {0xD4, 0xc, 0},
13070 {0xD5, 0, 0},
13071 {0xD6, 0x70, 1},
13072 {0xDB, 0x7, 0},
13073 {0xDC, 0, 0},
13074 {0xDD, 0, 0},
13075 {0xDE, 0x88, 1},
13076 {0xDF, 0, 0},
13077 {0xE0, 0x1f, 0},
13078 {0xE1, 0x20, 1},
13079 {0xE2, 0x1, 0},
13080 {0xE3, 0x30, 0},
13081 {0xE4, 0x70, 0},
13082 {0xE5, 0, 0},
13083 {0xE6, 0, 0},
13084 {0xE7, 0x33, 0},
13085 {0xE8, 0xf, 1},
13086 {0xE9, 0xf, 1},
13087 {0xEA, 0, 0},
13088 {0xEB, 0x11, 0},
13089 {0xEE, 0, 0},
13090 {0xEF, 0x7e, 0},
13091 {0xF0, 0x3f, 0},
13092 {0xF1, 0x7f, 0},
13093 {0xF2, 0x78, 0},
13094 {0xF3, 0x58, 1},
13095 {0xF4, 0x88, 0},
13096 {0xF5, 0x8, 0},
13097 {0xF6, 0xf, 0},
13098 {0xF7, 0xbc, 0},
13099 {0xF8, 0x8, 0},
13100 {0xF9, 0x60, 0},
13101 {0xFA, 0x13, 1},
13102 {0xFB, 0x70, 0},
13103 {0xFC, 0, 0},
13104 {0xFD, 0, 0},
13105 {0xFE, 0, 0},
13106 {0xFF, 0x33, 0},
13107 {0x100, 0x13, 1},
13108 {0x101, 0xf, 1},
13109 {0x102, 0xee, 1},
13110 {0x105, 0x3c, 0},
13111 {0x106, 0x1, 1},
13112 {0x107, 0xa, 0},
13113 {0x108, 0x9d, 0},
13114 {0x109, 0xa, 0},
13115 {0x10A, 0, 0},
13116 {0x10B, 0x40, 0},
13117 {0x10C, 0x40, 0},
13118 {0x10D, 0x88, 0},
13119 {0x10E, 0x10, 0},
13120 {0x10F, 0xf0, 0},
13121 {0x110, 0x10, 0},
13122 {0x111, 0xf0, 0},
13123 {0x112, 0, 0},
13124 {0x113, 0, 0},
13125 {0x114, 0x10, 0},
13126 {0x115, 0x55, 0},
13127 {0x116, 0x3f, 1},
13128 {0x117, 0x36, 1},
13129 {0x118, 0, 0},
13130 {0x119, 0, 0},
13131 {0x11A, 0, 0},
13132 {0x11B, 0x87, 0},
13133 {0x11C, 0x11, 0},
13134 {0x11D, 0, 0},
13135 {0x11E, 0x33, 0},
13136 {0x11F, 0x88, 0},
13137 {0x120, 0, 0},
13138 {0x121, 0x87, 0},
13139 {0x122, 0x11, 0},
13140 {0x123, 0, 0},
13141 {0x124, 0x33, 0},
13142 {0x125, 0x88, 0},
13143 {0x126, 0x20, 1},
13144 {0x127, 0x3f, 0},
13145 {0x128, 0x44, 0},
13146 {0x129, 0x8c, 0},
13147 {0x12A, 0x6c, 0},
13148 {0x12B, 0x22, 0},
13149 {0x12C, 0xbe, 0},
13150 {0x12D, 0x55, 0},
13151 {0x12F, 0xc, 0},
13152 {0x130, 0xaa, 0},
13153 {0x131, 0x2, 0},
13154 {0x132, 0, 0},
13155 {0x133, 0x10, 0},
13156 {0x134, 0x1, 0},
13157 {0x135, 0, 0},
13158 {0x136, 0, 0},
13159 {0x137, 0x80, 0},
13160 {0x138, 0x60, 0},
13161 {0x139, 0x44, 0},
13162 {0x13A, 0x55, 0},
13163 {0x13B, 0x1, 0},
13164 {0x13C, 0x55, 0},
13165 {0x13D, 0x1, 0},
13166 {0x13E, 0x5, 0},
13167 {0x13F, 0x55, 0},
13168 {0x140, 0x55, 0},
13169 {0x146, 0, 0},
13170 {0x147, 0, 0},
13171 {0x148, 0, 0},
13172 {0x149, 0, 0},
13173 {0x14A, 0, 0},
13174 {0x14B, 0, 0},
13175 {0x14C, 0, 0},
13176 {0x14D, 0, 0},
13177 {0x14E, 0x1, 1},
13178 {0x14F, 0, 0},
13179 {0x150, 0, 0},
13180 {0x151, 0, 0},
13181 {0x154, 0xc, 0},
13182 {0x155, 0xc, 0},
13183 {0x156, 0xc, 0},
13184 {0x157, 0, 0},
13185 {0x158, 0x2b, 0},
13186 {0x159, 0x84, 0},
13187 {0x15A, 0x15, 0},
13188 {0x15B, 0xf, 0},
13189 {0x15C, 0, 0},
13190 {0x15D, 0, 0},
13191 {0x15E, 0, 1},
13192 {0x15F, 0, 1},
13193 {0x160, 0, 1},
13194 {0x161, 0, 1},
13195 {0x162, 0, 1},
13196 {0x163, 0, 1},
13197 {0x164, 0, 0},
13198 {0x165, 0, 0},
13199 {0x166, 0, 0},
13200 {0x167, 0, 0},
13201 {0x168, 0, 0},
13202 {0x169, 0, 0},
13203 {0x16A, 0, 1},
13204 {0x16B, 0, 1},
13205 {0x16C, 0, 1},
13206 {0x16D, 0, 0},
13207 {0x170, 0, 0},
13208 {0x171, 0x77, 0},
13209 {0x172, 0x77, 0},
13210 {0x173, 0x77, 0},
13211 {0x174, 0x77, 0},
13212 {0x175, 0, 0},
13213 {0x176, 0x3, 0},
13214 {0x177, 0x37, 0},
13215 {0x178, 0x3, 0},
13216 {0x179, 0, 0},
13217 {0x17A, 0x21, 0},
13218 {0x17B, 0x21, 0},
13219 {0x17C, 0, 0},
13220 {0x17D, 0xaa, 0},
13221 {0x17E, 0, 0},
13222 {0x17F, 0xaa, 0},
13223 {0x180, 0, 0},
13224 {0x190, 0, 0},
13225 {0x191, 0x77, 0},
13226 {0x192, 0x77, 0},
13227 {0x193, 0x77, 0},
13228 {0x194, 0x77, 0},
13229 {0x195, 0, 0},
13230 {0x196, 0x3, 0},
13231 {0x197, 0x37, 0},
13232 {0x198, 0x3, 0},
13233 {0x199, 0, 0},
13234 {0x19A, 0x21, 0},
13235 {0x19B, 0x21, 0},
13236 {0x19C, 0, 0},
13237 {0x19D, 0xaa, 0},
13238 {0x19E, 0, 0},
13239 {0x19F, 0xaa, 0},
13240 {0x1A0, 0, 0},
13241 {0x1A1, 0x2, 0},
13242 {0x1A2, 0xf, 0},
13243 {0x1A3, 0xf, 0},
13244 {0x1A4, 0, 1},
13245 {0x1A5, 0, 1},
13246 {0x1A6, 0, 1},
13247 {0x1A7, 0x2, 0},
13248 {0x1A8, 0xf, 0},
13249 {0x1A9, 0xf, 0},
13250 {0x1AA, 0, 1},
13251 {0x1AB, 0, 1},
13252 {0x1AC, 0, 1},
13253 {0x1AD, 0x84, 0},
13254 {0x1AE, 0x60, 0},
13255 {0x1AF, 0x47, 0},
13256 {0x1B0, 0x47, 0},
13257 {0x1B1, 0, 0},
13258 {0x1B2, 0, 0},
13259 {0x1B3, 0, 0},
13260 {0x1B4, 0, 0},
13261 {0x1B5, 0, 0},
13262 {0x1B6, 0, 0},
13263 {0x1B7, 0x5, 1},
13264 {0x1B8, 0, 0},
13265 {0x1B9, 0, 0},
13266 {0x1BA, 0, 0},
13267 {0x1BB, 0, 0},
13268 {0x1BC, 0, 0},
13269 {0x1BD, 0, 0},
13270 {0x1BE, 0, 0},
13271 {0x1BF, 0, 0},
13272 {0x1C0, 0, 0},
13273 {0x1C1, 0, 0},
13274 {0x1C2, 0xa0, 1},
13275 {0x1C3, 0, 0},
13276 {0x1C4, 0, 0},
13277 {0x1C5, 0, 0},
13278 {0x1C6, 0, 0},
13279 {0x1C7, 0, 0},
13280 {0x1C8, 0, 0},
13281 {0x1C9, 0, 0},
13282 {0x1CA, 0, 0},
13283 {0xFFFF, 0, 0}
13284};
13285
e59fe083 13286static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
a9533e7e 13287
3e26416e
GKH
13288static s32 nphy_lnagain_est0[] = { -315, 40370 };
13289static s32 nphy_lnagain_est1[] = { -224, 23242 };
a9533e7e 13290
7d4df48e 13291static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
a9533e7e
HP
13292 {
13293 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13294 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13295 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13296 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13297 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13298 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13299 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13300 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13301 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13302 },
13303 {
13304 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13305 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13306 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13307 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13308 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13309 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13310 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13311 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13312 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13313 }
13314};
13315
66cbd3ab 13316static const u32 nphy_tpc_txgain[] = {
a9533e7e
HP
13317 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13318 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13319 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13320 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13321 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13322 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13323 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13324 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13325 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13326 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13327 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13328 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13329 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13330 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13331 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13332 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13333 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13334 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13335 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13336 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13337 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13338 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13339 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13340 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13341 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13342 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13343 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13344 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13345 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13346 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13347 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13348 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13349};
13350
7d4df48e 13351static const u16 nphy_tpc_loscale[] = {
a9533e7e
HP
13352 256, 256, 271, 271, 287, 256, 256, 271,
13353 271, 287, 287, 304, 304, 256, 256, 271,
13354 271, 287, 287, 304, 304, 322, 322, 341,
13355 341, 362, 362, 383, 383, 256, 256, 271,
13356 271, 287, 287, 304, 304, 322, 322, 256,
13357 256, 271, 271, 287, 287, 304, 304, 322,
13358 322, 341, 341, 362, 362, 256, 256, 271,
13359 271, 287, 287, 304, 304, 322, 322, 256,
13360 256, 271, 271, 287, 287, 304, 304, 322,
13361 322, 341, 341, 362, 362, 256, 256, 271,
13362 271, 287, 287, 304, 304, 322, 322, 341,
13363 341, 362, 362, 383, 383, 406, 406, 430,
13364 430, 455, 455, 482, 482, 511, 511, 541,
13365 541, 573, 573, 607, 607, 643, 643, 681,
13366 681, 722, 722, 764, 764, 810, 810, 858,
13367 858, 908, 908, 962, 962, 1019, 1019, 256
13368};
13369
66cbd3ab 13370static u32 nphy_tpc_txgain_ipa[] = {
a9533e7e
HP
13371 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13372 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13373 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13374 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13375 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13376 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13377 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13378 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13379 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13380 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13381 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13382 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13383 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13384 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13385 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13386 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13387 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13388 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13389 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13390 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13391 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13392 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13393 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13394 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13395 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13396 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13397 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13398 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13399 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13400 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13401 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13402 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13403};
13404
66cbd3ab 13405static u32 nphy_tpc_txgain_ipa_rev5[] = {
a9533e7e
HP
13406 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13407 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13408 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13409 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13410 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13411 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13412 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13413 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13414 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13415 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13416 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13417 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13418 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13419 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13420 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13421 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13422 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13423 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13424 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13425 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13426 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13427 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13428 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13429 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13430 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13431 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13432 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13433 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13434 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13435 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13436 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13437 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13438};
13439
66cbd3ab 13440static u32 nphy_tpc_txgain_ipa_rev6[] = {
a9533e7e
HP
13441 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13442 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13443 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13444 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13445 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13446 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13447 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13448 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13449 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13450 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13451 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13452 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13453 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13454 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13455 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13456 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13457 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13458 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13459 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13460 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13461 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13462 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13463 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13464 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13465 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13466 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13467 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13468 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13469 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13470 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13471 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13472 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13473};
13474
66cbd3ab 13475static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
a9533e7e
HP
13476 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13477 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13478 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13479 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13480 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13481 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13482 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13483 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13484 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13485 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13486 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13487 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13488 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13489 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13490 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13491 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13492 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13493 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13494 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13495 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13496 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13497 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13498 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13499 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13500 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13501 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13502 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13503 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13504 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13505 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13506 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13507 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13508};
13509
66cbd3ab 13510static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
a9533e7e
HP
13511 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13512 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13513 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13514 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13515 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13516 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13517 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13518 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13519 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13520 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13521 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13522 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13523 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13524 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13525 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13526 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13527 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13528 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13529 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13530 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13531 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13532 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13533 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13534 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13535 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13536 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13537 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13538 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13539 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13540 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13541 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13542 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13543};
13544
66cbd3ab 13545static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
a9533e7e
HP
13546 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13547 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13548 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13549 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13550 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13551 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13552 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13553 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13554 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13555 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13556 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13557 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13558 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13559 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13560 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13561 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13562 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13563 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13564 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
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 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13572 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13573 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13574 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13575 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13576 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13577 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13578};
13579
66cbd3ab 13580static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
a9533e7e
HP
13581 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13582 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13583 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13584 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13585 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13586 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13587 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13588 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13589 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13590 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13591 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13592 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13593 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13594 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13595 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13596 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13597 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13598 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13599 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
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 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13609 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13610 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13611 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13612 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13613};
13614
66cbd3ab 13615static u32 nphy_tpc_txgain_ipa_5g[] = {
a9533e7e
HP
13616 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13617 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13618 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13619 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13620 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13621 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13622 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13623 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13624 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13625 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13626 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13627 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13628 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13629 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13630 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13631 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13632 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13633 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13634 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13635 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13636 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13637 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13638 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13639 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13640 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13641 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13642 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13643 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13644 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13645 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13646 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13647 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13648};
13649
66cbd3ab 13650static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
a9533e7e
HP
13651 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13652 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13653 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13654 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13655 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13656 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13657 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13658 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13659 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13660 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13661 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13662 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13663 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13664 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13665 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13666 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13667 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13668 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13669 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13670 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13671 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13672 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13673 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13674 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13675 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13676 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13677 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13678 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13679 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13680 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13681 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13682 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13683};
13684
66cbd3ab 13685static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
a9533e7e
HP
13686 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13687 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13688 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13689 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13690 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13691 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13692 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13693 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13694 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13695 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13696 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13697 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13698 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13699 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13700 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13701 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13702 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13703 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13704 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13705 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13706 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13707 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13708 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13709 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13710 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13711 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13712 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13713 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13714 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13715 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13716 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13717 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13718};
13719
562c8850 13720static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
a9533e7e
HP
13721 -114, -108, -98, -91, -84, -78, -70, -62,
13722 -54, -46, -39, -31, -23, -15, -8, 0
13723};
13724
562c8850 13725static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
a9533e7e
HP
13726 -100, -95, -89, -83, -77, -70, -63, -56,
13727 -48, -41, -33, -25, -19, -12, -6, 0
13728};
13729
e59fe083 13730static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
a9533e7e
HP
13731 -159, -113, -86, -72, -62, -54, -48, -43,
13732 -39, -35, -31, -28, -25, -23, -20, -18,
13733 -17, -15, -13, -11, -10, -8, -7, -6,
13734 -5, -4, -3, -3, -2, -1, -1, 0
13735};
13736
e59fe083 13737static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
a9533e7e
HP
13738 -109, -109, -82, -68, -58, -50, -44, -39,
13739 -35, -31, -28, -26, -23, -21, -19, -17,
13740 -16, -14, -13, -11, -10, -9, -8, -7,
13741 -5, -5, -4, -3, -2, -1, -1, 0
13742};
13743
e59fe083 13744static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
a9533e7e
HP
13745 -122, -122, -95, -80, -69, -61, -54, -49,
13746 -43, -39, -35, -32, -28, -26, -23, -21,
13747 -18, -16, -15, -13, -11, -10, -8, -7,
13748 -6, -5, -4, -3, -2, -1, -1, 0
13749};
13750
562c8850 13751static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
a9533e7e
HP
13752 -107, -101, -92, -85, -78, -71, -62, -55,
13753 -47, -39, -32, -24, -19, -12, -6, 0
13754};
13755
562c8850 13756static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
a9533e7e
HP
13757 -110, -104, -95, -88, -81, -74, -66, -58,
13758 -50, -44, -36, -28, -23, -15, -8, 0
13759};
13760
e868ab03 13761static u8 pad_gain_codes_used_2057rev5[] = {
a9533e7e
HP
13762 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13763 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13764};
13765
e868ab03 13766static u8 pad_gain_codes_used_2057rev7[] = {
a9533e7e
HP
13767 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13768 5, 4, 3, 2, 1
13769};
13770
e868ab03 13771static u8 pad_all_gain_codes_2057[] = {
a9533e7e
HP
13772 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13773 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13774 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13775 1, 0
13776};
13777
e868ab03 13778static u8 pga_all_gain_codes_2057[] = {
a9533e7e
HP
13779 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13780};
13781
66cbd3ab 13782static u32 nphy_papd_scaltbl[] = {
a9533e7e
HP
13783 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13784 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13785 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13786 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13787 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13788 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13789 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13790 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13791 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13792 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13793 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13794 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13795 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13796 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13797 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13798 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13799};
13800
66cbd3ab 13801static u32 nphy_tpc_txgain_rev3[] = {
a9533e7e
HP
13802 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13803 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13804 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13805 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13806 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13807 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13808 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13809 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13810 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13811 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13812 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13813 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13814 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13815 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13816 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13817 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13818 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13819 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13820 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13821 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13822 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13823 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13824 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13825 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13826 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13827 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13828 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13829 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13830 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13831 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13832 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13833 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13834};
13835
66cbd3ab 13836static u32 nphy_tpc_txgain_HiPwrEPA[] = {
a9533e7e
HP
13837 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13838 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13839 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13840 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13841 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13842 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13843 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13844 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13845 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13846 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13847 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13848 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13849 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13850 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13851 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13852 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13853 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13854 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13855 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13856 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13857 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13858 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13859 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13860 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13861 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13862 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13863 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13864 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13865 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13866 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13867 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13868 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13869};
13870
66cbd3ab 13871static u32 nphy_tpc_txgain_epa_2057rev3[] = {
a9533e7e
HP
13872 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13873 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13874 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13875 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13876 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13877 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13878 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13879 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13880 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13881 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13882 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13883 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13884 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13885 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13886 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13887 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13888 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13889 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13890 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13891 0x8009061d, 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 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13898 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13899 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13900 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13901 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13902 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13903 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13904};
13905
66cbd3ab 13906static u32 nphy_tpc_txgain_epa_2057rev5[] = {
a9533e7e
HP
13907 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13908 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13909 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13910 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13911 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13912 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13913 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13914 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13915 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13916 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13917 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13918 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13919 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13920 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13921 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13922 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13923 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13924 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13925 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13926 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13927 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13928 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13929 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13930 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13931 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13932 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13933 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13934 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13935 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13936 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13937 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13938 0x10090001, 0x10090001, 0x10090001, 0x10090001
13939};
13940
66cbd3ab 13941static u32 nphy_tpc_5GHz_txgain_rev3[] = {
a9533e7e
HP
13942 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13943 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13944 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13945 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13946 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13947 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13948 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13949 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13950 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13951 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13952 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13953 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13954 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13955 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13956 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13957 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13958 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13959 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13960 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13961 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13962 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13963 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13964 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13965 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13966 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13967 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13968 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13969 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13970 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13971 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13972 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13973 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13974};
13975
66cbd3ab 13976static u32 nphy_tpc_5GHz_txgain_rev4[] = {
a9533e7e
HP
13977 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13978 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13979 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
13980 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
13981 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
13982 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
13983 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
13984 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
13985 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
13986 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
13987 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
13988 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
13989 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
13990 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
13991 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
13992 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
13993 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
13994 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
13995 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
13996 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
13997 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
13998 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
13999 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
14000 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
14001 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14002 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14003 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14004 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14005 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14006 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14007 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14008 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14009};
14010
66cbd3ab 14011static u32 nphy_tpc_5GHz_txgain_rev5[] = {
a9533e7e
HP
14012 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14013 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14014 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14015 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14016 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14017 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14018 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14019 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14020 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14021 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14022 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14023 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14024 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14025 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14026 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14027 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14028 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14029 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14030 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14031 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14032 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14033 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14034 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14035 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14036 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14037 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14038 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14039 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14040 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14041 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14042 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14043 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14044};
14045
66cbd3ab 14046static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
a9533e7e
HP
14047 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14048 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14049 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14050 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14051 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14052 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14053 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14054 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14055 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14056 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14057 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14058 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14059 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14060 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14061 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14062 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14063 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14064 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14065 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14066 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14067 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14068 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14069 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14070 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14071 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14072 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14073 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14074 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14075 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14076 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14077 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14078 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14079};
14080
e868ab03
GKH
14081static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14082static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14083static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
e5c4536f 14084 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a };
e868ab03 14085static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
e5c4536f 14086 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16 };
a9533e7e 14087
7cc4a4c0
JC
14088static bool wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
14089 chan_info_nphy_radio2057_t **t0,
14090 chan_info_nphy_radio205x_t **t1,
14091 chan_info_nphy_radio2057_rev5_t **t2,
14092 chan_info_nphy_2055_t **t3);
14093static void wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chans,
14094 const nphy_sfo_cfg_t *c);
14095
14096static void wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi,
7d4df48e 14097 u16 reduction_factr);
7cc4a4c0 14098static void wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *,
66cbd3ab 14099 u32 *buf);
e868ab03 14100static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr);
7cc4a4c0
JC
14101static void wlc_phy_txlpfbw_nphy(phy_info_t *pi);
14102static void wlc_phy_spurwar_nphy(phy_info_t *pi);
14103
14104static void wlc_phy_radio_preinit_2055(phy_info_t *pi);
14105static void wlc_phy_radio_init_2055(phy_info_t *pi);
14106static void wlc_phy_radio_postinit_2055(phy_info_t *pi);
14107static void wlc_phy_radio_preinit_205x(phy_info_t *pi);
14108static void wlc_phy_radio_init_2056(phy_info_t *pi);
14109static void wlc_phy_radio_postinit_2056(phy_info_t *pi);
14110static void wlc_phy_radio_init_2057(phy_info_t *pi);
14111static void wlc_phy_radio_postinit_2057(phy_info_t *pi);
14112static void wlc_phy_workarounds_nphy(phy_info_t *pi);
14113static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi);
14114static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi);
14115static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi);
14116static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi);
14117
14118static void wlc_phy_restore_rssical_nphy(phy_info_t *pi);
14119static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi);
14120static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi);
14121static int wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t tg,
e868ab03
GKH
14122 u8 type, bool d);
14123static void wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rxcore,
7d4df48e 14124 u16 *rg, u8 type);
3e26416e 14125static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble);
7cc4a4c0
JC
14126static void wlc_phy_savecal_nphy(phy_info_t *pi);
14127static void wlc_phy_restorecal_nphy(phy_info_t *pi);
14128static void wlc_phy_resetcca_nphy(phy_info_t *pi);
14129
14130static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi);
14131static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi);
14132static void wlc_phy_precal_txgain_nphy(phy_info_t *pi);
7d4df48e 14133static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core);
7cc4a4c0
JC
14134
14135static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi);
14136static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi);
14137static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi);
7d4df48e 14138static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi);
e868ab03 14139static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1);
66cbd3ab 14140static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi);
7cc4a4c0 14141
66cbd3ab
GKH
14142static void wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32,
14143 u32 e);
e868ab03 14144static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core);
7cc4a4c0 14145static void wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *,
e868ab03 14146 phy_cal_mode_t, u8);
7cc4a4c0
JC
14147static void wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi,
14148 nphy_papd_restore_state *state);
14149static void wlc_phy_papd_cal_setup_nphy(phy_info_t *pi,
e868ab03 14150 nphy_papd_restore_state *state, u8);
a9533e7e 14151
7d4df48e 14152static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals);
a9533e7e 14153
e868ab03
GKH
14154static void wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *evts,
14155 u8 *dlys, u8 len);
a9533e7e 14156
7d4df48e 14157static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset);
a9533e7e
HP
14158
14159static void
7d4df48e 14160wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
e868ab03
GKH
14161 u8 core_mask, u8 off,
14162 u8 override_id);
a9533e7e 14163
e868ab03 14164static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type);
7cc4a4c0 14165static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi);
a9533e7e 14166
7cc4a4c0 14167static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi);
e868ab03 14168static void wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max,
7d4df48e 14169 u16 *pwr_offset,
e868ab03
GKH
14170 u8 tmp_max_pwr, u8 rate_start,
14171 u8 rate_end);
a9533e7e 14172
7cc4a4c0
JC
14173static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi);
14174static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi);
14175static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi);
14176static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi);
a9533e7e 14177
7cc4a4c0 14178static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi);
e868ab03
GKH
14179static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core);
14180static void wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0,
14181 u8 idx1);
7cc4a4c0 14182static void wlc_phy_a4(phy_info_t *pi, bool full_cal);
a9533e7e 14183
7d4df48e 14184static u16 wlc_phy_radio205x_rcal(phy_info_t *pi);
a9533e7e 14185
7d4df48e 14186static u16 wlc_phy_radio2057_rccal(phy_info_t *pi);
a9533e7e 14187
66cbd3ab 14188static u16 wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz,
7d4df48e 14189 u16 max_val,
e868ab03 14190 u8 dac_test_mode);
3e26416e 14191static void wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
7d4df48e
GKH
14192 u16 num_samps);
14193static void wlc_phy_runsamples_nphy(phy_info_t *pi, u16 n, u16 lps,
14194 u16 wait, u8 iq, u8 dac_test_mode,
a9533e7e
HP
14195 bool modify_bbmult);
14196
7cc4a4c0 14197bool wlc_phy_bist_check_phy(wlc_phy_t *pih)
a9533e7e
HP
14198{
14199 phy_info_t *pi = (phy_info_t *) pih;
66cbd3ab 14200 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
a9533e7e
HP
14201
14202 if (NREV_GE(pi->pubpi.phy_rev, 16))
0f0881b0 14203 return true;
a9533e7e
HP
14204
14205 phybist0 = read_phy_reg(pi, 0x0e);
14206 phybist1 = read_phy_reg(pi, 0x0f);
14207 phybist2 = read_phy_reg(pi, 0xea);
14208 phybist3 = read_phy_reg(pi, 0xeb);
14209 phybist4 = read_phy_reg(pi, 0x156);
14210
14211 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14212 (phybist3 == 0) && (phybist4 == 0)) {
0f0881b0 14213 return true;
a9533e7e
HP
14214 }
14215
0965ae88 14216 return false;
a9533e7e
HP
14217}
14218
a2627bc0
JC
14219static void WLBANDINITFN(wlc_phy_bphy_init_nphy) (phy_info_t *pi)
14220{
7d4df48e 14221 u16 addr, val;
a9533e7e
HP
14222
14223 ASSERT(ISNPHY(pi));
14224
14225 val = 0x1e1f;
14226 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14227 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14228 write_phy_reg(pi, addr, val);
14229 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14230 val = 0x3e3f;
14231 else
14232 val -= 0x0202;
14233 }
14234
14235 if (NORADIO_ENAB(pi->pubpi)) {
14236
14237 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_PHYCRSTH, 0x3206);
14238
14239 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_RSSI_TRESH, 0x281e);
14240
14241 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_LNA_GAIN_RANGE, 0x1a);
14242
14243 } else {
14244
14245 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14246 }
14247}
14248
14249void
66cbd3ab
GKH
14250wlc_phy_table_write_nphy(phy_info_t *pi, u32 id, u32 len, u32 offset,
14251 u32 width, const void *data)
a9533e7e
HP
14252{
14253 mimophytbl_info_t tbl;
14254
14255 tbl.tbl_id = id;
14256 tbl.tbl_len = len;
14257 tbl.tbl_offset = offset;
14258 tbl.tbl_width = width;
14259 tbl.tbl_ptr = data;
14260 wlc_phy_write_table_nphy(pi, &tbl);
14261}
14262
14263void
66cbd3ab
GKH
14264wlc_phy_table_read_nphy(phy_info_t *pi, u32 id, u32 len, u32 offset,
14265 u32 width, void *data)
a9533e7e
HP
14266{
14267 mimophytbl_info_t tbl;
14268
14269 tbl.tbl_id = id;
14270 tbl.tbl_len = len;
14271 tbl.tbl_offset = offset;
14272 tbl.tbl_width = width;
14273 tbl.tbl_ptr = data;
14274 wlc_phy_read_table_nphy(pi, &tbl);
14275}
14276
a2627bc0
JC
14277static void WLBANDINITFN(wlc_phy_static_table_download_nphy) (phy_info_t *pi)
14278{
a9533e7e
HP
14279 uint idx;
14280
14281 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14282 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14283 wlc_phy_write_table_nphy(pi,
14284 &mimophytbl_info_rev16[idx]);
14285 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14286 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14287 wlc_phy_write_table_nphy(pi,
14288 &mimophytbl_info_rev7[idx]);
14289 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14290 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14291 wlc_phy_write_table_nphy(pi,
14292 &mimophytbl_info_rev3[idx]);
14293 } else {
14294 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14295 wlc_phy_write_table_nphy(pi,
14296 &mimophytbl_info_rev0[idx]);
14297 }
14298}
14299
a2627bc0
JC
14300static void WLBANDINITFN(wlc_phy_tbl_init_nphy) (phy_info_t *pi)
14301{
a9533e7e 14302 uint idx = 0;
e868ab03 14303 u8 antswctrllut;
a9533e7e
HP
14304
14305 if (pi->phy_init_por)
14306 wlc_phy_static_table_download_nphy(pi);
14307
14308 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14309
14310 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14311 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.antswctrllut;
14312
14313 switch (antswctrllut) {
14314 case 0:
14315
14316 break;
14317
14318 case 1:
14319
14320 if (pi->aa2g == 7) {
14321
14322 wlc_phy_table_write_nphy(pi,
14323 NPHY_TBL_ID_ANTSWCTRLLUT,
14324 2, 0x21, 8,
14325 &ant_sw_ctrl_tbl_rev8_2o3
14326 [0]);
14327 } else {
14328 wlc_phy_table_write_nphy(pi,
14329 NPHY_TBL_ID_ANTSWCTRLLUT,
14330 2, 0x21, 8,
14331 &ant_sw_ctrl_tbl_rev8
14332 [0]);
14333 }
14334 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14335 2, 0x25, 8,
14336 &ant_sw_ctrl_tbl_rev8[2]);
14337 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14338 2, 0x29, 8,
14339 &ant_sw_ctrl_tbl_rev8[4]);
14340 break;
14341
14342 case 2:
14343
14344 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14345 2, 0x1, 8,
14346 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14347 [0]);
14348 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14349 2, 0x5, 8,
14350 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14351 [2]);
14352 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14353 2, 0x9, 8,
14354 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14355 [4]);
14356
14357 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14358 2, 0x21, 8,
14359 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14360 [0]);
14361 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14362 2, 0x25, 8,
14363 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14364 [2]);
14365 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14366 2, 0x29, 8,
14367 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14368 [4]);
14369 break;
14370
14371 default:
14372
14373 ASSERT(0);
14374 break;
14375 }
14376
14377 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14378 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14379
14380 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14381 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14382 pi->srom_fem2g.antswctrllut : pi->
14383 srom_fem5g.antswctrllut;
14384 switch (antswctrllut) {
14385 case 0:
14386 wlc_phy_write_table_nphy(pi,
14387 &mimophytbl_info_rev3_volatile
14388 [idx]);
14389 break;
14390 case 1:
14391 wlc_phy_write_table_nphy(pi,
14392 &mimophytbl_info_rev3_volatile1
14393 [idx]);
14394 break;
14395 case 2:
14396 wlc_phy_write_table_nphy(pi,
14397 &mimophytbl_info_rev3_volatile2
14398 [idx]);
14399 break;
14400 case 3:
14401 wlc_phy_write_table_nphy(pi,
14402 &mimophytbl_info_rev3_volatile3
14403 [idx]);
14404 break;
14405 default:
14406
14407 ASSERT(0);
14408 break;
14409 }
14410 } else {
14411 wlc_phy_write_table_nphy(pi,
14412 &mimophytbl_info_rev3_volatile
14413 [idx]);
14414 }
14415 }
14416 } else {
14417 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++) {
14418 wlc_phy_write_table_nphy(pi,
14419 &mimophytbl_info_rev0_volatile
14420 [idx]);
14421 }
14422 }
14423}
14424
14425static void
7d4df48e 14426wlc_phy_write_txmacreg_nphy(phy_info_t *pi, u16 holdoff, u16 delay)
a9533e7e
HP
14427{
14428 write_phy_reg(pi, 0x77, holdoff);
14429 write_phy_reg(pi, 0xb4, delay);
14430}
14431
e868ab03 14432void wlc_phy_nphy_tkip_rifs_war(phy_info_t *pi, u8 rifs)
a9533e7e 14433{
7d4df48e 14434 u16 holdoff, delay;
a9533e7e
HP
14435
14436 if (rifs) {
14437
14438 holdoff = 0x10;
14439 delay = 0x258;
14440 } else {
14441
14442 holdoff = 0x15;
14443 delay = 0x320;
14444 }
14445
14446 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14447
14448 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs)) {
14449 pi->sh->_rifs_phy = rifs;
14450 }
14451}
14452
7cc4a4c0 14453bool wlc_phy_attach_nphy(phy_info_t *pi)
a9533e7e
HP
14454{
14455 uint i;
14456
14457 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6)) {
0f0881b0 14458 pi->phyhang_avoid = true;
a9533e7e
HP
14459 }
14460
14461 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14462
0f0881b0 14463 pi->nphy_gband_spurwar_en = true;
a9533e7e
HP
14464
14465 if (pi->sh->boardflags2 & BFL2_SPUR_WAR) {
0f0881b0 14466 pi->nphy_aband_spurwar_en = true;
a9533e7e
HP
14467 }
14468 }
14469 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14470
14471 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR) {
0f0881b0 14472 pi->nphy_gband_spurwar2_en = true;
a9533e7e
HP
14473 }
14474 }
14475
14476 pi->n_preamble_override = AUTO;
14477 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14478 pi->n_preamble_override = WLC_N_PREAMBLE_MIXEDMODE;
14479
14480 pi->nphy_txrx_chain = AUTO;
14481 pi->phy_scraminit = AUTO;
14482
14483 pi->nphy_rxcalparams = 0x010100B5;
14484
14485 pi->nphy_perical = PHY_PERICAL_MPHASE;
14486 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14487 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14488
0f0881b0 14489 pi->nphy_gain_boost = true;
0965ae88
GKH
14490 pi->nphy_elna_gain_config = false;
14491 pi->radio_is_on = false;
a9533e7e
HP
14492
14493 for (i = 0; i < pi->pubpi.phy_corenum; i++) {
14494 pi->nphy_txpwrindex[i].index = AUTO;
14495 }
14496
14497 wlc_phy_txpwrctrl_config_nphy(pi);
14498 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
0f0881b0 14499 pi->hwpwrctrl_capable = true;
a9533e7e
HP
14500
14501 pi->pi_fptr.init = wlc_phy_init_nphy;
14502 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14503 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14504 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14505
14506 if (!wlc_phy_txpwr_srom_read_nphy(pi))
0965ae88 14507 return false;
a9533e7e 14508
0f0881b0 14509 return true;
a9533e7e
HP
14510}
14511
0d2f0724 14512static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi)
a2627bc0 14513{
a9533e7e
HP
14514
14515 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14516 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
0f0881b0 14517 pi->phy_5g_pwrgain = true;
a9533e7e
HP
14518 return;
14519 }
14520
14521 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
0965ae88 14522 pi->phy_5g_pwrgain = false;
a9533e7e
HP
14523
14524 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14525 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14526 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14527 else if ((pi->sh->sromrev >= 4)
14528 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
0f0881b0 14529 pi->phy_5g_pwrgain = true;
a9533e7e
HP
14530}
14531
a2627bc0
JC
14532void WLBANDINITFN(wlc_phy_init_nphy) (phy_info_t *pi)
14533{
7d4df48e
GKH
14534 u16 val;
14535 u16 clip1_ths[2];
a9533e7e 14536 nphy_txgains_t target_gain;
e868ab03 14537 u8 tx_pwr_ctrl_state;
0965ae88 14538 bool do_nphy_cal = false;
a9533e7e
HP
14539 uint core;
14540 uint origidx, intr_val;
14541 d11regs_t *regs;
66cbd3ab 14542 u32 d11_clk_ctl_st;
a9533e7e
HP
14543
14544 core = 0;
14545
14546 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN)) {
14547 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
14548 }
14549
14550 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
14551 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
14552 (pi->sh->chippkg == BCM4718_PKG_ID))) {
14553 if ((pi->sh->boardflags & BFL_EXTLNA) &&
14554 (CHSPEC_IS2G(pi->radio_chanspec))) {
14555 si_corereg(pi->sh->sih, SI_CC_IDX,
ce0f1b8c 14556 offsetof(chipcregs_t, chipcontrol), 0x40,
a9533e7e
HP
14557 0x40);
14558 }
14559 }
14560
14561 if ((!PHY_IPA(pi)) && (CHIPID(pi->sh->chip) == BCM5357_CHIP_ID)) {
14562 si_pmu_chipcontrol(pi->sh->sih, 1, CCTRL5357_EXTPA,
14563 CCTRL5357_EXTPA);
14564 }
14565
14566 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
14567 CHSPEC_IS40(pi->radio_chanspec)) {
14568
14569 regs = (d11regs_t *) si_switch_core(pi->sh->sih, D11_CORE_ID,
14570 &origidx, &intr_val);
14571 ASSERT(regs != NULL);
14572
14573 d11_clk_ctl_st = R_REG(pi->sh->osh, &regs->clk_ctl_st);
14574 AND_REG(pi->sh->osh, &regs->clk_ctl_st,
14575 ~(CCS_FORCEHT | CCS_HTAREQ));
14576
14577 W_REG(pi->sh->osh, &regs->clk_ctl_st, d11_clk_ctl_st);
14578
14579 si_restore_core(pi->sh->sih, origidx, intr_val);
14580 }
14581
14582 pi->use_int_tx_iqlo_cal_nphy =
14583 (PHY_IPA(pi) ||
14584 (NREV_GE(pi->pubpi.phy_rev, 7) ||
14585 (NREV_GE(pi->pubpi.phy_rev, 5)
14586 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
14587
0965ae88 14588 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
a9533e7e
HP
14589
14590 pi->nphy_deaf_count = 0;
14591
14592 wlc_phy_tbl_init_nphy(pi);
14593
0965ae88
GKH
14594 pi->nphy_crsminpwr_adjusted = false;
14595 pi->nphy_noisevars_adjusted = false;
a9533e7e
HP
14596
14597 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14598 write_phy_reg(pi, 0xe7, 0);
14599 write_phy_reg(pi, 0xec, 0);
14600 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14601 write_phy_reg(pi, 0x342, 0);
14602 write_phy_reg(pi, 0x343, 0);
14603 write_phy_reg(pi, 0x346, 0);
14604 write_phy_reg(pi, 0x347, 0);
14605 }
14606 write_phy_reg(pi, 0xe5, 0);
14607 write_phy_reg(pi, 0xe6, 0);
14608 } else {
14609 write_phy_reg(pi, 0xec, 0);
14610 }
14611
14612 write_phy_reg(pi, 0x91, 0);
14613 write_phy_reg(pi, 0x92, 0);
14614 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
14615 write_phy_reg(pi, 0x93, 0);
14616 write_phy_reg(pi, 0x94, 0);
14617 }
14618
14619 and_phy_reg(pi, 0xa1, ~3);
14620
14621 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14622 write_phy_reg(pi, 0x8f, 0);
14623 write_phy_reg(pi, 0xa5, 0);
14624 } else {
14625 write_phy_reg(pi, 0xa5, 0);
14626 }
14627
14628 if (NREV_IS(pi->pubpi.phy_rev, 2))
14629 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
14630 else if (NREV_LT(pi->pubpi.phy_rev, 2))
14631 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
14632
14633 write_phy_reg(pi, 0x203, 32);
14634 write_phy_reg(pi, 0x201, 32);
14635
14636 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
14637 write_phy_reg(pi, 0x20d, 160);
14638 else
14639 write_phy_reg(pi, 0x20d, 184);
14640
14641 write_phy_reg(pi, 0x13a, 200);
14642
14643 write_phy_reg(pi, 0x70, 80);
14644
14645 write_phy_reg(pi, 0x1ff, 48);
14646
14647 if (NREV_LT(pi->pubpi.phy_rev, 8)) {
14648 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
14649 }
14650
14651 wlc_phy_stf_chain_upd_nphy(pi);
14652
14653 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
14654 write_phy_reg(pi, 0x180, 0xaa8);
14655 write_phy_reg(pi, 0x181, 0x9a4);
14656 }
14657
14658 if (PHY_IPA(pi)) {
14659 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
14660
14661 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
14662 0x29b, (0x1 << 0), (1) << 0);
14663
14664 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
14665 0x29c, (0x1ff << 7),
14666 (pi->nphy_papd_epsilon_offset[core]) << 7);
14667
14668 }
14669
14670 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
14671 } else {
14672
14673 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
14674 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
14675 }
14676 }
14677
14678 wlc_phy_workarounds_nphy(pi);
14679
14680 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14681
14682 val = read_phy_reg(pi, 0x01);
14683 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14684 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14685 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14686
14687 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
14688
14689 wlc_phy_pa_override_nphy(pi, OFF);
14690 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
14691 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14692 wlc_phy_pa_override_nphy(pi, ON);
14693
14694 wlc_phy_classifier_nphy(pi, 0, 0);
14695 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
14696
14697 if (CHSPEC_IS2G(pi->radio_chanspec))
14698 wlc_phy_bphy_init_nphy(pi);
14699
14700 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
14701 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
14702
14703 wlc_phy_txpwr_fixpower_nphy(pi);
14704
14705 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
14706
14707 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
14708
14709 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
66cbd3ab 14710 u32 *tx_pwrctrl_tbl = NULL;
7d4df48e 14711 u16 idx;
e59fe083
GKH
14712 s16 pga_gn = 0;
14713 s16 pad_gn = 0;
3e26416e 14714 s32 rfpwr_offset = 0;
a9533e7e
HP
14715
14716 if (PHY_IPA(pi)) {
14717 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14718 } else {
14719 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14720 if NREV_IS
14721 (pi->pubpi.phy_rev, 3) {
14722 tx_pwrctrl_tbl =
14723 nphy_tpc_5GHz_txgain_rev3;
14724 } else if NREV_IS
14725 (pi->pubpi.phy_rev, 4) {
14726 tx_pwrctrl_tbl =
14727 (pi->srom_fem5g.extpagain == 3) ?
14728 nphy_tpc_5GHz_txgain_HiPwrEPA :
14729 nphy_tpc_5GHz_txgain_rev4;
14730 } else {
14731 tx_pwrctrl_tbl =
14732 nphy_tpc_5GHz_txgain_rev5;
14733 }
14734
14735 } else {
14736 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14737 if (pi->pubpi.radiorev == 5) {
14738 tx_pwrctrl_tbl =
14739 nphy_tpc_txgain_epa_2057rev5;
14740 } else if (pi->pubpi.radiorev == 3) {
14741 tx_pwrctrl_tbl =
14742 nphy_tpc_txgain_epa_2057rev3;
14743 }
14744
14745 } else {
14746 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14747 (pi->srom_fem2g.extpagain == 3)) {
14748 tx_pwrctrl_tbl =
14749 nphy_tpc_txgain_HiPwrEPA;
14750 } else {
14751 tx_pwrctrl_tbl =
14752 nphy_tpc_txgain_rev3;
14753 }
14754 }
14755 }
14756 }
14757
14758 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14759 192, 32, tx_pwrctrl_tbl);
14760 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14761 192, 32, tx_pwrctrl_tbl);
14762
7d4df48e 14763 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
a9533e7e
HP
14764
14765 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14766
14767 for (idx = 0; idx < 128; idx++) {
14768 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14769 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
14770
14771 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14772 if ((pi->pubpi.radiorev == 3) ||
14773 (pi->pubpi.radiorev == 4) ||
14774 (pi->pubpi.radiorev == 6)) {
e59fe083 14775 rfpwr_offset = (s16)
a9533e7e
HP
14776 nphy_papd_padgain_dlt_2g_2057rev3n4
14777 [pad_gn];
14778 } else if (pi->pubpi.radiorev == 5) {
e59fe083 14779 rfpwr_offset = (s16)
a9533e7e
HP
14780 nphy_papd_padgain_dlt_2g_2057rev5
14781 [pad_gn];
14782 } else if ((pi->pubpi.radiorev == 7)
14783 || (pi->pubpi.radiorev ==
14784 8)) {
e59fe083 14785 rfpwr_offset = (s16)
a9533e7e
HP
14786 nphy_papd_padgain_dlt_2g_2057rev7
14787 [pad_gn];
14788 } else {
14789 ASSERT(0);
14790 }
14791
14792 } else {
14793 if ((pi->pubpi.radiorev == 3) ||
14794 (pi->pubpi.radiorev == 4) ||
14795 (pi->pubpi.radiorev == 6)) {
e59fe083 14796 rfpwr_offset = (s16)
a9533e7e
HP
14797 nphy_papd_pgagain_dlt_5g_2057
14798 [pga_gn];
14799 } else if ((pi->pubpi.radiorev == 7)
14800 || (pi->pubpi.radiorev ==
14801 8)) {
e59fe083 14802 rfpwr_offset = (s16)
a9533e7e
HP
14803 nphy_papd_pgagain_dlt_5g_2057rev7
14804 [pga_gn];
14805 } else {
14806 ASSERT(0);
14807 }
14808 }
14809 wlc_phy_table_write_nphy(pi,
14810 NPHY_TBL_ID_CORE1TXPWRCTL,
14811 1, 576 + idx, 32,
14812 &rfpwr_offset);
14813 wlc_phy_table_write_nphy(pi,
14814 NPHY_TBL_ID_CORE2TXPWRCTL,
14815 1, 576 + idx, 32,
14816 &rfpwr_offset);
14817 }
14818 } else {
14819
14820 for (idx = 0; idx < 128; idx++) {
14821 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14822 if (CHSPEC_IS2G(pi->radio_chanspec)) {
e59fe083 14823 rfpwr_offset = (s16)
a9533e7e
HP
14824 nphy_papd_pga_gain_delta_ipa_2g
14825 [pga_gn];
14826 } else {
e59fe083 14827 rfpwr_offset = (s16)
a9533e7e
HP
14828 nphy_papd_pga_gain_delta_ipa_5g
14829 [pga_gn];
14830 }
14831
14832 wlc_phy_table_write_nphy(pi,
14833 NPHY_TBL_ID_CORE1TXPWRCTL,
14834 1, 576 + idx, 32,
14835 &rfpwr_offset);
14836 wlc_phy_table_write_nphy(pi,
14837 NPHY_TBL_ID_CORE2TXPWRCTL,
14838 1, 576 + idx, 32,
14839 &rfpwr_offset);
14840 }
14841
14842 }
14843 } else {
14844
14845 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14846 192, 32, nphy_tpc_txgain);
14847 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14848 192, 32, nphy_tpc_txgain);
14849 }
14850
14851 if (pi->sh->phyrxchain != 0x3) {
14852 wlc_phy_rxcore_setstate_nphy((wlc_phy_t *) pi,
14853 pi->sh->phyrxchain);
14854 }
14855
14856 if (PHY_PERICAL_MPHASE_PENDING(pi)) {
14857 wlc_phy_cal_perical_mphase_restart(pi);
14858 }
14859
14860 if (!NORADIO_ENAB(pi->pubpi)) {
0965ae88 14861 bool do_rssi_cal = false;
a9533e7e
HP
14862
14863 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14864 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14865 (pi->nphy_rssical_chanspec_2G == 0) :
14866 (pi->nphy_rssical_chanspec_5G == 0);
14867
14868 if (do_rssi_cal) {
14869 wlc_phy_rssi_cal_nphy(pi);
14870 } else {
14871 wlc_phy_restore_rssical_nphy(pi);
14872 }
14873 } else {
14874 wlc_phy_rssi_cal_nphy(pi);
14875 }
14876
14877 if (!SCAN_RM_IN_PROGRESS(pi)) {
14878 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14879 (pi->nphy_iqcal_chanspec_2G == 0) :
14880 (pi->nphy_iqcal_chanspec_5G == 0);
14881 }
14882
14883 if (!pi->do_initcal)
0965ae88 14884 do_nphy_cal = false;
a9533e7e
HP
14885
14886 if (do_nphy_cal) {
14887
14888 target_gain = wlc_phy_get_tx_gain_nphy(pi);
14889
14890 if (pi->antsel_type == ANTSEL_2x3)
0f0881b0 14891 wlc_phy_antsel_init((wlc_phy_t *) pi, true);
a9533e7e
HP
14892
14893 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
14894 wlc_phy_rssi_cal_nphy(pi);
14895
14896 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14897 pi->nphy_cal_orig_pwr_idx[0] =
14898 pi->nphy_txpwrindex[PHY_CORE_0].
14899 index_internal;
14900 pi->nphy_cal_orig_pwr_idx[1] =
14901 pi->nphy_txpwrindex[PHY_CORE_1].
14902 index_internal;
14903
14904 wlc_phy_precal_txgain_nphy(pi);
14905 target_gain =
14906 wlc_phy_get_tx_gain_nphy(pi);
14907 }
14908
14909 if (wlc_phy_cal_txiqlo_nphy
0965ae88 14910 (pi, target_gain, true, false) == BCME_OK) {
a9533e7e
HP
14911 if (wlc_phy_cal_rxiq_nphy
14912 (pi, target_gain, 2,
0965ae88 14913 false) == BCME_OK) {
a9533e7e
HP
14914 wlc_phy_savecal_nphy(pi);
14915
14916 }
14917 }
14918 } else if (pi->mphase_cal_phase_id ==
14919 MPHASE_CAL_STATE_IDLE) {
14920
14921 wlc_phy_cal_perical((wlc_phy_t *) pi,
14922 PHY_PERICAL_PHYINIT);
14923 }
14924 } else {
14925 wlc_phy_restorecal_nphy(pi);
14926 }
14927 }
14928
14929 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
14930
14931 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
14932
14933 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
14934
14935 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
14936
14937 write_phy_reg(pi, 0x70, 50);
14938
14939 wlc_phy_txlpfbw_nphy(pi);
14940
14941 wlc_phy_spurwar_nphy(pi);
14942
14943}
14944
3e26416e 14945static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble)
a9533e7e 14946{
0965ae88 14947 bool gf_preamble = false;
7d4df48e 14948 u16 val;
a9533e7e
HP
14949
14950 if (preamble == WLC_N_PREAMBLE_GF) {
0f0881b0 14951 gf_preamble = true;
a9533e7e
HP
14952 }
14953
14954 val = read_phy_reg(pi, 0xed);
14955
14956 val |= RX_GF_MM_AUTO;
14957 val &= ~RX_GF_OR_MM;
14958 if (gf_preamble)
14959 val |= RX_GF_OR_MM;
14960
14961 write_phy_reg(pi, 0xed, val);
14962}
14963
7cc4a4c0 14964static void wlc_phy_resetcca_nphy(phy_info_t *pi)
a9533e7e 14965{
7d4df48e 14966 u16 val;
a9533e7e
HP
14967
14968 ASSERT(0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
14969
14970 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14971
14972 val = read_phy_reg(pi, 0x01);
14973 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
7383141b 14974 udelay(1);
a9533e7e
HP
14975 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14976
14977 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14978
14979 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14980}
14981
7cc4a4c0 14982void wlc_phy_pa_override_nphy(phy_info_t *pi, bool en)
a9533e7e 14983{
7d4df48e 14984 u16 rfctrlintc_override_val;
a9533e7e
HP
14985
14986 if (!en) {
14987
14988 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
14989 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
14990
14991 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14992 rfctrlintc_override_val = 0x1480;
14993 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14994 rfctrlintc_override_val =
14995 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
14996 } else {
14997 rfctrlintc_override_val =
14998 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
14999 }
15000
15001 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
15002 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
15003 } else {
15004
15005 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
15006 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
15007 }
15008
15009}
15010
7cc4a4c0 15011void wlc_phy_stf_chain_upd_nphy(phy_info_t *pi)
a9533e7e
HP
15012{
15013
7d4df48e 15014 u16 txrx_chain =
a9533e7e 15015 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
0965ae88 15016 bool CoreActv_override = false;
a9533e7e
HP
15017
15018 if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN0) {
15019 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
0f0881b0 15020 CoreActv_override = true;
a9533e7e
HP
15021
15022 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15023 and_phy_reg(pi, 0xa0, ~0x20);
15024 }
15025 } else if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN1) {
15026 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
0f0881b0 15027 CoreActv_override = true;
a9533e7e
HP
15028
15029 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15030 or_phy_reg(pi, 0xa0, 0x20);
15031 }
15032 }
15033
15034 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
15035
15036 if (CoreActv_override) {
15037
15038 pi->nphy_perical = PHY_PERICAL_DISABLE;
15039 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
15040 } else {
15041 pi->nphy_perical = PHY_PERICAL_MPHASE;
15042 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
15043 }
15044}
15045
e868ab03 15046void wlc_phy_rxcore_setstate_nphy(wlc_phy_t *pih, u8 rxcore_bitmask)
a9533e7e 15047{
7d4df48e
GKH
15048 u16 regval;
15049 u16 tbl_buf[16];
a9533e7e
HP
15050 uint i;
15051 phy_info_t *pi = (phy_info_t *) pih;
7d4df48e 15052 u16 tbl_opcode;
a9533e7e
HP
15053 bool suspend;
15054
15055 pi->sh->phyrxchain = rxcore_bitmask;
15056
15057 if (!pi->sh->clk)
15058 return;
15059
15060 suspend =
15061 (0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
15062 if (!suspend)
15063 wlapi_suspend_mac_and_wait(pi->sh->physhim);
15064
15065 if (pi->phyhang_avoid)
0f0881b0 15066 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
15067
15068 regval = read_phy_reg(pi, 0xa2);
15069 regval &= ~(0xf << 4);
7d4df48e 15070 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
a9533e7e
HP
15071 write_phy_reg(pi, 0xa2, regval);
15072
15073 if ((rxcore_bitmask & 0x3) != 0x3) {
15074
15075 write_phy_reg(pi, 0x20e, 1);
15076
15077 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15078 if (pi->rx2tx_biasentry == -1) {
15079 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
8d3d6a69 15080 ARRAY_SIZE(tbl_buf), 80,
a9533e7e
HP
15081 16, tbl_buf);
15082
8d3d6a69 15083 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
a9533e7e
HP
15084 if (tbl_buf[i] ==
15085 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15086
e868ab03 15087 pi->rx2tx_biasentry = (u8) i;
a9533e7e
HP
15088 tbl_opcode =
15089 NPHY_REV3_RFSEQ_CMD_NOP;
15090 wlc_phy_table_write_nphy(pi,
15091 NPHY_TBL_ID_RFSEQ,
15092 1, i,
15093 16,
15094 &tbl_opcode);
15095 break;
15096 } else if (tbl_buf[i] ==
15097 NPHY_REV3_RFSEQ_CMD_END) {
15098 break;
15099 }
15100 }
15101 }
15102 }
15103 } else {
15104
15105 write_phy_reg(pi, 0x20e, 30);
15106
15107 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15108 if (pi->rx2tx_biasentry != -1) {
15109 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
15110 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15111 1, pi->rx2tx_biasentry,
15112 16, &tbl_opcode);
15113 pi->rx2tx_biasentry = -1;
15114 }
15115 }
15116 }
15117
15118 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
15119
15120 if (pi->phyhang_avoid)
0965ae88 15121 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
15122
15123 if (!suspend)
15124 wlapi_enable_mac(pi->sh->physhim);
15125}
15126
e868ab03 15127u8 wlc_phy_rxcore_getstate_nphy(wlc_phy_t *pih)
a9533e7e 15128{
7d4df48e 15129 u16 regval, rxen_bits;
a9533e7e
HP
15130 phy_info_t *pi = (phy_info_t *) pih;
15131
15132 regval = read_phy_reg(pi, 0xa2);
15133 rxen_bits = (regval >> 4) & 0xf;
15134
e868ab03 15135 return (u8) rxen_bits;
a9533e7e
HP
15136}
15137
7cc4a4c0 15138bool wlc_phy_n_txpower_ipa_ison(phy_info_t *pi)
a9533e7e
HP
15139{
15140 return PHY_IPA(pi);
15141}
15142
7cc4a4c0 15143static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi)
a9533e7e 15144{
e868ab03 15145 u8 idx, idx2, i, delta_ind;
a9533e7e
HP
15146
15147 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++) {
15148 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
15149 }
15150
15151 for (i = 0; i < 4; i++) {
15152 idx2 = 0;
15153
15154 delta_ind = 0;
15155
15156 switch (i) {
15157 case 0:
15158
15159 if (CHSPEC_IS40(pi->radio_chanspec)
15160 && NPHY_IS_SROM_REINTERPRET) {
15161 idx = TXP_FIRST_MCS_40_SISO;
15162 } else {
15163 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15164 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15165 delta_ind = 1;
15166 }
15167 break;
15168
15169 case 1:
15170
15171 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15172 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15173 break;
15174
15175 case 2:
15176
15177 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15178 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15179 break;
15180
15181 case 3:
15182
15183 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15184 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15185 break;
15186 }
15187
15188 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15189 pi->tx_power_offset[idx];
15190 idx = idx + delta_ind;
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
15198 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15199 pi->tx_power_offset[idx++];
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
15207 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15208 pi->tx_power_offset[idx++];
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
15216 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15217 pi->tx_power_offset[idx];
15218 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15219 pi->tx_power_offset[idx++];
15220 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15221 pi->tx_power_offset[idx];
15222 idx = idx + 1 - delta_ind;
15223 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15224 pi->tx_power_offset[idx];
15225
15226 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15227 pi->tx_power_offset[idx];
15228 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15229 pi->tx_power_offset[idx];
15230 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15231 pi->tx_power_offset[idx];
15232 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15233 pi->tx_power_offset[idx];
15234 }
15235}
15236
7cc4a4c0 15237void wlc_phy_cal_init_nphy(phy_info_t *pi)
a9533e7e
HP
15238{
15239}
15240
e868ab03 15241static void wlc_phy_war_force_trsw_to_R_cliplo_nphy(phy_info_t *pi, u8 core)
a9533e7e
HP
15242{
15243 if (core == PHY_CORE_0) {
15244 write_phy_reg(pi, 0x38, 0x4);
15245 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15246 write_phy_reg(pi, 0x37, 0x0060);
15247 } else {
15248 write_phy_reg(pi, 0x37, 0x1080);
15249 }
15250 } else if (core == PHY_CORE_1) {
15251 write_phy_reg(pi, 0x2ae, 0x4);
15252 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15253 write_phy_reg(pi, 0x2ad, 0x0060);
15254 } else {
15255 write_phy_reg(pi, 0x2ad, 0x1080);
15256 }
15257 }
15258}
15259
e868ab03 15260static void wlc_phy_war_txchain_upd_nphy(phy_info_t *pi, u8 txchain)
a9533e7e 15261{
e868ab03 15262 u8 txchain0, txchain1;
a9533e7e
HP
15263
15264 txchain0 = txchain & 0x1;
15265 txchain1 = (txchain & 0x2) >> 1;
15266 if (!txchain0) {
15267 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15268 }
15269
15270 if (!txchain1) {
15271 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15272 }
15273}
15274
7cc4a4c0 15275static void wlc_phy_workarounds_nphy(phy_info_t *pi)
a9533e7e 15276{
e868ab03 15277 u8 rfseq_rx2tx_events[] = {
a9533e7e
HP
15278 NPHY_RFSEQ_CMD_NOP,
15279 NPHY_RFSEQ_CMD_RXG_FBW,
15280 NPHY_RFSEQ_CMD_TR_SWITCH,
15281 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15282 NPHY_RFSEQ_CMD_RXPD_TXPD,
15283 NPHY_RFSEQ_CMD_TX_GAIN,
15284 NPHY_RFSEQ_CMD_EXT_PA
15285 };
e868ab03
GKH
15286 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
15287 u8 rfseq_tx2rx_events[] = {
a9533e7e
HP
15288 NPHY_RFSEQ_CMD_NOP,
15289 NPHY_RFSEQ_CMD_EXT_PA,
15290 NPHY_RFSEQ_CMD_TX_GAIN,
15291 NPHY_RFSEQ_CMD_RXPD_TXPD,
15292 NPHY_RFSEQ_CMD_TR_SWITCH,
15293 NPHY_RFSEQ_CMD_RXG_FBW,
15294 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15295 };
e868ab03
GKH
15296 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
15297 u8 rfseq_tx2rx_events_rev3[] = {
a9533e7e
HP
15298 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15299 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15300 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15301 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15302 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15303 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15304 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15305 NPHY_REV3_RFSEQ_CMD_END
15306 };
e868ab03
GKH
15307 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15308 u8 rfseq_rx2tx_events_rev3[] = {
a9533e7e
HP
15309 NPHY_REV3_RFSEQ_CMD_NOP,
15310 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15311 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15312 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15313 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15314 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15315 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15316 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15317 NPHY_REV3_RFSEQ_CMD_END
15318 };
e868ab03 15319 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
a9533e7e 15320
e868ab03 15321 u8 rfseq_rx2tx_events_rev3_ipa[] = {
a9533e7e
HP
15322 NPHY_REV3_RFSEQ_CMD_NOP,
15323 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15324 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15325 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15326 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15327 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15328 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
15329 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15330 NPHY_REV3_RFSEQ_CMD_END
15331 };
e868ab03 15332 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
7d4df48e 15333 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
a9533e7e 15334
e59fe083
GKH
15335 s16 alpha0, alpha1, alpha2;
15336 s16 beta0, beta1, beta2;
66cbd3ab 15337 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
a9533e7e 15338 stbc_data_weights;
e868ab03 15339 u8 chan_freq_range = 0;
7d4df48e
GKH
15340 u16 dac_control = 0x0002;
15341 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
15342 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15343 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15344 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15345 u16 *aux_adc_vmid;
15346 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
15347 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
15348 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
15349 u16 *aux_adc_gain;
15350 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15351 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
3e26416e
GKH
15352 s32 min_nvar_val = 0x18d;
15353 s32 min_nvar_offset_6mbps = 20;
e868ab03
GKH
15354 u8 pdetrange;
15355 u8 triso;
7d4df48e
GKH
15356 u16 regval;
15357 u16 afectrl_adc_ctrl1_rev7 = 0x20;
15358 u16 afectrl_adc_ctrl2_rev7 = 0x0;
15359 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
15360 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
15361 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
15362 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
15363 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15364 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15365 u16 ipalvlshift_3p3_war_en = 0;
15366 u16 rccal_bcap_val, rccal_scap_val;
15367 u16 rccal_tx20_11b_bcap = 0;
15368 u16 rccal_tx20_11b_scap = 0;
15369 u16 rccal_tx20_11n_bcap = 0;
15370 u16 rccal_tx20_11n_scap = 0;
15371 u16 rccal_tx40_11n_bcap = 0;
15372 u16 rccal_tx40_11n_scap = 0;
15373 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
15374 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
15375 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
15376 u16 tx_lpf_bw_ofdm_20mhz = 0;
15377 u16 tx_lpf_bw_ofdm_40mhz = 0;
15378 u16 tx_lpf_bw_11b = 0;
15379 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
15380 u16 txgm_idac_bleed = 0;
0965ae88 15381 bool rccal_ovrd = false;
7d4df48e 15382 u16 freq;
a9533e7e
HP
15383 int coreNum;
15384
15385 if (CHSPEC_IS5G(pi->radio_chanspec)) {
15386 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15387 } else {
15388 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
15389 }
15390
15391 if (pi->phyhang_avoid)
0f0881b0 15392 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
15393
15394 if (!ISSIM_ENAB(pi->sh->sih)) {
15395 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
15396 }
15397
15398 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15399
15400 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
15401 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
15402
15403 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
15404 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
15405 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
15406 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
15407 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
15408 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
15409 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
15410 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
15411 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
15412 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
15413 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
15414 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
15415 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
15416 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
15417 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
15418 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
15419 }
15420
15421 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
15422 write_phy_reg(pi, 0x23f, 0x1b0);
15423 write_phy_reg(pi, 0x240, 0x1b0);
15424 }
15425
15426 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
15427 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
15428 }
15429
15430 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15431 &dac_control);
15432 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15433 &dac_control);
15434
15435 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15436 1, 0, 32, &leg_data_weights);
15437 leg_data_weights = leg_data_weights & 0xffffff;
15438 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15439 1, 0, 32, &leg_data_weights);
15440
15441 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15442 2, 0x15e, 16,
15443 rfseq_rx2tx_dacbufpu_rev7);
15444 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15445 rfseq_rx2tx_dacbufpu_rev7);
15446
15447 if (PHY_IPA(pi)) {
15448 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15449 rfseq_rx2tx_events_rev3_ipa,
15450 rfseq_rx2tx_dlys_rev3_ipa,
15451 sizeof
15452 (rfseq_rx2tx_events_rev3_ipa) /
15453 sizeof
15454 (rfseq_rx2tx_events_rev3_ipa
15455 [0]));
15456 }
15457
15458 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
15459 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
15460
15461 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
15462 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
15463 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
15464
15465 if (PHY_IPA(pi)) {
15466
15467 if (((pi->pubpi.radiorev == 5)
15468 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15469 || (pi->pubpi.radiorev == 7)
15470 || (pi->pubpi.radiorev == 8)) {
15471
15472 rccal_bcap_val =
15473 read_radio_reg(pi,
15474 RADIO_2057_RCCAL_BCAP_VAL);
15475 rccal_scap_val =
15476 read_radio_reg(pi,
15477 RADIO_2057_RCCAL_SCAP_VAL);
15478
15479 rccal_tx20_11b_bcap = rccal_bcap_val;
15480 rccal_tx20_11b_scap = rccal_scap_val;
15481
15482 if ((pi->pubpi.radiorev == 5) &&
15483 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
15484
15485 rccal_tx20_11n_bcap = rccal_bcap_val;
15486 rccal_tx20_11n_scap = rccal_scap_val;
15487 rccal_tx40_11n_bcap = 0xc;
15488 rccal_tx40_11n_scap = 0xc;
15489
0f0881b0 15490 rccal_ovrd = true;
a9533e7e
HP
15491
15492 } else if ((pi->pubpi.radiorev == 7)
15493 || (pi->pubpi.radiorev == 8)) {
15494
15495 tx_lpf_bw_ofdm_20mhz = 4;
15496 tx_lpf_bw_11b = 1;
15497
15498 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15499 rccal_tx20_11n_bcap = 0xc;
15500 rccal_tx20_11n_scap = 0xc;
15501 rccal_tx40_11n_bcap = 0xa;
15502 rccal_tx40_11n_scap = 0xa;
15503 } else {
15504 rccal_tx20_11n_bcap = 0x14;
15505 rccal_tx20_11n_scap = 0x14;
15506 rccal_tx40_11n_bcap = 0xf;
15507 rccal_tx40_11n_scap = 0xf;
15508 }
15509
0f0881b0 15510 rccal_ovrd = true;
a9533e7e
HP
15511 }
15512 }
15513
15514 } else {
15515
15516 if (pi->pubpi.radiorev == 5) {
15517
15518 tx_lpf_bw_ofdm_20mhz = 1;
15519 tx_lpf_bw_ofdm_40mhz = 3;
15520
15521 rccal_bcap_val =
15522 read_radio_reg(pi,
15523 RADIO_2057_RCCAL_BCAP_VAL);
15524 rccal_scap_val =
15525 read_radio_reg(pi,
15526 RADIO_2057_RCCAL_SCAP_VAL);
15527
15528 rccal_tx20_11b_bcap = rccal_bcap_val;
15529 rccal_tx20_11b_scap = rccal_scap_val;
15530
15531 rccal_tx20_11n_bcap = 0x13;
15532 rccal_tx20_11n_scap = 0x11;
15533 rccal_tx40_11n_bcap = 0x13;
15534 rccal_tx40_11n_scap = 0x11;
15535
0f0881b0 15536 rccal_ovrd = true;
a9533e7e
HP
15537 }
15538 }
15539
15540 if (rccal_ovrd) {
15541
15542 rx2tx_lpf_rc_lut_tx20_11b = (rccal_tx20_11b_bcap << 8) |
15543 (rccal_tx20_11b_scap << 3) | tx_lpf_bw_11b;
15544 rx2tx_lpf_rc_lut_tx20_11n = (rccal_tx20_11n_bcap << 8) |
15545 (rccal_tx20_11n_scap << 3) | tx_lpf_bw_ofdm_20mhz;
15546 rx2tx_lpf_rc_lut_tx40_11n = (rccal_tx40_11n_bcap << 8) |
15547 (rccal_tx40_11n_scap << 3) | tx_lpf_bw_ofdm_40mhz;
15548
15549 for (coreNum = 0; coreNum <= 1; coreNum++) {
15550 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15551 1,
15552 0x152 + coreNum * 0x10,
15553 16,
15554 &rx2tx_lpf_rc_lut_tx20_11b);
15555 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15556 1,
15557 0x153 + coreNum * 0x10,
15558 16,
15559 &rx2tx_lpf_rc_lut_tx20_11n);
15560 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15561 1,
15562 0x154 + coreNum * 0x10,
15563 16,
15564 &rx2tx_lpf_rc_lut_tx20_11n);
15565 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15566 1,
15567 0x155 + coreNum * 0x10,
15568 16,
15569 &rx2tx_lpf_rc_lut_tx40_11n);
15570 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15571 1,
15572 0x156 + coreNum * 0x10,
15573 16,
15574 &rx2tx_lpf_rc_lut_tx40_11n);
15575 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15576 1,
15577 0x157 + coreNum * 0x10,
15578 16,
15579 &rx2tx_lpf_rc_lut_tx40_11n);
15580 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15581 1,
15582 0x158 + coreNum * 0x10,
15583 16,
15584 &rx2tx_lpf_rc_lut_tx40_11n);
15585 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15586 1,
15587 0x159 + coreNum * 0x10,
15588 16,
15589 &rx2tx_lpf_rc_lut_tx40_11n);
15590 }
15591
15592 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
15593 1, 0x3, 0,
15594 NPHY_REV7_RFCTRLOVERRIDE_ID2);
15595 }
15596
15597 if (!NORADIO_ENAB(pi->pubpi)) {
15598 write_phy_reg(pi, 0x32f, 0x3);
15599 }
15600
15601 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
15602 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
15603 1, 0x3, 0,
15604 NPHY_REV7_RFCTRLOVERRIDE_ID0);
15605 }
15606
15607 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
15608 (pi->pubpi.radiorev == 6)) {
15609 if ((pi->sh->sromrev >= 8)
15610 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
15611 ipalvlshift_3p3_war_en = 1;
15612
15613 if (ipalvlshift_3p3_war_en) {
15614 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
15615 0x5);
15616 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15617 0x30);
15618 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15619 or_radio_reg(pi,
15620 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15621 0x1);
15622 or_radio_reg(pi,
15623 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15624 0x1);
15625
15626 ipa2g_mainbias = 0x1f;
15627
15628 ipa2g_casconv = 0x6f;
15629
15630 ipa2g_biasfilt = 0xaa;
15631 } else {
15632
15633 ipa2g_mainbias = 0x2b;
15634
15635 ipa2g_casconv = 0x7f;
15636
15637 ipa2g_biasfilt = 0xee;
15638 }
15639
15640 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15641 for (coreNum = 0; coreNum <= 1; coreNum++) {
15642 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15643 coreNum, IPA2G_IMAIN,
15644 ipa2g_mainbias);
15645 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15646 coreNum, IPA2G_CASCONV,
15647 ipa2g_casconv);
15648 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15649 coreNum,
15650 IPA2G_BIAS_FILTER,
15651 ipa2g_biasfilt);
15652 }
15653 }
15654 }
15655
15656 if (PHY_IPA(pi)) {
15657 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15658 if ((pi->pubpi.radiorev == 3)
15659 || (pi->pubpi.radiorev == 4)
15660 || (pi->pubpi.radiorev == 6)) {
15661
15662 txgm_idac_bleed = 0x7f;
15663 }
15664
15665 for (coreNum = 0; coreNum <= 1; coreNum++) {
15666 if (txgm_idac_bleed != 0)
15667 WRITE_RADIO_REG4(pi, RADIO_2057,
15668 CORE, coreNum,
15669 TXGM_IDAC_BLEED,
15670 txgm_idac_bleed);
15671 }
15672
15673 if (pi->pubpi.radiorev == 5) {
15674
15675 for (coreNum = 0; coreNum <= 1;
15676 coreNum++) {
15677 WRITE_RADIO_REG4(pi, RADIO_2057,
15678 CORE, coreNum,
15679 IPA2G_CASCONV,
15680 0x13);
15681 WRITE_RADIO_REG4(pi, RADIO_2057,
15682 CORE, coreNum,
15683 IPA2G_IMAIN,
15684 0x1f);
15685 WRITE_RADIO_REG4(pi, RADIO_2057,
15686 CORE, coreNum,
15687 IPA2G_BIAS_FILTER,
15688 0xee);
15689 WRITE_RADIO_REG4(pi, RADIO_2057,
15690 CORE, coreNum,
15691 PAD2G_IDACS,
15692 0x8a);
15693 WRITE_RADIO_REG4(pi, RADIO_2057,
15694 CORE, coreNum,
15695 PAD_BIAS_FILTER_BWS,
15696 0x3e);
15697 }
15698
15699 } else if ((pi->pubpi.radiorev == 7)
15700 || (pi->pubpi.radiorev == 8)) {
15701
15702 if (CHSPEC_IS40(pi->radio_chanspec) ==
15703 0) {
15704 WRITE_RADIO_REG4(pi, RADIO_2057,
15705 CORE, 0,
15706 IPA2G_IMAIN,
15707 0x14);
15708 WRITE_RADIO_REG4(pi, RADIO_2057,
15709 CORE, 1,
15710 IPA2G_IMAIN,
15711 0x12);
15712 } else {
15713 WRITE_RADIO_REG4(pi, RADIO_2057,
15714 CORE, 0,
15715 IPA2G_IMAIN,
15716 0x16);
15717 WRITE_RADIO_REG4(pi, RADIO_2057,
15718 CORE, 1,
15719 IPA2G_IMAIN,
15720 0x16);
15721 }
15722 }
15723
15724 } else {
15725 freq =
15726 CHAN5G_FREQ(CHSPEC_CHANNEL
15727 (pi->radio_chanspec));
15728 if (((freq >= 5180) && (freq <= 5230))
15729 || ((freq >= 5745) && (freq <= 5805))) {
15730 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15731 0, IPA5G_BIAS_FILTER,
15732 0xff);
15733 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15734 1, IPA5G_BIAS_FILTER,
15735 0xff);
15736 }
15737 }
15738 } else {
15739
15740 if (pi->pubpi.radiorev != 5) {
15741 for (coreNum = 0; coreNum <= 1; coreNum++) {
15742 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15743 coreNum,
15744 TXMIX2G_TUNE_BOOST_PU,
15745 0x61);
15746 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15747 coreNum,
15748 TXGM_IDAC_BLEED, 0x70);
15749 }
15750 }
15751 }
15752
15753 if (pi->pubpi.radiorev == 4) {
15754 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15755 0x05, 16,
15756 &afectrl_adc_ctrl1_rev7);
15757 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15758 0x15, 16,
15759 &afectrl_adc_ctrl1_rev7);
15760
15761 for (coreNum = 0; coreNum <= 1; coreNum++) {
15762 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15763 AFE_VCM_CAL_MASTER, 0x0);
15764 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15765 AFE_SET_VCM_I, 0x3f);
15766 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15767 AFE_SET_VCM_Q, 0x3f);
15768 }
15769 } else {
15770 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
15771 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
15772 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
15773 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
15774
15775 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
15776 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
15777 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
15778 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
15779
15780 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15781 0x05, 16,
15782 &afectrl_adc_ctrl2_rev7);
15783 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15784 0x15, 16,
15785 &afectrl_adc_ctrl2_rev7);
15786
15787 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
15788 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
15789 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
15790 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
15791 }
15792
15793 write_phy_reg(pi, 0x6a, 0x2);
15794
15795 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
15796 &min_nvar_offset_6mbps);
15797
15798 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
15799 &rfseq_pktgn_lpf_hpc_rev7);
15800
15801 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
15802 &rfseq_pktgn_lpf_h_hpc_rev7);
15803
15804 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
15805 &rfseq_htpktgn_lpf_hpc_rev7);
15806
15807 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
15808 &rfseq_cckpktgn_lpf_hpc_rev7);
15809
15810 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
15811 &rfseq_tx2rx_lpf_h_hpc_rev7);
15812
15813 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
15814 &rfseq_rx2tx_lpf_h_hpc_rev7);
15815
15816 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15817 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15818 32, &min_nvar_val);
15819 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15820 127, 32, &min_nvar_val);
15821 } else {
15822 min_nvar_val = noise_var_tbl_rev7[3];
15823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15824 32, &min_nvar_val);
15825
15826 min_nvar_val = noise_var_tbl_rev7[127];
15827 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15828 127, 32, &min_nvar_val);
15829 }
15830
15831 wlc_phy_workarounds_nphy_gainctrl(pi);
15832
15833 pdetrange =
15834 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15835 pdetrange : pi->srom_fem2g.pdetrange;
15836
15837 if (pdetrange == 0) {
15838 chan_freq_range =
15839 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15840 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15841 aux_adc_vmid_rev7_core0[3] = 0x70;
15842 aux_adc_vmid_rev7_core1[3] = 0x70;
15843 aux_adc_gain_rev7[3] = 2;
15844 } else {
15845 aux_adc_vmid_rev7_core0[3] = 0x80;
15846 aux_adc_vmid_rev7_core1[3] = 0x80;
15847 aux_adc_gain_rev7[3] = 3;
15848 }
15849 } else if (pdetrange == 1) {
15850 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15851 aux_adc_vmid_rev7_core0[3] = 0x7c;
15852 aux_adc_vmid_rev7_core1[3] = 0x7c;
15853 aux_adc_gain_rev7[3] = 2;
15854 } else {
15855 aux_adc_vmid_rev7_core0[3] = 0x8c;
15856 aux_adc_vmid_rev7_core1[3] = 0x8c;
15857 aux_adc_gain_rev7[3] = 1;
15858 }
15859 } else if (pdetrange == 2) {
15860 if (pi->pubpi.radioid == BCM2057_ID) {
15861 if ((pi->pubpi.radiorev == 5)
15862 || (pi->pubpi.radiorev == 7)
15863 || (pi->pubpi.radiorev == 8)) {
15864 if (chan_freq_range ==
15865 WL_CHAN_FREQ_RANGE_2G) {
15866 aux_adc_vmid_rev7_core0[3] =
15867 0x8c;
15868 aux_adc_vmid_rev7_core1[3] =
15869 0x8c;
15870 aux_adc_gain_rev7[3] = 0;
15871 } else {
15872 aux_adc_vmid_rev7_core0[3] =
15873 0x96;
15874 aux_adc_vmid_rev7_core1[3] =
15875 0x96;
15876 aux_adc_gain_rev7[3] = 0;
15877 }
15878 }
15879 }
15880
15881 } else if (pdetrange == 3) {
15882 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
15883 aux_adc_vmid_rev7_core0[3] = 0x89;
15884 aux_adc_vmid_rev7_core1[3] = 0x89;
15885 aux_adc_gain_rev7[3] = 0;
15886 }
15887
15888 } else if (pdetrange == 5) {
15889
15890 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15891 aux_adc_vmid_rev7_core0[3] = 0x80;
15892 aux_adc_vmid_rev7_core1[3] = 0x80;
15893 aux_adc_gain_rev7[3] = 3;
15894 } else {
15895 aux_adc_vmid_rev7_core0[3] = 0x70;
15896 aux_adc_vmid_rev7_core1[3] = 0x70;
15897 aux_adc_gain_rev7[3] = 2;
15898 }
15899 }
15900
15901 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
15902 &aux_adc_vmid_rev7_core0);
15903 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
15904 &aux_adc_vmid_rev7_core1);
15905 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
15906 &aux_adc_gain_rev7);
15907 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
15908 &aux_adc_gain_rev7);
15909
15910 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15911
15912 write_phy_reg(pi, 0x23f, 0x1f8);
15913 write_phy_reg(pi, 0x240, 0x1f8);
15914
15915 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15916 1, 0, 32, &leg_data_weights);
15917 leg_data_weights = leg_data_weights & 0xffffff;
15918 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15919 1, 0, 32, &leg_data_weights);
15920
15921 alpha0 = 293;
15922 alpha1 = 435;
15923 alpha2 = 261;
15924 beta0 = 366;
15925 beta1 = 205;
15926 beta2 = 32;
15927 write_phy_reg(pi, 0x145, alpha0);
15928 write_phy_reg(pi, 0x146, alpha1);
15929 write_phy_reg(pi, 0x147, alpha2);
15930 write_phy_reg(pi, 0x148, beta0);
15931 write_phy_reg(pi, 0x149, beta1);
15932 write_phy_reg(pi, 0x14a, beta2);
15933
15934 write_phy_reg(pi, 0x38, 0xC);
15935 write_phy_reg(pi, 0x2ae, 0xC);
15936
15937 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
15938 rfseq_tx2rx_events_rev3,
15939 rfseq_tx2rx_dlys_rev3,
15940 sizeof(rfseq_tx2rx_events_rev3) /
15941 sizeof(rfseq_tx2rx_events_rev3[0]));
15942
15943 if (PHY_IPA(pi)) {
15944 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15945 rfseq_rx2tx_events_rev3_ipa,
15946 rfseq_rx2tx_dlys_rev3_ipa,
15947 sizeof
15948 (rfseq_rx2tx_events_rev3_ipa) /
15949 sizeof
15950 (rfseq_rx2tx_events_rev3_ipa
15951 [0]));
15952 }
15953
15954 if ((pi->sh->hw_phyrxchain != 0x3) &&
15955 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15956
15957 if (PHY_IPA(pi)) {
15958 rfseq_rx2tx_dlys_rev3[5] = 59;
15959 rfseq_rx2tx_dlys_rev3[6] = 1;
15960 rfseq_rx2tx_events_rev3[7] =
15961 NPHY_REV3_RFSEQ_CMD_END;
15962 }
15963
15964 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15965 rfseq_rx2tx_events_rev3,
15966 rfseq_rx2tx_dlys_rev3,
15967 sizeof(rfseq_rx2tx_events_rev3) /
15968 sizeof(rfseq_rx2tx_events_rev3
15969 [0]));
15970 }
15971
15972 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15973 write_phy_reg(pi, 0x6a, 0x2);
15974 } else {
15975 write_phy_reg(pi, 0x6a, 0x9c40);
15976 }
15977
15978 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
15979
15980 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15981 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15982 32, &min_nvar_val);
15983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15984 127, 32, &min_nvar_val);
15985 } else {
15986 min_nvar_val = noise_var_tbl_rev3[3];
15987 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15988 32, &min_nvar_val);
15989
15990 min_nvar_val = noise_var_tbl_rev3[127];
15991 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15992 127, 32, &min_nvar_val);
15993 }
15994
15995 wlc_phy_workarounds_nphy_gainctrl(pi);
15996
15997 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15998 &dac_control);
15999 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
16000 &dac_control);
16001
16002 pdetrange =
16003 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16004 pdetrange : pi->srom_fem2g.pdetrange;
16005
16006 if (pdetrange == 0) {
16007 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16008 aux_adc_vmid = aux_adc_vmid_rev4;
16009 aux_adc_gain = aux_adc_gain_rev4;
16010 } else {
16011 aux_adc_vmid = aux_adc_vmid_rev3;
16012 aux_adc_gain = aux_adc_gain_rev3;
16013 }
16014 chan_freq_range =
16015 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16016 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16017 switch (chan_freq_range) {
16018 case WL_CHAN_FREQ_RANGE_5GL:
16019 aux_adc_vmid[3] = 0x89;
16020 aux_adc_gain[3] = 0;
16021 break;
16022 case WL_CHAN_FREQ_RANGE_5GM:
16023 aux_adc_vmid[3] = 0x89;
16024 aux_adc_gain[3] = 0;
16025 break;
16026 case WL_CHAN_FREQ_RANGE_5GH:
16027 aux_adc_vmid[3] = 0x89;
16028 aux_adc_gain[3] = 0;
16029 break;
16030 default:
16031 break;
16032 }
16033 }
16034 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16035 0x08, 16, aux_adc_vmid);
16036 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16037 0x18, 16, aux_adc_vmid);
16038 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16039 0x0c, 16, aux_adc_gain);
16040 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16041 0x1c, 16, aux_adc_gain);
16042 } else if (pdetrange == 1) {
16043 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16044 0x08, 16, sk_adc_vmid);
16045 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16046 0x18, 16, sk_adc_vmid);
16047 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16048 0x0c, 16, sk_adc_gain);
16049 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16050 0x1c, 16, sk_adc_gain);
16051 } else if (pdetrange == 2) {
16052
7d4df48e
GKH
16053 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16054 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
a9533e7e
HP
16055
16056 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16057 chan_freq_range =
16058 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16059 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16060 bcm_adc_vmid[3] = 0x8e;
16061 bcm_adc_gain[3] = 0x03;
16062 } else {
16063 bcm_adc_vmid[3] = 0x94;
16064 bcm_adc_gain[3] = 0x03;
16065 }
16066 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16067 bcm_adc_vmid[3] = 0x84;
16068 bcm_adc_gain[3] = 0x02;
16069 }
16070
16071 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16072 0x08, 16, bcm_adc_vmid);
16073 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16074 0x18, 16, bcm_adc_vmid);
16075 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16076 0x0c, 16, bcm_adc_gain);
16077 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16078 0x1c, 16, bcm_adc_gain);
16079 } else if (pdetrange == 3) {
16080 chan_freq_range =
16081 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16082 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16083 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16084
7d4df48e 16085 u16 auxadc_vmid[] = {
e5c4536f 16086 0xa2, 0xb4, 0xb4, 0x270 };
7d4df48e 16087 u16 auxadc_gain[] = {
e5c4536f 16088 0x02, 0x02, 0x02, 0x00 };
a9533e7e
HP
16089
16090 wlc_phy_table_write_nphy(pi,
16091 NPHY_TBL_ID_AFECTRL, 4,
16092 0x08, 16, auxadc_vmid);
16093 wlc_phy_table_write_nphy(pi,
16094 NPHY_TBL_ID_AFECTRL, 4,
16095 0x18, 16, auxadc_vmid);
16096 wlc_phy_table_write_nphy(pi,
16097 NPHY_TBL_ID_AFECTRL, 4,
16098 0x0c, 16, auxadc_gain);
16099 wlc_phy_table_write_nphy(pi,
16100 NPHY_TBL_ID_AFECTRL, 4,
16101 0x1c, 16, auxadc_gain);
16102 }
16103 } else if ((pdetrange == 4) || (pdetrange == 5)) {
7d4df48e
GKH
16104 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16105 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16106 u16 Vmid[2], Av[2];
a9533e7e
HP
16107
16108 chan_freq_range =
16109 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16110 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16111 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16112 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16113 Av[0] = (pdetrange == 4) ? 2 : 0;
16114 Av[1] = (pdetrange == 4) ? 2 : 0;
16115 } else {
16116 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16117 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16118 Av[0] = (pdetrange == 4) ? 2 : 0;
16119 Av[1] = (pdetrange == 4) ? 2 : 0;
16120 }
16121
16122 bcm_adc_vmid[3] = Vmid[0];
16123 bcm_adc_gain[3] = Av[0];
16124 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16125 0x08, 16, bcm_adc_vmid);
16126 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16127 0x0c, 16, bcm_adc_gain);
16128
16129 bcm_adc_vmid[3] = Vmid[1];
16130 bcm_adc_gain[3] = Av[1];
16131 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16132 0x18, 16, bcm_adc_vmid);
16133 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16134 0x1c, 16, bcm_adc_gain);
16135 } else {
16136 ASSERT(0);
16137 }
16138
16139 write_radio_reg(pi,
16140 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16141 0x0);
16142 write_radio_reg(pi,
16143 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16144 0x0);
16145
16146 write_radio_reg(pi,
16147 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16148 0x6);
16149 write_radio_reg(pi,
16150 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16151 0x6);
16152
16153 write_radio_reg(pi,
16154 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16155 0x7);
16156 write_radio_reg(pi,
16157 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16158 0x7);
16159
16160 write_radio_reg(pi,
16161 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16162 0x88);
16163 write_radio_reg(pi,
16164 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16165 0x88);
16166
16167 write_radio_reg(pi,
16168 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16169 0x0);
16170 write_radio_reg(pi,
16171 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16172 0x0);
16173
16174 write_radio_reg(pi,
16175 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16176 0x0);
16177 write_radio_reg(pi,
16178 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16179 0x0);
16180
16181 triso =
16182 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16183 triso : pi->srom_fem2g.triso;
16184 if (triso == 7) {
16185 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16186 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16187 }
16188
16189 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16190
16191 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16192 (CHSPEC_IS5G(pi->radio_chanspec))) ||
16193 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16194 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16195 (CHSPEC_IS2G(pi->radio_chanspec)))) {
16196 nss1_data_weights = 0x00088888;
16197 ht_data_weights = 0x00088888;
16198 stbc_data_weights = 0x00088888;
16199 } else {
16200 nss1_data_weights = 0x88888888;
16201 ht_data_weights = 0x88888888;
16202 stbc_data_weights = 0x88888888;
16203 }
16204 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16205 1, 1, 32, &nss1_data_weights);
16206 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16207 1, 2, 32, &ht_data_weights);
16208 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16209 1, 3, 32, &stbc_data_weights);
16210
16211 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16212 if (CHSPEC_IS5G(pi->radio_chanspec)) {
16213 write_radio_reg(pi,
16214 RADIO_2056_TX_GMBB_IDAC |
16215 RADIO_2056_TX0, 0x70);
16216 write_radio_reg(pi,
16217 RADIO_2056_TX_GMBB_IDAC |
16218 RADIO_2056_TX1, 0x70);
16219 }
16220 }
16221
16222 if (!pi->edcrs_threshold_lock) {
16223 write_phy_reg(pi, 0x224, 0x3eb);
16224 write_phy_reg(pi, 0x225, 0x3eb);
16225 write_phy_reg(pi, 0x226, 0x341);
16226 write_phy_reg(pi, 0x227, 0x341);
16227 write_phy_reg(pi, 0x228, 0x42b);
16228 write_phy_reg(pi, 0x229, 0x42b);
16229 write_phy_reg(pi, 0x22a, 0x381);
16230 write_phy_reg(pi, 0x22b, 0x381);
16231 write_phy_reg(pi, 0x22c, 0x42b);
16232 write_phy_reg(pi, 0x22d, 0x42b);
16233 write_phy_reg(pi, 0x22e, 0x381);
16234 write_phy_reg(pi, 0x22f, 0x381);
16235 }
16236
16237 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16238
16239 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK) {
16240 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16241 MHF4_BPHY_TXCORE0,
16242 MHF4_BPHY_TXCORE0, WLC_BAND_ALL);
16243 }
16244 }
16245 } else {
16246
16247 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16248 (pi->sh->boardtype == 0x8b)) {
16249 uint i;
e868ab03 16250 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
8d3d6a69 16251 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
a9533e7e
HP
16252 rfseq_rx2tx_dlys[i] = war_dlys[i];
16253 }
16254
16255 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16256 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16257 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16258 } else {
16259 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16260 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16261 }
16262
16263 regval = 0x000a;
16264 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16265 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16266
16267 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16268 regval = 0xcdaa;
16269 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16270 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16271 }
16272
16273 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16274 regval = 0x0000;
16275 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16276 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16277
16278 regval = 0x7aab;
16279 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16280 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16281
16282 regval = 0x0800;
16283 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16284 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
16285 }
16286
16287 write_phy_reg(pi, 0xf8, 0x02d8);
16288 write_phy_reg(pi, 0xf9, 0x0301);
16289 write_phy_reg(pi, 0xfa, 0x02d8);
16290 write_phy_reg(pi, 0xfb, 0x0301);
16291
16292 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16293 rfseq_rx2tx_dlys,
16294 sizeof(rfseq_rx2tx_events) /
16295 sizeof(rfseq_rx2tx_events[0]));
16296
16297 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16298 rfseq_tx2rx_dlys,
16299 sizeof(rfseq_tx2rx_events) /
16300 sizeof(rfseq_tx2rx_events[0]));
16301
16302 wlc_phy_workarounds_nphy_gainctrl(pi);
16303
16304 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16305
16306 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16307 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16308 MHF3_NPHY_MLADV_WAR,
16309 MHF3_NPHY_MLADV_WAR,
16310 WLC_BAND_ALL);
16311
16312 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16313 write_phy_reg(pi, 0x1e3, 0x0);
16314 write_phy_reg(pi, 0x1e4, 0x0);
16315 }
16316
16317 if (NREV_LT(pi->pubpi.phy_rev, 2))
16318 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
16319
16320 alpha0 = 293;
16321 alpha1 = 435;
16322 alpha2 = 261;
16323 beta0 = 366;
16324 beta1 = 205;
16325 beta2 = 32;
16326 write_phy_reg(pi, 0x145, alpha0);
16327 write_phy_reg(pi, 0x146, alpha1);
16328 write_phy_reg(pi, 0x147, alpha2);
16329 write_phy_reg(pi, 0x148, beta0);
16330 write_phy_reg(pi, 0x149, beta1);
16331 write_phy_reg(pi, 0x14a, beta2);
16332
16333 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16334 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
16335
16336 write_phy_reg(pi, 0x192, 0xb5);
16337 write_phy_reg(pi, 0x193, 0xa4);
16338 write_phy_reg(pi, 0x194, 0x0);
16339 }
16340
16341 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16342 mod_phy_reg(pi, 0x221,
16343 NPHY_FORCESIG_DECODEGATEDCLKS,
16344 NPHY_FORCESIG_DECODEGATEDCLKS);
16345 }
16346 }
16347
16348 if (pi->phyhang_avoid)
0965ae88 16349 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
16350}
16351
7cc4a4c0 16352static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi)
a9533e7e 16353{
7d4df48e 16354 u16 w1th, hpf_code, currband;
a9533e7e 16355 int ctr;
e868ab03 16356 u8 rfseq_updategainu_events[] = {
a9533e7e
HP
16357 NPHY_RFSEQ_CMD_RX_GAIN,
16358 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16359 NPHY_RFSEQ_CMD_SET_HPF_BW
16360 };
e868ab03 16361 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
562c8850
GKH
16362 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
16363 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
16364 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
16365 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
16366 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
16367 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
16368 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
16369 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
16370 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
16371 s8 *lna1_gain_db = NULL;
16372 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
16373 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
16374 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
16375 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
16376 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
16377 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
16378 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
16379 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
16380 s8 *lna2_gain_db = NULL;
16381 s8 tiaG_gain_db[] = {
e5c4536f 16382 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
562c8850 16383 s8 tiaA_gain_db[] = {
e5c4536f 16384 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
562c8850 16385 s8 tiaA_gain_db_rev4[] = {
e5c4536f 16386 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850 16387 s8 tiaA_gain_db_rev5[] = {
e5c4536f 16388 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850 16389 s8 tiaA_gain_db_rev6[] = {
e5c4536f 16390 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850
GKH
16391 s8 *tia_gain_db;
16392 s8 tiaG_gainbits[] = {
e5c4536f 16393 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
562c8850 16394 s8 tiaA_gainbits[] = {
e5c4536f 16395 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
562c8850 16396 s8 tiaA_gainbits_rev4[] = {
e5c4536f 16397 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850 16398 s8 tiaA_gainbits_rev5[] = {
e5c4536f 16399 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850 16400 s8 tiaA_gainbits_rev6[] = {
e5c4536f 16401 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850
GKH
16402 s8 *tia_gainbits;
16403 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16404 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
7d4df48e
GKH
16405 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16406 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16407 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
16408 u16 rfseqG_init_gain_rev5_elna[] = {
e5c4536f 16409 0x013f, 0x013f, 0x013f, 0x013f };
7d4df48e
GKH
16410 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
16411 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
16412 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
16413 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16414 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
16415 u16 rfseqA_init_gain_rev4_elna[] = {
e5c4536f 16416 0x314f, 0x314f, 0x314f, 0x314f };
7d4df48e
GKH
16417 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16418 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
16419 u16 *rfseq_init_gain;
16420 u16 initG_gaincode = 0x627e;
16421 u16 initG_gaincode_rev4 = 0x527e;
16422 u16 initG_gaincode_rev5 = 0x427e;
16423 u16 initG_gaincode_rev5_elna = 0x027e;
16424 u16 initG_gaincode_rev6 = 0x527e;
16425 u16 initG_gaincode_rev6_224B0 = 0x427e;
16426 u16 initG_gaincode_rev6_elna = 0x127e;
16427 u16 initA_gaincode = 0x52de;
16428 u16 initA_gaincode_rev4 = 0x629e;
16429 u16 initA_gaincode_rev4_elna = 0x329e;
16430 u16 initA_gaincode_rev5 = 0x729e;
16431 u16 initA_gaincode_rev6 = 0x729e;
16432 u16 init_gaincode;
16433 u16 clip1hiG_gaincode = 0x107e;
16434 u16 clip1hiG_gaincode_rev4 = 0x007e;
16435 u16 clip1hiG_gaincode_rev5 = 0x1076;
16436 u16 clip1hiG_gaincode_rev6 = 0x007e;
16437 u16 clip1hiA_gaincode = 0x00de;
16438 u16 clip1hiA_gaincode_rev4 = 0x029e;
16439 u16 clip1hiA_gaincode_rev5 = 0x029e;
16440 u16 clip1hiA_gaincode_rev6 = 0x029e;
16441 u16 clip1hi_gaincode;
16442 u16 clip1mdG_gaincode = 0x0066;
16443 u16 clip1mdA_gaincode = 0x00ca;
16444 u16 clip1mdA_gaincode_rev4 = 0x1084;
16445 u16 clip1mdA_gaincode_rev5 = 0x2084;
16446 u16 clip1mdA_gaincode_rev6 = 0x2084;
16447 u16 clip1md_gaincode = 0;
16448 u16 clip1loG_gaincode = 0x0074;
16449 u16 clip1loG_gaincode_rev5[] = {
a9533e7e
HP
16450 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16451 };
7d4df48e 16452 u16 clip1loG_gaincode_rev6[] = {
a9533e7e
HP
16453 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16454 };
7d4df48e
GKH
16455 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
16456 u16 clip1loA_gaincode = 0x00cc;
16457 u16 clip1loA_gaincode_rev4 = 0x0086;
16458 u16 clip1loA_gaincode_rev5 = 0x2086;
16459 u16 clip1loA_gaincode_rev6 = 0x2086;
16460 u16 clip1lo_gaincode;
e868ab03
GKH
16461 u8 crsminG_th = 0x18;
16462 u8 crsminG_th_rev5 = 0x18;
16463 u8 crsminG_th_rev6 = 0x18;
16464 u8 crsminA_th = 0x1e;
16465 u8 crsminA_th_rev4 = 0x24;
16466 u8 crsminA_th_rev5 = 0x24;
16467 u8 crsminA_th_rev6 = 0x24;
16468 u8 crsmin_th;
16469 u8 crsminlG_th = 0x18;
16470 u8 crsminlG_th_rev5 = 0x18;
16471 u8 crsminlG_th_rev6 = 0x18;
16472 u8 crsminlA_th = 0x1e;
16473 u8 crsminlA_th_rev4 = 0x24;
16474 u8 crsminlA_th_rev5 = 0x24;
16475 u8 crsminlA_th_rev6 = 0x24;
16476 u8 crsminl_th = 0;
16477 u8 crsminuG_th = 0x18;
16478 u8 crsminuG_th_rev5 = 0x18;
16479 u8 crsminuG_th_rev6 = 0x18;
16480 u8 crsminuA_th = 0x1e;
16481 u8 crsminuA_th_rev4 = 0x24;
16482 u8 crsminuA_th_rev5 = 0x24;
16483 u8 crsminuA_th_rev6 = 0x24;
16484 u8 crsminuA_th_rev6_224B0 = 0x2d;
16485 u8 crsminu_th;
7d4df48e
GKH
16486 u16 nbclipG_th = 0x20d;
16487 u16 nbclipG_th_rev4 = 0x1a1;
16488 u16 nbclipG_th_rev5 = 0x1d0;
16489 u16 nbclipG_th_rev6 = 0x1d0;
16490 u16 nbclipA_th = 0x1a1;
16491 u16 nbclipA_th_rev4 = 0x107;
16492 u16 nbclipA_th_rev5 = 0x0a9;
16493 u16 nbclipA_th_rev6 = 0x0f0;
16494 u16 nbclip_th = 0;
e868ab03
GKH
16495 u8 w1clipG_th = 5;
16496 u8 w1clipG_th_rev5 = 9;
16497 u8 w1clipG_th_rev6 = 5;
16498 u8 w1clipA_th = 25, w1clip_th;
16499 u8 rssi_gain_default = 0x50;
16500 u8 rssiG_gain_rev6_224B0 = 0x50;
16501 u8 rssiA_gain_rev5 = 0x90;
16502 u8 rssiA_gain_rev6 = 0x90;
16503 u8 rssi_gain;
7d4df48e 16504 u16 regval[21];
e868ab03 16505 u8 triso;
a9533e7e
HP
16506
16507 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
16508 pi->srom_fem2g.triso;
16509
16510 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16511 if (pi->pubpi.radiorev == 5) {
16512
16513 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
16514 } else if (pi->pubpi.radiorev == 7) {
16515 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16516
16517 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
16518 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
16519
16520 } else if ((pi->pubpi.radiorev == 3)
16521 || (pi->pubpi.radiorev == 8)) {
16522 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16523
16524 if (pi->pubpi.radiorev == 8) {
16525 mod_phy_reg(pi, 0x283,
16526 (0xff << 0), (0x44 << 0));
16527 mod_phy_reg(pi, 0x280,
16528 (0xff << 0), (0x44 << 0));
16529 }
16530 } else {
16531 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16532 }
16533 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16534
16535 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
16536
16537 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16538 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16539
16540 currband =
16541 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
16542 if (currband == 0) {
16543 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16544 if (pi->pubpi.radiorev == 11) {
16545 lna1_gain_db = lna1G_gain_db_rev6_224B0;
16546 lna2_gain_db = lna2G_gain_db_rev6_224B0;
16547 rfseq_init_gain =
16548 rfseqG_init_gain_rev6_224B0;
16549 init_gaincode =
16550 initG_gaincode_rev6_224B0;
16551 clip1hi_gaincode =
16552 clip1hiG_gaincode_rev6;
16553 clip1lo_gaincode =
16554 clip1loG_gaincode_rev6_224B0;
16555 nbclip_th = nbclipG_th_rev6;
16556 w1clip_th = w1clipG_th_rev6;
16557 crsmin_th = crsminG_th_rev6;
16558 crsminl_th = crsminlG_th_rev6;
16559 crsminu_th = crsminuG_th_rev6;
16560 rssi_gain = rssiG_gain_rev6_224B0;
16561 } else {
16562 lna1_gain_db = lna1G_gain_db_rev6;
16563 lna2_gain_db = lna2G_gain_db_rev6;
16564 if (pi->sh->boardflags & BFL_EXTLNA) {
16565
16566 rfseq_init_gain =
16567 rfseqG_init_gain_rev6_elna;
16568 init_gaincode =
16569 initG_gaincode_rev6_elna;
16570 } else {
16571 rfseq_init_gain =
16572 rfseqG_init_gain_rev6;
16573 init_gaincode =
16574 initG_gaincode_rev6;
16575 }
16576 clip1hi_gaincode =
16577 clip1hiG_gaincode_rev6;
16578 switch (triso) {
16579 case 0:
16580 clip1lo_gaincode =
16581 clip1loG_gaincode_rev6[0];
16582 break;
16583 case 1:
16584 clip1lo_gaincode =
16585 clip1loG_gaincode_rev6[1];
16586 break;
16587 case 2:
16588 clip1lo_gaincode =
16589 clip1loG_gaincode_rev6[2];
16590 break;
16591 case 3:
16592 default:
16593
16594 clip1lo_gaincode =
16595 clip1loG_gaincode_rev6[3];
16596 break;
16597 case 4:
16598 clip1lo_gaincode =
16599 clip1loG_gaincode_rev6[4];
16600 break;
16601 case 5:
16602 clip1lo_gaincode =
16603 clip1loG_gaincode_rev6[5];
16604 break;
16605 case 6:
16606 clip1lo_gaincode =
16607 clip1loG_gaincode_rev6[6];
16608 break;
16609 case 7:
16610 clip1lo_gaincode =
16611 clip1loG_gaincode_rev6[7];
16612 break;
16613 }
16614 nbclip_th = nbclipG_th_rev6;
16615 w1clip_th = w1clipG_th_rev6;
16616 crsmin_th = crsminG_th_rev6;
16617 crsminl_th = crsminlG_th_rev6;
16618 crsminu_th = crsminuG_th_rev6;
16619 rssi_gain = rssi_gain_default;
16620 }
16621 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16622 lna1_gain_db = lna1G_gain_db_rev5;
16623 lna2_gain_db = lna2G_gain_db_rev5;
16624 if (pi->sh->boardflags & BFL_EXTLNA) {
16625
16626 rfseq_init_gain =
16627 rfseqG_init_gain_rev5_elna;
16628 init_gaincode =
16629 initG_gaincode_rev5_elna;
16630 } else {
16631 rfseq_init_gain = rfseqG_init_gain_rev5;
16632 init_gaincode = initG_gaincode_rev5;
16633 }
16634 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16635 switch (triso) {
16636 case 0:
16637 clip1lo_gaincode =
16638 clip1loG_gaincode_rev5[0];
16639 break;
16640 case 1:
16641 clip1lo_gaincode =
16642 clip1loG_gaincode_rev5[1];
16643 break;
16644 case 2:
16645 clip1lo_gaincode =
16646 clip1loG_gaincode_rev5[2];
16647 break;
16648 case 3:
16649
16650 clip1lo_gaincode =
16651 clip1loG_gaincode_rev5[3];
16652 break;
16653 case 4:
16654 clip1lo_gaincode =
16655 clip1loG_gaincode_rev5[4];
16656 break;
16657 case 5:
16658 clip1lo_gaincode =
16659 clip1loG_gaincode_rev5[5];
16660 break;
16661 case 6:
16662 clip1lo_gaincode =
16663 clip1loG_gaincode_rev5[6];
16664 break;
16665 case 7:
16666 clip1lo_gaincode =
16667 clip1loG_gaincode_rev5[7];
16668 break;
16669 default:
16670 clip1lo_gaincode =
16671 clip1loG_gaincode_rev5[3];
16672 break;
16673 }
16674 nbclip_th = nbclipG_th_rev5;
16675 w1clip_th = w1clipG_th_rev5;
16676 crsmin_th = crsminG_th_rev5;
16677 crsminl_th = crsminlG_th_rev5;
16678 crsminu_th = crsminuG_th_rev5;
16679 rssi_gain = rssi_gain_default;
16680 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16681 lna1_gain_db = lna1G_gain_db_rev4;
16682 lna2_gain_db = lna2G_gain_db;
16683 rfseq_init_gain = rfseqG_init_gain_rev4;
16684 init_gaincode = initG_gaincode_rev4;
16685 clip1hi_gaincode = clip1hiG_gaincode_rev4;
16686 clip1lo_gaincode = clip1loG_gaincode;
16687 nbclip_th = nbclipG_th_rev4;
16688 w1clip_th = w1clipG_th;
16689 crsmin_th = crsminG_th;
16690 crsminl_th = crsminlG_th;
16691 crsminu_th = crsminuG_th;
16692 rssi_gain = rssi_gain_default;
16693 } else {
16694 lna1_gain_db = lna1G_gain_db;
16695 lna2_gain_db = lna2G_gain_db;
16696 rfseq_init_gain = rfseqG_init_gain;
16697 init_gaincode = initG_gaincode;
16698 clip1hi_gaincode = clip1hiG_gaincode;
16699 clip1lo_gaincode = clip1loG_gaincode;
16700 nbclip_th = nbclipG_th;
16701 w1clip_th = w1clipG_th;
16702 crsmin_th = crsminG_th;
16703 crsminl_th = crsminlG_th;
16704 crsminu_th = crsminuG_th;
16705 rssi_gain = rssi_gain_default;
16706 }
16707 tia_gain_db = tiaG_gain_db;
16708 tia_gainbits = tiaG_gainbits;
16709 clip1md_gaincode = clip1mdG_gaincode;
16710 } else {
16711 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16712 lna1_gain_db = lna1A_gain_db_rev6;
16713 lna2_gain_db = lna2A_gain_db_rev6;
16714 tia_gain_db = tiaA_gain_db_rev6;
16715 tia_gainbits = tiaA_gainbits_rev6;
16716 rfseq_init_gain = rfseqA_init_gain_rev6;
16717 init_gaincode = initA_gaincode_rev6;
16718 clip1hi_gaincode = clip1hiA_gaincode_rev6;
16719 clip1md_gaincode = clip1mdA_gaincode_rev6;
16720 clip1lo_gaincode = clip1loA_gaincode_rev6;
16721 crsmin_th = crsminA_th_rev6;
16722 crsminl_th = crsminlA_th_rev6;
16723 if ((pi->pubpi.radiorev == 11) &&
16724 (CHSPEC_IS40(pi->radio_chanspec) == 0)) {
16725 crsminu_th = crsminuA_th_rev6_224B0;
16726 } else {
16727 crsminu_th = crsminuA_th_rev6;
16728 }
16729 nbclip_th = nbclipA_th_rev6;
16730 rssi_gain = rssiA_gain_rev6;
16731 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16732 lna1_gain_db = lna1A_gain_db_rev5;
16733 lna2_gain_db = lna2A_gain_db_rev5;
16734 tia_gain_db = tiaA_gain_db_rev5;
16735 tia_gainbits = tiaA_gainbits_rev5;
16736 rfseq_init_gain = rfseqA_init_gain_rev5;
16737 init_gaincode = initA_gaincode_rev5;
16738 clip1hi_gaincode = clip1hiA_gaincode_rev5;
16739 clip1md_gaincode = clip1mdA_gaincode_rev5;
16740 clip1lo_gaincode = clip1loA_gaincode_rev5;
16741 crsmin_th = crsminA_th_rev5;
16742 crsminl_th = crsminlA_th_rev5;
16743 crsminu_th = crsminuA_th_rev5;
16744 nbclip_th = nbclipA_th_rev5;
16745 rssi_gain = rssiA_gain_rev5;
16746 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16747 lna1_gain_db = lna1A_gain_db_rev4;
16748 lna2_gain_db = lna2A_gain_db_rev4;
16749 tia_gain_db = tiaA_gain_db_rev4;
16750 tia_gainbits = tiaA_gainbits_rev4;
16751 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
16752
16753 rfseq_init_gain =
16754 rfseqA_init_gain_rev4_elna;
16755 init_gaincode =
16756 initA_gaincode_rev4_elna;
16757 } else {
16758 rfseq_init_gain = rfseqA_init_gain_rev4;
16759 init_gaincode = initA_gaincode_rev4;
16760 }
16761 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16762 clip1md_gaincode = clip1mdA_gaincode_rev4;
16763 clip1lo_gaincode = clip1loA_gaincode_rev4;
16764 crsmin_th = crsminA_th_rev4;
16765 crsminl_th = crsminlA_th_rev4;
16766 crsminu_th = crsminuA_th_rev4;
16767 nbclip_th = nbclipA_th_rev4;
16768 rssi_gain = rssi_gain_default;
16769 } else {
16770 lna1_gain_db = lna1A_gain_db;
16771 lna2_gain_db = lna2A_gain_db;
16772 tia_gain_db = tiaA_gain_db;
16773 tia_gainbits = tiaA_gainbits;
16774 rfseq_init_gain = rfseqA_init_gain;
16775 init_gaincode = initA_gaincode;
16776 clip1hi_gaincode = clip1hiA_gaincode;
16777 clip1md_gaincode = clip1mdA_gaincode;
16778 clip1lo_gaincode = clip1loA_gaincode;
16779 crsmin_th = crsminA_th;
16780 crsminl_th = crsminlA_th;
16781 crsminu_th = crsminuA_th;
16782 nbclip_th = nbclipA_th;
16783 rssi_gain = rssi_gain_default;
16784 }
16785 w1clip_th = w1clipA_th;
16786 }
16787
16788 write_radio_reg(pi,
16789 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16790 RADIO_2056_RX0), 0x17);
16791 write_radio_reg(pi,
16792 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16793 RADIO_2056_RX1), 0x17);
16794
16795 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16796 0xf0);
16797 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16798 0xf0);
16799
16800 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16801 0x0);
16802 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16803 0x0);
16804
16805 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16806 rssi_gain);
16807 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16808 rssi_gain);
16809
16810 write_radio_reg(pi,
16811 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16812 RADIO_2056_RX0), 0x17);
16813 write_radio_reg(pi,
16814 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16815 RADIO_2056_RX1), 0x17);
16816
16817 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16818 0xFF);
16819 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16820 0xFF);
16821
16822 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16823 8, lna1_gain_db);
16824 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16825 8, lna1_gain_db);
16826
16827 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16828 8, lna2_gain_db);
16829 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16830 8, lna2_gain_db);
16831
16832 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16833 8, tia_gain_db);
16834 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16835 8, tia_gain_db);
16836
16837 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16838 8, tia_gainbits);
16839 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16840 8, tia_gainbits);
16841
16842 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16843 8, &lpf_gain_db);
16844 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16845 8, &lpf_gain_db);
16846 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16847 8, &lpf_gainbits);
16848 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16849 8, &lpf_gainbits);
16850
16851 write_phy_reg(pi, 0x20, init_gaincode);
16852 write_phy_reg(pi, 0x2a7, init_gaincode);
16853
16854 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16855 pi->pubpi.phy_corenum, 0x106, 16,
16856 rfseq_init_gain);
16857
16858 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16859 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16860
16861 write_phy_reg(pi, 0x24, clip1md_gaincode);
16862 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16863
16864 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16865 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16866
16867 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16868 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16869 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16870
16871 write_phy_reg(pi, 0x2b, nbclip_th);
16872 write_phy_reg(pi, 0x41, nbclip_th);
16873
16874 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16875 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16876
16877 write_phy_reg(pi, 0x150, 0x809c);
16878
16879 } else {
16880
16881 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16882 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16883
16884 write_phy_reg(pi, 0x2b, 0x84);
16885 write_phy_reg(pi, 0x41, 0x84);
16886
16887 if (CHSPEC_IS20(pi->radio_chanspec)) {
16888 write_phy_reg(pi, 0x6b, 0x2b);
16889 write_phy_reg(pi, 0x6c, 0x2b);
16890 write_phy_reg(pi, 0x6d, 0x9);
16891 write_phy_reg(pi, 0x6e, 0x9);
16892 }
16893
16894 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16895 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16896 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16897
16898 if (CHSPEC_IS20(pi->radio_chanspec)) {
16899 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16900 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16901
16902 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16903 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16904 }
16905
16906 write_phy_reg(pi, 0x150, 0x809c);
16907
16908 if (pi->nphy_gain_boost)
16909 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16910 (CHSPEC_IS40(pi->radio_chanspec)))
16911 hpf_code = 4;
16912 else
16913 hpf_code = 5;
16914 else if (CHSPEC_IS40(pi->radio_chanspec))
16915 hpf_code = 6;
16916 else
16917 hpf_code = 7;
16918
16919 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16920 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16921
16922 for (ctr = 0; ctr < 4; ctr++) {
16923 regval[ctr] = (hpf_code << 8) | 0x7c;
16924 }
16925 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16926
16927 wlc_phy_adjust_lnagaintbl_nphy(pi);
16928
16929 if (pi->nphy_elna_gain_config) {
16930 regval[0] = 0;
16931 regval[1] = 1;
16932 regval[2] = 1;
16933 regval[3] = 1;
16934 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16935 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16936
16937 for (ctr = 0; ctr < 4; ctr++) {
16938 regval[ctr] = (hpf_code << 8) | 0x74;
16939 }
16940 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16941 }
16942
16943 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16944 for (ctr = 0; ctr < 21; ctr++) {
16945 regval[ctr] = 3 * ctr;
16946 }
16947 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16948 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16949
16950 for (ctr = 0; ctr < 21; ctr++) {
7d4df48e 16951 regval[ctr] = (u16) ctr;
a9533e7e
HP
16952 }
16953 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16954 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16955 }
16956
16957 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16958 rfseq_updategainu_events,
16959 rfseq_updategainu_dlys,
16960 sizeof(rfseq_updategainu_events) /
16961 sizeof(rfseq_updategainu_events[0]));
16962
16963 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16964
16965 if (CHSPEC_IS2G(pi->radio_chanspec))
16966 mod_phy_reg(pi,
16967 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16968 0x7f, 0x4);
16969 }
16970}
16971
7cc4a4c0 16972static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi)
a9533e7e 16973{
562c8850
GKH
16974 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
16975 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
16976 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
16977 s8 tia_gainbits[] = {
e5c4536f 16978 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
a9533e7e
HP
16979
16980 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16981 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16982
16983 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
16984
16985 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
16986 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
16987
16988 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
16989 lna1_gain_db);
16990 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16991 lna1_gain_db);
16992
16993 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16994 lna2_gain_db);
16995 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16996 lna2_gain_db);
16997
16998 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16999 tia_gain_db);
17000 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17001 tia_gain_db);
17002
17003 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17004 tia_gainbits);
17005 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17006 tia_gainbits);
17007
17008 write_phy_reg(pi, 0x37, 0x74);
17009 write_phy_reg(pi, 0x2ad, 0x74);
17010 write_phy_reg(pi, 0x38, 0x18);
17011 write_phy_reg(pi, 0x2ae, 0x18);
17012
17013 write_phy_reg(pi, 0x2b, 0xe8);
17014 write_phy_reg(pi, 0x41, 0xe8);
17015
17016 if (CHSPEC_IS20(pi->radio_chanspec)) {
17017
17018 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
17019 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
17020 } else {
17021
17022 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
17023 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
17024 }
17025}
17026
7cc4a4c0 17027static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi)
a9533e7e 17028{
7d4df48e 17029 u16 currband;
562c8850
GKH
17030 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
17031 s8 *lna1_gain_db = NULL;
17032 s8 *lna1_gain_db_2 = NULL;
17033 s8 *lna2_gain_db = NULL;
17034 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17035 s8 *tia_gain_db;
17036 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17037 s8 *tia_gainbits;
7d4df48e
GKH
17038 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17039 u16 *rfseq_init_gain;
17040 u16 init_gaincode;
17041 u16 clip1hi_gaincode;
17042 u16 clip1md_gaincode = 0;
17043 u16 clip1md_gaincode_B;
17044 u16 clip1lo_gaincode;
17045 u16 clip1lo_gaincode_B;
e868ab03
GKH
17046 u8 crsminl_th = 0;
17047 u8 crsminu_th;
7d4df48e 17048 u16 nbclip_th = 0;
e868ab03 17049 u8 w1clip_th;
7d4df48e 17050 u16 freq;
562c8850 17051 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
e868ab03 17052 u8 chg_nbclip_th = 0;
a9533e7e
HP
17053
17054 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
17055 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
17056
17057 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
17058 if (currband == 0) {
17059
17060 lna1_gain_db = lna1G_gain_db_rev7;
17061
17062 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17063 lna1_gain_db);
17064 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17065 lna1_gain_db);
17066
17067 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
17068
17069 if (CHSPEC_IS40(pi->radio_chanspec)) {
17070 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
17071 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
17072 }
17073
17074 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
17075
17076 if (CHSPEC_IS20(pi->radio_chanspec)) {
17077 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
17078 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
17079 }
17080 } else {
17081
17082 init_gaincode = 0x9e;
17083 clip1hi_gaincode = 0x9e;
17084 clip1md_gaincode_B = 0x24;
17085 clip1lo_gaincode = 0x8a;
17086 clip1lo_gaincode_B = 8;
17087 rfseq_init_gain = rfseqA_init_gain_rev7;
17088
17089 tia_gain_db = tiaA_gain_db_rev7;
17090 tia_gainbits = tiaA_gainbits_rev7;
17091
17092 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
17093 if (CHSPEC_IS20(pi->radio_chanspec)) {
17094
17095 w1clip_th = 25;
17096 clip1md_gaincode = 0x82;
17097
17098 if ((freq <= 5080) || (freq == 5825)) {
17099
562c8850
GKH
17100 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
17101 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17102 11, 17, 22, 25 };
562c8850 17103 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
a9533e7e
HP
17104
17105 crsminu_th = 0x3e;
17106 lna1_gain_db = lna1A_gain_db_rev7;
17107 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17108 lna2_gain_db = lna2A_gain_db_rev7;
17109 } else if ((freq >= 5500) && (freq <= 5700)) {
17110
562c8850
GKH
17111 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
17112 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17113 12, 18, 22, 26 };
562c8850 17114 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
a9533e7e
HP
17115
17116 crsminu_th = 0x45;
17117 clip1md_gaincode_B = 0x14;
17118 nbclip_th = 0xff;
17119 chg_nbclip_th = 1;
17120 lna1_gain_db = lna1A_gain_db_rev7;
17121 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17122 lna2_gain_db = lna2A_gain_db_rev7;
17123 } else {
17124
562c8850
GKH
17125 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
17126 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17127 12, 18, 22, 26 };
562c8850 17128 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
a9533e7e
HP
17129
17130 crsminu_th = 0x41;
17131 lna1_gain_db = lna1A_gain_db_rev7;
17132 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17133 lna2_gain_db = lna2A_gain_db_rev7;
17134 }
17135
17136 if (freq <= 4920) {
17137 nvar_baseline_offset0 = 5;
17138 nvar_baseline_offset1 = 5;
17139 } else if ((freq > 4920) && (freq <= 5320)) {
17140 nvar_baseline_offset0 = 3;
17141 nvar_baseline_offset1 = 5;
17142 } else if ((freq > 5320) && (freq <= 5700)) {
17143 nvar_baseline_offset0 = 3;
17144 nvar_baseline_offset1 = 2;
17145 } else {
17146 nvar_baseline_offset0 = 4;
17147 nvar_baseline_offset1 = 0;
17148 }
17149 } else {
17150
17151 crsminu_th = 0x3a;
17152 crsminl_th = 0x3a;
17153 w1clip_th = 20;
17154
17155 if ((freq >= 4920) && (freq <= 5320)) {
17156 nvar_baseline_offset0 = 4;
17157 nvar_baseline_offset1 = 5;
17158 } else if ((freq > 5320) && (freq <= 5550)) {
17159 nvar_baseline_offset0 = 4;
17160 nvar_baseline_offset1 = 2;
17161 } else {
17162 nvar_baseline_offset0 = 5;
17163 nvar_baseline_offset1 = 3;
17164 }
17165 }
17166
17167 write_phy_reg(pi, 0x20, init_gaincode);
17168 write_phy_reg(pi, 0x2a7, init_gaincode);
17169
17170 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
17171 pi->pubpi.phy_corenum, 0x106, 16,
17172 rfseq_init_gain);
17173
17174 write_phy_reg(pi, 0x22, clip1hi_gaincode);
17175 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
17176
17177 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
17178 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
17179
17180 write_phy_reg(pi, 0x37, clip1lo_gaincode);
17181 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
17182 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
17183 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
17184
17185 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
17186 tia_gain_db);
17187 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17188 tia_gain_db);
17189
17190 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17191 tia_gainbits);
17192 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17193 tia_gainbits);
17194
17195 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
17196
17197 if (chg_nbclip_th == 1) {
17198 write_phy_reg(pi, 0x2b, nbclip_th);
17199 write_phy_reg(pi, 0x41, nbclip_th);
17200 }
17201
17202 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
17203 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
17204
17205 mod_phy_reg(pi, 0x2e4,
17206 (0x3f << 0), (nvar_baseline_offset0 << 0));
17207
17208 mod_phy_reg(pi, 0x2e4,
17209 (0x3f << 6), (nvar_baseline_offset1 << 6));
17210
17211 if (CHSPEC_IS20(pi->radio_chanspec)) {
17212
17213 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17214 lna1_gain_db);
17215 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17216 lna1_gain_db_2);
17217
17218 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17219 8, lna2_gain_db);
17220 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17221 8, lna2_gain_db);
17222
17223 write_phy_reg(pi, 0x24, clip1md_gaincode);
17224 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17225 } else {
17226 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17227 }
17228
17229 }
17230
17231}
17232
7cc4a4c0 17233static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi)
a9533e7e
HP
17234{
17235 uint core;
17236 int ctr;
e59fe083 17237 s16 gain_delta[2];
e868ab03 17238 u8 curr_channel;
7d4df48e
GKH
17239 u16 minmax_gain[2];
17240 u16 regval[4];
a9533e7e
HP
17241
17242 if (pi->phyhang_avoid)
0f0881b0 17243 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
17244
17245 if (pi->nphy_gain_boost) {
17246 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
17247
17248 gain_delta[0] = 6;
17249 gain_delta[1] = 6;
17250 } else {
17251
17252 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17253 gain_delta[0] =
e59fe083 17254 (s16)
a9533e7e
HP
17255 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17256 curr_channel) +
17257 nphy_lnagain_est0[1]), 13);
17258 gain_delta[1] =
e59fe083 17259 (s16)
a9533e7e
HP
17260 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17261 curr_channel) +
17262 nphy_lnagain_est1[1]), 13);
17263 }
17264 } else {
17265
17266 gain_delta[0] = 0;
17267 gain_delta[1] = 0;
17268 }
17269
17270 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17271 if (pi->nphy_elna_gain_config) {
17272
17273 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
17274 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
17275 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
17276 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
17277 } else {
17278 for (ctr = 0; ctr < 4; ctr++) {
17279 regval[ctr] =
17280 nphy_def_lnagains[ctr] + gain_delta[core];
17281 }
17282 }
17283 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
17284
17285 minmax_gain[core] =
7d4df48e 17286 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
a9533e7e
HP
17287 }
17288
17289 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
17290 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
17291
17292 if (pi->phyhang_avoid)
0965ae88 17293 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
17294}
17295
7cc4a4c0 17296void wlc_phy_switch_radio_nphy(phy_info_t *pi, bool on)
a9533e7e
HP
17297{
17298 if (on) {
17299 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17300 if (!pi->radio_is_on) {
17301 wlc_phy_radio_preinit_205x(pi);
17302 wlc_phy_radio_init_2057(pi);
17303 wlc_phy_radio_postinit_2057(pi);
17304 }
17305
17306 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17307 pi->radio_chanspec);
17308 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17309 wlc_phy_radio_preinit_205x(pi);
17310 wlc_phy_radio_init_2056(pi);
17311 wlc_phy_radio_postinit_2056(pi);
17312
17313 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17314 pi->radio_chanspec);
17315 } else {
17316 wlc_phy_radio_preinit_2055(pi);
17317 wlc_phy_radio_init_2055(pi);
17318 wlc_phy_radio_postinit_2055(pi);
17319 }
17320
0f0881b0 17321 pi->radio_is_on = true;
a9533e7e
HP
17322
17323 } else {
17324
17325 if (NREV_GE(pi->pubpi.phy_rev, 3)
17326 && NREV_LT(pi->pubpi.phy_rev, 7)) {
17327 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17328 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
17329
17330 write_radio_reg(pi,
17331 RADIO_2056_TX_PADA_BOOST_TUNE |
17332 RADIO_2056_TX0, 0);
17333 write_radio_reg(pi,
17334 RADIO_2056_TX_PADG_BOOST_TUNE |
17335 RADIO_2056_TX0, 0);
17336 write_radio_reg(pi,
17337 RADIO_2056_TX_PGAA_BOOST_TUNE |
17338 RADIO_2056_TX0, 0);
17339 write_radio_reg(pi,
17340 RADIO_2056_TX_PGAG_BOOST_TUNE |
17341 RADIO_2056_TX0, 0);
17342 mod_radio_reg(pi,
17343 RADIO_2056_TX_MIXA_BOOST_TUNE |
17344 RADIO_2056_TX0, 0xf0, 0);
17345 write_radio_reg(pi,
17346 RADIO_2056_TX_MIXG_BOOST_TUNE |
17347 RADIO_2056_TX0, 0);
17348
17349 write_radio_reg(pi,
17350 RADIO_2056_TX_PADA_BOOST_TUNE |
17351 RADIO_2056_TX1, 0);
17352 write_radio_reg(pi,
17353 RADIO_2056_TX_PADG_BOOST_TUNE |
17354 RADIO_2056_TX1, 0);
17355 write_radio_reg(pi,
17356 RADIO_2056_TX_PGAA_BOOST_TUNE |
17357 RADIO_2056_TX1, 0);
17358 write_radio_reg(pi,
17359 RADIO_2056_TX_PGAG_BOOST_TUNE |
17360 RADIO_2056_TX1, 0);
17361 mod_radio_reg(pi,
17362 RADIO_2056_TX_MIXA_BOOST_TUNE |
17363 RADIO_2056_TX1, 0xf0, 0);
17364 write_radio_reg(pi,
17365 RADIO_2056_TX_MIXG_BOOST_TUNE |
17366 RADIO_2056_TX1, 0);
17367
0965ae88 17368 pi->radio_is_on = false;
a9533e7e
HP
17369 }
17370
17371 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
17372 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
0965ae88 17373 pi->radio_is_on = false;
a9533e7e
HP
17374 }
17375
17376 }
17377}
17378
7cc4a4c0 17379static void wlc_phy_radio_preinit_2055(phy_info_t *pi)
a9533e7e
HP
17380{
17381
17382 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
17383 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
17384
17385 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
17386}
17387
7cc4a4c0 17388static void wlc_phy_radio_init_2055(phy_info_t *pi)
a9533e7e
HP
17389{
17390 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
17391}
17392
7cc4a4c0 17393static void wlc_phy_radio_postinit_2055(phy_info_t *pi)
a9533e7e
HP
17394{
17395
17396 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
17397 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
17398
17399 if (((pi->sh->sromrev >= 4)
17400 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
17401 || ((pi->sh->sromrev < 4))) {
17402 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
17403 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
17404 }
17405
17406 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
17407 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
17408
17409 and_radio_reg(pi, RADIO_2055_CAL_MISC,
17410 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
17411
17412 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
17413
17414 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
17415
7383141b 17416 udelay(1000);
a9533e7e
HP
17417
17418 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
17419
17420 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17421 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
17422
17423 ASSERT((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17424 RADIO_2055_RCAL_DONE) == RADIO_2055_RCAL_DONE);
17425
17426 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
17427 ~(RADIO_2055_CAL_LPO_ENABLE));
17428
17429 wlc_phy_chanspec_set((wlc_phy_t *) pi, pi->radio_chanspec);
17430
17431 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
17432 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
17433
17434 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
17435 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
17436
17437 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
17438 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17439 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
17440 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17441 if (pi->nphy_gain_boost) {
17442 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17443 ~(RADIO_2055_GAINBST_DISABLE));
17444 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17445 ~(RADIO_2055_GAINBST_DISABLE));
17446 } else {
17447 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17448 RADIO_2055_GAINBST_DISABLE);
17449 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17450 RADIO_2055_GAINBST_DISABLE);
17451 }
17452
7383141b 17453 udelay(2);
a9533e7e
HP
17454}
17455
7cc4a4c0 17456static void wlc_phy_radio_preinit_205x(phy_info_t *pi)
a9533e7e
HP
17457{
17458
17459 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17460 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
17461
17462 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
17463 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
17464
17465}
17466
7cc4a4c0 17467static void wlc_phy_radio_init_2056(phy_info_t *pi)
a9533e7e
HP
17468{
17469 radio_regs_t *regs_SYN_2056_ptr = NULL;
17470 radio_regs_t *regs_TX_2056_ptr = NULL;
17471 radio_regs_t *regs_RX_2056_ptr = NULL;
17472
17473 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17474 regs_SYN_2056_ptr = regs_SYN_2056;
17475 regs_TX_2056_ptr = regs_TX_2056;
17476 regs_RX_2056_ptr = regs_RX_2056;
17477 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17478 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17479 regs_TX_2056_ptr = regs_TX_2056_A1;
17480 regs_RX_2056_ptr = regs_RX_2056_A1;
17481 } else {
17482 switch (pi->pubpi.radiorev) {
17483 case 5:
17484 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17485 regs_TX_2056_ptr = regs_TX_2056_rev5;
17486 regs_RX_2056_ptr = regs_RX_2056_rev5;
17487 break;
17488
17489 case 6:
17490 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17491 regs_TX_2056_ptr = regs_TX_2056_rev6;
17492 regs_RX_2056_ptr = regs_RX_2056_rev6;
17493 break;
17494
17495 case 7:
17496 case 9:
17497 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17498 regs_TX_2056_ptr = regs_TX_2056_rev7;
17499 regs_RX_2056_ptr = regs_RX_2056_rev7;
17500 break;
17501
17502 case 8:
17503 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17504 regs_TX_2056_ptr = regs_TX_2056_rev8;
17505 regs_RX_2056_ptr = regs_RX_2056_rev8;
17506 break;
17507
17508 case 11:
17509 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17510 regs_TX_2056_ptr = regs_TX_2056_rev11;
17511 regs_RX_2056_ptr = regs_RX_2056_rev11;
17512 break;
17513
17514 default:
17515 ASSERT(0);
17516 break;
17517 }
17518 }
17519
7d4df48e 17520 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
a9533e7e 17521
7d4df48e 17522 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
a9533e7e 17523
7d4df48e 17524 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
a9533e7e 17525
7d4df48e 17526 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
a9533e7e 17527
7d4df48e 17528 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
a9533e7e
HP
17529}
17530
7cc4a4c0 17531static void wlc_phy_radio_postinit_2056(phy_info_t *pi)
a9533e7e
HP
17532{
17533 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
17534
17535 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
17536 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
7383141b 17537 udelay(1000);
a9533e7e
HP
17538 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
17539
17540 if ((pi->sh->boardflags2 & BFL2_LEGACY)
17541 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN)) {
17542
17543 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
17544 } else {
17545
17546 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
17547 }
17548
17549 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
17550
17551 if (pi->phy_init_por) {
17552 wlc_phy_radio205x_rcal(pi);
17553 }
17554}
17555
7cc4a4c0 17556static void wlc_phy_radio_init_2057(phy_info_t *pi)
a9533e7e
HP
17557{
17558 radio_20xx_regs_t *regs_2057_ptr = NULL;
17559
17560 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17561
17562 regs_2057_ptr = regs_2057_rev4;
17563 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17564 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17565 switch (pi->pubpi.radiorev) {
17566 case 5:
17567
17568 if (pi->pubpi.radiover == 0x0) {
17569
17570 regs_2057_ptr = regs_2057_rev5;
17571
17572 } else if (pi->pubpi.radiover == 0x1) {
17573
17574 regs_2057_ptr = regs_2057_rev5v1;
17575 } else {
17576 ASSERT(0);
17577 break;
17578 }
17579
17580 case 7:
17581
17582 regs_2057_ptr = regs_2057_rev7;
17583 break;
17584
17585 case 8:
17586
17587 regs_2057_ptr = regs_2057_rev8;
17588 break;
17589
17590 default:
17591 ASSERT(0);
17592 break;
17593 }
17594 } else {
17595 ASSERT(0);
17596 }
17597
17598 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
17599}
17600
7cc4a4c0 17601static void wlc_phy_radio_postinit_2057(phy_info_t *pi)
a9533e7e
HP
17602{
17603
17604 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
17605
17606 if (CHIPID(pi->sh->chip) == !BCM6362_CHIP_ID) {
17607
17608 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x2, 0x2);
17609 }
17610
17611 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
17612 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
7383141b 17613 mdelay(2);
a9533e7e
HP
17614 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
17615 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
17616
17617 if (pi->phy_init_por) {
17618 wlc_phy_radio205x_rcal(pi);
17619 wlc_phy_radio2057_rccal(pi);
17620 }
17621
17622 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
17623}
17624
17625static bool
7cc4a4c0
JC
17626wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
17627 chan_info_nphy_radio2057_t **t0,
17628 chan_info_nphy_radio205x_t **t1,
17629 chan_info_nphy_radio2057_rev5_t **t2,
17630 chan_info_nphy_2055_t **t3)
a9533e7e
HP
17631{
17632 uint i;
17633 chan_info_nphy_radio2057_t *chan_info_tbl_p_0 = NULL;
17634 chan_info_nphy_radio205x_t *chan_info_tbl_p_1 = NULL;
17635 chan_info_nphy_radio2057_rev5_t *chan_info_tbl_p_2 = NULL;
66cbd3ab 17636 u32 tbl_len = 0;
a9533e7e
HP
17637
17638 int freq = 0;
17639
17640 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17641
17642 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17643
17644 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
8d3d6a69 17645 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
a9533e7e
HP
17646
17647 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17648 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17649 switch (pi->pubpi.radiorev) {
17650
17651 case 5:
17652
17653 if (pi->pubpi.radiover == 0x0) {
17654
17655 chan_info_tbl_p_2 =
17656 chan_info_nphyrev8_2057_rev5;
17657 tbl_len =
8d3d6a69 17658 ARRAY_SIZE
a9533e7e
HP
17659 (chan_info_nphyrev8_2057_rev5);
17660
17661 } else if (pi->pubpi.radiover == 0x1) {
17662
17663 chan_info_tbl_p_2 =
17664 chan_info_nphyrev9_2057_rev5v1;
17665 tbl_len =
8d3d6a69 17666 ARRAY_SIZE
a9533e7e
HP
17667 (chan_info_nphyrev9_2057_rev5v1);
17668
17669 }
17670 break;
17671
17672 case 7:
17673 chan_info_tbl_p_0 =
17674 chan_info_nphyrev8_2057_rev7;
17675 tbl_len =
8d3d6a69 17676 ARRAY_SIZE(chan_info_nphyrev8_2057_rev7);
a9533e7e
HP
17677 break;
17678
17679 case 8:
17680 chan_info_tbl_p_0 =
17681 chan_info_nphyrev8_2057_rev8;
17682 tbl_len =
8d3d6a69 17683 ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
a9533e7e
HP
17684 break;
17685
17686 default:
17687 if (NORADIO_ENAB(pi->pubpi)) {
17688 goto fail;
17689 }
17690 break;
17691 }
17692 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
17693
17694 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
8d3d6a69 17695 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
a9533e7e
HP
17696 } else {
17697 goto fail;
17698 }
17699
17700 for (i = 0; i < tbl_len; i++) {
17701 if (pi->pubpi.radiorev == 5) {
17702
17703 if (chan_info_tbl_p_2[i].chan == channel)
17704 break;
17705 } else {
17706
17707 if (chan_info_tbl_p_0[i].chan == channel)
17708 break;
17709 }
17710 }
17711
17712 if (i >= tbl_len) {
17713 ASSERT(i < tbl_len);
17714 goto fail;
17715 }
17716 if (pi->pubpi.radiorev == 5) {
17717 *t2 = &chan_info_tbl_p_2[i];
17718 freq = chan_info_tbl_p_2[i].freq;
17719 } else {
17720 *t0 = &chan_info_tbl_p_0[i];
17721 freq = chan_info_tbl_p_0[i].freq;
17722 }
17723
17724 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17725 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17726 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
8d3d6a69 17727 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
a9533e7e
HP
17728 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17729 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
8d3d6a69 17730 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
a9533e7e
HP
17731 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
17732 || NREV_IS(pi->pubpi.phy_rev, 6)) {
17733 switch (pi->pubpi.radiorev) {
17734 case 5:
17735 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
8d3d6a69 17736 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
a9533e7e
HP
17737 break;
17738 case 6:
17739 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
8d3d6a69 17740 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
a9533e7e
HP
17741 break;
17742 case 7:
17743 case 9:
17744 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17745 tbl_len =
8d3d6a69 17746 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
a9533e7e
HP
17747 break;
17748 case 8:
17749 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
8d3d6a69 17750 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
a9533e7e
HP
17751 break;
17752 case 11:
17753 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
8d3d6a69 17754 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v11);
a9533e7e
HP
17755 break;
17756 default:
17757 if (NORADIO_ENAB(pi->pubpi)) {
17758 goto fail;
17759 }
17760 break;
17761 }
17762 }
17763
17764 for (i = 0; i < tbl_len; i++) {
17765 if (chan_info_tbl_p_1[i].chan == channel)
17766 break;
17767 }
17768
17769 if (i >= tbl_len) {
17770 ASSERT(i < tbl_len);
17771 goto fail;
17772 }
17773 *t1 = &chan_info_tbl_p_1[i];
17774 freq = chan_info_tbl_p_1[i].freq;
17775
17776 } else {
8d3d6a69 17777 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
a9533e7e
HP
17778 if (chan_info_nphy_2055[i].chan == channel)
17779 break;
17780
8d3d6a69
GKH
17781 if (i >= ARRAY_SIZE(chan_info_nphy_2055)) {
17782 ASSERT(i < ARRAY_SIZE(chan_info_nphy_2055));
a9533e7e
HP
17783 goto fail;
17784 }
17785 *t3 = &chan_info_nphy_2055[i];
17786 freq = chan_info_nphy_2055[i].freq;
17787 }
17788
17789 *f = freq;
0f0881b0 17790 return true;
a9533e7e
HP
17791
17792 fail:
17793 *f = WL_CHAN_FREQ_RANGE_2G;
0965ae88 17794 return false;
a9533e7e
HP
17795}
17796
e868ab03 17797u8 wlc_phy_get_chan_freq_range_nphy(phy_info_t *pi, uint channel)
a9533e7e
HP
17798{
17799 int freq;
17800 chan_info_nphy_radio2057_t *t0 = NULL;
17801 chan_info_nphy_radio205x_t *t1 = NULL;
17802 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
17803 chan_info_nphy_2055_t *t3 = NULL;
17804
17805 if (NORADIO_ENAB(pi->pubpi))
17806 return WL_CHAN_FREQ_RANGE_2G;
17807
17808 if (channel == 0)
17809 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17810
17811 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
17812
17813 if (CHSPEC_IS2G(pi->radio_chanspec))
17814 return WL_CHAN_FREQ_RANGE_2G;
17815
17816 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN)) {
17817 return WL_CHAN_FREQ_RANGE_5GL;
17818 } else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN)) {
17819 return WL_CHAN_FREQ_RANGE_5GM;
17820 } else {
17821 return WL_CHAN_FREQ_RANGE_5GH;
17822 }
17823}
17824
17825static void
7cc4a4c0 17826wlc_phy_chanspec_radio2055_setup(phy_info_t *pi, chan_info_nphy_2055_t *ci)
a9533e7e
HP
17827{
17828
17829 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
17830 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
17831 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
17832 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
17833
17834 WLC_PHY_WAR_PR51571(pi);
17835
17836 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
17837 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
17838 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
17839 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
17840
17841 WLC_PHY_WAR_PR51571(pi);
17842
17843 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
17844 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
17845 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
17846 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
17847
17848 WLC_PHY_WAR_PR51571(pi);
17849
17850 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
17851 ci->RF_core1_lgbuf_a_tune);
17852 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
17853 ci->RF_core1_lgbuf_g_tune);
17854 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
17855 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
17856 ci->RF_core1_tx_pga_pad_tn);
17857
17858 WLC_PHY_WAR_PR51571(pi);
17859
17860 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
17861 ci->RF_core1_tx_mx_bgtrim);
17862 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
17863 ci->RF_core2_lgbuf_a_tune);
17864 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
17865 ci->RF_core2_lgbuf_g_tune);
17866 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
17867
17868 WLC_PHY_WAR_PR51571(pi);
17869
17870 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
17871 ci->RF_core2_tx_pga_pad_tn);
17872 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
17873 ci->RF_core2_tx_mx_bgtrim);
17874
7383141b 17875 udelay(50);
a9533e7e
HP
17876
17877 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
17878 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
17879
17880 WLC_PHY_WAR_PR51571(pi);
17881
17882 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
17883
7383141b 17884 udelay(300);
a9533e7e
HP
17885}
17886
17887static void
7cc4a4c0
JC
17888wlc_phy_chanspec_radio2056_setup(phy_info_t *pi,
17889 const chan_info_nphy_radio205x_t *ci)
a9533e7e
HP
17890{
17891 radio_regs_t *regs_SYN_2056_ptr = NULL;
17892
17893 write_radio_reg(pi,
17894 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
17895 ci->RF_SYN_pll_vcocal1);
17896 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
17897 ci->RF_SYN_pll_vcocal2);
17898 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
17899 ci->RF_SYN_pll_refdiv);
17900 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
17901 ci->RF_SYN_pll_mmd2);
17902 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
17903 ci->RF_SYN_pll_mmd1);
17904 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17905 ci->RF_SYN_pll_loopfilter1);
17906 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17907 ci->RF_SYN_pll_loopfilter2);
17908 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
17909 ci->RF_SYN_pll_loopfilter3);
17910 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17911 ci->RF_SYN_pll_loopfilter4);
17912 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
17913 ci->RF_SYN_pll_loopfilter5);
17914 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
17915 ci->RF_SYN_reserved_addr27);
17916 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
17917 ci->RF_SYN_reserved_addr28);
17918 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
17919 ci->RF_SYN_reserved_addr29);
17920 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
17921 ci->RF_SYN_logen_VCOBUF1);
17922 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
17923 ci->RF_SYN_logen_MIXER2);
17924 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
17925 ci->RF_SYN_logen_BUF3);
17926 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
17927 ci->RF_SYN_logen_BUF4);
17928
17929 write_radio_reg(pi,
17930 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
17931 ci->RF_RX0_lnaa_tune);
17932 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
17933 ci->RF_RX0_lnag_tune);
17934 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
17935 ci->RF_TX0_intpaa_boost_tune);
17936 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
17937 ci->RF_TX0_intpag_boost_tune);
17938 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
17939 ci->RF_TX0_pada_boost_tune);
17940 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
17941 ci->RF_TX0_padg_boost_tune);
17942 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
17943 ci->RF_TX0_pgaa_boost_tune);
17944 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
17945 ci->RF_TX0_pgag_boost_tune);
17946 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
17947 ci->RF_TX0_mixa_boost_tune);
17948 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
17949 ci->RF_TX0_mixg_boost_tune);
17950
17951 write_radio_reg(pi,
17952 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
17953 ci->RF_RX1_lnaa_tune);
17954 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
17955 ci->RF_RX1_lnag_tune);
17956 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
17957 ci->RF_TX1_intpaa_boost_tune);
17958 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
17959 ci->RF_TX1_intpag_boost_tune);
17960 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
17961 ci->RF_TX1_pada_boost_tune);
17962 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
17963 ci->RF_TX1_padg_boost_tune);
17964 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
17965 ci->RF_TX1_pgaa_boost_tune);
17966 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
17967 ci->RF_TX1_pgag_boost_tune);
17968 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
17969 ci->RF_TX1_mixa_boost_tune);
17970 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
17971 ci->RF_TX1_mixg_boost_tune);
17972
17973 if (NREV_IS(pi->pubpi.phy_rev, 3))
17974 regs_SYN_2056_ptr = regs_SYN_2056;
17975 else if (NREV_IS(pi->pubpi.phy_rev, 4))
17976 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17977 else {
17978 switch (pi->pubpi.radiorev) {
17979 case 5:
17980 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17981 break;
17982 case 6:
17983 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17984 break;
17985 case 7:
17986 case 9:
17987 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17988 break;
17989 case 8:
17990 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17991 break;
17992 case 11:
17993 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17994 break;
17995 }
17996 }
17997 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17998 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17999 RADIO_2056_SYN,
7d4df48e 18000 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
a9533e7e
HP
18001 } else {
18002 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18003 RADIO_2056_SYN,
7d4df48e 18004 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
a9533e7e
HP
18005 }
18006
18007 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
18008 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18009 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18010 RADIO_2056_SYN, 0x1f);
18011 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18012 RADIO_2056_SYN, 0x1f);
18013
18014 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
18015 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID)) {
18016
18017 write_radio_reg(pi,
18018 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18019 RADIO_2056_SYN, 0x14);
18020 write_radio_reg(pi,
18021 RADIO_2056_SYN_PLL_CP2 |
18022 RADIO_2056_SYN, 0x00);
18023 } else {
18024 write_radio_reg(pi,
18025 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18026 RADIO_2056_SYN, 0xb);
18027 write_radio_reg(pi,
18028 RADIO_2056_SYN_PLL_CP2 |
18029 RADIO_2056_SYN, 0x14);
18030 }
18031 }
18032 }
18033
18034 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
18035 (CHSPEC_IS2G(pi->radio_chanspec))) {
18036 write_radio_reg(pi,
18037 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
18038 0x1f);
18039 write_radio_reg(pi,
18040 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
18041 0x1f);
18042 write_radio_reg(pi,
18043 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
18044 0xb);
18045 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
18046 0x20);
18047 }
18048
18049 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
18050 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18051 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18052 RADIO_2056_SYN, 0x1f);
18053 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18054 RADIO_2056_SYN, 0x1f);
18055 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
18056 RADIO_2056_SYN, 0x5);
18057 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18058 RADIO_2056_SYN, 0xc);
18059 }
18060 }
18061
18062 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
7d4df48e
GKH
18063 u16 pag_boost_tune;
18064 u16 padg_boost_tune;
18065 u16 pgag_boost_tune;
18066 u16 mixg_boost_tune;
18067 u16 bias, cascbias;
a9533e7e
HP
18068 uint core;
18069
18070 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18071
18072 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
18073
18074 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18075 PADG_IDAC, 0xcc);
18076
18077 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
18078 (CHIPID(pi->sh->chip) ==
18079 BCM47162_CHIP_ID)) {
18080 bias = 0x40;
18081 cascbias = 0x45;
18082 pag_boost_tune = 0x5;
18083 pgag_boost_tune = 0x33;
18084 padg_boost_tune = 0x77;
18085 mixg_boost_tune = 0x55;
18086 } else {
18087 bias = 0x25;
18088 cascbias = 0x20;
18089
18090 if ((CHIPID(pi->sh->chip) ==
18091 BCM43224_CHIP_ID)
18092 || (CHIPID(pi->sh->chip) ==
18093 BCM43225_CHIP_ID)
18094 || (CHIPID(pi->sh->chip) ==
18095 BCM43421_CHIP_ID)) {
18096 if (pi->sh->chippkg ==
18097 BCM43224_FAB_SMIC) {
18098 bias = 0x2a;
18099 cascbias = 0x38;
18100 }
18101 }
18102
18103 pag_boost_tune = 0x4;
18104 pgag_boost_tune = 0x03;
18105 padg_boost_tune = 0x77;
18106 mixg_boost_tune = 0x65;
18107 }
18108
18109 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18110 INTPAG_IMAIN_STAT, bias);
18111 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18112 INTPAG_IAUX_STAT, bias);
18113 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18114 INTPAG_CASCBIAS, cascbias);
18115
18116 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18117 INTPAG_BOOST_TUNE,
18118 pag_boost_tune);
18119 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18120 PGAG_BOOST_TUNE,
18121 pgag_boost_tune);
18122 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18123 PADG_BOOST_TUNE,
18124 padg_boost_tune);
18125 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18126 MIXG_BOOST_TUNE,
18127 mixg_boost_tune);
18128 } else {
18129
18130 bias = IS40MHZ(pi) ? 0x40 : 0x20;
18131
18132 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18133 INTPAG_IMAIN_STAT, bias);
18134 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18135 INTPAG_IAUX_STAT, bias);
18136 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18137 INTPAG_CASCBIAS, 0x30);
18138 }
18139 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
18140 0xee);
18141 }
18142 }
18143
18144 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
18145 && CHSPEC_IS5G(pi->radio_chanspec)) {
7d4df48e
GKH
18146 u16 paa_boost_tune;
18147 u16 pada_boost_tune;
18148 u16 pgaa_boost_tune;
18149 u16 mixa_boost_tune;
18150 u16 freq, pabias, cascbias;
a9533e7e
HP
18151 uint core;
18152
18153 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18154
18155 if (freq < 5150) {
18156
18157 paa_boost_tune = 0xa;
18158 pada_boost_tune = 0x77;
18159 pgaa_boost_tune = 0xf;
18160 mixa_boost_tune = 0xf;
18161 } else if (freq < 5340) {
18162
18163 paa_boost_tune = 0x8;
18164 pada_boost_tune = 0x77;
18165 pgaa_boost_tune = 0xfb;
18166 mixa_boost_tune = 0xf;
18167 } else if (freq < 5650) {
18168
18169 paa_boost_tune = 0x0;
18170 pada_boost_tune = 0x77;
18171 pgaa_boost_tune = 0xb;
18172 mixa_boost_tune = 0xf;
18173 } else {
18174
18175 paa_boost_tune = 0x0;
18176 pada_boost_tune = 0x77;
18177 if (freq != 5825) {
18178 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18179 } else {
18180 pgaa_boost_tune = 6;
18181 }
18182 mixa_boost_tune = 0xf;
18183 }
18184
18185 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18186 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18187 INTPAA_BOOST_TUNE, paa_boost_tune);
18188 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18189 PADA_BOOST_TUNE, pada_boost_tune);
18190 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18191 PGAA_BOOST_TUNE, pgaa_boost_tune);
18192 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18193 MIXA_BOOST_TUNE, mixa_boost_tune);
18194
18195 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18196 TXSPARE1, 0x30);
18197 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18198 PA_SPARE2, 0xee);
18199
18200 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18201 PADA_CASCBIAS, 0x3);
18202
18203 cascbias = 0x30;
18204
18205 if ((CHIPID(pi->sh->chip) == BCM43224_CHIP_ID) ||
18206 (CHIPID(pi->sh->chip) == BCM43225_CHIP_ID) ||
18207 (CHIPID(pi->sh->chip) == BCM43421_CHIP_ID)) {
18208 if (pi->sh->chippkg == BCM43224_FAB_SMIC) {
18209 cascbias = 0x35;
18210 }
18211 }
18212
18213 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
18214
18215 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18216 INTPAA_IAUX_STAT, pabias);
18217 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18218 INTPAA_IMAIN_STAT, pabias);
18219 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18220 INTPAA_CASCBIAS, cascbias);
18221 }
18222 }
18223
7383141b 18224 udelay(50);
a9533e7e
HP
18225
18226 wlc_phy_radio205x_vcocal_nphy(pi);
18227}
18228
7cc4a4c0 18229void wlc_phy_radio205x_vcocal_nphy(phy_info_t *pi)
a9533e7e
HP
18230{
18231 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18232 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
18233 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
18234 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
18235 (1 << 2));
18236 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
18237 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18238 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
18239 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18240 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
18241 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18242 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
18243 }
18244
7383141b 18245 udelay(300);
a9533e7e
HP
18246}
18247
18248#define MAX_205x_RCAL_WAITLOOPS 10000
18249
7d4df48e 18250static u16 wlc_phy_radio205x_rcal(phy_info_t *pi)
a9533e7e 18251{
7d4df48e 18252 u16 rcal_reg = 0;
a9533e7e
HP
18253 int i;
18254
18255 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18256
18257 if (pi->pubpi.radiorev == 5) {
18258
18259 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18260
7383141b 18261 udelay(10);
a9533e7e
HP
18262
18263 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18264 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18265 0x1);
18266 }
18267 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18268
7383141b 18269 udelay(10);
a9533e7e
HP
18270
18271 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
18272
18273 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18274 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
18275 if (rcal_reg & 0x1) {
18276 break;
18277 }
7383141b 18278 udelay(100);
a9533e7e
HP
18279 }
18280
18281 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18282
18283 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
18284
18285 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
18286
18287 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
18288 if (pi->pubpi.radiorev == 5) {
18289
18290 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
18291 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18292 0x0);
18293 }
18294
18295 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18296
18297 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18298 rcal_reg);
18299 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18300 rcal_reg << 2);
18301 }
18302
18303 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
7d4df48e 18304 u16 savereg;
a9533e7e
HP
18305
18306 savereg =
18307 read_radio_reg(pi,
18308 RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN);
18309 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18310 savereg | 0x7);
7383141b 18311 udelay(10);
a9533e7e
HP
18312
18313 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18314 0x1);
7383141b 18315 udelay(10);
a9533e7e
HP
18316
18317 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18318 0x9);
18319
18320 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18321 rcal_reg = read_radio_reg(pi,
18322 RADIO_2056_SYN_RCAL_CODE_OUT |
18323 RADIO_2056_SYN);
18324 if (rcal_reg & 0x80) {
18325 break;
18326 }
7383141b 18327 udelay(100);
a9533e7e
HP
18328 }
18329
18330 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18331
18332 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18333 0x1);
18334
18335 rcal_reg =
18336 read_radio_reg(pi,
18337 RADIO_2056_SYN_RCAL_CODE_OUT |
18338 RADIO_2056_SYN);
18339
18340 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18341 0x0);
18342
18343 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18344 savereg);
18345
90ea2296 18346 return rcal_reg & 0x1f;
a9533e7e 18347 }
90ea2296 18348 return rcal_reg & 0x3e;
a9533e7e
HP
18349}
18350
18351static void
7cc4a4c0
JC
18352wlc_phy_chanspec_radio2057_setup(phy_info_t *pi,
18353 const chan_info_nphy_radio2057_t *ci,
18354 const chan_info_nphy_radio2057_rev5_t *ci2)
a9533e7e
HP
18355{
18356 int coreNum;
7d4df48e
GKH
18357 u16 txmix2g_tune_boost_pu = 0;
18358 u16 pad2g_tune_pus = 0;
a9533e7e
HP
18359
18360 if (pi->pubpi.radiorev == 5) {
18361
18362 write_radio_reg(pi,
18363 RADIO_2057_VCOCAL_COUNTVAL0,
18364 ci2->RF_vcocal_countval0);
18365 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18366 ci2->RF_vcocal_countval1);
18367 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18368 ci2->RF_rfpll_refmaster_sparextalsize);
18369 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18370 ci2->RF_rfpll_loopfilter_r1);
18371 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18372 ci2->RF_rfpll_loopfilter_c2);
18373 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18374 ci2->RF_rfpll_loopfilter_c1);
18375 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
18376 ci2->RF_cp_kpd_idac);
18377 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
18378 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
18379 write_radio_reg(pi,
18380 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
18381 write_radio_reg(pi,
18382 RADIO_2057_LOGEN_MX2G_TUNE,
18383 ci2->RF_logen_mx2g_tune);
18384 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18385 ci2->RF_logen_indbuf2g_tune);
18386
18387 write_radio_reg(pi,
18388 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18389 ci2->RF_txmix2g_tune_boost_pu_core0);
18390 write_radio_reg(pi,
18391 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18392 ci2->RF_pad2g_tune_pus_core0);
18393 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18394 ci2->RF_lna2g_tune_core0);
18395
18396 write_radio_reg(pi,
18397 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18398 ci2->RF_txmix2g_tune_boost_pu_core1);
18399 write_radio_reg(pi,
18400 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18401 ci2->RF_pad2g_tune_pus_core1);
18402 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18403 ci2->RF_lna2g_tune_core1);
18404
18405 } else {
18406
18407 write_radio_reg(pi,
18408 RADIO_2057_VCOCAL_COUNTVAL0,
18409 ci->RF_vcocal_countval0);
18410 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18411 ci->RF_vcocal_countval1);
18412 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18413 ci->RF_rfpll_refmaster_sparextalsize);
18414 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18415 ci->RF_rfpll_loopfilter_r1);
18416 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18417 ci->RF_rfpll_loopfilter_c2);
18418 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18419 ci->RF_rfpll_loopfilter_c1);
18420 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
18421 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
18422 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
18423 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
18424 write_radio_reg(pi,
18425 RADIO_2057_LOGEN_MX2G_TUNE,
18426 ci->RF_logen_mx2g_tune);
18427 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
18428 ci->RF_logen_mx5g_tune);
18429 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18430 ci->RF_logen_indbuf2g_tune);
18431 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
18432 ci->RF_logen_indbuf5g_tune);
18433
18434 write_radio_reg(pi,
18435 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18436 ci->RF_txmix2g_tune_boost_pu_core0);
18437 write_radio_reg(pi,
18438 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18439 ci->RF_pad2g_tune_pus_core0);
18440 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
18441 ci->RF_pga_boost_tune_core0);
18442 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
18443 ci->RF_txmix5g_boost_tune_core0);
18444 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
18445 ci->RF_pad5g_tune_misc_pus_core0);
18446 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18447 ci->RF_lna2g_tune_core0);
18448 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
18449 ci->RF_lna5g_tune_core0);
18450
18451 write_radio_reg(pi,
18452 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18453 ci->RF_txmix2g_tune_boost_pu_core1);
18454 write_radio_reg(pi,
18455 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18456 ci->RF_pad2g_tune_pus_core1);
18457 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
18458 ci->RF_pga_boost_tune_core1);
18459 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
18460 ci->RF_txmix5g_boost_tune_core1);
18461 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
18462 ci->RF_pad5g_tune_misc_pus_core1);
18463 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18464 ci->RF_lna2g_tune_core1);
18465 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
18466 ci->RF_lna5g_tune_core1);
18467 }
18468
18469 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18470
18471 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18472 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18473 0x3f);
18474 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18475 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18476 0x8);
18477 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18478 0x8);
18479 } else {
18480 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18481 0x1f);
18482 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18483 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18484 0x8);
18485 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18486 0x8);
18487 }
18488 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
18489 (pi->pubpi.radiorev == 8)) {
18490
18491 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18492 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18493 0x1b);
18494 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18495 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18496 0xa);
18497 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18498 0xa);
18499 } else {
18500 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18501 0x1f);
18502 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18503 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18504 0x8);
18505 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18506 0x8);
18507 }
18508
18509 }
18510
18511 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18512 if (PHY_IPA(pi)) {
18513 if (pi->pubpi.radiorev == 3) {
18514 txmix2g_tune_boost_pu = 0x6b;
18515 }
18516
18517 if (pi->pubpi.radiorev == 5)
18518 pad2g_tune_pus = 0x73;
18519
18520 } else {
18521 if (pi->pubpi.radiorev != 5) {
18522 pad2g_tune_pus = 0x3;
18523
18524 txmix2g_tune_boost_pu = 0x61;
18525 }
18526 }
18527
18528 for (coreNum = 0; coreNum <= 1; coreNum++) {
18529
18530 if (txmix2g_tune_boost_pu != 0)
18531 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18532 TXMIX2G_TUNE_BOOST_PU,
18533 txmix2g_tune_boost_pu);
18534
18535 if (pad2g_tune_pus != 0)
18536 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18537 PAD2G_TUNE_PUS,
18538 pad2g_tune_pus);
18539 }
18540 }
18541
7383141b 18542 udelay(50);
a9533e7e
HP
18543
18544 wlc_phy_radio205x_vcocal_nphy(pi);
18545}
18546
7d4df48e 18547static u16 wlc_phy_radio2057_rccal(phy_info_t *pi)
a9533e7e 18548{
7d4df48e 18549 u16 rccal_valid;
a9533e7e
HP
18550 int i;
18551 bool chip43226_6362A0;
18552
18553 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18554 || (pi->pubpi.radiorev == 4)
18555 || (pi->pubpi.radiorev == 6));
18556
18557 rccal_valid = 0;
18558 if (chip43226_6362A0) {
18559 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18560 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18561 } else {
18562 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
18563
18564 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
18565 }
18566 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18567 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18568
18569 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18570 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18571 if (rccal_valid & 0x2) {
18572 break;
18573 }
7383141b 18574 udelay(500);
a9533e7e
HP
18575 }
18576
18577 ASSERT(rccal_valid & 0x2);
18578
18579 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18580
18581 rccal_valid = 0;
18582 if (chip43226_6362A0) {
18583 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18584 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18585 } else {
18586 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
18587
18588 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
18589 }
18590 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18591 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18592
18593 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18594 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18595 if (rccal_valid & 0x2) {
18596 break;
18597 }
7383141b 18598 udelay(500);
a9533e7e
HP
18599 }
18600
18601 ASSERT(rccal_valid & 0x2);
18602
18603 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18604
18605 rccal_valid = 0;
18606 if (chip43226_6362A0) {
18607 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
18608
18609 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
18610 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18611 } else {
18612 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
18613 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18614 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
18615 }
18616 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18617
18618 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18619 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18620 if (rccal_valid & 0x2) {
18621 break;
18622 }
7383141b 18623 udelay(500);
a9533e7e
HP
18624 }
18625
18626 ASSERT(rccal_valid & 0x2);
18627
18628 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18629
90ea2296 18630 return rccal_valid;
a9533e7e
HP
18631}
18632
18633static void
7d4df48e 18634wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi, u16 reduction_factr)
a9533e7e
HP
18635{
18636 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18637 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18638 CHSPEC_IS40(pi->radio_chanspec)) {
18639 if (!pi->nphy_anarxlpf_adjusted) {
18640 write_radio_reg(pi,
18641 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18642 RADIO_2056_RX0),
18643 ((pi->nphy_rccal_value +
18644 reduction_factr) | 0x80));
18645
0f0881b0 18646 pi->nphy_anarxlpf_adjusted = true;
a9533e7e
HP
18647 }
18648 } else {
18649 if (pi->nphy_anarxlpf_adjusted) {
18650 write_radio_reg(pi,
18651 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18652 RADIO_2056_RX0),
18653 (pi->nphy_rccal_value | 0x80));
18654
0965ae88 18655 pi->nphy_anarxlpf_adjusted = false;
a9533e7e
HP
18656 }
18657 }
18658 }
18659}
18660
18661static void
7cc4a4c0 18662wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *tone_id_buf,
66cbd3ab 18663 u32 *noise_var_buf)
a9533e7e
HP
18664{
18665 int i;
66cbd3ab 18666 u32 offset;
a9533e7e
HP
18667 int tone_id;
18668 int tbllen =
18669 CHSPEC_IS40(pi->
18670 radio_chanspec) ? NPHY_NOISEVAR_TBLLEN40 :
18671 NPHY_NOISEVAR_TBLLEN20;
18672
18673 if (pi->nphy_noisevars_adjusted) {
18674 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18675 tone_id = pi->nphy_saved_noisevars.tone_id[i];
18676 offset = (tone_id >= 0) ?
18677 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18678 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18679 offset, 32,
18680 (void *)&pi->
18681 nphy_saved_noisevars.
18682 min_noise_vars[i]);
18683 }
18684
18685 pi->nphy_saved_noisevars.bufcount = 0;
0965ae88 18686 pi->nphy_noisevars_adjusted = false;
a9533e7e
HP
18687 }
18688
18689 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18690 pi->nphy_saved_noisevars.bufcount = 0;
18691
18692 for (i = 0; i < ntones; i++) {
18693 tone_id = tone_id_buf[i];
18694 offset = (tone_id >= 0) ?
18695 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18696 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18697 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18698 offset, 32,
18699 &pi->nphy_saved_noisevars.
18700 min_noise_vars[i]);
18701 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18702 offset, 32,
18703 (void *)&noise_var_buf[i]);
18704 pi->nphy_saved_noisevars.bufcount++;
18705 }
18706
0f0881b0 18707 pi->nphy_noisevars_adjusted = true;
a9533e7e
HP
18708 }
18709}
18710
e868ab03 18711static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr)
a9533e7e 18712{
7d4df48e 18713 u16 regval;
a9533e7e
HP
18714
18715 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18716 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18717 CHSPEC_IS40(pi->radio_chanspec)) {
18718 if (!pi->nphy_crsminpwr_adjusted) {
18719 regval = read_phy_reg(pi, 0x27d);
18720 pi->nphy_crsminpwr[0] = regval & 0xff;
18721 regval &= 0xff00;
7d4df48e 18722 regval |= (u16) minpwr;
a9533e7e
HP
18723 write_phy_reg(pi, 0x27d, regval);
18724
18725 regval = read_phy_reg(pi, 0x280);
18726 pi->nphy_crsminpwr[1] = regval & 0xff;
18727 regval &= 0xff00;
7d4df48e 18728 regval |= (u16) minpwr;
a9533e7e
HP
18729 write_phy_reg(pi, 0x280, regval);
18730
18731 regval = read_phy_reg(pi, 0x283);
18732 pi->nphy_crsminpwr[2] = regval & 0xff;
18733 regval &= 0xff00;
7d4df48e 18734 regval |= (u16) minpwr;
a9533e7e
HP
18735 write_phy_reg(pi, 0x283, regval);
18736
0f0881b0 18737 pi->nphy_crsminpwr_adjusted = true;
a9533e7e
HP
18738 }
18739 } else {
18740 if (pi->nphy_crsminpwr_adjusted) {
18741 regval = read_phy_reg(pi, 0x27d);
18742 regval &= 0xff00;
18743 regval |= pi->nphy_crsminpwr[0];
18744 write_phy_reg(pi, 0x27d, regval);
18745
18746 regval = read_phy_reg(pi, 0x280);
18747 regval &= 0xff00;
18748 regval |= pi->nphy_crsminpwr[1];
18749 write_phy_reg(pi, 0x280, regval);
18750
18751 regval = read_phy_reg(pi, 0x283);
18752 regval &= 0xff00;
18753 regval |= pi->nphy_crsminpwr[2];
18754 write_phy_reg(pi, 0x283, regval);
18755
0965ae88 18756 pi->nphy_crsminpwr_adjusted = false;
a9533e7e
HP
18757 }
18758 }
18759 }
18760}
18761
7cc4a4c0 18762static void wlc_phy_txlpfbw_nphy(phy_info_t *pi)
a9533e7e 18763{
e868ab03 18764 u8 tx_lpf_bw = 0;
a9533e7e
HP
18765
18766 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18767 if (CHSPEC_IS40(pi->radio_chanspec)) {
18768 tx_lpf_bw = 3;
18769 } else {
18770 tx_lpf_bw = 1;
18771 }
18772
18773 if (PHY_IPA(pi)) {
18774 if (CHSPEC_IS40(pi->radio_chanspec)) {
18775 tx_lpf_bw = 5;
18776 } else {
18777 tx_lpf_bw = 4;
18778 }
18779 }
18780 write_phy_reg(pi, 0xe8,
18781 (tx_lpf_bw << 0) |
18782 (tx_lpf_bw << 3) |
18783 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18784
18785 if (PHY_IPA(pi)) {
18786
18787 if (CHSPEC_IS40(pi->radio_chanspec)) {
18788 tx_lpf_bw = 4;
18789 } else {
18790 tx_lpf_bw = 1;
18791 }
18792
18793 write_phy_reg(pi, 0xe9,
18794 (tx_lpf_bw << 0) |
18795 (tx_lpf_bw << 3) |
18796 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18797 }
18798 }
18799}
18800
7cc4a4c0 18801static void wlc_phy_spurwar_nphy(phy_info_t *pi)
a9533e7e 18802{
7d4df48e 18803 u16 cur_channel = 0;
a9533e7e 18804 int nphy_adj_tone_id_buf[] = { 57, 58 };
66cbd3ab 18805 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
0965ae88 18806 bool isAdjustNoiseVar = false;
a9533e7e 18807 uint numTonesAdjust = 0;
66cbd3ab 18808 u32 tempval = 0;
a9533e7e
HP
18809
18810 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18811 if (pi->phyhang_avoid)
0f0881b0 18812 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
18813
18814 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
18815
18816 if (pi->nphy_gband_spurwar_en) {
18817
18818 wlc_phy_adjust_rx_analpfbw_nphy(pi,
18819 NPHY_ANARXLPFBW_REDUCTIONFACT);
18820
18821 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18822 if ((cur_channel == 11)
18823 && CHSPEC_IS40(pi->radio_chanspec)) {
18824
18825 wlc_phy_adjust_min_noisevar_nphy(pi, 2,
18826 nphy_adj_tone_id_buf,
18827 nphy_adj_noise_var_buf);
18828 } else {
18829
18830 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18831 NULL,
18832 NULL);
18833 }
18834 }
18835 wlc_phy_adjust_crsminpwr_nphy(pi,
18836 NPHY_ADJUSTED_MINCRSPOWER);
18837 }
18838
18839 if ((pi->nphy_gband_spurwar2_en)
18840 && CHSPEC_IS2G(pi->radio_chanspec)) {
18841
18842 if (CHSPEC_IS40(pi->radio_chanspec)) {
18843 switch (cur_channel) {
18844 case 3:
18845 nphy_adj_tone_id_buf[0] = 57;
18846 nphy_adj_tone_id_buf[1] = 58;
18847 nphy_adj_noise_var_buf[0] = 0x22f;
18848 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18849 isAdjustNoiseVar = true;
a9533e7e
HP
18850 break;
18851 case 4:
18852 nphy_adj_tone_id_buf[0] = 41;
18853 nphy_adj_tone_id_buf[1] = 42;
18854 nphy_adj_noise_var_buf[0] = 0x22f;
18855 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18856 isAdjustNoiseVar = true;
a9533e7e
HP
18857 break;
18858 case 5:
18859 nphy_adj_tone_id_buf[0] = 25;
18860 nphy_adj_tone_id_buf[1] = 26;
18861 nphy_adj_noise_var_buf[0] = 0x24f;
18862 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18863 isAdjustNoiseVar = true;
a9533e7e
HP
18864 break;
18865 case 6:
18866 nphy_adj_tone_id_buf[0] = 9;
18867 nphy_adj_tone_id_buf[1] = 10;
18868 nphy_adj_noise_var_buf[0] = 0x22f;
18869 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18870 isAdjustNoiseVar = true;
a9533e7e
HP
18871 break;
18872 case 7:
18873 nphy_adj_tone_id_buf[0] = 121;
18874 nphy_adj_tone_id_buf[1] = 122;
18875 nphy_adj_noise_var_buf[0] = 0x18f;
18876 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18877 isAdjustNoiseVar = true;
a9533e7e
HP
18878 break;
18879 case 8:
18880 nphy_adj_tone_id_buf[0] = 105;
18881 nphy_adj_tone_id_buf[1] = 106;
18882 nphy_adj_noise_var_buf[0] = 0x22f;
18883 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18884 isAdjustNoiseVar = true;
a9533e7e
HP
18885 break;
18886 case 9:
18887 nphy_adj_tone_id_buf[0] = 89;
18888 nphy_adj_tone_id_buf[1] = 90;
18889 nphy_adj_noise_var_buf[0] = 0x22f;
18890 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18891 isAdjustNoiseVar = true;
a9533e7e
HP
18892 break;
18893 case 10:
18894 nphy_adj_tone_id_buf[0] = 73;
18895 nphy_adj_tone_id_buf[1] = 74;
18896 nphy_adj_noise_var_buf[0] = 0x22f;
18897 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18898 isAdjustNoiseVar = true;
a9533e7e
HP
18899 break;
18900 default:
0965ae88 18901 isAdjustNoiseVar = false;
a9533e7e
HP
18902 break;
18903 }
18904 }
18905
18906 if (isAdjustNoiseVar) {
18907 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
18908 sizeof(nphy_adj_tone_id_buf[0]);
18909
18910 wlc_phy_adjust_min_noisevar_nphy(pi,
18911 numTonesAdjust,
18912 nphy_adj_tone_id_buf,
18913 nphy_adj_noise_var_buf);
18914
18915 tempval = 0;
18916
18917 } else {
18918
18919 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18920 NULL);
18921 }
18922 }
18923
18924 if ((pi->nphy_aband_spurwar_en) &&
18925 (CHSPEC_IS5G(pi->radio_chanspec))) {
18926 switch (cur_channel) {
18927 case 54:
18928 nphy_adj_tone_id_buf[0] = 32;
18929 nphy_adj_noise_var_buf[0] = 0x25f;
18930 break;
18931 case 38:
18932 case 102:
18933 case 118:
18934 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) &&
18935 (pi->sh->chippkg == BCM4717_PKG_ID)) {
18936 nphy_adj_tone_id_buf[0] = 32;
18937 nphy_adj_noise_var_buf[0] = 0x21f;
18938 } else {
18939 nphy_adj_tone_id_buf[0] = 0;
18940 nphy_adj_noise_var_buf[0] = 0x0;
18941 }
18942 break;
18943 case 134:
18944 nphy_adj_tone_id_buf[0] = 32;
18945 nphy_adj_noise_var_buf[0] = 0x21f;
18946 break;
18947 case 151:
18948 nphy_adj_tone_id_buf[0] = 16;
18949 nphy_adj_noise_var_buf[0] = 0x23f;
18950 break;
18951 case 153:
18952 case 161:
18953 nphy_adj_tone_id_buf[0] = 48;
18954 nphy_adj_noise_var_buf[0] = 0x23f;
18955 break;
18956 default:
18957 nphy_adj_tone_id_buf[0] = 0;
18958 nphy_adj_noise_var_buf[0] = 0x0;
18959 break;
18960 }
18961
18962 if (nphy_adj_tone_id_buf[0]
18963 && nphy_adj_noise_var_buf[0]) {
18964 wlc_phy_adjust_min_noisevar_nphy(pi, 1,
18965 nphy_adj_tone_id_buf,
18966 nphy_adj_noise_var_buf);
18967 } else {
18968 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18969 NULL);
18970 }
18971 }
18972
18973 if (pi->phyhang_avoid)
0965ae88 18974 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
18975 }
18976}
18977
18978static void
7cc4a4c0
JC
18979wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chanspec,
18980 const nphy_sfo_cfg_t *ci)
a9533e7e 18981{
7d4df48e 18982 u16 val;
a9533e7e
HP
18983
18984 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
18985 if (CHSPEC_IS5G(chanspec) && !val) {
18986
18987 val = R_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param);
18988 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param,
18989 (val | MAC_PHY_FORCE_CLK));
18990
18991 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18992 (BBCFG_RESETCCA | BBCFG_RESETRX));
18993
18994 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param, val);
18995
18996 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
18997 } else if (!CHSPEC_IS5G(chanspec) && val) {
18998
18999 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
19000
19001 val = R_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param);
19002 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param,
19003 (val | MAC_PHY_FORCE_CLK));
19004
19005 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
7d4df48e 19006 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
a9533e7e
HP
19007
19008 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param, val);
19009 }
19010
19011 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
19012 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
19013 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
19014
19015 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
19016 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
19017 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
19018
19019 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
19020 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
19021
19022 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
19023 } else {
19024 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
19025 NPHY_ClassifierCtrl_ofdm_en);
19026
19027 if (CHSPEC_IS2G(chanspec))
19028 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
19029 }
19030
19031 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
19032 wlc_phy_txpwr_fixpower_nphy(pi);
19033 }
19034
19035 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
19036
19037 wlc_phy_adjust_lnagaintbl_nphy(pi);
19038 }
19039
19040 wlc_phy_txlpfbw_nphy(pi);
19041
19042 if (NREV_GE(pi->pubpi.phy_rev, 3)
19043 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
e868ab03 19044 u8 spuravoid = 0;
a9533e7e
HP
19045
19046 val = CHSPEC_CHANNEL(chanspec);
19047 if (!CHSPEC_IS40(pi->radio_chanspec)) {
19048 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19049 if ((val == 13) || (val == 14) || (val == 153)) {
19050 spuravoid = 1;
19051 }
19052 } else {
19053
19054 if (((val >= 5) && (val <= 8)) || (val == 13)
19055 || (val == 14)) {
19056 spuravoid = 1;
19057 }
19058 }
19059 } else {
19060 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19061 if (val == 54) {
19062 spuravoid = 1;
19063 }
19064 } else {
19065
19066 if (pi->nphy_aband_spurwar_en &&
19067 ((val == 38) || (val == 102)
19068 || (val == 118))) {
19069 if ((CHIPID(pi->sh->chip) ==
19070 BCM4716_CHIP_ID)
19071 && (pi->sh->chippkg ==
19072 BCM4717_PKG_ID)) {
19073 spuravoid = 0;
19074 } else {
19075 spuravoid = 1;
19076 }
19077 }
19078 }
19079 }
19080
19081 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
19082 spuravoid = 1;
19083
19084 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
19085 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID)) {
19086 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
19087 } else {
0965ae88 19088 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
a9533e7e 19089 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
0f0881b0 19090 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
a9533e7e
HP
19091 }
19092
19093 if ((CHIPID(pi->sh->chip) == BCM43224_CHIP_ID) ||
19094 (CHIPID(pi->sh->chip) == BCM43225_CHIP_ID) ||
19095 (CHIPID(pi->sh->chip) == BCM43421_CHIP_ID)) {
19096
19097 if (spuravoid == 1) {
19098
19099 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_l,
19100 0x5341);
19101 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_h,
19102 0x8);
19103 } else {
19104
19105 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_l,
19106 0x8889);
19107 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_h,
19108 0x8);
19109 }
19110 }
19111
19112 if (!((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
19113 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID))) {
19114 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
19115 }
19116
19117 mod_phy_reg(pi, 0x01, (0x1 << 15),
19118 ((spuravoid > 0) ? (0x1 << 15) : 0));
19119
19120 wlc_phy_resetcca_nphy(pi);
19121
19122 pi->phy_isspuravoid = (spuravoid > 0);
19123 }
19124
19125 if (NREV_LT(pi->pubpi.phy_rev, 7))
19126 write_phy_reg(pi, 0x17e, 0x3830);
19127
19128 wlc_phy_spurwar_nphy(pi);
19129}
19130
7cc4a4c0 19131void wlc_phy_chanspec_set_nphy(phy_info_t *pi, chanspec_t chanspec)
a9533e7e
HP
19132{
19133 int freq;
19134 chan_info_nphy_radio2057_t *t0 = NULL;
19135 chan_info_nphy_radio205x_t *t1 = NULL;
19136 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
19137 chan_info_nphy_2055_t *t3 = NULL;
19138
19139 if (NORADIO_ENAB(pi->pubpi)) {
19140 return;
19141 }
19142
19143 if (!wlc_phy_chan2freq_nphy
19144 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19145 return;
19146
19147 wlc_phy_chanspec_radio_set((wlc_phy_t *) pi, chanspec);
19148
19149 if (CHSPEC_BW(chanspec) != pi->bw)
19150 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
19151
19152 if (CHSPEC_IS40(chanspec)) {
19153 if (CHSPEC_SB_UPPER(chanspec)) {
19154 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
19155 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19156 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
19157 }
19158 } else {
19159 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
19160 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19161 and_phy_reg(pi, 0x310,
19162 (~PRIM_SEL_UP20 & 0xffff));
19163 }
19164 }
19165 }
19166
19167 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19168 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19169
19170 if ((pi->pubpi.radiorev <= 4)
19171 || (pi->pubpi.radiorev == 6)) {
19172 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
19173 0x2,
19174 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19175 : 0));
19176 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19177 0x2,
19178 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19179 : 0));
19180 }
19181
19182 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
19183 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19184 (pi->pubpi.radiorev ==
19185 5) ? (const nphy_sfo_cfg_t
19186 *)&(t2->
19187 PHY_BW1a)
19188 : (const nphy_sfo_cfg_t *)
19189 &(t0->PHY_BW1a));
19190
19191 } else {
19192
19193 mod_radio_reg(pi,
19194 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19195 0x4,
19196 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
19197 wlc_phy_chanspec_radio2056_setup(pi, t1);
19198
19199 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19200 (const nphy_sfo_cfg_t *)
19201 &(t1->PHY_BW1a));
19202 }
19203
19204 } else {
19205
19206 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19207 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19208 : (0x05 << 4)));
19209
19210 wlc_phy_chanspec_radio2055_setup(pi, t3);
19211 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19212 (const nphy_sfo_cfg_t *)&(t3->
19213 PHY_BW1a));
19214 }
19215
19216}
19217
7cc4a4c0 19218static void wlc_phy_savecal_nphy(phy_info_t *pi)
a9533e7e
HP
19219{
19220 void *tbl_ptr;
19221 int coreNum;
7d4df48e 19222 u16 *txcal_radio_regs = NULL;
a9533e7e
HP
19223
19224 if (pi->phyhang_avoid)
0f0881b0 19225 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
19226
19227 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19228
19229 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19230 &pi->calibration_cache.
19231 rxcal_coeffs_2G);
19232
19233 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19234 txcal_radio_regs =
19235 pi->calibration_cache.txcal_radio_regs_2G;
19236 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19237
19238 pi->calibration_cache.txcal_radio_regs_2G[0] =
19239 read_radio_reg(pi,
19240 RADIO_2056_TX_LOFT_FINE_I |
19241 RADIO_2056_TX0);
19242 pi->calibration_cache.txcal_radio_regs_2G[1] =
19243 read_radio_reg(pi,
19244 RADIO_2056_TX_LOFT_FINE_Q |
19245 RADIO_2056_TX0);
19246 pi->calibration_cache.txcal_radio_regs_2G[2] =
19247 read_radio_reg(pi,
19248 RADIO_2056_TX_LOFT_FINE_I |
19249 RADIO_2056_TX1);
19250 pi->calibration_cache.txcal_radio_regs_2G[3] =
19251 read_radio_reg(pi,
19252 RADIO_2056_TX_LOFT_FINE_Q |
19253 RADIO_2056_TX1);
19254
19255 pi->calibration_cache.txcal_radio_regs_2G[4] =
19256 read_radio_reg(pi,
19257 RADIO_2056_TX_LOFT_COARSE_I |
19258 RADIO_2056_TX0);
19259 pi->calibration_cache.txcal_radio_regs_2G[5] =
19260 read_radio_reg(pi,
19261 RADIO_2056_TX_LOFT_COARSE_Q |
19262 RADIO_2056_TX0);
19263 pi->calibration_cache.txcal_radio_regs_2G[6] =
19264 read_radio_reg(pi,
19265 RADIO_2056_TX_LOFT_COARSE_I |
19266 RADIO_2056_TX1);
19267 pi->calibration_cache.txcal_radio_regs_2G[7] =
19268 read_radio_reg(pi,
19269 RADIO_2056_TX_LOFT_COARSE_Q |
19270 RADIO_2056_TX1);
19271 } else {
19272 pi->calibration_cache.txcal_radio_regs_2G[0] =
19273 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19274 pi->calibration_cache.txcal_radio_regs_2G[1] =
19275 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19276 pi->calibration_cache.txcal_radio_regs_2G[2] =
19277 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19278 pi->calibration_cache.txcal_radio_regs_2G[3] =
19279 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19280 }
19281
19282 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
19283 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19284 } else {
19285
19286 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19287 &pi->calibration_cache.
19288 rxcal_coeffs_5G);
19289
19290 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19291 txcal_radio_regs =
19292 pi->calibration_cache.txcal_radio_regs_5G;
19293 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19294
19295 pi->calibration_cache.txcal_radio_regs_5G[0] =
19296 read_radio_reg(pi,
19297 RADIO_2056_TX_LOFT_FINE_I |
19298 RADIO_2056_TX0);
19299 pi->calibration_cache.txcal_radio_regs_5G[1] =
19300 read_radio_reg(pi,
19301 RADIO_2056_TX_LOFT_FINE_Q |
19302 RADIO_2056_TX0);
19303 pi->calibration_cache.txcal_radio_regs_5G[2] =
19304 read_radio_reg(pi,
19305 RADIO_2056_TX_LOFT_FINE_I |
19306 RADIO_2056_TX1);
19307 pi->calibration_cache.txcal_radio_regs_5G[3] =
19308 read_radio_reg(pi,
19309 RADIO_2056_TX_LOFT_FINE_Q |
19310 RADIO_2056_TX1);
19311
19312 pi->calibration_cache.txcal_radio_regs_5G[4] =
19313 read_radio_reg(pi,
19314 RADIO_2056_TX_LOFT_COARSE_I |
19315 RADIO_2056_TX0);
19316 pi->calibration_cache.txcal_radio_regs_5G[5] =
19317 read_radio_reg(pi,
19318 RADIO_2056_TX_LOFT_COARSE_Q |
19319 RADIO_2056_TX0);
19320 pi->calibration_cache.txcal_radio_regs_5G[6] =
19321 read_radio_reg(pi,
19322 RADIO_2056_TX_LOFT_COARSE_I |
19323 RADIO_2056_TX1);
19324 pi->calibration_cache.txcal_radio_regs_5G[7] =
19325 read_radio_reg(pi,
19326 RADIO_2056_TX_LOFT_COARSE_Q |
19327 RADIO_2056_TX1);
19328 } else {
19329 pi->calibration_cache.txcal_radio_regs_5G[0] =
19330 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19331 pi->calibration_cache.txcal_radio_regs_5G[1] =
19332 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19333 pi->calibration_cache.txcal_radio_regs_5G[2] =
19334 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19335 pi->calibration_cache.txcal_radio_regs_5G[3] =
19336 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19337 }
19338
19339 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
19340 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19341 }
19342 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19343 for (coreNum = 0; coreNum <= 1; coreNum++) {
19344
19345 txcal_radio_regs[2 * coreNum] =
19346 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19347 LOFT_FINE_I);
19348 txcal_radio_regs[2 * coreNum + 1] =
19349 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19350 LOFT_FINE_Q);
19351
19352 txcal_radio_regs[2 * coreNum + 4] =
19353 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19354 LOFT_COARSE_I);
19355 txcal_radio_regs[2 * coreNum + 5] =
19356 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19357 LOFT_COARSE_Q);
19358 }
19359 }
19360
19361 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
19362
19363 if (pi->phyhang_avoid)
0965ae88 19364 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
19365}
19366
7cc4a4c0 19367static void wlc_phy_restorecal_nphy(phy_info_t *pi)
a9533e7e 19368{
7d4df48e
GKH
19369 u16 *loft_comp;
19370 u16 txcal_coeffs_bphy[4];
19371 u16 *tbl_ptr;
a9533e7e 19372 int coreNum;
7d4df48e 19373 u16 *txcal_radio_regs = NULL;
a9533e7e
HP
19374
19375 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19376 if (pi->nphy_iqcal_chanspec_2G == 0)
19377 return;
19378
19379 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19380 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19381 } else {
19382 if (pi->nphy_iqcal_chanspec_5G == 0)
19383 return;
19384
19385 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19386 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
19387 }
19388
19389 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16,
19390 (void *)tbl_ptr);
19391
19392 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19393 txcal_coeffs_bphy[0] = tbl_ptr[0];
19394 txcal_coeffs_bphy[1] = tbl_ptr[1];
19395 txcal_coeffs_bphy[2] = tbl_ptr[2];
19396 txcal_coeffs_bphy[3] = tbl_ptr[3];
19397 } else {
19398 txcal_coeffs_bphy[0] = 0;
19399 txcal_coeffs_bphy[1] = 0;
19400 txcal_coeffs_bphy[2] = 0;
19401 txcal_coeffs_bphy[3] = 0;
19402 }
19403
19404 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
19405 txcal_coeffs_bphy);
19406
19407 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
19408
19409 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
19410
19411 if (NREV_LT(pi->pubpi.phy_rev, 2))
19412 wlc_phy_tx_iq_war_nphy(pi);
19413
19414 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19415 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19416 txcal_radio_regs =
19417 pi->calibration_cache.txcal_radio_regs_2G;
19418 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19419
19420 write_radio_reg(pi,
19421 RADIO_2056_TX_LOFT_FINE_I |
19422 RADIO_2056_TX0,
19423 pi->calibration_cache.
19424 txcal_radio_regs_2G[0]);
19425 write_radio_reg(pi,
19426 RADIO_2056_TX_LOFT_FINE_Q |
19427 RADIO_2056_TX0,
19428 pi->calibration_cache.
19429 txcal_radio_regs_2G[1]);
19430 write_radio_reg(pi,
19431 RADIO_2056_TX_LOFT_FINE_I |
19432 RADIO_2056_TX1,
19433 pi->calibration_cache.
19434 txcal_radio_regs_2G[2]);
19435 write_radio_reg(pi,
19436 RADIO_2056_TX_LOFT_FINE_Q |
19437 RADIO_2056_TX1,
19438 pi->calibration_cache.
19439 txcal_radio_regs_2G[3]);
19440
19441 write_radio_reg(pi,
19442 RADIO_2056_TX_LOFT_COARSE_I |
19443 RADIO_2056_TX0,
19444 pi->calibration_cache.
19445 txcal_radio_regs_2G[4]);
19446 write_radio_reg(pi,
19447 RADIO_2056_TX_LOFT_COARSE_Q |
19448 RADIO_2056_TX0,
19449 pi->calibration_cache.
19450 txcal_radio_regs_2G[5]);
19451 write_radio_reg(pi,
19452 RADIO_2056_TX_LOFT_COARSE_I |
19453 RADIO_2056_TX1,
19454 pi->calibration_cache.
19455 txcal_radio_regs_2G[6]);
19456 write_radio_reg(pi,
19457 RADIO_2056_TX_LOFT_COARSE_Q |
19458 RADIO_2056_TX1,
19459 pi->calibration_cache.
19460 txcal_radio_regs_2G[7]);
19461 } else {
19462 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19463 pi->calibration_cache.
19464 txcal_radio_regs_2G[0]);
19465 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19466 pi->calibration_cache.
19467 txcal_radio_regs_2G[1]);
19468 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19469 pi->calibration_cache.
19470 txcal_radio_regs_2G[2]);
19471 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19472 pi->calibration_cache.
19473 txcal_radio_regs_2G[3]);
19474 }
19475
19476 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19477 &pi->calibration_cache.
19478 rxcal_coeffs_2G);
19479 } else {
19480 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19481 txcal_radio_regs =
19482 pi->calibration_cache.txcal_radio_regs_5G;
19483 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19484
19485 write_radio_reg(pi,
19486 RADIO_2056_TX_LOFT_FINE_I |
19487 RADIO_2056_TX0,
19488 pi->calibration_cache.
19489 txcal_radio_regs_5G[0]);
19490 write_radio_reg(pi,
19491 RADIO_2056_TX_LOFT_FINE_Q |
19492 RADIO_2056_TX0,
19493 pi->calibration_cache.
19494 txcal_radio_regs_5G[1]);
19495 write_radio_reg(pi,
19496 RADIO_2056_TX_LOFT_FINE_I |
19497 RADIO_2056_TX1,
19498 pi->calibration_cache.
19499 txcal_radio_regs_5G[2]);
19500 write_radio_reg(pi,
19501 RADIO_2056_TX_LOFT_FINE_Q |
19502 RADIO_2056_TX1,
19503 pi->calibration_cache.
19504 txcal_radio_regs_5G[3]);
19505
19506 write_radio_reg(pi,
19507 RADIO_2056_TX_LOFT_COARSE_I |
19508 RADIO_2056_TX0,
19509 pi->calibration_cache.
19510 txcal_radio_regs_5G[4]);
19511 write_radio_reg(pi,
19512 RADIO_2056_TX_LOFT_COARSE_Q |
19513 RADIO_2056_TX0,
19514 pi->calibration_cache.
19515 txcal_radio_regs_5G[5]);
19516 write_radio_reg(pi,
19517 RADIO_2056_TX_LOFT_COARSE_I |
19518 RADIO_2056_TX1,
19519 pi->calibration_cache.
19520 txcal_radio_regs_5G[6]);
19521 write_radio_reg(pi,
19522 RADIO_2056_TX_LOFT_COARSE_Q |
19523 RADIO_2056_TX1,
19524 pi->calibration_cache.
19525 txcal_radio_regs_5G[7]);
19526 } else {
19527 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19528 pi->calibration_cache.
19529 txcal_radio_regs_5G[0]);
19530 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19531 pi->calibration_cache.
19532 txcal_radio_regs_5G[1]);
19533 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19534 pi->calibration_cache.
19535 txcal_radio_regs_5G[2]);
19536 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19537 pi->calibration_cache.
19538 txcal_radio_regs_5G[3]);
19539 }
19540
19541 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19542 &pi->calibration_cache.
19543 rxcal_coeffs_5G);
19544 }
19545
19546 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19547 for (coreNum = 0; coreNum <= 1; coreNum++) {
19548
19549 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19550 LOFT_FINE_I,
19551 txcal_radio_regs[2 * coreNum]);
19552 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19553 LOFT_FINE_Q,
19554 txcal_radio_regs[2 * coreNum + 1]);
19555
19556 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19557 LOFT_COARSE_I,
19558 txcal_radio_regs[2 * coreNum + 4]);
19559 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19560 LOFT_COARSE_Q,
19561 txcal_radio_regs[2 * coreNum + 5]);
19562 }
19563 }
19564}
19565
7cc4a4c0 19566void wlc_phy_antsel_init(wlc_phy_t *ppi, bool lut_init)
a9533e7e
HP
19567{
19568 phy_info_t *pi = (phy_info_t *) ppi;
7d4df48e 19569 u16 mask = 0xfc00;
66cbd3ab 19570 u32 mc = 0;
a9533e7e
HP
19571
19572 if (NREV_GE(pi->pubpi.phy_rev, 7))
19573 return;
19574
19575 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
7d4df48e 19576 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
a9533e7e 19577
0965ae88 19578 if (lut_init == false)
a9533e7e
HP
19579 return;
19580
19581 if (pi->srom_fem2g.antswctrllut == 0) {
19582 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19583 1, 0x02, 16, &v0);
19584 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19585 1, 0x03, 16, &v1);
19586 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19587 1, 0x08, 16, &v2);
19588 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19589 1, 0x0C, 16, &v3);
19590 } else {
19591 ASSERT(0);
19592 }
19593
19594 if (pi->srom_fem5g.antswctrllut == 0) {
19595 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19596 1, 0x12, 16, &v0);
19597 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19598 1, 0x13, 16, &v1);
19599 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19600 1, 0x18, 16, &v2);
19601 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19602 1, 0x1C, 16, &v3);
19603 } else {
19604 ASSERT(0);
19605 }
19606 } else {
19607
19608 write_phy_reg(pi, 0xc8, 0x0);
19609 write_phy_reg(pi, 0xc9, 0x0);
19610
19611 si_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
19612
19613 mc = R_REG(pi->sh->osh, &pi->regs->maccontrol);
19614 mc &= ~MCTL_GPOUT_SEL_MASK;
19615 W_REG(pi->sh->osh, &pi->regs->maccontrol, mc);
19616
19617 OR_REG(pi->sh->osh, &pi->regs->psm_gpio_oe, mask);
19618
19619 AND_REG(pi->sh->osh, &pi->regs->psm_gpio_out, ~mask);
19620
19621 if (lut_init) {
19622 write_phy_reg(pi, 0xf8, 0x02d8);
19623 write_phy_reg(pi, 0xf9, 0x0301);
19624 write_phy_reg(pi, 0xfa, 0x02d8);
19625 write_phy_reg(pi, 0xfb, 0x0301);
19626 }
19627 }
19628}
19629
7d4df48e 19630u16 wlc_phy_classifier_nphy(phy_info_t *pi, u16 mask, u16 val)
a9533e7e 19631{
7d4df48e 19632 u16 curr_ctl, new_ctl;
0965ae88 19633 bool suspended = false;
a9533e7e
HP
19634
19635 if (D11REV_IS(pi->sh->corerev, 16)) {
19636 suspended =
19637 (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC) ?
0965ae88 19638 false : true;
a9533e7e
HP
19639 if (!suspended)
19640 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19641 }
19642
19643 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
19644
19645 new_ctl = (curr_ctl & (~mask)) | (val & mask);
19646
19647 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
19648
19649 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
19650 wlapi_enable_mac(pi->sh->physhim);
19651
19652 return new_ctl;
19653}
19654
7d4df48e 19655static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals)
a9533e7e
HP
19656{
19657
19658 if (write == 0) {
19659 vals[0] = read_phy_reg(pi, 0x2c);
19660 vals[1] = read_phy_reg(pi, 0x42);
19661 } else {
19662 write_phy_reg(pi, 0x2c, vals[0]);
19663 write_phy_reg(pi, 0x42, vals[1]);
19664 }
19665}
19666
e868ab03 19667void wlc_phy_force_rfseq_nphy(phy_info_t *pi, u8 cmd)
a9533e7e 19668{
7d4df48e
GKH
19669 u16 trigger_mask, status_mask;
19670 u16 orig_RfseqCoreActv;
a9533e7e
HP
19671
19672 switch (cmd) {
19673 case NPHY_RFSEQ_RX2TX:
19674 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19675 status_mask = NPHY_RfseqStatus_rx2tx;
19676 break;
19677 case NPHY_RFSEQ_TX2RX:
19678 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19679 status_mask = NPHY_RfseqStatus_tx2rx;
19680 break;
19681 case NPHY_RFSEQ_RESET2RX:
19682 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19683 status_mask = NPHY_RfseqStatus_reset2rx;
19684 break;
19685 case NPHY_RFSEQ_UPDATEGAINH:
19686 trigger_mask = NPHY_RfseqTrigger_updategainh;
19687 status_mask = NPHY_RfseqStatus_updategainh;
19688 break;
19689 case NPHY_RFSEQ_UPDATEGAINL:
19690 trigger_mask = NPHY_RfseqTrigger_updategainl;
19691 status_mask = NPHY_RfseqStatus_updategainl;
19692 break;
19693 case NPHY_RFSEQ_UPDATEGAINU:
19694 trigger_mask = NPHY_RfseqTrigger_updategainu;
19695 status_mask = NPHY_RfseqStatus_updategainu;
19696 break;
19697 default:
19698 return;
19699 }
19700
19701 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
19702 or_phy_reg(pi, 0xa1,
19703 (NPHY_RfseqMode_CoreActv_override |
19704 NPHY_RfseqMode_Trigger_override));
19705 or_phy_reg(pi, 0xa3, trigger_mask);
19706 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
19707 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
19708
19709 ASSERT((read_phy_reg(pi, 0xa4) & status_mask) == 0);
19710}
19711
19712static void
e868ab03
GKH
19713wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *events, u8 *dlys,
19714 u8 len)
a9533e7e 19715{
66cbd3ab 19716 u32 t1_offset, t2_offset;
e868ab03
GKH
19717 u8 ctr;
19718 u8 end_event =
a9533e7e
HP
19719 NREV_GE(pi->pubpi.phy_rev,
19720 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
e868ab03 19721 u8 end_dly = 1;
a9533e7e
HP
19722
19723 ASSERT(len <= 16);
19724
19725 if (pi->phyhang_avoid)
0f0881b0 19726 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
19727
19728 t1_offset = cmd << 4;
19729 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
19730 events);
19731 t2_offset = t1_offset + 0x080;
19732 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19733 dlys);
19734
19735 for (ctr = len; ctr < 16; ctr++) {
19736 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19737 t1_offset + ctr, 8, &end_event);
19738 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19739 t2_offset + ctr, 8, &end_dly);
19740 }
19741
19742 if (pi->phyhang_avoid)
0965ae88 19743 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
19744}
19745
7d4df48e 19746static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset)
a9533e7e 19747{
7d4df48e
GKH
19748 u16 lpf_bw_ctl_val = 0;
19749 u16 rx2tx_lpf_rc_lut_offset = 0;
a9533e7e
HP
19750
19751 if (offset == 0) {
19752 if (CHSPEC_IS40(pi->radio_chanspec)) {
19753 rx2tx_lpf_rc_lut_offset = 0x159;
19754 } else {
19755 rx2tx_lpf_rc_lut_offset = 0x154;
19756 }
19757 } else {
19758 rx2tx_lpf_rc_lut_offset = offset;
19759 }
19760 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
66cbd3ab 19761 (u32) rx2tx_lpf_rc_lut_offset, 16,
a9533e7e
HP
19762 &lpf_bw_ctl_val);
19763
19764 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19765
19766 return lpf_bw_ctl_val;
19767}
19768
19769static void
7d4df48e 19770wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
e868ab03 19771 u8 core_mask, u8 off, u8 override_id)
a9533e7e 19772{
e868ab03 19773 u8 core_num;
7d4df48e 19774 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
e868ab03 19775 u8 val_shift = 0;
a9533e7e
HP
19776
19777 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19778 en_mask = field;
19779 for (core_num = 0; core_num < 2; core_num++) {
19780 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19781
19782 switch (field) {
19783 case (0x1 << 2):
19784 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19785 val_addr = (core_num == 0) ? 0x7a :
19786 0x7d;
19787 val_mask = (0x1 << 1);
19788 val_shift = 1;
19789 break;
19790 case (0x1 << 3):
19791 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19792 val_addr = (core_num == 0) ? 0x7a :
19793 0x7d;
19794 val_mask = (0x1 << 2);
19795 val_shift = 2;
19796 break;
19797 case (0x1 << 4):
19798 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19799 val_addr = (core_num == 0) ? 0x7a :
19800 0x7d;
19801 val_mask = (0x1 << 4);
19802 val_shift = 4;
19803 break;
19804 case (0x1 << 5):
19805 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19806 val_addr = (core_num == 0) ? 0x7a :
19807 0x7d;
19808 val_mask = (0x1 << 5);
19809 val_shift = 5;
19810 break;
19811 case (0x1 << 6):
19812 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19813 val_addr = (core_num == 0) ? 0x7a :
19814 0x7d;
19815 val_mask = (0x1 << 6);
19816 val_shift = 6;
19817 break;
19818 case (0x1 << 7):
19819 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19820 val_addr = (core_num == 0) ? 0x7a :
19821 0x7d;
19822 val_mask = (0x1 << 7);
19823 val_shift = 7;
19824 break;
19825 case (0x1 << 10):
19826 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19827 val_addr = (core_num == 0) ? 0xf8 :
19828 0xfa;
19829 val_mask = (0x7 << 4);
19830 val_shift = 4;
19831 break;
19832 case (0x1 << 11):
19833 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19834 val_addr = (core_num == 0) ? 0x7b :
19835 0x7e;
19836 val_mask = (0xffff << 0);
19837 val_shift = 0;
19838 break;
19839 case (0x1 << 12):
19840 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19841 val_addr = (core_num == 0) ? 0x7c :
19842 0x7f;
19843 val_mask = (0xffff << 0);
19844 val_shift = 0;
19845 break;
19846 case (0x3 << 13):
19847 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19848 val_addr = (core_num == 0) ? 0x348 :
19849 0x349;
19850 val_mask = (0xff << 0);
19851 val_shift = 0;
19852 break;
19853 case (0x1 << 13):
19854 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19855 val_addr = (core_num == 0) ? 0x348 :
19856 0x349;
19857 val_mask = (0xf << 0);
19858 val_shift = 0;
19859 break;
19860 default:
19861 addr = 0xffff;
19862 break;
19863 }
19864 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19865
19866 switch (field) {
19867 case (0x1 << 1):
19868 en_addr = (core_num == 0) ? 0x342 :
19869 0x343;
19870 val_addr = (core_num == 0) ? 0x340 :
19871 0x341;
19872 val_mask = (0x1 << 1);
19873 val_shift = 1;
19874 break;
19875 case (0x1 << 3):
19876 en_addr = (core_num == 0) ? 0x342 :
19877 0x343;
19878 val_addr = (core_num == 0) ? 0x340 :
19879 0x341;
19880 val_mask = (0x1 << 3);
19881 val_shift = 3;
19882 break;
19883 case (0x1 << 5):
19884 en_addr = (core_num == 0) ? 0x342 :
19885 0x343;
19886 val_addr = (core_num == 0) ? 0x340 :
19887 0x341;
19888 val_mask = (0x1 << 5);
19889 val_shift = 5;
19890 break;
19891 case (0x1 << 4):
19892 en_addr = (core_num == 0) ? 0x342 :
19893 0x343;
19894 val_addr = (core_num == 0) ? 0x340 :
19895 0x341;
19896 val_mask = (0x1 << 4);
19897 val_shift = 4;
19898 break;
19899 case (0x1 << 2):
19900
19901 en_addr = (core_num == 0) ? 0x342 :
19902 0x343;
19903 val_addr = (core_num == 0) ? 0x340 :
19904 0x341;
19905 val_mask = (0x1 << 2);
19906 val_shift = 2;
19907 break;
19908 case (0x1 << 7):
19909
19910 en_addr = (core_num == 0) ? 0x342 :
19911 0x343;
19912 val_addr = (core_num == 0) ? 0x340 :
19913 0x341;
19914 val_mask = (0x7 << 8);
19915 val_shift = 8;
19916 break;
19917 case (0x1 << 11):
19918 en_addr = (core_num == 0) ? 0x342 :
19919 0x343;
19920 val_addr = (core_num == 0) ? 0x340 :
19921 0x341;
19922 val_mask = (0x1 << 14);
19923 val_shift = 14;
19924 break;
19925 case (0x1 << 10):
19926 en_addr = (core_num == 0) ? 0x342 :
19927 0x343;
19928 val_addr = (core_num == 0) ? 0x340 :
19929 0x341;
19930 val_mask = (0x1 << 13);
19931 val_shift = 13;
19932 break;
19933 case (0x1 << 9):
19934 en_addr = (core_num == 0) ? 0x342 :
19935 0x343;
19936 val_addr = (core_num == 0) ? 0x340 :
19937 0x341;
19938 val_mask = (0x1 << 12);
19939 val_shift = 12;
19940 break;
19941 case (0x1 << 8):
19942 en_addr = (core_num == 0) ? 0x342 :
19943 0x343;
19944 val_addr = (core_num == 0) ? 0x340 :
19945 0x341;
19946 val_mask = (0x1 << 11);
19947 val_shift = 11;
19948 break;
19949 case (0x1 << 6):
19950 en_addr = (core_num == 0) ? 0x342 :
19951 0x343;
19952 val_addr = (core_num == 0) ? 0x340 :
19953 0x341;
19954 val_mask = (0x1 << 6);
19955 val_shift = 6;
19956 break;
19957 case (0x1 << 0):
19958 en_addr = (core_num == 0) ? 0x342 :
19959 0x343;
19960 val_addr = (core_num == 0) ? 0x340 :
19961 0x341;
19962 val_mask = (0x1 << 0);
19963 val_shift = 0;
19964 break;
19965 default:
19966 addr = 0xffff;
19967 break;
19968 }
19969 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19970
19971 switch (field) {
19972 case (0x1 << 3):
19973 en_addr = (core_num == 0) ? 0x346 :
19974 0x347;
19975 val_addr = (core_num == 0) ? 0x344 :
19976 0x345;
19977 val_mask = (0x1 << 3);
19978 val_shift = 3;
19979 break;
19980 case (0x1 << 1):
19981 en_addr = (core_num == 0) ? 0x346 :
19982 0x347;
19983 val_addr = (core_num == 0) ? 0x344 :
19984 0x345;
19985 val_mask = (0x1 << 1);
19986 val_shift = 1;
19987 break;
19988 case (0x1 << 0):
19989 en_addr = (core_num == 0) ? 0x346 :
19990 0x347;
19991 val_addr = (core_num == 0) ? 0x344 :
19992 0x345;
19993 val_mask = (0x1 << 0);
19994 val_shift = 0;
19995 break;
19996 case (0x1 << 2):
19997 en_addr = (core_num == 0) ? 0x346 :
19998 0x347;
19999 val_addr = (core_num == 0) ? 0x344 :
20000 0x345;
20001 val_mask = (0x1 << 2);
20002 val_shift = 2;
20003 break;
20004 case (0x1 << 4):
20005 en_addr = (core_num == 0) ? 0x346 :
20006 0x347;
20007 val_addr = (core_num == 0) ? 0x344 :
20008 0x345;
20009 val_mask = (0x1 << 4);
20010 val_shift = 4;
20011 break;
20012 default:
20013 addr = 0xffff;
20014 break;
20015 }
20016 }
20017
20018 if (off) {
20019 and_phy_reg(pi, en_addr, ~en_mask);
20020 and_phy_reg(pi, val_addr, ~val_mask);
20021 } else {
20022
20023 if ((core_mask == 0)
20024 || (core_mask & (1 << core_num))) {
20025 or_phy_reg(pi, en_addr, en_mask);
20026
20027 if (addr != 0xffff) {
20028 mod_phy_reg(pi, val_addr,
20029 val_mask,
20030 (value <<
20031 val_shift));
20032 }
20033 }
20034 }
20035 }
20036 }
20037}
20038
20039static void
7d4df48e 20040wlc_phy_rfctrl_override_nphy(phy_info_t *pi, u16 field, u16 value,
e868ab03 20041 u8 core_mask, u8 off)
a9533e7e 20042{
e868ab03 20043 u8 core_num;
7d4df48e 20044 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
a9533e7e 20045 0, val_mask = 0;
e868ab03 20046 u8 shift = 0, val_shift = 0;
a9533e7e
HP
20047
20048 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
20049
20050 en_mask = field;
20051 for (core_num = 0; core_num < 2; core_num++) {
20052
20053 switch (field) {
20054 case (0x1 << 1):
20055 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20056 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20057 val_mask = (0x1 << 0);
20058 val_shift = 0;
20059 break;
20060 case (0x1 << 2):
20061 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20062 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20063 val_mask = (0x1 << 1);
20064 val_shift = 1;
20065 break;
20066 case (0x1 << 3):
20067 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20068 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20069 val_mask = (0x1 << 2);
20070 val_shift = 2;
20071 break;
20072 case (0x1 << 4):
20073 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20074 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20075 val_mask = (0x1 << 4);
20076 val_shift = 4;
20077 break;
20078 case (0x1 << 5):
20079 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20080 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20081 val_mask = (0x1 << 5);
20082 val_shift = 5;
20083 break;
20084 case (0x1 << 6):
20085 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20086 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20087 val_mask = (0x1 << 6);
20088 val_shift = 6;
20089 break;
20090 case (0x1 << 7):
20091 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20092 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20093 val_mask = (0x1 << 7);
20094 val_shift = 7;
20095 break;
20096 case (0x1 << 8):
20097 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20098 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20099 val_mask = (0x7 << 8);
20100 val_shift = 8;
20101 break;
20102 case (0x1 << 11):
20103 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20104 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20105 val_mask = (0x7 << 13);
20106 val_shift = 13;
20107 break;
20108
20109 case (0x1 << 9):
20110 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20111 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20112 val_mask = (0x7 << 0);
20113 val_shift = 0;
20114 break;
20115
20116 case (0x1 << 10):
20117 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20118 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20119 val_mask = (0x7 << 4);
20120 val_shift = 4;
20121 break;
20122
20123 case (0x1 << 12):
20124 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20125 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20126 val_mask = (0xffff << 0);
20127 val_shift = 0;
20128 break;
20129 case (0x1 << 13):
20130 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20131 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20132 val_mask = (0xffff << 0);
20133 val_shift = 0;
20134 break;
20135 case (0x1 << 14):
20136 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20137 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20138 val_mask = (0x3 << 6);
20139 val_shift = 6;
20140 break;
20141 case (0x1 << 0):
20142 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20143 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20144 val_mask = (0x1 << 15);
20145 val_shift = 15;
20146 break;
20147 default:
20148 addr = 0xffff;
20149 break;
20150 }
20151
20152 if (off) {
20153 and_phy_reg(pi, en_addr, ~en_mask);
20154 and_phy_reg(pi, val_addr, ~val_mask);
20155 } else {
20156
20157 if ((core_mask == 0)
20158 || (core_mask & (1 << core_num))) {
20159 or_phy_reg(pi, en_addr, en_mask);
20160
20161 if (addr != 0xffff) {
20162 mod_phy_reg(pi, val_addr,
20163 val_mask,
20164 (value <<
20165 val_shift));
20166 }
20167 }
20168 }
20169 }
20170 } else {
20171
20172 if (off) {
20173 and_phy_reg(pi, 0xec, ~field);
20174 value = 0x0;
20175 } else {
20176 or_phy_reg(pi, 0xec, field);
20177 }
20178
20179 for (core_num = 0; core_num < 2; core_num++) {
20180
20181 switch (field) {
20182 case (0x1 << 1):
20183 case (0x1 << 9):
20184 case (0x1 << 12):
20185 case (0x1 << 13):
20186 case (0x1 << 14):
20187 addr = 0x78;
20188
20189 core_mask = 0x1;
20190 break;
20191 case (0x1 << 2):
20192 case (0x1 << 3):
20193 case (0x1 << 4):
20194 case (0x1 << 5):
20195 case (0x1 << 6):
20196 case (0x1 << 7):
20197 case (0x1 << 8):
20198 addr = (core_num == 0) ? 0x7a : 0x7d;
20199 break;
20200 case (0x1 << 10):
20201 addr = (core_num == 0) ? 0x7b : 0x7e;
20202 break;
20203 case (0x1 << 11):
20204 addr = (core_num == 0) ? 0x7c : 0x7f;
20205 break;
20206 default:
20207 addr = 0xffff;
20208 }
20209
20210 switch (field) {
20211 case (0x1 << 1):
20212 mask = (0x7 << 3);
20213 shift = 3;
20214 break;
20215 case (0x1 << 9):
20216 mask = (0x1 << 2);
20217 shift = 2;
20218 break;
20219 case (0x1 << 12):
20220 mask = (0x1 << 8);
20221 shift = 8;
20222 break;
20223 case (0x1 << 13):
20224 mask = (0x1 << 9);
20225 shift = 9;
20226 break;
20227 case (0x1 << 14):
20228 mask = (0xf << 12);
20229 shift = 12;
20230 break;
20231 case (0x1 << 2):
20232 mask = (0x1 << 0);
20233 shift = 0;
20234 break;
20235 case (0x1 << 3):
20236 mask = (0x1 << 1);
20237 shift = 1;
20238 break;
20239 case (0x1 << 4):
20240 mask = (0x1 << 2);
20241 shift = 2;
20242 break;
20243 case (0x1 << 5):
20244 mask = (0x3 << 4);
20245 shift = 4;
20246 break;
20247 case (0x1 << 6):
20248 mask = (0x3 << 6);
20249 shift = 6;
20250 break;
20251 case (0x1 << 7):
20252 mask = (0x1 << 8);
20253 shift = 8;
20254 break;
20255 case (0x1 << 8):
20256 mask = (0x1 << 9);
20257 shift = 9;
20258 break;
20259 case (0x1 << 10):
20260 mask = 0x1fff;
20261 shift = 0x0;
20262 break;
20263 case (0x1 << 11):
20264 mask = 0x1fff;
20265 shift = 0x0;
20266 break;
20267 default:
20268 mask = 0x0;
20269 shift = 0x0;
20270 break;
20271 }
20272
20273 if ((addr != 0xffff) && (core_mask & (1 << core_num))) {
20274 mod_phy_reg(pi, addr, mask, (value << shift));
20275 }
20276 }
20277
20278 or_phy_reg(pi, 0xec, (0x1 << 0));
20279 or_phy_reg(pi, 0x78, (0x1 << 0));
7383141b 20280 udelay(1);
a9533e7e
HP
20281 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20282 }
20283}
20284
20285static void
7d4df48e 20286wlc_phy_rfctrl_override_1tomany_nphy(phy_info_t *pi, u16 cmd, u16 value,
e868ab03 20287 u8 core_mask, u8 off)
a9533e7e 20288{
7d4df48e
GKH
20289 u16 rfmxgain = 0, lpfgain = 0;
20290 u16 tgain = 0;
a9533e7e
HP
20291
20292 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20293
20294 switch (cmd) {
20295 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
20296 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
20297 value, core_mask, off,
20298 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20299 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), value,
20300 core_mask, off,
20301 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20302 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), value,
20303 core_mask, off,
20304 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20305 break;
20306 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
20307 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20308 value, core_mask, off,
20309 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20310 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20311 core_mask, off,
20312 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20313 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20314 core_mask, off,
20315 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20316 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20317 core_mask, off,
20318 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20319 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0,
20320 core_mask, off,
20321 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20322 break;
20323 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
20324 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20325 value, core_mask, off,
20326 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20327 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20328 core_mask, off,
20329 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20330 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20331 core_mask, off,
20332 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20333 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), value,
20334 core_mask, off,
20335 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20336 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1,
20337 core_mask, off,
20338 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20339 break;
20340 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
20341 rfmxgain = value & 0x000ff;
20342 lpfgain = value & 0x0ff00;
20343 lpfgain = lpfgain >> 8;
20344
20345 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
20346 rfmxgain, core_mask,
20347 off,
20348 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20349 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x3 << 13),
20350 lpfgain, core_mask,
20351 off,
20352 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20353 break;
20354 case NPHY_REV7_RfctrlOverride_cmd_txgain:
20355 tgain = value & 0x7fff;
20356 lpfgain = value & 0x8000;
20357 lpfgain = lpfgain >> 14;
20358
20359 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
20360 tgain, core_mask, off,
20361 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20362 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 13),
20363 lpfgain, core_mask,
20364 off,
20365 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20366 break;
20367 }
20368 }
20369}
20370
20371static void
7d4df48e 20372wlc_phy_scale_offset_rssi_nphy(phy_info_t *pi, u16 scale, s8 offset,
e868ab03 20373 u8 coresel, u8 rail, u8 rssi_type)
a9533e7e 20374{
7d4df48e 20375 u16 valuetostuff;
a9533e7e
HP
20376
20377 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
20378 NPHY_RSSICAL_MAXREAD : offset;
20379 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
20380 -NPHY_RSSICAL_MAXREAD - 1 : offset;
20381
20382 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
20383
20384 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20385 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20386 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20387 write_phy_reg(pi, 0x1a6, valuetostuff);
20388 }
20389 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20390 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20391 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20392 write_phy_reg(pi, 0x1ac, valuetostuff);
20393 }
20394 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20395 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20396 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20397 write_phy_reg(pi, 0x1b2, valuetostuff);
20398 }
20399 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20400 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20401 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20402 write_phy_reg(pi, 0x1b8, valuetostuff);
20403 }
20404
20405 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20406 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20407 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20408 write_phy_reg(pi, 0x1a4, valuetostuff);
20409 }
20410 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20411 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20412 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20413 write_phy_reg(pi, 0x1aa, valuetostuff);
20414 }
20415 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20416 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20417 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20418 write_phy_reg(pi, 0x1b0, valuetostuff);
20419 }
20420 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20421 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20422 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20423 write_phy_reg(pi, 0x1b6, valuetostuff);
20424 }
20425
20426 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20427 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20428 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20429 write_phy_reg(pi, 0x1a5, valuetostuff);
20430 }
20431 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20432 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20433 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20434 write_phy_reg(pi, 0x1ab, valuetostuff);
20435 }
20436 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20437 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20438 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20439 write_phy_reg(pi, 0x1b1, valuetostuff);
20440 }
20441 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20442 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20443 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20444 write_phy_reg(pi, 0x1b7, valuetostuff);
20445 }
20446
20447 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20448 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20449 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20450 write_phy_reg(pi, 0x1a7, valuetostuff);
20451 }
20452 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20453 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20454 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20455 write_phy_reg(pi, 0x1ad, valuetostuff);
20456 }
20457 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20458 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20459 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20460 write_phy_reg(pi, 0x1b3, valuetostuff);
20461 }
20462 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20463 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20464 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20465 write_phy_reg(pi, 0x1b9, valuetostuff);
20466 }
20467
20468 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20469 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20470 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20471 write_phy_reg(pi, 0x1a8, valuetostuff);
20472 }
20473 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20474 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20475 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20476 write_phy_reg(pi, 0x1ae, valuetostuff);
20477 }
20478 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20479 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20480 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20481 write_phy_reg(pi, 0x1b4, valuetostuff);
20482 }
20483 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20484 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20485 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20486 write_phy_reg(pi, 0x1ba, valuetostuff);
20487 }
20488
20489 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20490 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20491 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20492 write_phy_reg(pi, 0x1a9, valuetostuff);
20493 }
20494 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20495 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20496 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20497 write_phy_reg(pi, 0x1b5, valuetostuff);
20498 }
20499
20500 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20501 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20502 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20503 write_phy_reg(pi, 0x1af, valuetostuff);
20504 }
20505 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20506 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20507 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20508 write_phy_reg(pi, 0x1bb, valuetostuff);
20509 }
20510}
20511
e868ab03 20512void wlc_phy_rssisel_nphy(phy_info_t *pi, u8 core_code, u8 rssi_type)
a9533e7e 20513{
7d4df48e
GKH
20514 u16 mask, val;
20515 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
a9533e7e 20516 startseq;
7d4df48e 20517 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
a9533e7e 20518 rfctrlovr_trigger_val;
7d4df48e
GKH
20519 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
20520 u16 rfctrlcmd_val, rfctrlovr_val;
e868ab03 20521 u8 core;
a9533e7e
HP
20522
20523 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20524 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20525 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
20526 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
20527
20528 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
20529 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
20530
20531 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
20532 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
20533
20534 mask = (0x1 << 2) |
20535 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20536 mod_phy_reg(pi, 0xf9, mask, 0);
20537 mod_phy_reg(pi, 0xfb, mask, 0);
20538
20539 } else {
20540 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20541 if (core_code == RADIO_MIMO_CORESEL_CORE1
20542 && core == PHY_CORE_1)
20543 continue;
20544 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20545 && core == PHY_CORE_0)
20546 continue;
20547
20548 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20549 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20550
20551 if (rssi_type == NPHY_RSSI_SEL_W1 ||
20552 rssi_type == NPHY_RSSI_SEL_W2 ||
20553 rssi_type == NPHY_RSSI_SEL_NB) {
20554
20555 mod_phy_reg(pi,
20556 (core ==
20557 PHY_CORE_0) ? 0xa6 : 0xa7,
20558 (0x3 << 8), 0);
20559
20560 mask = (0x1 << 2) |
20561 (0x1 << 3) |
20562 (0x1 << 4) | (0x1 << 5);
20563 mod_phy_reg(pi,
20564 (core ==
20565 PHY_CORE_0) ? 0xf9 : 0xfb,
20566 mask, 0);
20567
20568 if (rssi_type == NPHY_RSSI_SEL_W1) {
20569 if (CHSPEC_IS5G
20570 (pi->radio_chanspec)) {
20571 mask = (0x1 << 2);
20572 val = 1 << 2;
20573 } else {
20574 mask = (0x1 << 3);
20575 val = 1 << 3;
20576 }
20577 } else if (rssi_type ==
20578 NPHY_RSSI_SEL_W2) {
20579 mask = (0x1 << 4);
20580 val = 1 << 4;
20581 } else {
20582 mask = (0x1 << 5);
20583 val = 1 << 5;
20584 }
20585 mod_phy_reg(pi,
20586 (core ==
20587 PHY_CORE_0) ? 0xf9 : 0xfb,
20588 mask, val);
20589
20590 mask = (0x1 << 5);
20591 val = 1 << 5;
20592 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20593 0xe5 : 0xe6, mask, val);
20594 } else {
20595 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20596
20597 mask = (0x3 << 8);
20598 val = 1 << 8;
20599 mod_phy_reg(pi,
20600 (core ==
20601 PHY_CORE_0) ? 0xa6
20602 : 0xa7, mask, val);
20603 mask = (0x3 << 10);
20604 val = 1 << 10;
20605 mod_phy_reg(pi,
20606 (core ==
20607 PHY_CORE_0) ? 0xa6
20608 : 0xa7, mask, val);
20609 } else if (rssi_type ==
20610 NPHY_RSSI_SEL_IQ) {
20611
20612 mask = (0x3 << 8);
20613 val = 2 << 8;
20614 mod_phy_reg(pi,
20615 (core ==
20616 PHY_CORE_0) ? 0xa6
20617 : 0xa7, mask, val);
20618 mask = (0x3 << 10);
20619 val = 2 << 10;
20620 mod_phy_reg(pi,
20621 (core ==
20622 PHY_CORE_0) ? 0xa6
20623 : 0xa7, mask, val);
20624 } else {
20625
20626 mask = (0x3 << 8);
20627 val = 3 << 8;
20628 mod_phy_reg(pi,
20629 (core ==
20630 PHY_CORE_0) ? 0xa6
20631 : 0xa7, mask, val);
20632 mask = (0x3 << 10);
20633 val = 3 << 10;
20634 mod_phy_reg(pi,
20635 (core ==
20636 PHY_CORE_0) ? 0xa6
20637 : 0xa7, mask, val);
20638
20639 if (PHY_IPA(pi)) {
20640 if (NREV_GE
20641 (pi->pubpi.phy_rev,
20642 7)) {
20643
20644 write_radio_reg
20645 (pi,
20646 ((core ==
20647 PHY_CORE_0)
20648 ?
20649 RADIO_2057_TX0_TX_SSI_MUX
20650 :
20651 RADIO_2057_TX1_TX_SSI_MUX),
20652 (CHSPEC_IS5G
20653 (pi->
20654 radio_chanspec)
20655 ? 0xc :
20656 0xe));
20657 } else {
20658 write_radio_reg
20659 (pi,
20660 RADIO_2056_TX_TX_SSI_MUX
20661 |
20662 ((core ==
20663 PHY_CORE_0)
20664 ?
20665 RADIO_2056_TX0
20666 :
20667 RADIO_2056_TX1),
20668 (CHSPEC_IS5G
20669 (pi->
20670 radio_chanspec)
20671 ? 0xc :
20672 0xe));
20673 }
20674 } else {
20675
20676 if (NREV_GE
20677 (pi->pubpi.phy_rev,
20678 7)) {
20679 write_radio_reg
20680 (pi,
20681 ((core ==
20682 PHY_CORE_0)
20683 ?
20684 RADIO_2057_TX0_TX_SSI_MUX
20685 :
20686 RADIO_2057_TX1_TX_SSI_MUX),
20687 0x11);
20688
20689 if (pi->pubpi.
20690 radioid ==
20691 BCM2057_ID)
20692 write_radio_reg
20693 (pi,
20694 RADIO_2057_IQTEST_SEL_PU,
20695 0x1);
20696
20697 } else {
20698 write_radio_reg
20699 (pi,
20700 RADIO_2056_TX_TX_SSI_MUX
20701 |
20702 ((core ==
20703 PHY_CORE_0)
20704 ?
20705 RADIO_2056_TX0
20706 :
20707 RADIO_2056_TX1),
20708 0x11);
20709 }
20710 }
20711
20712 afectrlovr_rssi_val = 1 << 9;
20713 mod_phy_reg(pi,
20714 (core ==
20715 PHY_CORE_0) ? 0x8f
20716 : 0xa5, (0x1 << 9),
20717 afectrlovr_rssi_val);
20718 }
20719 }
20720 }
20721 }
20722 } else {
20723
20724 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20725 (rssi_type == NPHY_RSSI_SEL_W2) ||
20726 (rssi_type == NPHY_RSSI_SEL_NB)) {
20727
20728 val = 0x0;
20729 } else if (rssi_type == NPHY_RSSI_SEL_TBD) {
20730
20731 val = 0x1;
20732 } else if (rssi_type == NPHY_RSSI_SEL_IQ) {
20733
20734 val = 0x2;
20735 } else {
20736
20737 val = 0x3;
20738 }
20739 mask = ((0x3 << 12) | (0x3 << 14));
20740 val = (val << 12) | (val << 14);
20741 mod_phy_reg(pi, 0xa6, mask, val);
20742 mod_phy_reg(pi, 0xa7, mask, val);
20743
20744 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20745 (rssi_type == NPHY_RSSI_SEL_W2) ||
20746 (rssi_type == NPHY_RSSI_SEL_NB)) {
20747 if (rssi_type == NPHY_RSSI_SEL_W1) {
20748 val = 0x1;
20749 }
20750 if (rssi_type == NPHY_RSSI_SEL_W2) {
20751 val = 0x2;
20752 }
20753 if (rssi_type == NPHY_RSSI_SEL_NB) {
20754 val = 0x3;
20755 }
20756 mask = (0x3 << 4);
20757 val = (val << 4);
20758 mod_phy_reg(pi, 0x7a, mask, val);
20759 mod_phy_reg(pi, 0x7d, mask, val);
20760 }
20761
20762 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20763 afectrlovr_rssi_val = 0;
20764 rfctrlcmd_rxen_val = 0;
20765 rfctrlcmd_coresel_val = 0;
20766 rfctrlovr_rssi_val = 0;
20767 rfctrlovr_rxen_val = 0;
20768 rfctrlovr_coresel_val = 0;
20769 rfctrlovr_trigger_val = 0;
20770 startseq = 0;
20771 } else {
20772 afectrlovr_rssi_val = 1;
20773 rfctrlcmd_rxen_val = 1;
20774 rfctrlcmd_coresel_val = core_code;
20775 rfctrlovr_rssi_val = 1;
20776 rfctrlovr_rxen_val = 1;
20777 rfctrlovr_coresel_val = 1;
20778 rfctrlovr_trigger_val = 1;
20779 startseq = 1;
20780 }
20781
20782 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
20783 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
20784 12) | (afectrlovr_rssi_val << 13);
20785 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
20786 afectrlovr_rssi_val);
20787
20788 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20789 (rssi_type == NPHY_RSSI_SEL_W2) ||
20790 (rssi_type == NPHY_RSSI_SEL_NB)) {
20791 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
20792 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
20793 (rfctrlcmd_coresel_val << 3);
20794
20795 rfctrlovr_mask = ((0x1 << 5) |
20796 (0x1 << 12) |
20797 (0x1 << 1) | (0x1 << 0));
20798 rfctrlovr_val = (rfctrlovr_rssi_val <<
20799 5) |
20800 (rfctrlovr_rxen_val << 12) |
20801 (rfctrlovr_coresel_val << 1) |
20802 (rfctrlovr_trigger_val << 0);
20803
20804 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
20805 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
20806
20807 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
7383141b 20808 udelay(20);
a9533e7e
HP
20809
20810 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
20811 }
20812 }
20813}
20814
20815int
3e26416e 20816wlc_phy_poll_rssi_nphy(phy_info_t *pi, u8 rssi_type, s32 *rssi_buf,
e868ab03 20817 u8 nsamps)
a9533e7e 20818{
e59fe083 20819 s16 rssi0, rssi1;
7d4df48e
GKH
20820 u16 afectrlCore1_save = 0;
20821 u16 afectrlCore2_save = 0;
20822 u16 afectrlOverride1_save = 0;
20823 u16 afectrlOverride2_save = 0;
20824 u16 rfctrlOverrideAux0_save = 0;
20825 u16 rfctrlOverrideAux1_save = 0;
20826 u16 rfctrlMiscReg1_save = 0;
20827 u16 rfctrlMiscReg2_save = 0;
20828 u16 rfctrlcmd_save = 0;
20829 u16 rfctrloverride_save = 0;
20830 u16 rfctrlrssiothers1_save = 0;
20831 u16 rfctrlrssiothers2_save = 0;
562c8850 20832 s8 tmp_buf[4];
e868ab03 20833 u8 ctr = 0, samp = 0;
3e26416e 20834 s32 rssi_out_val;
7d4df48e 20835 u16 gpiosel_orig;
a9533e7e
HP
20836
20837 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20838 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20839 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20840 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
20841 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
20842 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
20843 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20844 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
20845 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
20846 } else {
20847 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
20848 rfctrlcmd_save = read_phy_reg(pi, 0x78);
20849 rfctrloverride_save = read_phy_reg(pi, 0xec);
20850 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
20851 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
20852 }
20853
20854 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
20855
20856 gpiosel_orig = read_phy_reg(pi, 0xca);
20857 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20858 write_phy_reg(pi, 0xca, 5);
20859 }
20860
20861 for (ctr = 0; ctr < 4; ctr++) {
20862 rssi_buf[ctr] = 0;
20863 }
20864
20865 for (samp = 0; samp < nsamps; samp++) {
20866 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20867 rssi0 = read_phy_reg(pi, 0x1c9);
20868 rssi1 = read_phy_reg(pi, 0x1ca);
20869 } else {
20870 rssi0 = read_phy_reg(pi, 0x219);
20871 rssi1 = read_phy_reg(pi, 0x21a);
20872 }
20873
20874 ctr = 0;
562c8850
GKH
20875 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
20876 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
20877 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
20878 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
a9533e7e
HP
20879
20880 for (ctr = 0; ctr < 4; ctr++) {
20881 rssi_buf[ctr] += tmp_buf[ctr];
20882 }
20883
20884 }
20885
20886 rssi_out_val = rssi_buf[3] & 0xff;
20887 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
20888 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
20889 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
20890
20891 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20892 write_phy_reg(pi, 0xca, gpiosel_orig);
20893 }
20894
20895 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20896 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20897 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20898 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
20899 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
20900 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
20901 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20902 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
20903 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
20904 } else {
20905 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
20906 write_phy_reg(pi, 0x78, rfctrlcmd_save);
20907 write_phy_reg(pi, 0xec, rfctrloverride_save);
20908 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
20909 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
20910 }
20911
90ea2296 20912 return rssi_out_val;
a9533e7e
HP
20913}
20914
e59fe083 20915s16 wlc_phy_tempsense_nphy(phy_info_t *pi)
a9533e7e 20916{
7d4df48e
GKH
20917 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
20918 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
20919 u16 pwrdet_rxtx_core1_save;
20920 u16 pwrdet_rxtx_core2_save;
20921 u16 afectrlCore1_save;
20922 u16 afectrlCore2_save;
20923 u16 afectrlOverride_save;
20924 u16 afectrlOverride2_save;
20925 u16 pd_pll_ts_save;
20926 u16 gpioSel_save;
3e26416e
GKH
20927 s32 radio_temp[4];
20928 s32 radio_temp2[4];
7d4df48e 20929 u16 syn_tempprocsense_save;
e59fe083 20930 s16 offset = 0;
a9533e7e
HP
20931
20932 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
7d4df48e
GKH
20933 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
20934 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
20935 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
3e26416e 20936 s32 auxADC_Vl;
7d4df48e
GKH
20937 u16 RfctrlOverride5_save, RfctrlOverride6_save;
20938 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
20939 u16 RSSIMultCoef0QPowerDet_save;
20940 u16 tempsense_Rcal;
a9533e7e
HP
20941
20942 syn_tempprocsense_save =
20943 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
20944
20945 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20946 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20947 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20948 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20949 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
20950 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
20951 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
20952 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
20953 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
20954
20955 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20956 &auxADC_Vmid_save);
20957 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20958 &auxADC_Av_save);
20959 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20960 &auxADC_rssi_ctrlL_save);
20961 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20962 &auxADC_rssi_ctrlH_save);
20963
20964 write_phy_reg(pi, 0x1ae, 0x0);
20965
20966 auxADC_rssi_ctrlL = 0x0;
20967 auxADC_rssi_ctrlH = 0x20;
20968 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20969 &auxADC_rssi_ctrlL);
20970 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20971 &auxADC_rssi_ctrlH);
20972
20973 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
20974
20975 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20976 tempsense_Rcal | 0x01);
20977
20978 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
20979 1, 0, 0,
20980 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20981 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
20982 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
20983 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
20984 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
20985
20986 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
20987 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
20988 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
20989 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
7383141b 20990 udelay(5);
a9533e7e
HP
20991 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
20992 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
20993 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
20994 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
20995 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
20996 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
20997 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
20998 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
20999 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
21000 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
21001
21002 auxADC_Vmid = 0xA3;
21003 auxADC_Av = 0x0;
21004 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21005 &auxADC_Vmid);
21006 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21007 &auxADC_Av);
21008
7383141b 21009 udelay(3);
a9533e7e
HP
21010
21011 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21012 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21013 tempsense_Rcal | 0x03);
21014
7383141b 21015 udelay(5);
a9533e7e
HP
21016 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21017
21018 auxADC_Av = 0x7;
21019 if (radio_temp[1] + radio_temp2[1] < -30) {
21020 auxADC_Vmid = 0x45;
21021 auxADC_Vl = 263;
21022 } else if (radio_temp[1] + radio_temp2[1] < -9) {
21023 auxADC_Vmid = 0x200;
21024 auxADC_Vl = 467;
21025 } else if (radio_temp[1] + radio_temp2[1] < 11) {
21026 auxADC_Vmid = 0x266;
21027 auxADC_Vl = 634;
21028 } else {
21029 auxADC_Vmid = 0x2D5;
21030 auxADC_Vl = 816;
21031 }
21032
21033 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21034 &auxADC_Vmid);
21035 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21036 &auxADC_Av);
21037
7383141b 21038 udelay(3);
a9533e7e
HP
21039
21040 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21041 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21042 tempsense_Rcal | 0x01);
21043
7383141b 21044 udelay(5);
a9533e7e
HP
21045 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21046
21047 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21048 syn_tempprocsense_save);
21049
21050 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21051 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21052 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21053 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21054 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
21055 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
21056 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
21057 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
21058 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
21059
21060 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21061 &auxADC_Vmid_save);
21062 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21063 &auxADC_Av_save);
21064 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
21065 &auxADC_rssi_ctrlL_save);
21066 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
21067 &auxADC_rssi_ctrlH_save);
21068
21069 if (CHIPID(pi->sh->chip) == BCM5357_CHIP_ID) {
21070 radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
21071 + 88 * (auxADC_Vl) - 27111 +
21072 128) / 256;
21073 } else if (CHIPID(pi->sh->chip) == BCM43236_CHIP_ID) {
21074 radio_temp[0] = (198 * (radio_temp[1] + radio_temp2[1])
21075 + 91 * (auxADC_Vl) - 27243 +
21076 128) / 256;
21077 } else {
21078 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
21079 + 82 * (auxADC_Vl) - 28861 +
21080 128) / 256;
21081 }
21082
e59fe083 21083 offset = (s16) pi->phy_tempsense_offset;
a9533e7e
HP
21084
21085 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21086 syn_tempprocsense_save =
21087 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
21088
21089 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21090 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21091 afectrlOverride_save = read_phy_reg(pi, 0x8f);
21092 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21093 gpioSel_save = read_phy_reg(pi, 0xca);
21094
21095 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21096
21097 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21098 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21099 } else {
21100 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
21101 }
21102
21103 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21104 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21105 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
21106 } else {
21107 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21108 }
21109
21110 radio_temp[0] =
21111 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
21112
21113 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
21114 syn_tempprocsense_save);
21115
21116 write_phy_reg(pi, 0xca, gpioSel_save);
21117 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21118 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21119 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21120 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21121
e59fe083 21122 offset = (s16) pi->phy_tempsense_offset;
a9533e7e
HP
21123 } else {
21124
21125 pwrdet_rxtx_core1_save =
21126 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
21127 pwrdet_rxtx_core2_save =
21128 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
21129 core1_txrf_iqcal1_save =
21130 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
21131 core1_txrf_iqcal2_save =
21132 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
21133 core2_txrf_iqcal1_save =
21134 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
21135 core2_txrf_iqcal2_save =
21136 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
21137 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
21138
21139 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21140 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21141 afectrlOverride_save = read_phy_reg(pi, 0xa5);
21142 gpioSel_save = read_phy_reg(pi, 0xca);
21143
21144 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
21145 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
21146 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
21147 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
21148 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
21149 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
21150 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
21151
21152 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21153 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21154
21155 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21156 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21157
21158 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21159 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21160
21161 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
21162 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
21163 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
21164 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
21165
21166 radio_temp[0] =
21167 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
21168 radio_temp[3]);
21169
21170 radio_temp[0] =
21171 (radio_temp[0] + (8 * 32)) * (950 - 350) / 63 + (350 * 8);
21172
21173 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
21174
21175 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
21176 pwrdet_rxtx_core1_save);
21177 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
21178 pwrdet_rxtx_core2_save);
21179 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
21180 core1_txrf_iqcal1_save);
21181 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
21182 core2_txrf_iqcal1_save);
21183 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
21184 core1_txrf_iqcal2_save);
21185 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
21186 core2_txrf_iqcal2_save);
21187 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
21188
21189 write_phy_reg(pi, 0xca, gpioSel_save);
21190 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21191 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21192 write_phy_reg(pi, 0xa5, afectrlOverride_save);
21193 }
21194
e59fe083 21195 return (s16) radio_temp[0] + offset;
a9533e7e
HP
21196}
21197
21198static void
e868ab03 21199wlc_phy_set_rssi_2055_vcm(phy_info_t *pi, u8 rssi_type, u8 *vcm_buf)
a9533e7e 21200{
e868ab03 21201 u8 core;
a9533e7e
HP
21202
21203 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21204 if (rssi_type == NPHY_RSSI_SEL_NB) {
21205 if (core == PHY_CORE_0) {
21206 mod_radio_reg(pi,
21207 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21208 RADIO_2055_NBRSSI_VCM_I_MASK,
21209 vcm_buf[2 *
21210 core] <<
21211 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21212 mod_radio_reg(pi,
21213 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21214 RADIO_2055_NBRSSI_VCM_Q_MASK,
21215 vcm_buf[2 * core +
21216 1] <<
21217 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21218 } else {
21219 mod_radio_reg(pi,
21220 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21221 RADIO_2055_NBRSSI_VCM_I_MASK,
21222 vcm_buf[2 *
21223 core] <<
21224 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21225 mod_radio_reg(pi,
21226 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21227 RADIO_2055_NBRSSI_VCM_Q_MASK,
21228 vcm_buf[2 * core +
21229 1] <<
21230 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21231 }
21232 } else {
21233
21234 if (core == PHY_CORE_0) {
21235 mod_radio_reg(pi,
21236 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21237 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21238 vcm_buf[2 *
21239 core] <<
21240 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21241 } else {
21242 mod_radio_reg(pi,
21243 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21244 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21245 vcm_buf[2 *
21246 core] <<
21247 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21248 }
21249 }
21250 }
21251}
21252
7cc4a4c0 21253void wlc_phy_rssi_cal_nphy(phy_info_t *pi)
a9533e7e
HP
21254{
21255 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21256
21257 wlc_phy_rssi_cal_nphy_rev3(pi);
21258 } else {
21259 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
21260 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
21261 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
21262 }
21263}
21264
e868ab03 21265static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type)
a9533e7e 21266{
3e26416e 21267 s32 target_code;
7d4df48e
GKH
21268 u16 classif_state;
21269 u16 clip_state[2];
21270 u16 rssi_ctrl_state[2], pd_state[2];
21271 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
21272 u16 rfctrlintc_override_val;
21273 u16 clip_off[] = { 0xffff, 0xffff };
21274 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
e868ab03
GKH
21275 u8 vcm, min_vcm, vcm_tmp[4];
21276 u8 vcm_final[4] = { 0, 0, 0, 0 };
21277 u8 result_idx, ctr;
3e26416e 21278 s32 poll_results[4][4] = {
a9533e7e
HP
21279 {0, 0, 0, 0},
21280 {0, 0, 0, 0},
21281 {0, 0, 0, 0},
21282 {0, 0, 0, 0}
21283 };
3e26416e 21284 s32 poll_miniq[4][2] = {
a9533e7e
HP
21285 {0, 0},
21286 {0, 0},
21287 {0, 0},
21288 {0, 0}
21289 };
3e26416e
GKH
21290 s32 min_d, curr_d;
21291 s32 fine_digital_offset[4];
21292 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21293 s32 min_poll;
a9533e7e
HP
21294
21295 switch (rssi_type) {
21296 case NPHY_RSSI_SEL_NB:
21297 target_code = NPHY_RSSICAL_NB_TARGET;
21298 break;
21299 case NPHY_RSSI_SEL_W1:
21300 target_code = NPHY_RSSICAL_W1_TARGET;
21301 break;
21302 case NPHY_RSSI_SEL_W2:
21303 target_code = NPHY_RSSICAL_W2_TARGET;
21304 break;
21305 default:
21306 return;
21307 break;
21308 }
21309
21310 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21311 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21312 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21313 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21314
21315 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
21316 rfctrlintc_override_val =
21317 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
21318
21319 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
21320 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
21321 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
21322 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
21323
21324 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
21325 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
21326 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
21327 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
21328
21329 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
21330 RADIO_2055_WBRSSI_G2_PD;
21331 pd_state[0] =
21332 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21333 pd_state[1] =
21334 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
21335 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
21336 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
21337 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
21338 RADIO_2055_WBRSSI_G2_SEL;
21339 rssi_ctrl_state[0] =
21340 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
21341 rssi_ctrl_state[1] =
21342 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
21343 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21344
21345 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21346 NPHY_RAIL_I, rssi_type);
21347 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21348 NPHY_RAIL_Q, rssi_type);
21349
21350 for (vcm = 0; vcm < 4; vcm++) {
21351
21352 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
21353 if (rssi_type != NPHY_RSSI_SEL_W2) {
21354 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
21355 }
21356
21357 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
21358 NPHY_RSSICAL_NPOLL);
21359
21360 if ((rssi_type == NPHY_RSSI_SEL_W1)
21361 || (rssi_type == NPHY_RSSI_SEL_W2)) {
21362 for (ctr = 0; ctr < 2; ctr++) {
21363 poll_miniq[vcm][ctr] =
7068c2f1 21364 min(poll_results[vcm][ctr * 2 + 0],
a9533e7e
HP
21365 poll_results[vcm][ctr * 2 + 1]);
21366 }
21367 }
21368 }
21369
21370 for (result_idx = 0; result_idx < 4; result_idx++) {
21371 min_d = NPHY_RSSICAL_MAXD;
21372 min_vcm = 0;
21373 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
21374 for (vcm = 0; vcm < 4; vcm++) {
21375 curr_d = ABS(((rssi_type == NPHY_RSSI_SEL_NB) ?
21376 poll_results[vcm][result_idx] :
21377 poll_miniq[vcm][result_idx / 2]) -
21378 (target_code * NPHY_RSSICAL_NPOLL));
21379 if (curr_d < min_d) {
21380 min_d = curr_d;
21381 min_vcm = vcm;
21382 }
21383 if (poll_results[vcm][result_idx] < min_poll) {
21384 min_poll = poll_results[vcm][result_idx];
21385 }
21386 }
21387 vcm_final[result_idx] = min_vcm;
21388 poll_results_min[result_idx] = min_poll;
21389 }
21390
21391 if (rssi_type != NPHY_RSSI_SEL_W2) {
21392 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
21393 }
21394
21395 for (result_idx = 0; result_idx < 4; result_idx++) {
21396 fine_digital_offset[result_idx] =
21397 (target_code * NPHY_RSSICAL_NPOLL) -
21398 poll_results[vcm_final[result_idx]][result_idx];
21399 if (fine_digital_offset[result_idx] < 0) {
21400 fine_digital_offset[result_idx] =
21401 ABS(fine_digital_offset[result_idx]);
21402 fine_digital_offset[result_idx] +=
21403 (NPHY_RSSICAL_NPOLL / 2);
21404 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21405 fine_digital_offset[result_idx] =
21406 -fine_digital_offset[result_idx];
21407 } else {
21408 fine_digital_offset[result_idx] +=
21409 (NPHY_RSSICAL_NPOLL / 2);
21410 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21411 }
21412
21413 if (poll_results_min[result_idx] ==
21414 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21415 fine_digital_offset[result_idx] =
21416 (target_code - NPHY_RSSICAL_MAXREAD - 1);
21417 }
21418
21419 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 21420 (s8)
a9533e7e
HP
21421 fine_digital_offset[result_idx],
21422 (result_idx / 2 ==
21423 0) ? RADIO_MIMO_CORESEL_CORE1 :
21424 RADIO_MIMO_CORESEL_CORE2,
21425 (result_idx % 2 ==
21426 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21427 rssi_type);
21428 }
21429
21430 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
21431 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
21432 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL) {
21433 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21434 NPHY_RSSI_SEL_NB);
21435 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL) {
21436 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21437 NPHY_RSSI_SEL_W1);
21438 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL) {
21439 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21440 NPHY_RSSI_SEL_W2);
21441 } else {
21442 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21443 NPHY_RSSI_SEL_W2);
21444 }
21445 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL) {
21446 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21447 NPHY_RSSI_SEL_NB);
21448 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL) {
21449 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21450 NPHY_RSSI_SEL_W1);
21451 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL) {
21452 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21453 NPHY_RSSI_SEL_W2);
21454 } else {
21455 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21456 NPHY_RSSI_SEL_W2);
21457 }
21458
21459 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
21460
21461 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
21462 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
21463 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
21464 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
21465
21466 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
21467 wlc_phy_clip_det_nphy(pi, 1, clip_state);
21468
21469 wlc_phy_resetcca_nphy(pi);
21470}
21471
21472int BCMFASTPATH
7cc4a4c0 21473wlc_phy_rssi_compute_nphy(phy_info_t *pi, wlc_d11rxhdr_t *wlc_rxh)
a9533e7e
HP
21474{
21475 d11rxhdr_t *rxh = &wlc_rxh->rxhdr;
e59fe083
GKH
21476 s16 rxpwr, rxpwr0, rxpwr1;
21477 s16 phyRx0_l, phyRx2_l;
a9533e7e
HP
21478
21479 rxpwr = 0;
21480 rxpwr0 = ltoh16(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
21481 rxpwr1 = (ltoh16(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
21482
21483 if (rxpwr0 > 127)
21484 rxpwr0 -= 256;
21485 if (rxpwr1 > 127)
21486 rxpwr1 -= 256;
21487
21488 phyRx0_l = ltoh16(rxh->PhyRxStatus_0) & 0x00ff;
21489 phyRx2_l = ltoh16(rxh->PhyRxStatus_2) & 0x00ff;
21490 if (phyRx2_l > 127)
21491 phyRx2_l -= 256;
21492
21493 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21494 rxpwr0 = rxpwr1;
21495 rxpwr1 = phyRx2_l;
21496 }
21497
562c8850
GKH
21498 wlc_rxh->rxpwr[0] = (s8) rxpwr0;
21499 wlc_rxh->rxpwr[1] = (s8) rxpwr1;
a9533e7e
HP
21500 wlc_rxh->do_rssi_ma = 0;
21501
21502 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
21503 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
21504 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
21505 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
21506 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
21507 rxpwr = (rxpwr0 + rxpwr1) >> 1;
21508 else
21509 ASSERT(0);
21510
21511 return rxpwr;
21512}
21513
21514static void
7d4df48e 21515wlc_phy_rfctrlintc_override_nphy(phy_info_t *pi, u8 field, u16 value,
e868ab03 21516 u8 core_code)
a9533e7e 21517{
7d4df48e
GKH
21518 u16 mask;
21519 u16 val;
e868ab03 21520 u8 core;
a9533e7e
HP
21521
21522 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21523 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21524 if (core_code == RADIO_MIMO_CORESEL_CORE1
21525 && core == PHY_CORE_1)
21526 continue;
21527 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21528 && core == PHY_CORE_0)
21529 continue;
21530
21531 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21532
21533 mask = (0x1 << 10);
21534 val = 1 << 10;
21535 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21536 0x92, mask, val);
21537 }
21538
21539 if (field == NPHY_RfctrlIntc_override_OFF) {
21540
21541 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21542 0x92, 0);
21543
21544 wlc_phy_force_rfseq_nphy(pi,
21545 NPHY_RFSEQ_RESET2RX);
21546 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
21547
21548 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21549
21550 mask = (0x1 << 6) | (0x1 << 7);
21551
21552 val = value << 6;
21553 mod_phy_reg(pi,
21554 (core ==
21555 PHY_CORE_0) ? 0x91 : 0x92,
21556 mask, val);
21557
21558 or_phy_reg(pi,
21559 (core ==
21560 PHY_CORE_0) ? 0x91 : 0x92,
21561 (0x1 << 10));
21562
7d4df48e 21563 and_phy_reg(pi, 0x2ff, (u16)
29c4275a 21564 ~(0x3 << 14));
a9533e7e
HP
21565 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21566 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21567 } else {
21568
21569 mask = (0x1 << 6) |
21570 (0x1 << 7) |
21571 (0x1 << 8) | (0x1 << 9);
21572 val = value << 6;
21573 mod_phy_reg(pi,
21574 (core ==
21575 PHY_CORE_0) ? 0x91 : 0x92,
21576 mask, val);
21577
21578 mask = (0x1 << 0);
21579 val = 1 << 0;
21580 mod_phy_reg(pi,
21581 (core ==
21582 PHY_CORE_0) ? 0xe7 : 0xec,
21583 mask, val);
21584
21585 mask = (core == PHY_CORE_0) ? (0x1 << 0)
21586 : (0x1 << 1);
21587 val = 1 << ((core == PHY_CORE_0) ?
21588 0 : 1);
21589 mod_phy_reg(pi, 0x78, mask, val);
21590
21591 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21592 != 0), 10000);
21593 ASSERT((read_phy_reg(pi, 0x78) & val) ==
21594 0);
21595
21596 mask = (0x1 << 0);
21597 val = 0 << 0;
21598 mod_phy_reg(pi,
21599 (core ==
21600 PHY_CORE_0) ? 0xe7 : 0xec,
21601 mask, val);
21602 }
21603 } else if (field == NPHY_RfctrlIntc_override_PA) {
21604 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21605
21606 mask = (0x1 << 4) | (0x1 << 5);
21607
21608 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21609 val = value << 5;
21610 } else {
21611 val = value << 4;
21612 }
21613
21614 mod_phy_reg(pi,
21615 (core ==
21616 PHY_CORE_0) ? 0x91 : 0x92,
21617 mask, val);
21618
21619 or_phy_reg(pi,
21620 (core ==
21621 PHY_CORE_0) ? 0x91 : 0x92,
21622 (0x1 << 12));
21623 } else {
21624
21625 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21626 mask = (0x1 << 5);
21627 val = value << 5;
21628 } else {
21629 mask = (0x1 << 4);
21630 val = value << 4;
21631 }
21632 mod_phy_reg(pi,
21633 (core ==
21634 PHY_CORE_0) ? 0x91 : 0x92,
21635 mask, val);
21636 }
21637 } else if (field == NPHY_RfctrlIntc_override_EXT_LNA_PU) {
21638 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21639 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21640
21641 mask = (0x1 << 0);
21642 val = value << 0;
21643 mod_phy_reg(pi,
21644 (core ==
21645 PHY_CORE_0) ? 0x91
21646 : 0x92, mask, val);
21647
21648 mask = (0x1 << 2);
21649 mod_phy_reg(pi,
21650 (core ==
21651 PHY_CORE_0) ? 0x91
21652 : 0x92, mask, 0);
21653 } else {
21654
21655 mask = (0x1 << 2);
21656 val = value << 2;
21657 mod_phy_reg(pi,
21658 (core ==
21659 PHY_CORE_0) ? 0x91
21660 : 0x92, mask, val);
21661
21662 mask = (0x1 << 0);
21663 mod_phy_reg(pi,
21664 (core ==
21665 PHY_CORE_0) ? 0x91
21666 : 0x92, mask, 0);
21667 }
21668
21669 mask = (0x1 << 11);
21670 val = 1 << 11;
21671 mod_phy_reg(pi,
21672 (core ==
21673 PHY_CORE_0) ? 0x91 : 0x92,
21674 mask, val);
21675 } else {
21676
21677 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21678 mask = (0x1 << 0);
21679 val = value << 0;
21680 } else {
21681 mask = (0x1 << 2);
21682 val = value << 2;
21683 }
21684 mod_phy_reg(pi,
21685 (core ==
21686 PHY_CORE_0) ? 0x91 : 0x92,
21687 mask, val);
21688 }
21689 } else if (field ==
21690 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
21691 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21692 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21693
21694 mask = (0x1 << 1);
21695 val = value << 1;
21696 mod_phy_reg(pi,
21697 (core ==
21698 PHY_CORE_0) ? 0x91
21699 : 0x92, mask, val);
21700
21701 mask = (0x1 << 3);
21702 mod_phy_reg(pi,
21703 (core ==
21704 PHY_CORE_0) ? 0x91
21705 : 0x92, mask, 0);
21706 } else {
21707
21708 mask = (0x1 << 3);
21709 val = value << 3;
21710 mod_phy_reg(pi,
21711 (core ==
21712 PHY_CORE_0) ? 0x91
21713 : 0x92, mask, val);
21714
21715 mask = (0x1 << 1);
21716 mod_phy_reg(pi,
21717 (core ==
21718 PHY_CORE_0) ? 0x91
21719 : 0x92, mask, 0);
21720 }
21721
21722 mask = (0x1 << 11);
21723 val = 1 << 11;
21724 mod_phy_reg(pi,
21725 (core ==
21726 PHY_CORE_0) ? 0x91 : 0x92,
21727 mask, val);
21728 } else {
21729
21730 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21731 mask = (0x1 << 1);
21732 val = value << 1;
21733 } else {
21734 mask = (0x1 << 3);
21735 val = value << 3;
21736 }
21737 mod_phy_reg(pi,
21738 (core ==
21739 PHY_CORE_0) ? 0x91 : 0x92,
21740 mask, val);
21741 }
21742 }
21743 }
21744 } else {
21745 return;
21746 }
21747}
21748
7cc4a4c0 21749static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi)
a9533e7e 21750{
7d4df48e
GKH
21751 u16 classif_state;
21752 u16 clip_state[2];
21753 u16 clip_off[] = { 0xffff, 0xffff };
3e26416e 21754 s32 target_code;
e868ab03
GKH
21755 u8 vcm, min_vcm;
21756 u8 vcm_final = 0;
21757 u8 result_idx;
3e26416e 21758 s32 poll_results[8][4] = {
a9533e7e
HP
21759 {0, 0, 0, 0},
21760 {0, 0, 0, 0},
21761 {0, 0, 0, 0},
21762 {0, 0, 0, 0},
21763 {0, 0, 0, 0},
21764 {0, 0, 0, 0},
21765 {0, 0, 0, 0},
21766 {0, 0, 0, 0}
21767 };
3e26416e
GKH
21768 s32 poll_result_core[4] = { 0, 0, 0, 0 };
21769 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
21770 s32 fine_digital_offset[4];
21771 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21772 s32 min_poll;
e868ab03
GKH
21773 u8 vcm_level_max;
21774 u8 core;
21775 u8 wb_cnt;
21776 u8 rssi_type;
7d4df48e
GKH
21777 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
21778 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
21779 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
21780 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
21781 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
21782 u16 NPHY_RfctrlCmd_save;
21783 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
21784 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
e868ab03 21785 u8 rxcore_state;
7d4df48e
GKH
21786 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
21787 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
21788 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
21789 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
a9533e7e
HP
21790
21791 NPHY_REV7_RfctrlOverride3_save = NPHY_REV7_RfctrlOverride4_save =
21792 NPHY_REV7_RfctrlOverride5_save = NPHY_REV7_RfctrlOverride6_save =
21793 NPHY_REV7_RfctrlMiscReg3_save = NPHY_REV7_RfctrlMiscReg4_save =
21794 NPHY_REV7_RfctrlMiscReg5_save = NPHY_REV7_RfctrlMiscReg6_save = 0;
21795
21796 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21797 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21798 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21799 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21800
21801 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
21802 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
21803 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
21804 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
21805 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
21806 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
21807 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
21808 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
21809 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21810 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
21811 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
21812 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
21813 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
21814 }
21815 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21816 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21817 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
21818 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21819 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21820 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21821 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
21822 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
21823 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
21824 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
21825 }
21826 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
21827 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
21828
21829 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
21830 RADIO_MIMO_CORESEL_ALLRXTX);
21831 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
21832 RADIO_MIMO_CORESEL_ALLRXTX);
21833
21834 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21835 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21836 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
21837 0, 0, 0);
21838 } else {
21839 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
21840 }
21841
21842 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21843 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21844 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
21845 1, 0, 0);
21846 } else {
21847 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
21848 }
21849
21850 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21851 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
21852 1, 0, 0,
21853 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21854 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21855 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21856 } else {
21857 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
21858 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
21859 }
21860
21861 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21862 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21863 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
21864 0, 0, 0,
21865 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21866 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 1, 0,
21867 0,
21868 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21869 } else {
21870 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21871 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21872 }
21873
21874 } else {
21875 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21876 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
21877 0, 0, 0,
21878 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21879 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 1, 0,
21880 0,
21881 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21882 } else {
21883 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
21884 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
21885 }
21886 }
21887
21888 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
21889
21890 vcm_level_max = 8;
21891
21892 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21893
21894 if ((rxcore_state & (1 << core)) == 0)
21895 continue;
21896
21897 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21898 core ==
21899 PHY_CORE_0 ?
21900 RADIO_MIMO_CORESEL_CORE1 :
21901 RADIO_MIMO_CORESEL_CORE2,
21902 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
21903 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21904 core ==
21905 PHY_CORE_0 ?
21906 RADIO_MIMO_CORESEL_CORE1 :
21907 RADIO_MIMO_CORESEL_CORE2,
21908 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
21909
21910 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21911 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21912
21913 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21914 RADIO_2057_NB_MASTER_CORE0 :
21915 RADIO_2057_NB_MASTER_CORE1,
21916 RADIO_2057_VCM_MASK, vcm);
21917 } else {
21918
21919 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21920 ((core ==
21921 PHY_CORE_0) ? RADIO_2056_RX0 :
21922 RADIO_2056_RX1),
21923 RADIO_2056_VCM_MASK,
21924 vcm << RADIO_2056_RSSI_VCM_SHIFT);
21925 }
21926
21927 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
21928 &poll_results[vcm][0],
21929 NPHY_RSSICAL_NPOLL);
21930 }
21931
21932 for (result_idx = 0; result_idx < 4; result_idx++) {
21933 if ((core == result_idx / 2) && (result_idx % 2 == 0)) {
21934
21935 min_d = NPHY_RSSICAL_MAXD;
21936 min_vcm = 0;
21937 min_poll =
21938 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL +
21939 1;
21940 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21941 curr_d = poll_results[vcm][result_idx] *
21942 poll_results[vcm][result_idx] +
21943 poll_results[vcm][result_idx + 1] *
21944 poll_results[vcm][result_idx + 1];
21945 if (curr_d < min_d) {
21946 min_d = curr_d;
21947 min_vcm = vcm;
21948 }
21949 if (poll_results[vcm][result_idx] <
21950 min_poll) {
21951 min_poll =
21952 poll_results[vcm]
21953 [result_idx];
21954 }
21955 }
21956 vcm_final = min_vcm;
21957 poll_results_min[result_idx] = min_poll;
21958 }
21959 }
21960
21961 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21962 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21963 RADIO_2057_NB_MASTER_CORE0 :
21964 RADIO_2057_NB_MASTER_CORE1,
21965 RADIO_2057_VCM_MASK, vcm_final);
21966 } else {
21967 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21968 ((core ==
21969 PHY_CORE_0) ? RADIO_2056_RX0 :
21970 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
21971 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
21972 }
21973
21974 for (result_idx = 0; result_idx < 4; result_idx++) {
21975 if (core == result_idx / 2) {
21976 fine_digital_offset[result_idx] =
21977 (NPHY_RSSICAL_NB_TARGET *
21978 NPHY_RSSICAL_NPOLL) -
21979 poll_results[vcm_final][result_idx];
21980 if (fine_digital_offset[result_idx] < 0) {
21981 fine_digital_offset[result_idx] =
21982 ABS(fine_digital_offset
21983 [result_idx]);
21984 fine_digital_offset[result_idx] +=
21985 (NPHY_RSSICAL_NPOLL / 2);
21986 fine_digital_offset[result_idx] /=
21987 NPHY_RSSICAL_NPOLL;
21988 fine_digital_offset[result_idx] =
21989 -fine_digital_offset[result_idx];
21990 } else {
21991 fine_digital_offset[result_idx] +=
21992 (NPHY_RSSICAL_NPOLL / 2);
21993 fine_digital_offset[result_idx] /=
21994 NPHY_RSSICAL_NPOLL;
21995 }
21996
21997 if (poll_results_min[result_idx] ==
21998 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21999 fine_digital_offset[result_idx] =
22000 (NPHY_RSSICAL_NB_TARGET -
22001 NPHY_RSSICAL_MAXREAD - 1);
22002 }
22003
22004 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 22005 (s8)
a9533e7e
HP
22006 fine_digital_offset
22007 [result_idx],
22008 (result_idx /
22009 2 ==
22010 0) ?
22011 RADIO_MIMO_CORESEL_CORE1
22012 :
22013 RADIO_MIMO_CORESEL_CORE2,
22014 (result_idx %
22015 2 ==
22016 0) ? NPHY_RAIL_I
22017 : NPHY_RAIL_Q,
22018 NPHY_RSSI_SEL_NB);
22019 }
22020 }
22021
22022 }
22023
22024 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22025
22026 if ((rxcore_state & (1 << core)) == 0)
22027 continue;
22028
22029 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22030 if (wb_cnt == 0) {
22031 rssi_type = NPHY_RSSI_SEL_W1;
22032 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22033 } else {
22034 rssi_type = NPHY_RSSI_SEL_W2;
22035 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22036 }
22037
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_I, rssi_type);
22045 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22046 core ==
22047 PHY_CORE_0 ?
22048 RADIO_MIMO_CORESEL_CORE1
22049 :
22050 RADIO_MIMO_CORESEL_CORE2,
22051 NPHY_RAIL_Q, rssi_type);
22052
22053 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22054 NPHY_RSSICAL_NPOLL);
22055
22056 for (result_idx = 0; result_idx < 4; result_idx++) {
22057 if (core == result_idx / 2) {
22058 fine_digital_offset[result_idx] =
22059 (target_code * NPHY_RSSICAL_NPOLL) -
22060 poll_result_core[result_idx];
22061 if (fine_digital_offset[result_idx] < 0) {
22062 fine_digital_offset[result_idx]
22063 =
22064 ABS(fine_digital_offset
22065 [result_idx]);
22066 fine_digital_offset[result_idx]
22067 += (NPHY_RSSICAL_NPOLL / 2);
22068 fine_digital_offset[result_idx]
22069 /= NPHY_RSSICAL_NPOLL;
22070 fine_digital_offset[result_idx]
22071 =
22072 -fine_digital_offset
22073 [result_idx];
22074 } else {
22075 fine_digital_offset[result_idx]
22076 += (NPHY_RSSICAL_NPOLL / 2);
22077 fine_digital_offset[result_idx]
22078 /= NPHY_RSSICAL_NPOLL;
22079 }
22080
22081 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 22082 (s8)
a9533e7e
HP
22083 fine_digital_offset
22084 [core *
22085 2],
22086 (core ==
22087 PHY_CORE_0)
22088 ?
22089 RADIO_MIMO_CORESEL_CORE1
22090 :
22091 RADIO_MIMO_CORESEL_CORE2,
22092 (result_idx
22093 % 2 ==
22094 0) ?
22095 NPHY_RAIL_I
22096 :
22097 NPHY_RAIL_Q,
22098 rssi_type);
22099 }
22100 }
22101
22102 }
22103 }
22104
22105 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22106 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22107
22108 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22109
22110 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22111 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22112 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22113
22114 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22115 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22116 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22117
22118 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22119 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22120 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22121 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22122 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22123 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22124 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22125 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22126 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22127 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22128 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22129 }
22130 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22131 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22132 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22133 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22134 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22135 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22136 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22137 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22138 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22139 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22140 }
22141 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22142 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22143
22144 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22145 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22146 pi->rssical_cache.rssical_radio_regs_2G[0] =
22147 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22148 pi->rssical_cache.rssical_radio_regs_2G[1] =
22149 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22150 } else {
22151 pi->rssical_cache.rssical_radio_regs_2G[0] =
22152 read_radio_reg(pi,
22153 RADIO_2056_RX_RSSI_MISC |
22154 RADIO_2056_RX0);
22155 pi->rssical_cache.rssical_radio_regs_2G[1] =
22156 read_radio_reg(pi,
22157 RADIO_2056_RX_RSSI_MISC |
22158 RADIO_2056_RX1);
22159 }
22160
22161 pi->rssical_cache.rssical_phyregs_2G[0] =
22162 read_phy_reg(pi, 0x1a6);
22163 pi->rssical_cache.rssical_phyregs_2G[1] =
22164 read_phy_reg(pi, 0x1ac);
22165 pi->rssical_cache.rssical_phyregs_2G[2] =
22166 read_phy_reg(pi, 0x1b2);
22167 pi->rssical_cache.rssical_phyregs_2G[3] =
22168 read_phy_reg(pi, 0x1b8);
22169 pi->rssical_cache.rssical_phyregs_2G[4] =
22170 read_phy_reg(pi, 0x1a4);
22171 pi->rssical_cache.rssical_phyregs_2G[5] =
22172 read_phy_reg(pi, 0x1aa);
22173 pi->rssical_cache.rssical_phyregs_2G[6] =
22174 read_phy_reg(pi, 0x1b0);
22175 pi->rssical_cache.rssical_phyregs_2G[7] =
22176 read_phy_reg(pi, 0x1b6);
22177 pi->rssical_cache.rssical_phyregs_2G[8] =
22178 read_phy_reg(pi, 0x1a5);
22179 pi->rssical_cache.rssical_phyregs_2G[9] =
22180 read_phy_reg(pi, 0x1ab);
22181 pi->rssical_cache.rssical_phyregs_2G[10] =
22182 read_phy_reg(pi, 0x1b1);
22183 pi->rssical_cache.rssical_phyregs_2G[11] =
22184 read_phy_reg(pi, 0x1b7);
22185
22186 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22187 } else {
22188 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22189 pi->rssical_cache.rssical_radio_regs_5G[0] =
22190 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22191 pi->rssical_cache.rssical_radio_regs_5G[1] =
22192 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22193 } else {
22194 pi->rssical_cache.rssical_radio_regs_5G[0] =
22195 read_radio_reg(pi,
22196 RADIO_2056_RX_RSSI_MISC |
22197 RADIO_2056_RX0);
22198 pi->rssical_cache.rssical_radio_regs_5G[1] =
22199 read_radio_reg(pi,
22200 RADIO_2056_RX_RSSI_MISC |
22201 RADIO_2056_RX1);
22202 }
22203
22204 pi->rssical_cache.rssical_phyregs_5G[0] =
22205 read_phy_reg(pi, 0x1a6);
22206 pi->rssical_cache.rssical_phyregs_5G[1] =
22207 read_phy_reg(pi, 0x1ac);
22208 pi->rssical_cache.rssical_phyregs_5G[2] =
22209 read_phy_reg(pi, 0x1b2);
22210 pi->rssical_cache.rssical_phyregs_5G[3] =
22211 read_phy_reg(pi, 0x1b8);
22212 pi->rssical_cache.rssical_phyregs_5G[4] =
22213 read_phy_reg(pi, 0x1a4);
22214 pi->rssical_cache.rssical_phyregs_5G[5] =
22215 read_phy_reg(pi, 0x1aa);
22216 pi->rssical_cache.rssical_phyregs_5G[6] =
22217 read_phy_reg(pi, 0x1b0);
22218 pi->rssical_cache.rssical_phyregs_5G[7] =
22219 read_phy_reg(pi, 0x1b6);
22220 pi->rssical_cache.rssical_phyregs_5G[8] =
22221 read_phy_reg(pi, 0x1a5);
22222 pi->rssical_cache.rssical_phyregs_5G[9] =
22223 read_phy_reg(pi, 0x1ab);
22224 pi->rssical_cache.rssical_phyregs_5G[10] =
22225 read_phy_reg(pi, 0x1b1);
22226 pi->rssical_cache.rssical_phyregs_5G[11] =
22227 read_phy_reg(pi, 0x1b7);
22228
22229 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22230 }
22231
22232 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22233 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22234}
22235
7cc4a4c0 22236static void wlc_phy_restore_rssical_nphy(phy_info_t *pi)
a9533e7e
HP
22237{
22238 ASSERT(NREV_GE(pi->pubpi.phy_rev, 3));
22239
22240 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22241 if (pi->nphy_rssical_chanspec_2G == 0)
22242 return;
22243
22244 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22245 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22246 RADIO_2057_VCM_MASK,
22247 pi->rssical_cache.
22248 rssical_radio_regs_2G[0]);
22249 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22250 RADIO_2057_VCM_MASK,
22251 pi->rssical_cache.
22252 rssical_radio_regs_2G[1]);
22253 } else {
22254 mod_radio_reg(pi,
22255 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22256 RADIO_2056_VCM_MASK,
22257 pi->rssical_cache.
22258 rssical_radio_regs_2G[0]);
22259 mod_radio_reg(pi,
22260 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22261 RADIO_2056_VCM_MASK,
22262 pi->rssical_cache.
22263 rssical_radio_regs_2G[1]);
22264 }
22265
22266 write_phy_reg(pi, 0x1a6,
22267 pi->rssical_cache.rssical_phyregs_2G[0]);
22268 write_phy_reg(pi, 0x1ac,
22269 pi->rssical_cache.rssical_phyregs_2G[1]);
22270 write_phy_reg(pi, 0x1b2,
22271 pi->rssical_cache.rssical_phyregs_2G[2]);
22272 write_phy_reg(pi, 0x1b8,
22273 pi->rssical_cache.rssical_phyregs_2G[3]);
22274 write_phy_reg(pi, 0x1a4,
22275 pi->rssical_cache.rssical_phyregs_2G[4]);
22276 write_phy_reg(pi, 0x1aa,
22277 pi->rssical_cache.rssical_phyregs_2G[5]);
22278 write_phy_reg(pi, 0x1b0,
22279 pi->rssical_cache.rssical_phyregs_2G[6]);
22280 write_phy_reg(pi, 0x1b6,
22281 pi->rssical_cache.rssical_phyregs_2G[7]);
22282 write_phy_reg(pi, 0x1a5,
22283 pi->rssical_cache.rssical_phyregs_2G[8]);
22284 write_phy_reg(pi, 0x1ab,
22285 pi->rssical_cache.rssical_phyregs_2G[9]);
22286 write_phy_reg(pi, 0x1b1,
22287 pi->rssical_cache.rssical_phyregs_2G[10]);
22288 write_phy_reg(pi, 0x1b7,
22289 pi->rssical_cache.rssical_phyregs_2G[11]);
22290
22291 } else {
22292 if (pi->nphy_rssical_chanspec_5G == 0)
22293 return;
22294
22295 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22296 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22297 RADIO_2057_VCM_MASK,
22298 pi->rssical_cache.
22299 rssical_radio_regs_5G[0]);
22300 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22301 RADIO_2057_VCM_MASK,
22302 pi->rssical_cache.
22303 rssical_radio_regs_5G[1]);
22304 } else {
22305 mod_radio_reg(pi,
22306 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22307 RADIO_2056_VCM_MASK,
22308 pi->rssical_cache.
22309 rssical_radio_regs_5G[0]);
22310 mod_radio_reg(pi,
22311 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22312 RADIO_2056_VCM_MASK,
22313 pi->rssical_cache.
22314 rssical_radio_regs_5G[1]);
22315 }
22316
22317 write_phy_reg(pi, 0x1a6,
22318 pi->rssical_cache.rssical_phyregs_5G[0]);
22319 write_phy_reg(pi, 0x1ac,
22320 pi->rssical_cache.rssical_phyregs_5G[1]);
22321 write_phy_reg(pi, 0x1b2,
22322 pi->rssical_cache.rssical_phyregs_5G[2]);
22323 write_phy_reg(pi, 0x1b8,
22324 pi->rssical_cache.rssical_phyregs_5G[3]);
22325 write_phy_reg(pi, 0x1a4,
22326 pi->rssical_cache.rssical_phyregs_5G[4]);
22327 write_phy_reg(pi, 0x1aa,
22328 pi->rssical_cache.rssical_phyregs_5G[5]);
22329 write_phy_reg(pi, 0x1b0,
22330 pi->rssical_cache.rssical_phyregs_5G[6]);
22331 write_phy_reg(pi, 0x1b6,
22332 pi->rssical_cache.rssical_phyregs_5G[7]);
22333 write_phy_reg(pi, 0x1a5,
22334 pi->rssical_cache.rssical_phyregs_5G[8]);
22335 write_phy_reg(pi, 0x1ab,
22336 pi->rssical_cache.rssical_phyregs_5G[9]);
22337 write_phy_reg(pi, 0x1b1,
22338 pi->rssical_cache.rssical_phyregs_5G[10]);
22339 write_phy_reg(pi, 0x1b7,
22340 pi->rssical_cache.rssical_phyregs_5G[11]);
22341 }
22342}
22343
7d4df48e 22344static u16
66cbd3ab 22345wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
e868ab03 22346 u8 dac_test_mode)
a9533e7e 22347{
e868ab03 22348 u8 phy_bw, is_phybw40;
7d4df48e 22349 u16 num_samps, t, spur;
a9533e7e 22350 fixed theta = 0, rot = 0;
66cbd3ab 22351 u32 tbl_len;
3e26416e 22352 cs32 *tone_buf = NULL;
a9533e7e
HP
22353
22354 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
22355 phy_bw = (is_phybw40 == 1) ? 40 : 20;
22356 tbl_len = (phy_bw << 3);
22357
22358 if (dac_test_mode == 1) {
22359 spur = read_phy_reg(pi, 0x01);
22360 spur = (spur >> 15) & 1;
22361 phy_bw = (spur == 1) ? 82 : 80;
22362 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
22363
22364 tbl_len = (phy_bw << 1);
22365 }
22366
5fcc1fcb 22367 tone_buf = kmalloc(sizeof(cs32) * tbl_len, GFP_ATOMIC);
ca8c1e59 22368 if (tone_buf == NULL) {
a9533e7e
HP
22369 return 0;
22370 }
22371
7d4df48e 22372 num_samps = (u16) tbl_len;
a9533e7e
HP
22373 rot = FIXED((f_kHz * 36) / phy_bw) / 100;
22374 theta = 0;
22375
22376 for (t = 0; t < num_samps; t++) {
22377
22378 wlc_phy_cordic(theta, &tone_buf[t]);
22379
22380 theta += rot;
22381
3e26416e
GKH
22382 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
22383 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
a9533e7e
HP
22384 }
22385
22386 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
22387
22388 if (tone_buf != NULL)
182acb3c 22389 kfree(tone_buf);
a9533e7e
HP
22390
22391 return num_samps;
22392}
22393
22394int
66cbd3ab 22395wlc_phy_tx_tone_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
e868ab03 22396 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
a9533e7e 22397{
7d4df48e
GKH
22398 u16 num_samps;
22399 u16 loops = 0xffff;
22400 u16 wait = 0;
a9533e7e 22401
ca8c1e59
JC
22402 num_samps =
22403 wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val, dac_test_mode);
22404 if (num_samps == 0) {
a9533e7e
HP
22405 return BCME_ERROR;
22406 }
22407
22408 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22409 dac_test_mode, modify_bbmult);
22410
22411 return BCME_OK;
22412}
22413
22414static void
3e26416e 22415wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
7d4df48e 22416 u16 num_samps)
a9533e7e 22417{
7d4df48e 22418 u16 t;
66cbd3ab 22419 u32 *data_buf = NULL;
a9533e7e 22420
5fcc1fcb 22421 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
ca8c1e59 22422 if (data_buf == NULL) {
a9533e7e
HP
22423 return;
22424 }
22425
22426 if (pi->phyhang_avoid)
0f0881b0 22427 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22428
22429 for (t = 0; t < num_samps; t++) {
22430 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
22431 (((unsigned int)tone_buf[t].q) & 0x3ff);
22432 }
22433 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
22434 data_buf);
22435
22436 if (data_buf != NULL)
182acb3c 22437 kfree(data_buf);
a9533e7e
HP
22438
22439 if (pi->phyhang_avoid)
0965ae88 22440 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22441}
22442
22443static void
7d4df48e
GKH
22444wlc_phy_runsamples_nphy(phy_info_t *pi, u16 num_samps, u16 loops,
22445 u16 wait, u8 iqmode, u8 dac_test_mode,
a9533e7e
HP
22446 bool modify_bbmult)
22447{
7d4df48e 22448 u16 bb_mult;
e868ab03 22449 u8 phy_bw, sample_cmd;
7d4df48e
GKH
22450 u16 orig_RfseqCoreActv;
22451 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
a9533e7e
HP
22452 lpf_bw_ctl_miscreg4;
22453
22454 if (pi->phyhang_avoid)
0f0881b0 22455 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22456
22457 phy_bw = 20;
22458 if (CHSPEC_IS40(pi->radio_chanspec))
22459 phy_bw = 40;
22460
22461 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22462
22463 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
22464 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
22465 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
22466 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22467 (0x7 << 8);
22468 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22469 (0x7 << 8);
22470 } else {
22471 wlc_phy_rfctrl_override_nphy_rev7(pi,
22472 (0x1 << 7),
22473 wlc_phy_read_lpf_bw_ctl_nphy
22474 (pi, 0), 0, 0,
22475 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22476
0f0881b0 22477 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
a9533e7e
HP
22478
22479 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22480 (0x7 << 8);
22481 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22482 (0x7 << 8);
22483 }
22484 }
22485
22486 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
22487
22488 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22489 &bb_mult);
22490 pi->nphy_bb_mult_save =
22491 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
22492 }
22493
22494 if (modify_bbmult) {
22495 bb_mult = (phy_bw == 20) ? 100 : 71;
22496 bb_mult = (bb_mult << 8) + bb_mult;
22497 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22498 &bb_mult);
22499 }
22500
22501 if (pi->phyhang_avoid)
0965ae88 22502 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22503
22504 write_phy_reg(pi, 0xc6, num_samps - 1);
22505
22506 if (loops != 0xffff) {
22507 write_phy_reg(pi, 0xc4, loops - 1);
22508 } else {
22509 write_phy_reg(pi, 0xc4, loops);
22510 }
22511 write_phy_reg(pi, 0xc5, wait);
22512
22513 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
22514 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
22515 if (iqmode) {
22516
22517 and_phy_reg(pi, 0xc2, 0x7FFF);
22518
22519 or_phy_reg(pi, 0xc2, 0x8000);
22520 } else {
22521
22522 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
22523 write_phy_reg(pi, 0xc3, sample_cmd);
22524 }
22525
22526 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
22527
22528 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
22529}
22530
7cc4a4c0 22531void wlc_phy_stopplayback_nphy(phy_info_t *pi)
a9533e7e 22532{
7d4df48e
GKH
22533 u16 playback_status;
22534 u16 bb_mult;
a9533e7e
HP
22535
22536 if (pi->phyhang_avoid)
0f0881b0 22537 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22538
22539 playback_status = read_phy_reg(pi, 0xc7);
22540 if (playback_status & 0x1) {
22541 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
22542 } else if (playback_status & 0x2) {
22543
22544 and_phy_reg(pi, 0xc2,
7d4df48e 22545 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
a9533e7e
HP
22546 }
22547
7d4df48e 22548 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
a9533e7e
HP
22549
22550 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
22551
22552 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
22553 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22554 &bb_mult);
22555
22556 pi->nphy_bb_mult_save = 0;
22557 }
22558
22559 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
22560 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
22561 wlc_phy_rfctrl_override_nphy_rev7(pi,
22562 (0x1 << 7),
22563 0, 0, 1,
22564 NPHY_REV7_RFCTRLOVERRIDE_ID1);
0965ae88 22565 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
a9533e7e
HP
22566 }
22567 }
22568
22569 if (pi->phyhang_avoid)
0965ae88 22570 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22571}
22572
7cc4a4c0 22573nphy_txgains_t wlc_phy_get_tx_gain_nphy(phy_info_t *pi)
a9533e7e 22574{
7d4df48e 22575 u16 base_idx[2], curr_gain[2];
e868ab03 22576 u8 core_no;
a9533e7e 22577 nphy_txgains_t target_gain;
66cbd3ab 22578 u32 *tx_pwrctrl_tbl = NULL;
a9533e7e
HP
22579
22580 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
22581 if (pi->phyhang_avoid)
0f0881b0 22582 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22583
22584 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
22585 curr_gain);
22586
22587 if (pi->phyhang_avoid)
0965ae88 22588 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22589
22590 for (core_no = 0; core_no < 2; core_no++) {
22591 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22592 target_gain.ipa[core_no] =
22593 curr_gain[core_no] & 0x0007;
22594 target_gain.pad[core_no] =
22595 ((curr_gain[core_no] & 0x00F8) >> 3);
22596 target_gain.pga[core_no] =
22597 ((curr_gain[core_no] & 0x0F00) >> 8);
22598 target_gain.txgm[core_no] =
22599 ((curr_gain[core_no] & 0x7000) >> 12);
22600 target_gain.txlpf[core_no] =
22601 ((curr_gain[core_no] & 0x8000) >> 15);
22602 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22603 target_gain.ipa[core_no] =
22604 curr_gain[core_no] & 0x000F;
22605 target_gain.pad[core_no] =
22606 ((curr_gain[core_no] & 0x00F0) >> 4);
22607 target_gain.pga[core_no] =
22608 ((curr_gain[core_no] & 0x0F00) >> 8);
22609 target_gain.txgm[core_no] =
22610 ((curr_gain[core_no] & 0x7000) >> 12);
22611 } else {
22612 target_gain.ipa[core_no] =
22613 curr_gain[core_no] & 0x0003;
22614 target_gain.pad[core_no] =
22615 ((curr_gain[core_no] & 0x000C) >> 2);
22616 target_gain.pga[core_no] =
22617 ((curr_gain[core_no] & 0x0070) >> 4);
22618 target_gain.txgm[core_no] =
22619 ((curr_gain[core_no] & 0x0380) >> 7);
22620 }
22621 }
22622 } else {
22623 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
22624 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
22625 for (core_no = 0; core_no < 2; core_no++) {
22626 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22627 if (PHY_IPA(pi)) {
22628 tx_pwrctrl_tbl =
22629 wlc_phy_get_ipa_gaintbl_nphy(pi);
22630 } else {
22631 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22632 if NREV_IS
22633 (pi->pubpi.phy_rev, 3) {
22634 tx_pwrctrl_tbl =
22635 nphy_tpc_5GHz_txgain_rev3;
22636 } else if NREV_IS
22637 (pi->pubpi.phy_rev, 4) {
22638 tx_pwrctrl_tbl =
22639 (pi->srom_fem5g.
22640 extpagain ==
22641 3) ?
22642 nphy_tpc_5GHz_txgain_HiPwrEPA
22643 :
22644 nphy_tpc_5GHz_txgain_rev4;
22645 } else {
22646 tx_pwrctrl_tbl =
22647 nphy_tpc_5GHz_txgain_rev5;
22648 }
22649 } else {
22650 if (NREV_GE
22651 (pi->pubpi.phy_rev, 7)) {
22652 if (pi->pubpi.
22653 radiorev == 3) {
22654 tx_pwrctrl_tbl =
22655 nphy_tpc_txgain_epa_2057rev3;
22656 } else if (pi->pubpi.
22657 radiorev ==
22658 5) {
22659 tx_pwrctrl_tbl =
22660 nphy_tpc_txgain_epa_2057rev5;
22661 }
22662
22663 } else {
22664 if (NREV_GE
22665 (pi->pubpi.phy_rev,
22666 5)
22667 && (pi->srom_fem2g.
22668 extpagain ==
22669 3)) {
22670 tx_pwrctrl_tbl =
22671 nphy_tpc_txgain_HiPwrEPA;
22672 } else {
22673 tx_pwrctrl_tbl =
22674 nphy_tpc_txgain_rev3;
22675 }
22676 }
22677 }
22678 }
22679 if NREV_GE
22680 (pi->pubpi.phy_rev, 7) {
22681 target_gain.ipa[core_no] =
22682 (tx_pwrctrl_tbl[base_idx[core_no]]
22683 >> 16) & 0x7;
22684 target_gain.pad[core_no] =
22685 (tx_pwrctrl_tbl[base_idx[core_no]]
22686 >> 19) & 0x1f;
22687 target_gain.pga[core_no] =
22688 (tx_pwrctrl_tbl[base_idx[core_no]]
22689 >> 24) & 0xf;
22690 target_gain.txgm[core_no] =
22691 (tx_pwrctrl_tbl[base_idx[core_no]]
22692 >> 28) & 0x7;
22693 target_gain.txlpf[core_no] =
22694 (tx_pwrctrl_tbl[base_idx[core_no]]
22695 >> 31) & 0x1;
22696 } else {
22697 target_gain.ipa[core_no] =
22698 (tx_pwrctrl_tbl[base_idx[core_no]]
22699 >> 16) & 0xf;
22700 target_gain.pad[core_no] =
22701 (tx_pwrctrl_tbl[base_idx[core_no]]
22702 >> 20) & 0xf;
22703 target_gain.pga[core_no] =
22704 (tx_pwrctrl_tbl[base_idx[core_no]]
22705 >> 24) & 0xf;
22706 target_gain.txgm[core_no] =
22707 (tx_pwrctrl_tbl[base_idx[core_no]]
22708 >> 28) & 0x7;
22709 }
22710 } else {
22711 target_gain.ipa[core_no] =
22712 (nphy_tpc_txgain[base_idx[core_no]] >> 16) &
22713 0x3;
22714 target_gain.pad[core_no] =
22715 (nphy_tpc_txgain[base_idx[core_no]] >> 18) &
22716 0x3;
22717 target_gain.pga[core_no] =
22718 (nphy_tpc_txgain[base_idx[core_no]] >> 20) &
22719 0x7;
22720 target_gain.txgm[core_no] =
22721 (nphy_tpc_txgain[base_idx[core_no]] >> 23) &
22722 0x7;
22723 }
22724 }
22725 }
22726
90ea2296 22727 return target_gain;
a9533e7e
HP
22728}
22729
22730static void
7d4df48e 22731wlc_phy_iqcal_gainparams_nphy(phy_info_t *pi, u16 core_no,
a9533e7e 22732 nphy_txgains_t target_gain,
7cc4a4c0 22733 nphy_iqcal_params_t *params)
a9533e7e 22734{
e868ab03 22735 u8 k;
a9533e7e 22736 int idx;
7d4df48e 22737 u16 gain_index;
e868ab03 22738 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
a9533e7e
HP
22739
22740 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22741 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22742 params->txlpf = target_gain.txlpf[core_no];
22743 }
22744 params->txgm = target_gain.txgm[core_no];
22745 params->pga = target_gain.pga[core_no];
22746 params->pad = target_gain.pad[core_no];
22747 params->ipa = target_gain.ipa[core_no];
22748 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22749 params->cal_gain =
22750 ((params->txlpf << 15) | (params->
22751 txgm << 12) | (params->
22752 pga << 8) |
22753 (params->pad << 3) | (params->ipa));
22754 } else {
22755 params->cal_gain =
22756 ((params->txgm << 12) | (params->
22757 pga << 8) | (params->
22758 pad << 4) |
22759 (params->ipa));
22760 }
22761 params->ncorr[0] = 0x79;
22762 params->ncorr[1] = 0x79;
22763 params->ncorr[2] = 0x79;
22764 params->ncorr[3] = 0x79;
22765 params->ncorr[4] = 0x79;
22766 } else {
22767
22768 gain_index = ((target_gain.pad[core_no] << 0) |
22769 (target_gain.pga[core_no] << 4) | (target_gain.
22770 txgm[core_no]
22771 << 8));
22772
22773 idx = -1;
22774 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22775 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22776 gain_index) {
22777 idx = k;
22778 break;
22779 }
22780 }
22781
22782 ASSERT(idx != -1);
22783
22784 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
22785 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
22786 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
22787 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
22788 (params->pad << 2));
22789 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
22790 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
22791 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
22792 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
22793 }
22794}
22795
7cc4a4c0 22796static void wlc_phy_txcal_radio_setup_nphy(phy_info_t *pi)
a9533e7e 22797{
7d4df48e 22798 u16 jtag_core, core;
a9533e7e
HP
22799
22800 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22801
22802 for (core = 0; core <= 1; core++) {
22803
22804 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22805 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22806 TX_SSI_MASTER);
22807
22808 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22809 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22810 IQCAL_VCM_HG);
22811
22812 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22813 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22814 IQCAL_IDAC);
22815
22816 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22817 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM);
22818
22819 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
22820
22821 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22822 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22823 TX_SSI_MUX);
22824
22825 if (pi->pubpi.radiorev != 5)
22826 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22827 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22828 TSSIA);
22829
22830 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22831 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
22832
22833 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22834 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22835 TSSI_MISC1);
22836
22837 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22838 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22839 TX_SSI_MASTER, 0x0a);
22840 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22841 IQCAL_VCM_HG, 0x43);
22842 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22843 IQCAL_IDAC, 0x55);
22844 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22845 TSSI_VCM, 0x00);
22846 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22847 TSSIG, 0x00);
22848 if (pi->use_int_tx_iqlo_cal_nphy) {
22849 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22850 core, TX_SSI_MUX, 0x4);
22851 if (!
22852 (pi->
e5c4536f 22853 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22854
22855 WRITE_RADIO_REG3(pi, RADIO_2057,
22856 TX, core,
22857 TSSIA, 0x31);
22858 } else {
22859
22860 WRITE_RADIO_REG3(pi, RADIO_2057,
22861 TX, core,
22862 TSSIA, 0x21);
22863 }
22864 }
22865 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22866 TSSI_MISC1, 0x00);
22867 } else {
22868 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22869 TX_SSI_MASTER, 0x06);
22870 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22871 IQCAL_VCM_HG, 0x43);
22872 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22873 IQCAL_IDAC, 0x55);
22874 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22875 TSSI_VCM, 0x00);
22876
22877 if (pi->pubpi.radiorev != 5)
22878 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22879 core, TSSIA, 0x00);
22880 if (pi->use_int_tx_iqlo_cal_nphy) {
22881 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22882 core, TX_SSI_MUX,
22883 0x06);
22884 if (!
22885 (pi->
e5c4536f 22886 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22887
22888 WRITE_RADIO_REG3(pi, RADIO_2057,
22889 TX, core,
22890 TSSIG, 0x31);
22891 } else {
22892
22893 WRITE_RADIO_REG3(pi, RADIO_2057,
22894 TX, core,
22895 TSSIG, 0x21);
22896 }
22897 }
22898 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22899 TSSI_MISC1, 0x00);
22900 }
22901 }
22902 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22903
22904 for (core = 0; core <= 1; core++) {
22905 jtag_core =
22906 (core ==
22907 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22908
22909 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22910 read_radio_reg(pi,
22911 RADIO_2056_TX_TX_SSI_MASTER |
22912 jtag_core);
22913
22914 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22915 read_radio_reg(pi,
22916 RADIO_2056_TX_IQCAL_VCM_HG |
22917 jtag_core);
22918
22919 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22920 read_radio_reg(pi,
22921 RADIO_2056_TX_IQCAL_IDAC |
22922 jtag_core);
22923
22924 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22925 read_radio_reg(pi,
22926 RADIO_2056_TX_TSSI_VCM | jtag_core);
22927
22928 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22929 read_radio_reg(pi,
22930 RADIO_2056_TX_TX_AMP_DET |
22931 jtag_core);
22932
22933 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22934 read_radio_reg(pi,
22935 RADIO_2056_TX_TX_SSI_MUX |
22936 jtag_core);
22937
22938 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22939 read_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core);
22940
22941 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22942 read_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core);
22943
22944 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22945 read_radio_reg(pi,
22946 RADIO_2056_TX_TSSI_MISC1 |
22947 jtag_core);
22948
22949 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22950 read_radio_reg(pi,
22951 RADIO_2056_TX_TSSI_MISC2 |
22952 jtag_core);
22953
22954 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22955 read_radio_reg(pi,
22956 RADIO_2056_TX_TSSI_MISC3 |
22957 jtag_core);
22958
22959 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22960 write_radio_reg(pi,
22961 RADIO_2056_TX_TX_SSI_MASTER |
22962 jtag_core, 0x0a);
22963 write_radio_reg(pi,
22964 RADIO_2056_TX_IQCAL_VCM_HG |
22965 jtag_core, 0x40);
22966 write_radio_reg(pi,
22967 RADIO_2056_TX_IQCAL_IDAC |
22968 jtag_core, 0x55);
22969 write_radio_reg(pi,
22970 RADIO_2056_TX_TSSI_VCM |
22971 jtag_core, 0x00);
22972 write_radio_reg(pi,
22973 RADIO_2056_TX_TX_AMP_DET |
22974 jtag_core, 0x00);
22975
22976 if (PHY_IPA(pi)) {
22977 write_radio_reg(pi,
22978 RADIO_2056_TX_TX_SSI_MUX
22979 | jtag_core, 0x4);
22980 write_radio_reg(pi,
22981 RADIO_2056_TX_TSSIA |
22982 jtag_core, 0x1);
22983 } else {
22984 write_radio_reg(pi,
22985 RADIO_2056_TX_TX_SSI_MUX
22986 | jtag_core, 0x00);
22987 write_radio_reg(pi,
22988 RADIO_2056_TX_TSSIA |
22989 jtag_core, 0x2f);
22990 }
22991 write_radio_reg(pi,
22992 RADIO_2056_TX_TSSIG | jtag_core,
22993 0x00);
22994 write_radio_reg(pi,
22995 RADIO_2056_TX_TSSI_MISC1 |
22996 jtag_core, 0x00);
22997
22998 write_radio_reg(pi,
22999 RADIO_2056_TX_TSSI_MISC2 |
23000 jtag_core, 0x00);
23001 write_radio_reg(pi,
23002 RADIO_2056_TX_TSSI_MISC3 |
23003 jtag_core, 0x00);
23004 } else {
23005 write_radio_reg(pi,
23006 RADIO_2056_TX_TX_SSI_MASTER |
23007 jtag_core, 0x06);
23008 write_radio_reg(pi,
23009 RADIO_2056_TX_IQCAL_VCM_HG |
23010 jtag_core, 0x40);
23011 write_radio_reg(pi,
23012 RADIO_2056_TX_IQCAL_IDAC |
23013 jtag_core, 0x55);
23014 write_radio_reg(pi,
23015 RADIO_2056_TX_TSSI_VCM |
23016 jtag_core, 0x00);
23017 write_radio_reg(pi,
23018 RADIO_2056_TX_TX_AMP_DET |
23019 jtag_core, 0x00);
23020 write_radio_reg(pi,
23021 RADIO_2056_TX_TSSIA | jtag_core,
23022 0x00);
23023
23024 if (PHY_IPA(pi)) {
23025
23026 write_radio_reg(pi,
23027 RADIO_2056_TX_TX_SSI_MUX
23028 | jtag_core, 0x06);
23029 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23030
23031 write_radio_reg(pi,
23032 RADIO_2056_TX_TSSIG
23033 | jtag_core,
23034 0x11);
23035 } else {
23036
23037 write_radio_reg(pi,
23038 RADIO_2056_TX_TSSIG
23039 | jtag_core,
23040 0x1);
23041 }
23042 } else {
23043 write_radio_reg(pi,
23044 RADIO_2056_TX_TX_SSI_MUX
23045 | jtag_core, 0x00);
23046 write_radio_reg(pi,
23047 RADIO_2056_TX_TSSIG |
23048 jtag_core, 0x20);
23049 }
23050
23051 write_radio_reg(pi,
23052 RADIO_2056_TX_TSSI_MISC1 |
23053 jtag_core, 0x00);
23054 write_radio_reg(pi,
23055 RADIO_2056_TX_TSSI_MISC2 |
23056 jtag_core, 0x00);
23057 write_radio_reg(pi,
23058 RADIO_2056_TX_TSSI_MISC3 |
23059 jtag_core, 0x00);
23060 }
23061 }
23062 } else {
23063
23064 pi->tx_rx_cal_radio_saveregs[0] =
23065 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23066 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23067 pi->tx_rx_cal_radio_saveregs[1] =
23068 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23069 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23070
23071 pi->tx_rx_cal_radio_saveregs[2] =
23072 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23073 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23074 pi->tx_rx_cal_radio_saveregs[3] =
23075 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23076 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23077
23078 pi->tx_rx_cal_radio_saveregs[4] =
23079 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23080 pi->tx_rx_cal_radio_saveregs[5] =
23081 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23082
23083 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23084 0) {
23085
23086 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23087 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23088 } else {
23089
23090 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23091 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23092 }
23093
23094 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23095
23096 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23097 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23098 } else {
23099
23100 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23101 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23102 }
23103 }
23104}
23105
7cc4a4c0 23106static void wlc_phy_txcal_radio_cleanup_nphy(phy_info_t *pi)
a9533e7e 23107{
7d4df48e 23108 u16 jtag_core, core;
a9533e7e
HP
23109
23110 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23111 for (core = 0; core <= 1; core++) {
23112
23113 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23114 TX_SSI_MASTER,
23115 pi->
23116 tx_rx_cal_radio_saveregs[(core * 11) +
23117 0]);
23118
23119 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23120 pi->
23121 tx_rx_cal_radio_saveregs[(core * 11) +
23122 1]);
23123
23124 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23125 pi->
23126 tx_rx_cal_radio_saveregs[(core * 11) +
23127 2]);
23128
23129 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23130 pi->
23131 tx_rx_cal_radio_saveregs[(core * 11) +
23132 3]);
23133
23134 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23135 pi->
23136 tx_rx_cal_radio_saveregs[(core * 11) +
23137 5]);
23138
23139 if (pi->pubpi.radiorev != 5)
23140 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23141 TSSIA,
23142 pi->
23143 tx_rx_cal_radio_saveregs[(core
23144 *
23145 11) +
23146 6]);
23147
23148 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23149 pi->
23150 tx_rx_cal_radio_saveregs[(core * 11) +
23151 7]);
23152
23153 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23154 pi->
23155 tx_rx_cal_radio_saveregs[(core * 11) +
23156 8]);
23157 }
23158 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23159 for (core = 0; core <= 1; core++) {
23160 jtag_core =
23161 (core ==
23162 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23163
23164 write_radio_reg(pi,
23165 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23166 pi->
23167 tx_rx_cal_radio_saveregs[(core * 11) +
23168 0]);
23169
23170 write_radio_reg(pi,
23171 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23172 pi->
23173 tx_rx_cal_radio_saveregs[(core * 11) +
23174 1]);
23175
23176 write_radio_reg(pi,
23177 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23178 pi->
23179 tx_rx_cal_radio_saveregs[(core * 11) +
23180 2]);
23181
23182 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23183 pi->
23184 tx_rx_cal_radio_saveregs[(core * 11) +
23185 3]);
23186
23187 write_radio_reg(pi,
23188 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23189 pi->
23190 tx_rx_cal_radio_saveregs[(core * 11) +
23191 4]);
23192
23193 write_radio_reg(pi,
23194 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23195 pi->
23196 tx_rx_cal_radio_saveregs[(core * 11) +
23197 5]);
23198
23199 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23200 pi->
23201 tx_rx_cal_radio_saveregs[(core * 11) +
23202 6]);
23203
23204 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23205 pi->
23206 tx_rx_cal_radio_saveregs[(core * 11) +
23207 7]);
23208
23209 write_radio_reg(pi,
23210 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23211 pi->
23212 tx_rx_cal_radio_saveregs[(core * 11) +
23213 8]);
23214
23215 write_radio_reg(pi,
23216 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23217 pi->
23218 tx_rx_cal_radio_saveregs[(core * 11) +
23219 9]);
23220
23221 write_radio_reg(pi,
23222 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23223 pi->
23224 tx_rx_cal_radio_saveregs[(core * 11) +
23225 10]);
23226 }
23227 } else {
23228
23229 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23230 pi->tx_rx_cal_radio_saveregs[0]);
23231 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23232 pi->tx_rx_cal_radio_saveregs[1]);
23233 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23234 pi->tx_rx_cal_radio_saveregs[2]);
23235 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23236 pi->tx_rx_cal_radio_saveregs[3]);
23237 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23238 pi->tx_rx_cal_radio_saveregs[4]);
23239 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23240 pi->tx_rx_cal_radio_saveregs[5]);
23241 }
23242}
23243
7cc4a4c0 23244static void wlc_phy_txcal_physetup_nphy(phy_info_t *pi)
a9533e7e 23245{
7d4df48e 23246 u16 val, mask;
a9533e7e
HP
23247
23248 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23249 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23250 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23251
23252 mask = ((0x3 << 8) | (0x3 << 10));
23253 val = (0x2 << 8);
23254 val |= (0x2 << 10);
23255 mod_phy_reg(pi, 0xa6, mask, val);
23256 mod_phy_reg(pi, 0xa7, mask, val);
23257
23258 val = read_phy_reg(pi, 0x8f);
23259 pi->tx_rx_cal_phy_saveregs[2] = val;
23260 val |= ((0x1 << 9) | (0x1 << 10));
23261 write_phy_reg(pi, 0x8f, val);
23262
23263 val = read_phy_reg(pi, 0xa5);
23264 pi->tx_rx_cal_phy_saveregs[3] = val;
23265 val |= ((0x1 << 9) | (0x1 << 10));
23266 write_phy_reg(pi, 0xa5, val);
23267
23268 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23269 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23270
23271 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23272 &val);
23273 pi->tx_rx_cal_phy_saveregs[5] = val;
23274 val = 0;
23275 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23276 &val);
23277
23278 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23279 &val);
23280 pi->tx_rx_cal_phy_saveregs[6] = val;
23281 val = 0;
23282 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23283 &val);
23284
23285 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23286 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23287
23288 if (!(pi->use_int_tx_iqlo_cal_nphy)) {
23289
23290 wlc_phy_rfctrlintc_override_nphy(pi,
23291 NPHY_RfctrlIntc_override_PA,
23292 1,
23293 RADIO_MIMO_CORESEL_CORE1
23294 |
23295 RADIO_MIMO_CORESEL_CORE2);
23296 } else {
23297
23298 wlc_phy_rfctrlintc_override_nphy(pi,
23299 NPHY_RfctrlIntc_override_PA,
23300 0,
23301 RADIO_MIMO_CORESEL_CORE1
23302 |
23303 RADIO_MIMO_CORESEL_CORE2);
23304 }
23305
23306 wlc_phy_rfctrlintc_override_nphy(pi,
23307 NPHY_RfctrlIntc_override_TRSW,
23308 0x2, RADIO_MIMO_CORESEL_CORE1);
23309 wlc_phy_rfctrlintc_override_nphy(pi,
23310 NPHY_RfctrlIntc_override_TRSW,
23311 0x8, RADIO_MIMO_CORESEL_CORE2);
23312
23313 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23314 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23315 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23316 0x29b, (0x1 << 0), (0) << 0);
23317
23318 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23319 0x29b, (0x1 << 0), (0) << 0);
23320
23321 if (NREV_IS(pi->pubpi.phy_rev, 7)
23322 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23323 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
23324 wlc_phy_read_lpf_bw_ctl_nphy
23325 (pi, 0), 0, 0,
23326 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23327 }
23328
23329 if (pi->use_int_tx_iqlo_cal_nphy
23330 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23331
23332 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23333
23334 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23335 1 << 4);
23336
23337 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23338 mod_radio_reg(pi,
23339 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23340 1, 0);
23341 mod_radio_reg(pi,
23342 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23343 1, 0);
23344 } else {
23345 mod_radio_reg(pi,
23346 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23347 1, 0);
23348 mod_radio_reg(pi,
23349 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23350 1, 0);
23351 }
23352 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23353 wlc_phy_rfctrl_override_nphy_rev7(pi,
23354 (0x1 << 3), 0,
23355 0x3, 0,
23356 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23357 }
23358 }
23359 } else {
23360 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23361 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23362
23363 mask = ((0x3 << 12) | (0x3 << 14));
23364 val = (0x2 << 12);
23365 val |= (0x2 << 14);
23366 mod_phy_reg(pi, 0xa6, mask, val);
23367 mod_phy_reg(pi, 0xa7, mask, val);
23368
23369 val = read_phy_reg(pi, 0xa5);
23370 pi->tx_rx_cal_phy_saveregs[2] = val;
23371 val |= ((0x1 << 12) | (0x1 << 13));
23372 write_phy_reg(pi, 0xa5, val);
23373
23374 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23375 &val);
23376 pi->tx_rx_cal_phy_saveregs[3] = val;
23377 val |= 0x2000;
23378 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23379 &val);
23380
23381 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23382 &val);
23383 pi->tx_rx_cal_phy_saveregs[4] = val;
23384 val |= 0x2000;
23385 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23386 &val);
23387
23388 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23389 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23390 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23391 write_phy_reg(pi, 0x91, val);
23392 write_phy_reg(pi, 0x92, val);
23393 }
23394}
23395
7cc4a4c0 23396static void wlc_phy_txcal_phycleanup_nphy(phy_info_t *pi)
a9533e7e 23397{
7d4df48e 23398 u16 mask;
a9533e7e
HP
23399
23400 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23401 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23402 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23403 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23404 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23405 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23406
23407 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23408 &pi->tx_rx_cal_phy_saveregs[5]);
23409 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23410 &pi->tx_rx_cal_phy_saveregs[6]);
23411
23412 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23413 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23414
23415 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23416 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23417
23418 if (NREV_IS(pi->pubpi.phy_rev, 7)
23419 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23420 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
23421 1,
23422 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23423 }
23424
23425 wlc_phy_resetcca_nphy(pi);
23426
23427 if (pi->use_int_tx_iqlo_cal_nphy
23428 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23429
23430 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23431 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23432 mod_radio_reg(pi,
23433 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23434 1, 1);
23435 mod_radio_reg(pi,
23436 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23437 1, 1);
23438 } else {
23439 mod_radio_reg(pi,
23440 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23441 1, 1);
23442 mod_radio_reg(pi,
23443 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23444 1, 1);
23445 }
23446
23447 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23448 0);
23449 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23450 wlc_phy_rfctrl_override_nphy_rev7(pi,
23451 (0x1 << 3), 0,
23452 0x3, 1,
23453 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23454 }
23455 }
23456 } else {
23457 mask = ((0x3 << 12) | (0x3 << 14));
23458 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23459 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23460 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23461
23462 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23463 &pi->tx_rx_cal_phy_saveregs[3]);
23464
23465 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23466 &pi->tx_rx_cal_phy_saveregs[4]);
23467
23468 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23469 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23470 }
23471}
23472
23473#define NPHY_CAL_TSSISAMPS 64
23474#define NPHY_TEST_TONE_FREQ_40MHz 4000
23475#define NPHY_TEST_TONE_FREQ_20MHz 2500
23476
23477void
3e26416e 23478wlc_phy_est_tonepwr_nphy(phy_info_t *pi, s32 *qdBm_pwrbuf, u8 num_samps)
a9533e7e 23479{
7d4df48e 23480 u16 tssi_reg;
3e26416e
GKH
23481 s32 temp, pwrindex[2];
23482 s32 idle_tssi[2];
23483 s32 rssi_buf[4];
23484 s32 tssival[2];
e868ab03 23485 u8 tssi_type;
a9533e7e
HP
23486
23487 tssi_reg = read_phy_reg(pi, 0x1e9);
23488
3e26416e 23489 temp = (s32) (tssi_reg & 0x3f);
a9533e7e
HP
23490 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23491
3e26416e 23492 temp = (s32) ((tssi_reg >> 8) & 0x3f);
a9533e7e
HP
23493 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23494
23495 tssi_type =
23496 CHSPEC_IS5G(pi->radio_chanspec) ?
e868ab03 23497 (u8)NPHY_RSSI_SEL_TSSI_5G:(u8)NPHY_RSSI_SEL_TSSI_2G;
a9533e7e
HP
23498
23499 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23500
3e26416e
GKH
23501 tssival[0] = rssi_buf[0] / ((s32) num_samps);
23502 tssival[1] = rssi_buf[2] / ((s32) num_samps);
a9533e7e
HP
23503
23504 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23505 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23506
23507 if (pwrindex[0] < 0) {
23508 pwrindex[0] = 0;
23509 } else if (pwrindex[0] > 63) {
23510 pwrindex[0] = 63;
23511 }
23512
23513 if (pwrindex[1] < 0) {
23514 pwrindex[1] = 0;
23515 } else if (pwrindex[1] > 63) {
23516 pwrindex[1] = 63;
23517 }
23518
23519 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
66cbd3ab 23520 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
a9533e7e 23521 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
66cbd3ab 23522 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
a9533e7e
HP
23523}
23524
7cc4a4c0 23525static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi)
a9533e7e 23526{
7d4df48e 23527 u16 txcal_gain[2];
a9533e7e
HP
23528
23529 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23530 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
0f0881b0
GKH
23531 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23532 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
a9533e7e
HP
23533
23534 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23535 txcal_gain);
23536
23537 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23538 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23539 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23540 } else {
23541 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23542 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23543 }
23544
23545 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23546 txcal_gain);
23547}
23548
7cc4a4c0 23549static void wlc_phy_precal_txgain_nphy(phy_info_t *pi)
a9533e7e 23550{
0965ae88 23551 bool save_bbmult = false;
e868ab03
GKH
23552 u8 txcal_index_2057_rev5n7 = 0;
23553 u8 txcal_index_2057_rev3n4n6 = 10;
a9533e7e
HP
23554
23555 if (pi->use_int_tx_iqlo_cal_nphy) {
23556 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23557 if ((pi->pubpi.radiorev == 3) ||
23558 (pi->pubpi.radiorev == 4) ||
23559 (pi->pubpi.radiorev == 6)) {
23560
23561 pi->nphy_txcal_pwr_idx[0] =
23562 txcal_index_2057_rev3n4n6;
23563 pi->nphy_txcal_pwr_idx[1] =
23564 txcal_index_2057_rev3n4n6;
23565 wlc_phy_txpwr_index_nphy(pi, 3,
23566 txcal_index_2057_rev3n4n6,
0965ae88 23567 false);
a9533e7e
HP
23568 } else {
23569
23570 pi->nphy_txcal_pwr_idx[0] =
23571 txcal_index_2057_rev5n7;
23572 pi->nphy_txcal_pwr_idx[1] =
23573 txcal_index_2057_rev5n7;
23574 wlc_phy_txpwr_index_nphy(pi, 3,
23575 txcal_index_2057_rev5n7,
0965ae88 23576 false);
a9533e7e 23577 }
0f0881b0 23578 save_bbmult = true;
a9533e7e
HP
23579
23580 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
0965ae88 23581 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
a9533e7e
HP
23582 if (pi->sh->hw_phytxchain != 3) {
23583 pi->nphy_txcal_pwr_idx[1] =
23584 pi->nphy_txcal_pwr_idx[0];
23585 wlc_phy_txpwr_index_nphy(pi, 3,
23586 pi->
23587 nphy_txcal_pwr_idx[0],
0f0881b0
GKH
23588 true);
23589 save_bbmult = true;
a9533e7e
HP
23590 }
23591
23592 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23593 if (PHY_IPA(pi)) {
23594 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23595 wlc_phy_cal_txgainctrl_nphy(pi, 12,
0965ae88 23596 false);
a9533e7e
HP
23597 } else {
23598 pi->nphy_txcal_pwr_idx[0] = 80;
23599 pi->nphy_txcal_pwr_idx[1] = 80;
23600 wlc_phy_txpwr_index_nphy(pi, 3, 80,
0965ae88 23601 false);
0f0881b0 23602 save_bbmult = true;
a9533e7e
HP
23603 }
23604 } else {
23605
23606 wlc_phy_internal_cal_txgain_nphy(pi);
0f0881b0 23607 save_bbmult = true;
a9533e7e
HP
23608 }
23609
23610 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23611 if (PHY_IPA(pi)) {
23612 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23613 wlc_phy_cal_txgainctrl_nphy(pi, 12,
0965ae88 23614 false);
a9533e7e
HP
23615 } else {
23616 wlc_phy_cal_txgainctrl_nphy(pi, 14,
0965ae88 23617 false);
a9533e7e
HP
23618 }
23619 } else {
23620
23621 wlc_phy_internal_cal_txgain_nphy(pi);
0f0881b0 23622 save_bbmult = true;
a9533e7e
HP
23623 }
23624 }
23625
23626 } else {
0965ae88 23627 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
a9533e7e
HP
23628 }
23629
23630 if (save_bbmult) {
23631 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23632 &pi->nphy_txcal_bbmult);
23633 }
23634}
23635
23636void
3e26416e 23637wlc_phy_cal_txgainctrl_nphy(phy_info_t *pi, s32 dBm_targetpower, bool debug)
a9533e7e
HP
23638{
23639 int gainctrl_loopidx;
23640 uint core;
7d4df48e 23641 u16 m0m1, curr_m0m1;
3e26416e
GKH
23642 s32 delta_power;
23643 s32 txpwrindex;
23644 s32 qdBm_power[2];
7d4df48e
GKH
23645 u16 orig_BBConfig;
23646 u16 phy_saveregs[4];
66cbd3ab 23647 u32 freq_test;
7d4df48e 23648 u16 ampl_test = 250;
a9533e7e 23649 uint stepsize;
0965ae88 23650 bool phyhang_avoid_state = false;
a9533e7e
HP
23651
23652 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23653
23654 stepsize = 2;
23655 } else {
23656
23657 stepsize = 1;
23658 }
23659
23660 if (CHSPEC_IS40(pi->radio_chanspec)) {
23661 freq_test = 5000;
23662 } else {
23663 freq_test = 2500;
23664 }
23665
0f0881b0
GKH
23666 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23667 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
a9533e7e
HP
23668
23669 if (pi->phyhang_avoid)
0f0881b0 23670 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
23671
23672 phyhang_avoid_state = pi->phyhang_avoid;
0965ae88 23673 pi->phyhang_avoid = false;
a9533e7e
HP
23674
23675 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23676 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23677 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23678 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23679 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23680 RADIO_MIMO_CORESEL_CORE1 |
23681 RADIO_MIMO_CORESEL_CORE2);
23682
23683 if (!debug) {
23684 wlc_phy_rfctrlintc_override_nphy(pi,
23685 NPHY_RfctrlIntc_override_TRSW,
23686 0x2, RADIO_MIMO_CORESEL_CORE1);
23687 wlc_phy_rfctrlintc_override_nphy(pi,
23688 NPHY_RfctrlIntc_override_TRSW,
23689 0x8, RADIO_MIMO_CORESEL_CORE2);
23690 } else {
23691 wlc_phy_rfctrlintc_override_nphy(pi,
23692 NPHY_RfctrlIntc_override_TRSW,
23693 0x1, RADIO_MIMO_CORESEL_CORE1);
23694 wlc_phy_rfctrlintc_override_nphy(pi,
23695 NPHY_RfctrlIntc_override_TRSW,
23696 0x7, RADIO_MIMO_CORESEL_CORE2);
23697 }
23698
23699 orig_BBConfig = read_phy_reg(pi, 0x01);
23700 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23701
23702 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23703
23704 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
3e26416e 23705 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
a9533e7e
HP
23706
23707 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23708 gainctrl_loopidx++) {
23709 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
0965ae88 23710 false);
a9533e7e
HP
23711
23712 if (core == PHY_CORE_0) {
23713 curr_m0m1 = m0m1 & 0xff00;
23714 } else {
23715 curr_m0m1 = m0m1 & 0x00ff;
23716 }
23717
23718 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23719 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23720
7383141b 23721 udelay(50);
a9533e7e
HP
23722
23723 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23724 NPHY_CAL_TSSISAMPS);
23725
23726 pi->nphy_bb_mult_save = 0;
23727 wlc_phy_stopplayback_nphy(pi);
23728
23729 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23730
23731 txpwrindex -= stepsize * delta_power;
23732 if (txpwrindex < 0) {
23733 txpwrindex = 0;
23734 } else if (txpwrindex > 127) {
23735 txpwrindex = 127;
23736 }
23737
23738 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23739 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23740 (pi->srom_fem5g.extpagain == 3)) {
23741 if (txpwrindex < 30) {
23742 txpwrindex = 30;
23743 }
23744 }
23745 } else {
23746 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23747 (pi->srom_fem2g.extpagain == 3)) {
23748 if (txpwrindex < 50) {
23749 txpwrindex = 50;
23750 }
23751 }
23752 }
23753
23754 wlc_phy_txpwr_index_nphy(pi, (1 << core),
0f0881b0 23755 (u8) txpwrindex, true);
a9533e7e
HP
23756 }
23757
e868ab03 23758 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
a9533e7e
HP
23759
23760 if (debug) {
7d4df48e
GKH
23761 u16 radio_gain;
23762 u16 dbg_m0m1;
a9533e7e
HP
23763
23764 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23765
23766 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
0965ae88 23767 false);
a9533e7e
HP
23768
23769 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23770 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23771
7383141b 23772 udelay(100);
a9533e7e
HP
23773
23774 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23775 NPHY_CAL_TSSISAMPS);
23776
23777 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23778 &radio_gain);
23779
7383141b 23780 mdelay(4000);
a9533e7e
HP
23781 pi->nphy_bb_mult_save = 0;
23782 wlc_phy_stopplayback_nphy(pi);
23783 }
23784 }
23785
0f0881b0
GKH
23786 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
23787 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
a9533e7e
HP
23788
23789 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23790
23791 write_phy_reg(pi, 0x01, orig_BBConfig);
23792
23793 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23794 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23795 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23796 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23797
23798 pi->phyhang_avoid = phyhang_avoid_state;
23799
23800 if (pi->phyhang_avoid)
0965ae88 23801 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
23802}
23803
7d4df48e 23804static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core)
a9533e7e
HP
23805{
23806 int index;
66cbd3ab 23807 u32 bbmult_scale;
7d4df48e
GKH
23808 u16 bbmult;
23809 u16 tblentry;
a9533e7e
HP
23810
23811 nphy_txiqcal_ladder_t ladder_lo[] = {
23812 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23813 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23814 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23815 };
23816
23817 nphy_txiqcal_ladder_t ladder_iq[] = {
23818 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23819 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23820 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23821 };
23822
23823 bbmult = (core == PHY_CORE_0) ?
23824 ((pi->nphy_txcal_bbmult >> 8) & 0xff) : (pi->
23825 nphy_txcal_bbmult & 0xff);
23826
23827 for (index = 0; index < 18; index++) {
23828 bbmult_scale = ladder_lo[index].percent * bbmult;
23829 bbmult_scale /= 100;
23830
23831 tblentry =
23832 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23833 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23834 &tblentry);
23835
23836 bbmult_scale = ladder_iq[index].percent * bbmult;
23837 bbmult_scale /= 100;
23838
23839 tblentry =
23840 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23841 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23842 16, &tblentry);
23843 }
23844}
23845
e868ab03 23846void wlc_phy_cal_perical_nphy_run(phy_info_t *pi, u8 caltype)
a9533e7e
HP
23847{
23848 nphy_txgains_t target_gain;
e868ab03 23849 u8 tx_pwr_ctrl_state;
0f0881b0 23850 bool fullcal = true;
0965ae88 23851 bool restore_tx_gain = false;
a9533e7e
HP
23852 bool mphase;
23853
23854 if (NORADIO_ENAB(pi->pubpi)) {
23855 wlc_phy_cal_perical_mphase_reset(pi);
23856 return;
23857 }
23858
23859 if (PHY_MUTED(pi))
23860 return;
23861
23862 ASSERT(pi->nphy_perical != PHY_PERICAL_DISABLE);
23863
23864 if (caltype == PHY_PERICAL_AUTO)
23865 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23866 else if (caltype == PHY_PERICAL_PARTIAL)
0965ae88 23867 fullcal = false;
a9533e7e
HP
23868
23869 if (pi->cal_type_override != PHY_PERICAL_AUTO) {
23870 fullcal =
0965ae88 23871 (pi->cal_type_override == PHY_PERICAL_FULL) ? true : false;
a9533e7e
HP
23872 }
23873
23874 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23875 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23876 wlc_phy_cal_perical_mphase_restart(pi);
23877 }
23878
23879 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL)) {
23880 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23881 }
23882
23883 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23884
23885 wlc_phyreg_enter((wlc_phy_t *) pi);
23886
23887 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23888 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23889 pi->nphy_cal_orig_pwr_idx[0] =
e868ab03 23890 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
a9533e7e 23891 pi->nphy_cal_orig_pwr_idx[1] =
e868ab03 23892 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
a9533e7e
HP
23893
23894 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23895 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23896 0x110, 16,
23897 pi->nphy_cal_orig_tx_gain);
23898 } else {
23899 pi->nphy_cal_orig_tx_gain[0] = 0;
23900 pi->nphy_cal_orig_tx_gain[1] = 0;
23901 }
23902 }
23903 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23904 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23905 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23906
23907 if (pi->antsel_type == ANTSEL_2x3)
0f0881b0 23908 wlc_phy_antsel_init((wlc_phy_t *) pi, true);
a9533e7e
HP
23909
23910 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23911 if (!mphase) {
23912
23913 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23914 wlc_phy_precal_txgain_nphy(pi);
23915 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
0f0881b0 23916 restore_tx_gain = true;
a9533e7e
HP
23917
23918 target_gain = pi->nphy_cal_target_gain;
23919 }
23920 if (BCME_OK ==
23921 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal, mphase)) {
23922 if (PHY_IPA(pi))
0f0881b0 23923 wlc_phy_a4(pi, true);
a9533e7e
HP
23924
23925 wlc_phyreg_exit((wlc_phy_t *) pi);
23926 wlapi_enable_mac(pi->sh->physhim);
23927 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23928 10000);
23929 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23930 wlc_phyreg_enter((wlc_phy_t *) pi);
23931
23932 if (BCME_OK == wlc_phy_cal_rxiq_nphy(pi, target_gain,
23933 (pi->
23934 first_cal_after_assoc
23935 || (pi->
23936 cal_type_override
23937 ==
23938 PHY_PERICAL_FULL))
0965ae88 23939 ? 2 : 0, false)) {
a9533e7e
HP
23940 wlc_phy_savecal_nphy(pi);
23941
23942 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23943
23944 pi->nphy_perical_last = pi->sh->now;
23945 }
23946 }
23947 if (caltype != PHY_PERICAL_AUTO) {
23948 wlc_phy_rssi_cal_nphy(pi);
23949 }
23950
23951 if (pi->first_cal_after_assoc
23952 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
0965ae88 23953 pi->first_cal_after_assoc = false;
a9533e7e
HP
23954 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23955 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23956 }
23957
23958 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23959 wlc_phy_radio205x_vcocal_nphy(pi);
23960 }
23961 } else {
23962 ASSERT(pi->nphy_perical >= PHY_PERICAL_MPHASE);
23963
23964 switch (pi->mphase_cal_phase_id) {
23965 case MPHASE_CAL_STATE_INIT:
23966 pi->nphy_perical_last = pi->sh->now;
23967 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23968
23969 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23970 wlc_phy_precal_txgain_nphy(pi);
23971 }
23972 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23973 pi->mphase_cal_phase_id++;
23974 break;
23975
23976 case MPHASE_CAL_STATE_TXPHASE0:
23977 case MPHASE_CAL_STATE_TXPHASE1:
23978 case MPHASE_CAL_STATE_TXPHASE2:
23979 case MPHASE_CAL_STATE_TXPHASE3:
23980 case MPHASE_CAL_STATE_TXPHASE4:
23981 case MPHASE_CAL_STATE_TXPHASE5:
23982 if ((pi->radar_percal_mask & 0x10) != 0)
0f0881b0 23983 pi->nphy_rxcal_active = true;
a9533e7e
HP
23984
23985 if (wlc_phy_cal_txiqlo_nphy
23986 (pi, pi->nphy_cal_target_gain, fullcal,
0f0881b0 23987 true) != BCME_OK) {
a9533e7e
HP
23988
23989 wlc_phy_cal_perical_mphase_reset(pi);
23990 break;
23991 }
23992
23993 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23994 (pi->mphase_cal_phase_id ==
23995 MPHASE_CAL_STATE_TXPHASE4)) {
23996 pi->mphase_cal_phase_id += 2;
23997 } else {
23998 pi->mphase_cal_phase_id++;
23999 }
24000 break;
24001
24002 case MPHASE_CAL_STATE_PAPDCAL:
24003 if ((pi->radar_percal_mask & 0x2) != 0)
0f0881b0 24004 pi->nphy_rxcal_active = true;
a9533e7e
HP
24005
24006 if (PHY_IPA(pi)) {
0f0881b0 24007 wlc_phy_a4(pi, true);
a9533e7e
HP
24008 }
24009 pi->mphase_cal_phase_id++;
24010 break;
24011
24012 case MPHASE_CAL_STATE_RXCAL:
24013 if ((pi->radar_percal_mask & 0x1) != 0)
0f0881b0 24014 pi->nphy_rxcal_active = true;
a9533e7e
HP
24015 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
24016 (pi->first_cal_after_assoc ||
24017 (pi->cal_type_override ==
24018 PHY_PERICAL_FULL)) ? 2 : 0,
0965ae88 24019 false) == BCME_OK) {
a9533e7e
HP
24020 wlc_phy_savecal_nphy(pi);
24021 }
24022
24023 pi->mphase_cal_phase_id++;
24024 break;
24025
24026 case MPHASE_CAL_STATE_RSSICAL:
24027 if ((pi->radar_percal_mask & 0x4) != 0)
0f0881b0 24028 pi->nphy_rxcal_active = true;
a9533e7e
HP
24029 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
24030 wlc_phy_rssi_cal_nphy(pi);
24031
24032 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24033 wlc_phy_radio205x_vcocal_nphy(pi);
24034 }
0f0881b0 24035 restore_tx_gain = true;
a9533e7e
HP
24036
24037 if (pi->first_cal_after_assoc) {
24038 pi->mphase_cal_phase_id++;
24039 } else {
24040 wlc_phy_cal_perical_mphase_reset(pi);
24041 }
24042
24043 break;
24044
24045 case MPHASE_CAL_STATE_IDLETSSI:
24046 if ((pi->radar_percal_mask & 0x8) != 0)
0f0881b0 24047 pi->nphy_rxcal_active = true;
a9533e7e
HP
24048
24049 if (pi->first_cal_after_assoc) {
0965ae88 24050 pi->first_cal_after_assoc = false;
a9533e7e
HP
24051 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
24052 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
24053 }
24054
24055 wlc_phy_cal_perical_mphase_reset(pi);
24056 break;
24057
24058 default:
24059 ASSERT(0);
24060 wlc_phy_cal_perical_mphase_reset(pi);
24061 break;
24062 }
24063 }
24064
24065 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24066 if (restore_tx_gain) {
24067 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
24068
24069 wlc_phy_txpwr_index_nphy(pi, 1,
24070 pi->
24071 nphy_cal_orig_pwr_idx
0965ae88 24072 [0], false);
a9533e7e
HP
24073 wlc_phy_txpwr_index_nphy(pi, 2,
24074 pi->
24075 nphy_cal_orig_pwr_idx
0965ae88 24076 [1], false);
a9533e7e
HP
24077
24078 pi->nphy_txpwrindex[0].index = -1;
24079 pi->nphy_txpwrindex[1].index = -1;
24080 } else {
24081 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
562c8850 24082 (s8) (pi->
a9533e7e
HP
24083 nphy_txpwrindex
24084 [0].
24085 index_internal),
0965ae88 24086 false);
a9533e7e 24087 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
562c8850 24088 (s8) (pi->
a9533e7e
HP
24089 nphy_txpwrindex
24090 [1].
24091 index_internal),
0965ae88 24092 false);
a9533e7e
HP
24093 }
24094 }
24095 }
24096
24097 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
24098 wlc_phyreg_exit((wlc_phy_t *) pi);
24099 wlapi_enable_mac(pi->sh->physhim);
24100}
24101
24102int
7cc4a4c0 24103wlc_phy_cal_txiqlo_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
24104 bool fullcal, bool mphase)
24105{
7d4df48e
GKH
24106 u16 val;
24107 u16 tbl_buf[11];
e868ab03 24108 u8 cal_cnt;
7d4df48e 24109 u16 cal_cmd;
e868ab03 24110 u8 num_cals, max_cal_cmds;
7d4df48e
GKH
24111 u16 core_no, cal_type;
24112 u16 diq_start = 0;
e868ab03 24113 u8 phy_bw;
7d4df48e
GKH
24114 u16 max_val;
24115 u16 tone_freq;
24116 u16 gain_save[2];
24117 u16 cal_gain[2];
a9533e7e 24118 nphy_iqcal_params_t cal_params[2];
66cbd3ab 24119 u32 tbl_len;
a9533e7e
HP
24120 void *tbl_ptr;
24121 bool ladder_updated[2];
e868ab03 24122 u8 mphase_cal_lastphase = 0;
a9533e7e 24123 int bcmerror = BCME_OK;
0965ae88 24124 bool phyhang_avoid_state = false;
a9533e7e 24125
7d4df48e 24126 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
a9533e7e
HP
24127 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
24128 0x1902,
24129 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24130 0x6407
24131 };
24132
7d4df48e 24133 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
a9533e7e
HP
24134 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24135 0x3200,
24136 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24137 0x6407
24138 };
24139
7d4df48e 24140 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
a9533e7e
HP
24141 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24142 0x1202,
24143 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24144 0x4707
24145 };
24146
7d4df48e 24147 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
a9533e7e
HP
24148 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24149 0x2300,
24150 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24151 0x4707
24152 };
24153
7d4df48e 24154 u16 tbl_tx_iqlo_cal_startcoefs[] = {
a9533e7e
HP
24155 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24156 0x0000
24157 };
24158
7d4df48e 24159 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
a9533e7e
HP
24160 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
24161 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
24162 };
24163
7d4df48e 24164 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
a9533e7e
HP
24165 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
24166 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
24167 };
24168
7d4df48e 24169 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
a9533e7e
HP
24170 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24171 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24172 0x0000
24173 };
24174
7d4df48e 24175 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
a9533e7e
HP
24176 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
24177 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
24178 };
24179
7d4df48e 24180 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
a9533e7e
HP
24181 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
24182 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
24183 };
24184
0f0881b0 24185 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
24186
24187 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24188 phyhang_avoid_state = pi->phyhang_avoid;
0965ae88 24189 pi->phyhang_avoid = false;
a9533e7e
HP
24190 }
24191
24192 if (CHSPEC_IS40(pi->radio_chanspec)) {
24193 phy_bw = 40;
24194 } else {
24195 phy_bw = 20;
24196 }
24197
24198 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
24199
24200 for (core_no = 0; core_no <= 1; core_no++) {
24201 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
24202 &cal_params[core_no]);
24203 cal_gain[core_no] = cal_params[core_no].cal_gain;
24204 }
24205
24206 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
24207
24208 wlc_phy_txcal_radio_setup_nphy(pi);
24209
24210 wlc_phy_txcal_physetup_nphy(pi);
24211
0965ae88 24212 ladder_updated[0] = ladder_updated[1] = false;
a9533e7e
HP
24213 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
24214 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
24215 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
24216
24217 if (phy_bw == 40) {
24218 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
8d3d6a69 24219 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
a9533e7e
HP
24220 } else {
24221 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
8d3d6a69 24222 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
a9533e7e
HP
24223 }
24224 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
24225 16, tbl_ptr);
24226
24227 if (phy_bw == 40) {
24228 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
8d3d6a69 24229 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
a9533e7e
HP
24230 } else {
24231 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
8d3d6a69 24232 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
a9533e7e
HP
24233 }
24234 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24235 16, tbl_ptr);
24236 }
24237
24238 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24239 write_phy_reg(pi, 0xc2, 0x8ad9);
24240 } else {
24241 write_phy_reg(pi, 0xc2, 0x8aa9);
24242 }
24243
24244 max_val = 250;
24245 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24246
24247 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
0965ae88 24248 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
a9533e7e
HP
24249 bcmerror = BCME_OK;
24250 } else {
24251 bcmerror =
0965ae88 24252 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0, false);
a9533e7e
HP
24253 }
24254
24255 if (bcmerror == BCME_OK) {
24256
24257 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24258 tbl_ptr = pi->mphase_txcal_bestcoeffs;
8d3d6a69 24259 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
a9533e7e
HP
24260 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24261
24262 tbl_len -= 2;
24263 }
24264 } else {
24265 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24266
24267 tbl_ptr = pi->nphy_txiqlocal_bestc;
8d3d6a69 24268 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
a9533e7e
HP
24269 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24270
24271 tbl_len -= 2;
24272 }
24273 } else {
24274
0f0881b0 24275 fullcal = true;
a9533e7e
HP
24276
24277 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24278 tbl_ptr =
24279 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24280 tbl_len =
8d3d6a69 24281 ARRAY_SIZE
a9533e7e
HP
24282 (tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24283 } else {
24284 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24285 tbl_len =
8d3d6a69 24286 ARRAY_SIZE
a9533e7e
HP
24287 (tbl_tx_iqlo_cal_startcoefs);
24288 }
24289 }
24290 }
24291 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24292 16, tbl_ptr);
24293
24294 if (fullcal) {
24295 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
8d3d6a69
GKH
24296 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24297 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
a9533e7e
HP
24298 } else {
24299 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
8d3d6a69
GKH
24300 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24301 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
a9533e7e
HP
24302 }
24303
24304 if (mphase) {
24305 cal_cnt = pi->mphase_txcal_cmdidx;
24306 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds) {
24307 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24308 } else {
24309 num_cals = max_cal_cmds;
24310 }
24311 } else {
24312 cal_cnt = 0;
24313 num_cals = max_cal_cmds;
24314 }
24315
24316 for (; cal_cnt < num_cals; cal_cnt++) {
24317
24318 if (fullcal) {
24319 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24320 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24321 [cal_cnt] :
24322 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24323 } else {
24324 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24325 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[cal_cnt]
24326 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24327 }
24328
24329 core_no = ((cal_cmd & 0x3000) >> 12);
24330 cal_type = ((cal_cmd & 0x0F00) >> 8);
24331
24332 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24333 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24334 PHY_IPA(pi)
24335 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24336 if (!ladder_updated[core_no]) {
24337 wlc_phy_update_txcal_ladder_nphy(pi,
24338 core_no);
0f0881b0 24339 ladder_updated[core_no] = true;
a9533e7e
HP
24340 }
24341 }
24342
24343 val =
24344 (cal_params[core_no].
24345 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24346 write_phy_reg(pi, 0xc1, val);
24347
24348 if ((cal_type == 1) || (cal_type == 3)
24349 || (cal_type == 4)) {
24350
24351 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24352 1, 69 + core_no, 16,
24353 tbl_buf);
24354
24355 diq_start = tbl_buf[0];
24356
24357 tbl_buf[0] = 0;
24358 wlc_phy_table_write_nphy(pi,
24359 NPHY_TBL_ID_IQLOCAL, 1,
24360 69 + core_no, 16,
24361 tbl_buf);
24362 }
24363
24364 write_phy_reg(pi, 0xc0, cal_cmd);
24365
24366 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24367 20000);
24368 ASSERT((read_phy_reg(pi, 0xc0) & 0xc000) == 0);
24369
24370 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24371 tbl_len, 96, 16, tbl_buf);
24372 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24373 tbl_len, 64, 16, tbl_buf);
24374
24375 if ((cal_type == 1) || (cal_type == 3)
24376 || (cal_type == 4)) {
24377
24378 tbl_buf[0] = diq_start;
24379
24380 }
24381
24382 }
24383
24384 if (mphase) {
24385 pi->mphase_txcal_cmdidx = num_cals;
24386 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24387 pi->mphase_txcal_cmdidx = 0;
24388 }
24389
24390 mphase_cal_lastphase =
24391 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24392 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24393
24394 if (!mphase
24395 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24396
24397 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24398 16, tbl_buf);
24399 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24400 16, tbl_buf);
24401
24402 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24403
24404 tbl_buf[0] = 0;
24405 tbl_buf[1] = 0;
24406 tbl_buf[2] = 0;
24407 tbl_buf[3] = 0;
24408
24409 }
24410 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24411 16, tbl_buf);
24412
24413 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24414 16, tbl_buf);
24415 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24416 16, tbl_buf);
24417
24418 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24419 16, tbl_buf);
24420
8d3d6a69 24421 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
a9533e7e
HP
24422 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24423
24424 tbl_len -= 2;
24425 }
24426 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24427 tbl_len, 96, 16,
24428 pi->nphy_txiqlocal_bestc);
24429
0f0881b0 24430 pi->nphy_txiqlocal_coeffsvalid = true;
a9533e7e
HP
24431 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24432 } else {
8d3d6a69 24433 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
a9533e7e
HP
24434 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24435
24436 tbl_len -= 2;
24437 }
24438 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24439 tbl_len, 96, 16,
24440 pi->mphase_txcal_bestcoeffs);
24441 }
24442
24443 wlc_phy_stopplayback_nphy(pi);
24444
24445 write_phy_reg(pi, 0xc2, 0x0000);
24446
24447 }
24448
24449 wlc_phy_txcal_phycleanup_nphy(pi);
24450
24451 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24452 gain_save);
24453
24454 wlc_phy_txcal_radio_cleanup_nphy(pi);
24455
24456 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24457 if (!mphase
24458 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24459 wlc_phy_tx_iq_war_nphy(pi);
24460 }
24461
24462 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24463 pi->phyhang_avoid = phyhang_avoid_state;
24464 }
24465
0965ae88 24466 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
24467
24468 return bcmerror;
24469}
24470
7cc4a4c0 24471static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi)
a9533e7e 24472{
7d4df48e 24473 u16 tbl_buf[7];
a9533e7e
HP
24474
24475 ASSERT(NREV_LT(pi->pubpi.phy_rev, 2));
24476
24477 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24478 (pi->nphy_txiqlocal_coeffsvalid)) {
24479 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
8d3d6a69 24480 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
a9533e7e
HP
24481
24482 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24483 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24484 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24485 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24486
24487 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24488 16, pi->nphy_txiqlocal_bestc);
24489
24490 tbl_buf[0] = 0;
24491 tbl_buf[1] = 0;
24492 tbl_buf[2] = 0;
24493 tbl_buf[3] = 0;
24494 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24495 16, tbl_buf);
24496
24497 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24498 16,
24499 &pi->nphy_txiqlocal_bestc[5]);
24500
24501 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24502 16,
24503 &pi->nphy_txiqlocal_bestc[5]);
24504 }
24505 }
24506}
24507
7cc4a4c0 24508static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi)
a9533e7e
HP
24509{
24510 nphy_iq_comp_t tx_comp;
24511
24512 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, (void *)&tx_comp);
24513
24514 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24515 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24516 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24517 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24518}
24519
24520void
e868ab03 24521wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, u8 write, nphy_iq_comp_t *pcomp)
a9533e7e
HP
24522{
24523 if (write) {
24524 write_phy_reg(pi, 0x9a, pcomp->a0);
24525 write_phy_reg(pi, 0x9b, pcomp->b0);
24526 write_phy_reg(pi, 0x9c, pcomp->a1);
24527 write_phy_reg(pi, 0x9d, pcomp->b1);
24528 } else {
24529 pcomp->a0 = read_phy_reg(pi, 0x9a);
24530 pcomp->b0 = read_phy_reg(pi, 0x9b);
24531 pcomp->a1 = read_phy_reg(pi, 0x9c);
24532 pcomp->b1 = read_phy_reg(pi, 0x9d);
24533 }
24534}
24535
24536void
7d4df48e 24537wlc_phy_rx_iq_est_nphy(phy_info_t *pi, phy_iq_est_t *est, u16 num_samps,
e868ab03 24538 u8 wait_time, u8 wait_for_crs)
a9533e7e 24539{
e868ab03 24540 u8 core;
a9533e7e
HP
24541
24542 write_phy_reg(pi, 0x12b, num_samps);
24543 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24544 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24545 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24546
24547 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24548
24549 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24550 10000);
24551 ASSERT((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0);
24552
24553 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24554 ASSERT(pi->pubpi.phy_corenum <= PHY_CORE_MAX);
24555 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24556 est[core].i_pwr =
24557 (read_phy_reg(pi, NPHY_IqestipwrAccHi(core)) << 16)
24558 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24559 est[core].q_pwr =
24560 (read_phy_reg(pi, NPHY_IqestqpwrAccHi(core)) << 16)
24561 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24562 est[core].iq_prod =
24563 (read_phy_reg(pi, NPHY_IqestIqAccHi(core)) << 16) |
24564 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24565 }
24566 }
24567}
24568
24569#define CAL_RETRY_CNT 2
e868ab03 24570static void wlc_phy_calc_rx_iq_comp_nphy(phy_info_t *pi, u8 core_mask)
a9533e7e 24571{
e868ab03 24572 u8 curr_core;
a9533e7e
HP
24573 phy_iq_est_t est[PHY_CORE_MAX];
24574 nphy_iq_comp_t old_comp, new_comp;
3e26416e 24575 s32 iq = 0;
66cbd3ab 24576 u32 ii = 0, qq = 0;
e59fe083 24577 s16 iq_nbits, qq_nbits, brsh, arsh;
3e26416e 24578 s32 a, b, temp;
a9533e7e
HP
24579 int bcmerror = BCME_OK;
24580 uint cal_retry = 0;
24581
24582 if (core_mask == 0x0)
24583 return;
24584
24585 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24586 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24587 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24588
24589 cal_try:
24590 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24591
24592 new_comp = old_comp;
24593
24594 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24595
24596 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24597 iq = est[curr_core].iq_prod;
24598 ii = est[curr_core].i_pwr;
24599 qq = est[curr_core].q_pwr;
24600 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24601 iq = est[curr_core].iq_prod;
24602 ii = est[curr_core].i_pwr;
24603 qq = est[curr_core].q_pwr;
24604 } else {
24605 continue;
24606 }
24607
24608 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24609 bcmerror = BCME_ERROR;
24610 break;
24611 }
24612
24613 iq_nbits = wlc_phy_nbits(iq);
24614 qq_nbits = wlc_phy_nbits(qq);
24615
24616 arsh = 10 - (30 - iq_nbits);
24617 if (arsh >= 0) {
24618 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
3e26416e 24619 temp = (s32) (ii >> arsh);
a9533e7e
HP
24620 if (temp == 0) {
24621 bcmerror = BCME_ERROR;
24622 break;
24623 }
24624 } else {
24625 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
3e26416e 24626 temp = (s32) (ii << -arsh);
a9533e7e
HP
24627 if (temp == 0) {
24628 bcmerror = BCME_ERROR;
24629 break;
24630 }
24631 }
24632
24633 a /= temp;
24634
24635 brsh = qq_nbits - 31 + 20;
24636 if (brsh >= 0) {
24637 b = (qq << (31 - qq_nbits));
3e26416e 24638 temp = (s32) (ii >> brsh);
a9533e7e
HP
24639 if (temp == 0) {
24640 bcmerror = BCME_ERROR;
24641 break;
24642 }
24643 } else {
24644 b = (qq << (31 - qq_nbits));
3e26416e 24645 temp = (s32) (ii << -brsh);
a9533e7e
HP
24646 if (temp == 0) {
24647 bcmerror = BCME_ERROR;
24648 break;
24649 }
24650 }
24651 b /= temp;
24652 b -= a * a;
3e26416e 24653 b = (s32) wlc_phy_sqrt_int((u32) b);
a9533e7e
HP
24654 b -= (1 << 10);
24655
24656 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24657 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
e59fe083
GKH
24658 new_comp.a0 = (s16) a & 0x3ff;
24659 new_comp.b0 = (s16) b & 0x3ff;
a9533e7e
HP
24660 } else {
24661
e59fe083
GKH
24662 new_comp.a0 = (s16) b & 0x3ff;
24663 new_comp.b0 = (s16) a & 0x3ff;
a9533e7e
HP
24664 }
24665 }
24666 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24667 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
e59fe083
GKH
24668 new_comp.a1 = (s16) a & 0x3ff;
24669 new_comp.b1 = (s16) b & 0x3ff;
a9533e7e
HP
24670 } else {
24671
e59fe083
GKH
24672 new_comp.a1 = (s16) b & 0x3ff;
24673 new_comp.b1 = (s16) a & 0x3ff;
a9533e7e
HP
24674 }
24675 }
24676 }
24677
24678 if (bcmerror != BCME_OK) {
24679 printk("%s: Failed, cnt = %d\n", __func__, cal_retry);
24680
24681 if (cal_retry < CAL_RETRY_CNT) {
24682 cal_retry++;
24683 goto cal_try;
24684 }
24685
24686 new_comp = old_comp;
24687 } else if (cal_retry > 0) {
24688 }
24689
24690 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24691}
24692
e868ab03 24693static void wlc_phy_rxcal_radio_setup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e 24694{
7d4df48e
GKH
24695 u16 offtune_val;
24696 u16 bias_g = 0;
24697 u16 bias_a = 0;
a9533e7e
HP
24698
24699 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24700 if (rx_core == PHY_CORE_0) {
24701 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24702 pi->tx_rx_cal_radio_saveregs[0] =
24703 read_radio_reg(pi,
24704 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24705 pi->tx_rx_cal_radio_saveregs[1] =
24706 read_radio_reg(pi,
24707 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24708
24709 write_radio_reg(pi,
24710 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24711 0x3);
24712 write_radio_reg(pi,
24713 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24714 0xaf);
24715
24716 } else {
24717 pi->tx_rx_cal_radio_saveregs[0] =
24718 read_radio_reg(pi,
24719 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24720 pi->tx_rx_cal_radio_saveregs[1] =
24721 read_radio_reg(pi,
24722 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24723
24724 write_radio_reg(pi,
24725 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24726 0x3);
24727 write_radio_reg(pi,
24728 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24729 0x7f);
24730 }
24731
24732 } else {
24733 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24734 pi->tx_rx_cal_radio_saveregs[0] =
24735 read_radio_reg(pi,
24736 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24737 pi->tx_rx_cal_radio_saveregs[1] =
24738 read_radio_reg(pi,
24739 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24740
24741 write_radio_reg(pi,
24742 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24743 0x3);
24744 write_radio_reg(pi,
24745 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24746 0xaf);
24747
24748 } else {
24749 pi->tx_rx_cal_radio_saveregs[0] =
24750 read_radio_reg(pi,
24751 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24752 pi->tx_rx_cal_radio_saveregs[1] =
24753 read_radio_reg(pi,
24754 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24755
24756 write_radio_reg(pi,
24757 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24758 0x3);
24759 write_radio_reg(pi,
24760 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24761 0x7f);
24762 }
24763 }
24764
24765 } else {
24766 if (rx_core == PHY_CORE_0) {
24767 pi->tx_rx_cal_radio_saveregs[0] =
24768 read_radio_reg(pi,
24769 RADIO_2056_TX_RXIQCAL_TXMUX |
24770 RADIO_2056_TX1);
24771 pi->tx_rx_cal_radio_saveregs[1] =
24772 read_radio_reg(pi,
24773 RADIO_2056_RX_RXIQCAL_RXMUX |
24774 RADIO_2056_RX0);
24775
24776 if (pi->pubpi.radiorev >= 5) {
24777 pi->tx_rx_cal_radio_saveregs[2] =
24778 read_radio_reg(pi,
24779 RADIO_2056_RX_RXSPARE2 |
24780 RADIO_2056_RX0);
24781 pi->tx_rx_cal_radio_saveregs[3] =
24782 read_radio_reg(pi,
24783 RADIO_2056_TX_TXSPARE2 |
24784 RADIO_2056_TX1);
24785 }
24786
24787 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24788
24789 if (pi->pubpi.radiorev >= 5) {
24790 pi->tx_rx_cal_radio_saveregs[4] =
24791 read_radio_reg(pi,
24792 RADIO_2056_RX_LNAA_MASTER
24793 | RADIO_2056_RX0);
24794
24795 write_radio_reg(pi,
24796 RADIO_2056_RX_LNAA_MASTER
24797 | RADIO_2056_RX0, 0x40);
24798
24799 write_radio_reg(pi,
24800 RADIO_2056_TX_TXSPARE2 |
24801 RADIO_2056_TX1, bias_a);
24802
24803 write_radio_reg(pi,
24804 RADIO_2056_RX_RXSPARE2 |
24805 RADIO_2056_RX0, bias_a);
24806 } else {
24807 pi->tx_rx_cal_radio_saveregs[4] =
24808 read_radio_reg(pi,
24809 RADIO_2056_RX_LNAA_TUNE
24810 | RADIO_2056_RX0);
24811
24812 offtune_val =
24813 (pi->
24814 tx_rx_cal_radio_saveregs[2] & 0xF0)
24815 >> 8;
24816 offtune_val =
24817 (offtune_val <= 0x7) ? 0xF : 0;
24818
24819 mod_radio_reg(pi,
24820 RADIO_2056_RX_LNAA_TUNE |
24821 RADIO_2056_RX0, 0xF0,
24822 (offtune_val << 8));
24823 }
24824
24825 write_radio_reg(pi,
24826 RADIO_2056_TX_RXIQCAL_TXMUX |
24827 RADIO_2056_TX1, 0x9);
24828 write_radio_reg(pi,
24829 RADIO_2056_RX_RXIQCAL_RXMUX |
24830 RADIO_2056_RX0, 0x9);
24831 } else {
24832 if (pi->pubpi.radiorev >= 5) {
24833 pi->tx_rx_cal_radio_saveregs[4] =
24834 read_radio_reg(pi,
24835 RADIO_2056_RX_LNAG_MASTER
24836 | RADIO_2056_RX0);
24837
24838 write_radio_reg(pi,
24839 RADIO_2056_RX_LNAG_MASTER
24840 | RADIO_2056_RX0, 0x40);
24841
24842 write_radio_reg(pi,
24843 RADIO_2056_TX_TXSPARE2 |
24844 RADIO_2056_TX1, bias_g);
24845
24846 write_radio_reg(pi,
24847 RADIO_2056_RX_RXSPARE2 |
24848 RADIO_2056_RX0, bias_g);
24849
24850 } else {
24851 pi->tx_rx_cal_radio_saveregs[4] =
24852 read_radio_reg(pi,
24853 RADIO_2056_RX_LNAG_TUNE
24854 | RADIO_2056_RX0);
24855
24856 offtune_val =
24857 (pi->
24858 tx_rx_cal_radio_saveregs[2] & 0xF0)
24859 >> 8;
24860 offtune_val =
24861 (offtune_val <= 0x7) ? 0xF : 0;
24862
24863 mod_radio_reg(pi,
24864 RADIO_2056_RX_LNAG_TUNE |
24865 RADIO_2056_RX0, 0xF0,
24866 (offtune_val << 8));
24867 }
24868
24869 write_radio_reg(pi,
24870 RADIO_2056_TX_RXIQCAL_TXMUX |
24871 RADIO_2056_TX1, 0x6);
24872 write_radio_reg(pi,
24873 RADIO_2056_RX_RXIQCAL_RXMUX |
24874 RADIO_2056_RX0, 0x6);
24875 }
24876
24877 } else {
24878 pi->tx_rx_cal_radio_saveregs[0] =
24879 read_radio_reg(pi,
24880 RADIO_2056_TX_RXIQCAL_TXMUX |
24881 RADIO_2056_TX0);
24882 pi->tx_rx_cal_radio_saveregs[1] =
24883 read_radio_reg(pi,
24884 RADIO_2056_RX_RXIQCAL_RXMUX |
24885 RADIO_2056_RX1);
24886
24887 if (pi->pubpi.radiorev >= 5) {
24888 pi->tx_rx_cal_radio_saveregs[2] =
24889 read_radio_reg(pi,
24890 RADIO_2056_RX_RXSPARE2 |
24891 RADIO_2056_RX1);
24892 pi->tx_rx_cal_radio_saveregs[3] =
24893 read_radio_reg(pi,
24894 RADIO_2056_TX_TXSPARE2 |
24895 RADIO_2056_TX0);
24896 }
24897
24898 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24899
24900 if (pi->pubpi.radiorev >= 5) {
24901 pi->tx_rx_cal_radio_saveregs[4] =
24902 read_radio_reg(pi,
24903 RADIO_2056_RX_LNAA_MASTER
24904 | RADIO_2056_RX1);
24905
24906 write_radio_reg(pi,
24907 RADIO_2056_RX_LNAA_MASTER
24908 | RADIO_2056_RX1, 0x40);
24909
24910 write_radio_reg(pi,
24911 RADIO_2056_TX_TXSPARE2 |
24912 RADIO_2056_TX0, bias_a);
24913
24914 write_radio_reg(pi,
24915 RADIO_2056_RX_RXSPARE2 |
24916 RADIO_2056_RX1, bias_a);
24917 } else {
24918 pi->tx_rx_cal_radio_saveregs[4] =
24919 read_radio_reg(pi,
24920 RADIO_2056_RX_LNAA_TUNE
24921 | RADIO_2056_RX1);
24922
24923 offtune_val =
24924 (pi->
24925 tx_rx_cal_radio_saveregs[2] & 0xF0)
24926 >> 8;
24927 offtune_val =
24928 (offtune_val <= 0x7) ? 0xF : 0;
24929
24930 mod_radio_reg(pi,
24931 RADIO_2056_RX_LNAA_TUNE |
24932 RADIO_2056_RX1, 0xF0,
24933 (offtune_val << 8));
24934 }
24935
24936 write_radio_reg(pi,
24937 RADIO_2056_TX_RXIQCAL_TXMUX |
24938 RADIO_2056_TX0, 0x9);
24939 write_radio_reg(pi,
24940 RADIO_2056_RX_RXIQCAL_RXMUX |
24941 RADIO_2056_RX1, 0x9);
24942 } else {
24943 if (pi->pubpi.radiorev >= 5) {
24944 pi->tx_rx_cal_radio_saveregs[4] =
24945 read_radio_reg(pi,
24946 RADIO_2056_RX_LNAG_MASTER
24947 | RADIO_2056_RX1);
24948
24949 write_radio_reg(pi,
24950 RADIO_2056_RX_LNAG_MASTER
24951 | RADIO_2056_RX1, 0x40);
24952
24953 write_radio_reg(pi,
24954 RADIO_2056_TX_TXSPARE2 |
24955 RADIO_2056_TX0, bias_g);
24956
24957 write_radio_reg(pi,
24958 RADIO_2056_RX_RXSPARE2 |
24959 RADIO_2056_RX1, bias_g);
24960 } else {
24961 pi->tx_rx_cal_radio_saveregs[4] =
24962 read_radio_reg(pi,
24963 RADIO_2056_RX_LNAG_TUNE
24964 | RADIO_2056_RX1);
24965
24966 offtune_val =
24967 (pi->
24968 tx_rx_cal_radio_saveregs[2] & 0xF0)
24969 >> 8;
24970 offtune_val =
24971 (offtune_val <= 0x7) ? 0xF : 0;
24972
24973 mod_radio_reg(pi,
24974 RADIO_2056_RX_LNAG_TUNE |
24975 RADIO_2056_RX1, 0xF0,
24976 (offtune_val << 8));
24977 }
24978
24979 write_radio_reg(pi,
24980 RADIO_2056_TX_RXIQCAL_TXMUX |
24981 RADIO_2056_TX0, 0x6);
24982 write_radio_reg(pi,
24983 RADIO_2056_RX_RXIQCAL_RXMUX |
24984 RADIO_2056_RX1, 0x6);
24985 }
24986 }
24987 }
24988}
24989
e868ab03 24990static void wlc_phy_rxcal_radio_cleanup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e
HP
24991{
24992 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24993 if (rx_core == PHY_CORE_0) {
24994 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24995 write_radio_reg(pi,
24996 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24997 pi->
24998 tx_rx_cal_radio_saveregs[0]);
24999 write_radio_reg(pi,
25000 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
25001 pi->
25002 tx_rx_cal_radio_saveregs[1]);
25003
25004 } else {
25005 write_radio_reg(pi,
25006 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
25007 pi->
25008 tx_rx_cal_radio_saveregs[0]);
25009 write_radio_reg(pi,
25010 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
25011 pi->
25012 tx_rx_cal_radio_saveregs[1]);
25013 }
25014
25015 } else {
25016 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25017 write_radio_reg(pi,
25018 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
25019 pi->
25020 tx_rx_cal_radio_saveregs[0]);
25021 write_radio_reg(pi,
25022 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
25023 pi->
25024 tx_rx_cal_radio_saveregs[1]);
25025
25026 } else {
25027 write_radio_reg(pi,
25028 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
25029 pi->
25030 tx_rx_cal_radio_saveregs[0]);
25031 write_radio_reg(pi,
25032 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
25033 pi->
25034 tx_rx_cal_radio_saveregs[1]);
25035 }
25036 }
25037
25038 } else {
25039 if (rx_core == PHY_CORE_0) {
25040 write_radio_reg(pi,
25041 RADIO_2056_TX_RXIQCAL_TXMUX |
25042 RADIO_2056_TX1,
25043 pi->tx_rx_cal_radio_saveregs[0]);
25044
25045 write_radio_reg(pi,
25046 RADIO_2056_RX_RXIQCAL_RXMUX |
25047 RADIO_2056_RX0,
25048 pi->tx_rx_cal_radio_saveregs[1]);
25049
25050 if (pi->pubpi.radiorev >= 5) {
25051 write_radio_reg(pi,
25052 RADIO_2056_RX_RXSPARE2 |
25053 RADIO_2056_RX0,
25054 pi->
25055 tx_rx_cal_radio_saveregs[2]);
25056
25057 write_radio_reg(pi,
25058 RADIO_2056_TX_TXSPARE2 |
25059 RADIO_2056_TX1,
25060 pi->
25061 tx_rx_cal_radio_saveregs[3]);
25062 }
25063
25064 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25065 if (pi->pubpi.radiorev >= 5) {
25066 write_radio_reg(pi,
25067 RADIO_2056_RX_LNAA_MASTER
25068 | RADIO_2056_RX0,
25069 pi->
25070 tx_rx_cal_radio_saveregs
25071 [4]);
25072 } else {
25073 write_radio_reg(pi,
25074 RADIO_2056_RX_LNAA_TUNE
25075 | RADIO_2056_RX0,
25076 pi->
25077 tx_rx_cal_radio_saveregs
25078 [4]);
25079 }
25080 } else {
25081 if (pi->pubpi.radiorev >= 5) {
25082 write_radio_reg(pi,
25083 RADIO_2056_RX_LNAG_MASTER
25084 | RADIO_2056_RX0,
25085 pi->
25086 tx_rx_cal_radio_saveregs
25087 [4]);
25088 } else {
25089 write_radio_reg(pi,
25090 RADIO_2056_RX_LNAG_TUNE
25091 | RADIO_2056_RX0,
25092 pi->
25093 tx_rx_cal_radio_saveregs
25094 [4]);
25095 }
25096 }
25097
25098 } else {
25099 write_radio_reg(pi,
25100 RADIO_2056_TX_RXIQCAL_TXMUX |
25101 RADIO_2056_TX0,
25102 pi->tx_rx_cal_radio_saveregs[0]);
25103
25104 write_radio_reg(pi,
25105 RADIO_2056_RX_RXIQCAL_RXMUX |
25106 RADIO_2056_RX1,
25107 pi->tx_rx_cal_radio_saveregs[1]);
25108
25109 if (pi->pubpi.radiorev >= 5) {
25110 write_radio_reg(pi,
25111 RADIO_2056_RX_RXSPARE2 |
25112 RADIO_2056_RX1,
25113 pi->
25114 tx_rx_cal_radio_saveregs[2]);
25115
25116 write_radio_reg(pi,
25117 RADIO_2056_TX_TXSPARE2 |
25118 RADIO_2056_TX0,
25119 pi->
25120 tx_rx_cal_radio_saveregs[3]);
25121 }
25122
25123 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25124 if (pi->pubpi.radiorev >= 5) {
25125 write_radio_reg(pi,
25126 RADIO_2056_RX_LNAA_MASTER
25127 | RADIO_2056_RX1,
25128 pi->
25129 tx_rx_cal_radio_saveregs
25130 [4]);
25131 } else {
25132 write_radio_reg(pi,
25133 RADIO_2056_RX_LNAA_TUNE
25134 | RADIO_2056_RX1,
25135 pi->
25136 tx_rx_cal_radio_saveregs
25137 [4]);
25138 }
25139 } else {
25140 if (pi->pubpi.radiorev >= 5) {
25141 write_radio_reg(pi,
25142 RADIO_2056_RX_LNAG_MASTER
25143 | RADIO_2056_RX1,
25144 pi->
25145 tx_rx_cal_radio_saveregs
25146 [4]);
25147 } else {
25148 write_radio_reg(pi,
25149 RADIO_2056_RX_LNAG_TUNE
25150 | RADIO_2056_RX1,
25151 pi->
25152 tx_rx_cal_radio_saveregs
25153 [4]);
25154 }
25155 }
25156 }
25157 }
25158}
25159
e868ab03 25160static void wlc_phy_rxcal_physetup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e 25161{
e868ab03 25162 u8 tx_core;
7d4df48e 25163 u16 rx_antval, tx_antval;
a9533e7e
HP
25164
25165 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25166
25167 tx_core = rx_core;
25168 } else {
25169 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
25170 }
25171
25172 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
25173 pi->tx_rx_cal_phy_saveregs[1] =
25174 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
25175 pi->tx_rx_cal_phy_saveregs[2] =
25176 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
25177 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
25178 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
25179 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
25180 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
25181 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
25182 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
25183 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25184 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
25185 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
25186 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
25187 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
25188 }
25189
25190 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
25191 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
25192 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25193 0x29b, (0x1 << 0), (0) << 0);
25194
25195 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25196 0x29b, (0x1 << 0), (0) << 0);
25197
25198 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25199
25200 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25201
25202 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25203
25204 } else {
25205
25206 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25207 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25208 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25209 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25210 }
25211
25212 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25213 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25214 (0x1 << 2), (0x1 << 2));
25215 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25216 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25217 (0x1 << 0) | (0x1 << 1), 0);
25218 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25219 0x8f : 0xa5,
25220 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25221 }
25222
25223 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25224 RADIO_MIMO_CORESEL_CORE1 |
25225 RADIO_MIMO_CORESEL_CORE2);
25226
25227 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25228 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25229 0, 0, 0,
25230 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25231 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25232 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25233 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25234 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25235 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25236 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25237 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25238 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25239 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25240 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25241 if (CHSPEC_IS40(pi->radio_chanspec)) {
25242 wlc_phy_rfctrl_override_nphy_rev7(pi,
25243 (0x1 << 7),
25244 2, 0, 0,
25245 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25246 } else {
25247 wlc_phy_rfctrl_override_nphy_rev7(pi,
25248 (0x1 << 7),
25249 0, 0, 0,
25250 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25251 }
25252 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25253 0, 0, 0,
25254 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25255 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25256 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25257 } else {
25258 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25259 }
25260
25261 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25262
25263 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25264
25265 wlc_phy_rfctrlintc_override_nphy(pi,
25266 NPHY_RfctrlIntc_override_TRSW,
25267 0x1, rx_core + 1);
25268 } else {
25269
25270 if (rx_core == PHY_CORE_0) {
25271 rx_antval = 0x1;
25272 tx_antval = 0x8;
25273 } else {
25274 rx_antval = 0x4;
25275 tx_antval = 0x2;
25276 }
25277
25278 wlc_phy_rfctrlintc_override_nphy(pi,
25279 NPHY_RfctrlIntc_override_TRSW,
25280 rx_antval, rx_core + 1);
25281 wlc_phy_rfctrlintc_override_nphy(pi,
25282 NPHY_RfctrlIntc_override_TRSW,
25283 tx_antval, tx_core + 1);
25284 }
25285}
25286
e868ab03 25287static void wlc_phy_rxcal_phycleanup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e
HP
25288{
25289
25290 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25291 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25292 pi->tx_rx_cal_phy_saveregs[1]);
25293 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25294 pi->tx_rx_cal_phy_saveregs[2]);
25295 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25296 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25297
25298 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25299 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25300 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25301 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25302 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25303 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25304 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25305 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25306 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25307 }
25308
25309 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25310 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25311}
25312
25313static void
e868ab03 25314wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rx_core,
7d4df48e 25315 u16 *rxgain, u8 cal_type)
a9533e7e
HP
25316{
25317
7d4df48e 25318 u16 num_samps;
a9533e7e 25319 phy_iq_est_t est[PHY_CORE_MAX];
e868ab03 25320 u8 tx_core;
a9533e7e 25321 nphy_iq_comp_t save_comp, zero_comp;
66cbd3ab 25322 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0, thresh_pwr =
a9533e7e 25323 10000;
e59fe083 25324 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
0965ae88 25325 bool gainctrl_done = false;
e868ab03 25326 u8 mix_tia_gain = 3;
562c8850
GKH
25327 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25328 s8 curr_gaintbl_index = 3;
e868ab03 25329 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
a9533e7e 25330 nphy_ipa_txrxgain_t *nphy_rxcal_gaintbl;
7d4df48e 25331 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
e9e6727f 25332 int fine_gain_idx;
562c8850 25333 s8 txpwrindex;
7d4df48e 25334 u16 nphy_rxcal_txgain[2];
a9533e7e
HP
25335
25336 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25337
25338 tx_core = rx_core;
25339 } else {
25340 tx_core = 1 - rx_core;
25341 }
25342
25343 num_samps = 1024;
25344 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25345
25346 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25347 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25348 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25349
25350 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25351 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25352 mix_tia_gain = 3;
25353 } else if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25354 mix_tia_gain = 4;
25355 } else {
25356 mix_tia_gain = 6;
25357 }
25358 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25359 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25360 } else {
25361 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25362 }
25363 } else {
25364 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25365 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25366 } else {
25367 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25368 }
25369 }
25370
25371 do {
25372
25373 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25374 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25375 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25376 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25377 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25378 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25379 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25380
25381 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25382 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25383 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25384 ((lpf_biq1 << 12) |
25385 (lpf_biq0 << 8) |
25386 (mix_tia_gain <<
25387 4) | (lna2 << 2)
25388 | lna1), 0x3, 0);
25389 } else {
25390 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25391 ((hpvga << 12) |
25392 (lpf_biq1 << 10) |
25393 (lpf_biq0 << 8) |
25394 (mix_tia_gain << 4) |
25395 (lna2 << 2) | lna1), 0x3,
25396 0);
25397 }
25398
25399 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25400
25401 if (txpwrindex == -1) {
25402 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25403 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25404 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25405 2, 0x110, 16,
25406 nphy_rxcal_txgain);
25407 } else {
25408 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
0965ae88 25409 false);
a9533e7e
HP
25410 }
25411
25412 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25413 NPHY_RXCAL_TONEFREQ_40MHz :
25414 NPHY_RXCAL_TONEFREQ_20MHz,
0965ae88 25415 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
a9533e7e
HP
25416
25417 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25418 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25419 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25420 curr_pwr = i_pwr + q_pwr;
25421
25422 switch (gainctrl_dirn) {
25423 case NPHY_RXCAL_GAIN_INIT:
25424 if (curr_pwr > thresh_pwr) {
25425 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25426 prev_gaintbl_index = curr_gaintbl_index;
25427 curr_gaintbl_index--;
25428 } else {
25429 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25430 prev_gaintbl_index = curr_gaintbl_index;
25431 curr_gaintbl_index++;
25432 }
25433 break;
25434
25435 case NPHY_RXCAL_GAIN_UP:
25436 if (curr_pwr > thresh_pwr) {
0f0881b0 25437 gainctrl_done = true;
a9533e7e
HP
25438 optim_pwr = prev_pwr;
25439 optim_gaintbl_index = prev_gaintbl_index;
25440 } else {
25441 prev_gaintbl_index = curr_gaintbl_index;
25442 curr_gaintbl_index++;
25443 }
25444 break;
25445
25446 case NPHY_RXCAL_GAIN_DOWN:
25447 if (curr_pwr > thresh_pwr) {
25448 prev_gaintbl_index = curr_gaintbl_index;
25449 curr_gaintbl_index--;
25450 } else {
0f0881b0 25451 gainctrl_done = true;
a9533e7e
HP
25452 optim_pwr = curr_pwr;
25453 optim_gaintbl_index = curr_gaintbl_index;
25454 }
25455 break;
25456
25457 default:
25458 ASSERT(0);
25459 }
25460
25461 if ((curr_gaintbl_index < 0) ||
25462 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
0f0881b0 25463 gainctrl_done = true;
a9533e7e
HP
25464 optim_pwr = curr_pwr;
25465 optim_gaintbl_index = prev_gaintbl_index;
25466 } else {
25467 prev_pwr = curr_pwr;
25468 }
25469
25470 wlc_phy_stopplayback_nphy(pi);
25471 } while (!gainctrl_done);
25472
25473 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25474 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25475 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25476 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25477 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25478 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25479
25480 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25481 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25482
25483 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25484 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25485
25486 if (fine_gain_idx + (int)lpf_biq0 > 10) {
25487 lpf_biq1 = 10 - lpf_biq0;
25488 } else {
3ea2f4d6 25489 lpf_biq1 = (u16) max(fine_gain_idx, 0);
a9533e7e
HP
25490 }
25491 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25492 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25493 ((lpf_biq1 << 12) |
25494 (lpf_biq0 << 8) |
25495 (mix_tia_gain << 4) |
25496 (lna2 << 2) | lna1), 0x3,
25497 0);
25498 } else {
3ea2f4d6 25499 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
a9533e7e
HP
25500 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25501 ((hpvga << 12) | (lpf_biq1 << 10) |
25502 (lpf_biq0 << 8) | (mix_tia_gain <<
25503 4) | (lna2 <<
25504 2) |
25505 lna1), 0x3, 0);
25506
25507 }
25508
25509 if (rxgain != NULL) {
25510 *rxgain++ = lna1;
25511 *rxgain++ = lna2;
25512 *rxgain++ = mix_tia_gain;
25513 *rxgain++ = lpf_biq0;
25514 *rxgain++ = lpf_biq1;
25515 *rxgain = hpvga;
25516 }
25517
25518 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25519}
25520
25521static void
7d4df48e 25522wlc_phy_rxcal_gainctrl_nphy(phy_info_t *pi, u8 rx_core, u16 *rxgain,
e868ab03 25523 u8 cal_type)
a9533e7e
HP
25524{
25525 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25526}
25527
e868ab03
GKH
25528static u8
25529wlc_phy_rc_sweep_nphy(phy_info_t *pi, u8 core_idx, u8 loopback_type)
a9533e7e 25530{
66cbd3ab
GKH
25531 u32 target_bws[2] = { 9500, 21000 };
25532 u32 ref_tones[2] = { 3000, 6000 };
25533 u32 target_bw, ref_tone;
a9533e7e 25534
66cbd3ab
GKH
25535 u32 target_pwr_ratios[2] = { 28606, 18468 };
25536 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
a9533e7e 25537
7d4df48e
GKH
25538 u16 start_rccal_ovr_val = 128;
25539 u16 txlpf_rccal_lpc_ovr_val = 128;
25540 u16 rxlpf_rccal_hpc_ovr_val = 159;
25541
25542 u16 orig_txlpf_rccal_lpc_ovr_val;
25543 u16 orig_rxlpf_rccal_hpc_ovr_val;
25544 u16 radio_addr_offset_rx;
25545 u16 radio_addr_offset_tx;
25546 u16 orig_dcBypass;
25547 u16 orig_RxStrnFilt40Num[6];
25548 u16 orig_RxStrnFilt40Den[4];
25549 u16 orig_rfctrloverride[2];
25550 u16 orig_rfctrlauxreg[2];
25551 u16 orig_rfctrlrssiothers;
25552 u16 tx_lpf_bw = 4;
25553
25554 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25555 u16 lpf_hpc = 7, hpvga_hpc = 7;
a9533e7e 25556
562c8850 25557 s8 rccal_stepsize;
7d4df48e 25558 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
66cbd3ab 25559 u32 ref_iq_vals = 0, target_iq_vals = 0;
7d4df48e 25560 u16 num_samps, log_num_samps = 10;
a9533e7e
HP
25561 phy_iq_est_t est[PHY_CORE_MAX];
25562
25563 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25564 return 0;
25565 }
25566
25567 num_samps = (1 << log_num_samps);
25568
25569 if (CHSPEC_IS40(pi->radio_chanspec)) {
25570 target_bw = target_bws[1];
25571 target_pwr_ratio = target_pwr_ratios[1];
25572 ref_tone = ref_tones[1];
25573 rx_lpf_bw = rx_lpf_bws[1];
25574 } else {
25575 target_bw = target_bws[0];
25576 target_pwr_ratio = target_pwr_ratios[0];
25577 ref_tone = ref_tones[0];
25578 rx_lpf_bw = rx_lpf_bws[0];
25579 }
25580
25581 if (core_idx == 0) {
25582 radio_addr_offset_rx = RADIO_2056_RX0;
25583 radio_addr_offset_tx =
25584 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25585 } else {
25586 radio_addr_offset_rx = RADIO_2056_RX1;
25587 radio_addr_offset_tx =
25588 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25589 }
25590
25591 orig_txlpf_rccal_lpc_ovr_val =
25592 read_radio_reg(pi,
25593 (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx));
25594 orig_rxlpf_rccal_hpc_ovr_val =
25595 read_radio_reg(pi,
25596 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25597 radio_addr_offset_rx));
25598
25599 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25600
25601 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25602 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25603 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25604 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25605 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25606 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25607 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25608 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25609 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25610 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25611
25612 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25613 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25614 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25615 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25616 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25617
25618 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25619 txlpf_rccal_lpc_ovr_val);
25620
25621 write_radio_reg(pi,
25622 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25623 rxlpf_rccal_hpc_ovr_val);
25624
25625 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25626
25627 write_phy_reg(pi, 0x267, 0x02d4);
25628 write_phy_reg(pi, 0x268, 0x0000);
25629 write_phy_reg(pi, 0x269, 0x0000);
25630 write_phy_reg(pi, 0x26a, 0x0000);
25631 write_phy_reg(pi, 0x26b, 0x0000);
25632 write_phy_reg(pi, 0x26c, 0x02d4);
25633 write_phy_reg(pi, 0x26d, 0x0000);
25634 write_phy_reg(pi, 0x26e, 0x0000);
25635 write_phy_reg(pi, 0x26f, 0x0000);
25636 write_phy_reg(pi, 0x270, 0x0000);
25637
25638 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25639 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25640 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25641 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25642
25643 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25644 (0x7 << 10), (tx_lpf_bw << 10));
25645 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25646 (0x7 << 0), (hpvga_hpc << 0));
25647 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25648 (0x7 << 4), (lpf_hpc << 4));
25649 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25650 (0x7 << 8), (rx_lpf_bw << 8));
25651
25652 rccal_stepsize = 16;
25653 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25654
25655 while (rccal_stepsize >= 0) {
25656 write_radio_reg(pi,
25657 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25658 radio_addr_offset_rx), rccal_val);
25659
25660 if (rccal_stepsize == 16) {
25661
25662 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
0965ae88 25663 0, 1, false);
7383141b 25664 udelay(2);
a9533e7e
HP
25665
25666 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25667
25668 if (core_idx == 0) {
25669 ref_iq_vals =
e9e6727f 25670 max_t(u32, (est[0].i_pwr +
a9533e7e
HP
25671 est[0].q_pwr) >> (log_num_samps + 1),
25672 1);
25673 } else {
25674 ref_iq_vals =
e9e6727f 25675 max_t(u32, (est[1].i_pwr +
a9533e7e
HP
25676 est[1].q_pwr) >> (log_num_samps + 1),
25677 1);
25678 }
25679
25680 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
0965ae88 25681 0, 1, false);
7383141b 25682 udelay(2);
a9533e7e
HP
25683 }
25684
25685 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25686
25687 if (core_idx == 0) {
25688 target_iq_vals =
25689 (est[0].i_pwr + est[0].q_pwr) >> (log_num_samps +
25690 1);
25691 } else {
25692 target_iq_vals =
25693 (est[1].i_pwr + est[1].q_pwr) >> (log_num_samps +
25694 1);
25695 }
25696 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25697
25698 if (rccal_stepsize == 0) {
25699 rccal_stepsize--;
25700 } else if (rccal_stepsize == 1) {
25701 last_rccal_val = rccal_val;
25702 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25703 last_pwr_ratio = pwr_ratio;
25704 rccal_stepsize--;
25705 } else {
25706 rccal_stepsize = (rccal_stepsize >> 1);
25707 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25708 rccal_stepsize : (-rccal_stepsize));
25709 }
25710
25711 if (rccal_stepsize == -1) {
25712 best_rccal_val =
25713 (ABS((int)last_pwr_ratio - (int)target_pwr_ratio) <
25714 ABS((int)pwr_ratio -
25715 (int)target_pwr_ratio)) ? last_rccal_val :
25716 rccal_val;
25717
25718 if (CHSPEC_IS40(pi->radio_chanspec)) {
25719 if ((best_rccal_val > 140)
25720 || (best_rccal_val < 135)) {
25721 best_rccal_val = 138;
25722 }
25723 } else {
25724 if ((best_rccal_val > 142)
25725 || (best_rccal_val < 137)) {
25726 best_rccal_val = 140;
25727 }
25728 }
25729
25730 write_radio_reg(pi,
25731 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25732 radio_addr_offset_rx), best_rccal_val);
25733 }
25734 }
25735
25736 wlc_phy_stopplayback_nphy(pi);
25737
25738 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25739 orig_txlpf_rccal_lpc_ovr_val);
25740 write_radio_reg(pi,
25741 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25742 orig_rxlpf_rccal_hpc_ovr_val);
25743
25744 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25745
25746 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25747 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25748 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25749 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25750 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25751 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25752 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25753 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25754 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25755 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25756
25757 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25758 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25759 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25760 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25761 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25762
0965ae88 25763 pi->nphy_anarxlpf_adjusted = false;
a9533e7e 25764
90ea2296 25765 return best_rccal_val - 0x80;
a9533e7e
HP
25766}
25767
7383141b 25768#define WAIT_FOR_SCOPE 4000
a9533e7e 25769static int
7cc4a4c0 25770wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t target_gain,
e868ab03 25771 u8 cal_type, bool debug)
a9533e7e 25772{
7d4df48e 25773 u16 orig_BBConfig;
e868ab03
GKH
25774 u8 core_no, rx_core;
25775 u8 best_rccal[2];
7d4df48e
GKH
25776 u16 gain_save[2];
25777 u16 cal_gain[2];
a9533e7e 25778 nphy_iqcal_params_t cal_params[2];
e868ab03 25779 u8 rxcore_state;
562c8850
GKH
25780 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25781 s8 txlpf_idac;
0965ae88
GKH
25782 bool phyhang_avoid_state = false;
25783 bool skip_rxiqcal = false;
a9533e7e
HP
25784
25785 orig_BBConfig = read_phy_reg(pi, 0x01);
25786 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25787
0f0881b0 25788 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
25789
25790 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25791 phyhang_avoid_state = pi->phyhang_avoid;
0965ae88 25792 pi->phyhang_avoid = false;
a9533e7e
HP
25793 }
25794
25795 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25796
25797 for (core_no = 0; core_no <= 1; core_no++) {
25798 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25799 &cal_params[core_no]);
25800 cal_gain[core_no] = cal_params[core_no].cal_gain;
25801 }
25802
25803 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25804
25805 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
25806
25807 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25808
25809 skip_rxiqcal =
0965ae88 25810 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
a9533e7e
HP
25811
25812 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25813
25814 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25815
25816 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25817
25818 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25819
25820 wlc_phy_tx_tone_nphy(pi,
25821 (CHSPEC_IS40(pi->radio_chanspec)) ?
25822 NPHY_RXCAL_TONEFREQ_40MHz :
25823 NPHY_RXCAL_TONEFREQ_20MHz,
25824 NPHY_RXCAL_TONEAMP, 0, cal_type,
0965ae88 25825 false);
a9533e7e
HP
25826
25827 if (debug)
7383141b 25828 mdelay(WAIT_FOR_SCOPE);
a9533e7e
HP
25829
25830 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25831 wlc_phy_stopplayback_nphy(pi);
25832 }
25833
25834 if (((cal_type == 1) || (cal_type == 2))
25835 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25836
25837 if (rx_core == PHY_CORE_1) {
25838
25839 if (rxcore_state == 1) {
25840 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25841 *) pi, 3);
25842 }
25843
25844 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25845 1);
25846
25847 best_rccal[rx_core] =
25848 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25849 pi->nphy_rccal_value = best_rccal[rx_core];
25850
25851 if (rxcore_state == 1) {
25852 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25853 *) pi,
25854 rxcore_state);
25855 }
25856 }
25857 }
25858
25859 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25860
25861 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25862 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25863 }
25864
25865 if ((cal_type == 1) || (cal_type == 2)) {
25866
25867 best_rccal[0] = best_rccal[1];
25868 write_radio_reg(pi,
25869 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25870 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25871
25872 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25873 rxlpf_rccal_hpc =
25874 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25875 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25876
25877 if (PHY_IPA(pi)) {
25878 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25879 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25880 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25881 TXLPF_IDAC_4, txlpf_idac);
25882 }
25883
e9e6727f
GKH
25884 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31), 0);
25885 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31), 0);
a9533e7e
HP
25886
25887 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25888 ((rx_core ==
25889 PHY_CORE_0) ? RADIO_2056_RX0 :
25890 RADIO_2056_RX1)),
25891 (rxlpf_rccal_hpc | 0x80));
25892
25893 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25894 ((rx_core ==
25895 PHY_CORE_0) ? RADIO_2056_TX0 :
25896 RADIO_2056_TX1)),
25897 (txlpf_rccal_lpc | 0x80));
25898 }
25899 }
25900
25901 write_phy_reg(pi, 0x01, orig_BBConfig);
25902
25903 wlc_phy_resetcca_nphy(pi);
25904
25905 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25906 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25907 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25908 0, 0x3, 1);
25909 } else {
25910 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25911 }
25912 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25913
25914 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25915 gain_save);
25916
25917 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25918 pi->phyhang_avoid = phyhang_avoid_state;
25919 }
25920
0965ae88 25921 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
25922
25923 return BCME_OK;
25924}
25925
25926static int
7cc4a4c0 25927wlc_phy_cal_rxiq_nphy_rev2(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
25928 bool debug)
25929{
25930 phy_iq_est_t est[PHY_CORE_MAX];
e868ab03 25931 u8 core_num, rx_core, tx_core;
7d4df48e
GKH
25932 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
25933 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25934 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
e59fe083
GKH
25935 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25936 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
7d4df48e
GKH
25937 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25938 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25939 u16 num_samps;
66cbd3ab 25940 u32 i_pwr, q_pwr, tot_pwr[3];
e868ab03 25941 u8 gain_pass, use_hpf_num;
7d4df48e
GKH
25942 u16 mask, val1, val2;
25943 u16 core_no;
25944 u16 gain_save[2];
25945 u16 cal_gain[2];
a9533e7e 25946 nphy_iqcal_params_t cal_params[2];
e868ab03 25947 u8 phy_bw;
a9533e7e 25948 int bcmerror = BCME_OK;
0f0881b0 25949 bool first_playtone = true;
a9533e7e 25950
0f0881b0 25951 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
25952
25953 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
25954
25955 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25956 }
25957
25958 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25959
25960 for (core_no = 0; core_no <= 1; core_no++) {
25961 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25962 &cal_params[core_no]);
25963 cal_gain[core_no] = cal_params[core_no].cal_gain;
25964 }
25965
25966 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25967
25968 num_samps = 1024;
25969 desired_log2_pwr = 13;
25970
25971 for (core_num = 0; core_num < 2; core_num++) {
25972
25973 rx_core = core_num;
25974 tx_core = 1 - core_num;
25975
25976 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25977 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25978 0xa6 : 0xa7);
25979 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25980 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25981 0x91 : 0x92);
25982 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25983 0x91 : 0x92);
25984
25985 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25986 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25987
25988 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25989 ((0x1 << 1) | (0x1 << 2)));
25990 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25991
25992 if (((pi->nphy_rxcalparams) & 0xff000000)) {
25993
25994 write_phy_reg(pi,
25995 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25996 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 :
25997 0x110));
25998 } else {
25999
26000 write_phy_reg(pi,
26001 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
26002 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 :
26003 0x120));
26004 }
26005
26006 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
26007 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
26008 0x114));
26009
26010 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
26011 if (rx_core == PHY_CORE_0) {
26012 val1 = RADIO_2055_COUPLE_RX_MASK;
26013 val2 = RADIO_2055_COUPLE_TX_MASK;
26014 } else {
26015 val1 = RADIO_2055_COUPLE_TX_MASK;
26016 val2 = RADIO_2055_COUPLE_RX_MASK;
26017 }
26018
26019 if ((pi->nphy_rxcalparams & 0x10000)) {
26020 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
26021 val1);
26022 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
26023 val2);
26024 }
26025
26026 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
26027
26028 if (debug)
7383141b 26029 mdelay(WAIT_FOR_SCOPE);
a9533e7e
HP
26030
26031 if (gain_pass < 3) {
26032 curr_lna = lna_vals[gain_pass];
26033 curr_hpf1 = hpf1_vals[gain_pass];
26034 curr_hpf2 = hpf2_vals[gain_pass];
26035 } else {
26036
26037 if (tot_pwr[1] > 10000) {
26038 curr_lna = lna_vals[2];
26039 curr_hpf1 = hpf1_vals[2];
26040 curr_hpf2 = hpf2_vals[2];
26041 use_hpf_num = 1;
26042 curr_hpf = curr_hpf1;
26043 actual_log2_pwr =
26044 wlc_phy_nbits(tot_pwr[2]);
26045 } else {
26046 if (tot_pwr[0] > 10000) {
26047 curr_lna = lna_vals[1];
26048 curr_hpf1 = hpf1_vals[1];
26049 curr_hpf2 = hpf2_vals[1];
26050 use_hpf_num = 1;
26051 curr_hpf = curr_hpf1;
26052 actual_log2_pwr =
26053 wlc_phy_nbits(tot_pwr[1]);
26054 } else {
26055 curr_lna = lna_vals[0];
26056 curr_hpf1 = hpf1_vals[0];
26057 curr_hpf2 = hpf2_vals[0];
26058 use_hpf_num = 2;
26059 curr_hpf = curr_hpf2;
26060 actual_log2_pwr =
26061 wlc_phy_nbits(tot_pwr[0]);
26062 }
26063 }
26064
26065 hpf_change = desired_log2_pwr - actual_log2_pwr;
26066 curr_hpf += hpf_change;
e9e6727f 26067 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
a9533e7e
HP
26068 if (use_hpf_num == 1) {
26069 curr_hpf1 = curr_hpf;
26070 } else {
26071 curr_hpf2 = curr_hpf;
26072 }
26073 }
26074
26075 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
26076 ((curr_hpf2 << 8) |
26077 (curr_hpf1 << 4) |
26078 (curr_lna << 2)), 0x3, 0);
26079 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26080
26081 wlc_phy_stopplayback_nphy(pi);
26082
26083 if (first_playtone) {
26084 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
7d4df48e 26085 (u16) (pi->
a9533e7e
HP
26086 nphy_rxcalparams
26087 &
26088 0xffff),
0f0881b0 26089 0, 0, true);
0965ae88 26090 first_playtone = false;
a9533e7e
HP
26091 } else {
26092 phy_bw =
26093 (CHSPEC_IS40(pi->radio_chanspec)) ? 40 : 20;
26094 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
0f0881b0 26095 0, 0, 0, true);
a9533e7e
HP
26096 }
26097
26098 if (bcmerror == BCME_OK) {
26099 if (gain_pass < 3) {
26100
26101 wlc_phy_rx_iq_est_nphy(pi, est,
26102 num_samps, 32,
26103 0);
26104 i_pwr =
26105 (est[rx_core].i_pwr +
26106 num_samps / 2) / num_samps;
26107 q_pwr =
26108 (est[rx_core].q_pwr +
26109 num_samps / 2) / num_samps;
26110 tot_pwr[gain_pass] = i_pwr + q_pwr;
26111 } else {
26112
26113 wlc_phy_calc_rx_iq_comp_nphy(pi,
26114 (1 <<
26115 rx_core));
26116 }
26117
26118 wlc_phy_stopplayback_nphy(pi);
26119 }
26120
26121 if (bcmerror != BCME_OK)
26122 break;
26123 }
26124
26125 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
26126 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
26127
26128 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
26129 0x92, orig_RfctrlIntcTx);
26130 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
26131 0x92, orig_RfctrlIntcRx);
26132 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
26133 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
26134 0xa7, orig_AfectrlCore);
26135 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
26136
26137 if (bcmerror != BCME_OK)
26138 break;
26139 }
26140
26141 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
26142 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26143
26144 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26145 gain_save);
26146
0965ae88 26147 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
26148
26149 return bcmerror;
26150}
26151
26152int
7cc4a4c0 26153wlc_phy_cal_rxiq_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
e868ab03 26154 u8 cal_type, bool debug)
a9533e7e
HP
26155{
26156 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26157
26158 cal_type = 0;
26159 }
26160 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26161 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
26162 debug);
26163 } else {
26164 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
26165 }
26166}
26167
7cc4a4c0 26168static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26169{
26170 int j, type = 2;
7d4df48e 26171 u16 addr_offset = 0x2c5;
a9533e7e
HP
26172
26173 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26174 write_phy_reg(pi, addr_offset + j,
26175 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26176 }
26177}
26178
7cc4a4c0 26179static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26180{
26181 int j, type;
7d4df48e 26182 u16 addr_offset[] = { 0x186, 0x195,
a9533e7e
HP
26183 0x2c5
26184 };
26185
26186 for (type = 0; type < 3; type++) {
26187 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26188 write_phy_reg(pi, addr_offset[type] + j,
26189 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26190 }
26191 }
26192
26193 if (IS40MHZ(pi)) {
26194 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26195 write_phy_reg(pi, 0x186 + j,
26196 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26197 }
26198 } else {
26199 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26200 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26201 write_phy_reg(pi, 0x186 + j,
26202 NPHY_IPA_REV4_txdigi_filtcoeffs[5]
26203 [j]);
26204 }
26205 }
26206
26207 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
26208 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26209 write_phy_reg(pi, 0x2c5 + j,
26210 NPHY_IPA_REV4_txdigi_filtcoeffs[6]
26211 [j]);
26212 }
26213 }
26214 }
26215}
26216
7cc4a4c0 26217static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26218{
26219 int j;
26220
26221 if (IS40MHZ(pi)) {
26222 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26223 write_phy_reg(pi, 0x195 + j,
26224 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26225 }
26226 } else {
26227 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26228 write_phy_reg(pi, 0x186 + j,
26229 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26230 }
26231 }
26232}
26233
7d4df48e 26234static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi)
a9533e7e 26235{
7d4df48e 26236 u16 m0m1;
a9533e7e
HP
26237
26238 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26239
26240 return m0m1;
26241}
26242
e868ab03 26243static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1)
a9533e7e 26244{
7d4df48e 26245 u16 m0m1 = (u16) ((m0 << 8) | m1);
a9533e7e
HP
26246
26247 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26248 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26249}
26250
66cbd3ab 26251static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi)
a9533e7e 26252{
66cbd3ab 26253 u32 *tx_pwrctrl_tbl = NULL;
a9533e7e
HP
26254
26255 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26256
26257 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26258
26259 if ((pi->pubpi.radiorev == 4)
26260 || (pi->pubpi.radiorev == 6)) {
26261
26262 tx_pwrctrl_tbl =
26263 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26264 } else if (pi->pubpi.radiorev == 3) {
26265
26266 tx_pwrctrl_tbl =
26267 nphy_tpc_txgain_ipa_2g_2057rev3;
26268 } else if (pi->pubpi.radiorev == 5) {
26269
26270 tx_pwrctrl_tbl =
26271 nphy_tpc_txgain_ipa_2g_2057rev5;
26272 } else if ((pi->pubpi.radiorev == 7)
26273 || (pi->pubpi.radiorev == 8)) {
26274
26275 tx_pwrctrl_tbl =
26276 nphy_tpc_txgain_ipa_2g_2057rev7;
26277 } else {
26278 ASSERT(0);
26279 }
26280
26281 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26282
26283 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
26284 if (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID) {
26285
26286 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26287 }
26288
26289 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26290
26291 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26292 } else {
26293
26294 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26295 }
26296
26297 } else {
26298
26299 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26300 if ((pi->pubpi.radiorev == 3) ||
26301 (pi->pubpi.radiorev == 4) ||
26302 (pi->pubpi.radiorev == 6)) {
26303
26304 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26305 } else if ((pi->pubpi.radiorev == 7)
26306 || (pi->pubpi.radiorev == 8)) {
26307
26308 tx_pwrctrl_tbl =
26309 nphy_tpc_txgain_ipa_5g_2057rev7;
26310 } else {
26311 ASSERT(0);
26312 }
26313
26314 } else {
26315 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26316 }
26317 }
26318
26319 return tx_pwrctrl_tbl;
26320}
26321
26322static void
7cc4a4c0 26323wlc_phy_papd_cal_setup_nphy(phy_info_t *pi, nphy_papd_restore_state *state,
e868ab03 26324 u8 core)
a9533e7e 26325{
3e26416e 26326 s32 tone_freq;
e868ab03 26327 u8 off_core;
7d4df48e 26328 u16 mixgain = 0;
a9533e7e
HP
26329
26330 off_core = core ^ 0x1;
26331 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26332
26333 if (NREV_IS(pi->pubpi.phy_rev, 7)
26334 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26335 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26336 wlc_phy_read_lpf_bw_ctl_nphy
26337 (pi, 0), 0, 0,
26338 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26339 }
26340
26341 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26342 if (pi->pubpi.radiorev == 5) {
26343 mixgain = (core == 0) ? 0x20 : 0x00;
26344
26345 } else if ((pi->pubpi.radiorev == 7)
26346 || (pi->pubpi.radiorev == 8)) {
26347
26348 mixgain = 0x00;
26349
26350 } else if ((pi->pubpi.radiorev <= 4)
26351 || (pi->pubpi.radiorev == 6)) {
26352
26353 mixgain = 0x00;
26354 } else {
26355 ASSERT(0);
26356 }
26357
26358 } else {
26359 if ((pi->pubpi.radiorev == 4) ||
26360 (pi->pubpi.radiorev == 6)) {
26361
26362 mixgain = 0x50;
26363 } else if ((pi->pubpi.radiorev == 3)
26364 || (pi->pubpi.radiorev == 7)
26365 || (pi->pubpi.radiorev == 8)) {
26366
26367 mixgain = 0x0;
26368 } else {
26369 ASSERT(0);
26370 }
26371 }
26372
26373 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26374 mixgain, (1 << core), 0,
26375 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26376
26377 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26378 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26379 1, (1 << core), 0);
26380 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26381 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26382 0, (1 << off_core), 0);
26383
26384 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26385 0, 0x3, 0,
26386 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26387 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26388 (1 << core), 0,
26389 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26390 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26391 (1 << core), 0,
26392 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26393 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26394 (1 << core), 0,
26395 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26396 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26397 (1 << core), 0,
26398 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26399 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26400 (1 << core), 0,
26401 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26402 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26403 (1 << core), 0,
26404 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26405 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26406 (1 << core), 0,
26407 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26408
26409 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26410 0, (1 << core), 0,
26411 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26412 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26413 (1 << core), 0,
26414 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26415
26416 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26417 0xa6 : 0xa7);
26418 state->afeoverride[core] =
26419 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26420 state->afectrl[off_core] =
26421 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26422 state->afeoverride[off_core] =
26423 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26424
26425 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26426 (0x1 << 2), 0);
26427 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26428 0xa5), (0x1 << 2), (0x1 << 2));
26429
26430 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26431 (0x1 << 2), (0x1 << 2));
26432 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26433 0x8f), (0x1 << 2), (0x1 << 2));
26434
26435 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26436 state->pwrup[core] =
26437 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26438 TXRXCOUPLE_2G_PWRUP);
26439 state->atten[core] =
26440 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26441 TXRXCOUPLE_2G_ATTEN);
26442 state->pwrup[off_core] =
26443 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26444 TXRXCOUPLE_2G_PWRUP);
26445 state->atten[off_core] =
26446 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26447 TXRXCOUPLE_2G_ATTEN);
26448
26449 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26450 TXRXCOUPLE_2G_PWRUP, 0xc);
26451
26452 if ((pi->pubpi.radiorev == 3) ||
26453 (pi->pubpi.radiorev == 4) ||
26454 (pi->pubpi.radiorev == 6)) {
26455
26456 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26457 TXRXCOUPLE_2G_ATTEN, 0xf0);
26458
26459 } else if (pi->pubpi.radiorev == 5) {
26460
26461 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26462 TXRXCOUPLE_2G_ATTEN,
26463 (core == 0) ? 0xf7 : 0xf2);
26464
26465 } else if ((pi->pubpi.radiorev == 7)
26466 || (pi->pubpi.radiorev == 8)) {
26467
26468 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26469 TXRXCOUPLE_2G_ATTEN, 0xf0);
26470
26471 } else {
26472 ASSERT(0);
26473 }
26474
26475 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26476 TXRXCOUPLE_2G_PWRUP, 0x0);
26477 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26478 TXRXCOUPLE_2G_ATTEN, 0xff);
26479
26480 } else {
26481 state->pwrup[core] =
26482 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26483 TXRXCOUPLE_5G_PWRUP);
26484 state->atten[core] =
26485 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26486 TXRXCOUPLE_5G_ATTEN);
26487 state->pwrup[off_core] =
26488 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26489 TXRXCOUPLE_5G_PWRUP);
26490 state->atten[off_core] =
26491 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26492 TXRXCOUPLE_5G_ATTEN);
26493
26494 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26495 TXRXCOUPLE_5G_PWRUP, 0xc);
26496
26497 if ((pi->pubpi.radiorev == 7)
26498 || (pi->pubpi.radiorev == 8)) {
26499
26500 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26501 TXRXCOUPLE_5G_ATTEN, 0xf4);
26502
26503 } else {
26504 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26505 TXRXCOUPLE_5G_ATTEN, 0xf0);
26506 }
26507
26508 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26509 TXRXCOUPLE_5G_PWRUP, 0x0);
26510 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26511 TXRXCOUPLE_5G_ATTEN, 0xff);
26512 }
26513
26514 tone_freq = 4000;
26515
0965ae88 26516 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
a9533e7e
HP
26517
26518 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26519 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26520
26521 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26522 0x2a4, (0x1 << 13), (1) << 13);
26523
26524 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26525 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26526
26527 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26528 0x2a4, (0x1 << 13), (0) << 13);
26529
26530 } else {
26531
26532 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26533
26534 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26535
26536 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26537
26538 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26539 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26540
26541 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26542 0xa6 : 0xa7);
26543 state->afeoverride[core] =
26544 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26545
26546 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26547 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26548 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26549 0xa5),
26550 (0x1 << 0) |
26551 (0x1 << 1) |
26552 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26553
26554 state->vga_master[core] =
26555 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26556 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26557 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26558 state->fbmix[core] =
26559 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26560 TXFBMIX_G);
26561 state->intpa_master[core] =
26562 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26563 INTPAG_MASTER);
26564
26565 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26566 0x03);
26567 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26568 INTPAG_MASTER, 0x04);
26569 } else {
26570 state->fbmix[core] =
26571 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26572 TXFBMIX_A);
26573 state->intpa_master[core] =
26574 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26575 INTPAA_MASTER);
26576
26577 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26578 0x03);
26579 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26580 INTPAA_MASTER, 0x04);
26581
26582 }
26583
26584 tone_freq = 4000;
26585
0965ae88 26586 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
a9533e7e
HP
26587
26588 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26589 0x29b, (0x1 << 0), (1) << 0);
26590
26591 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26592 0x29b, (0x1 << 0), (0) << 0);
26593
26594 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26595 }
26596}
26597
26598static void
7cc4a4c0 26599wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi, nphy_papd_restore_state *state)
a9533e7e 26600{
e868ab03 26601 u8 core;
a9533e7e
HP
26602
26603 wlc_phy_stopplayback_nphy(pi);
26604
26605 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26606
26607 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26608
26609 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26610 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26611 TXRXCOUPLE_2G_PWRUP, 0);
26612 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26613 TXRXCOUPLE_2G_ATTEN,
26614 state->atten[core]);
26615 } else {
26616 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26617 TXRXCOUPLE_5G_PWRUP, 0);
26618 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26619 TXRXCOUPLE_5G_ATTEN,
26620 state->atten[core]);
26621 }
26622 }
26623
26624 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
26625 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26626 1, 0x3, 0,
26627 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26628 } else {
26629 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26630 0, 0x3, 1,
26631 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26632 }
26633 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26634 0, 0x3, 1,
26635 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26636 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26637 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26638 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26639 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26640 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26641 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26642 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26643 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26644 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26645 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26646 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26647 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26648 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26649 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26650 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26651 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26652 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26653 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26654 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26655 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26656 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26657 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26658 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26659 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26660 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26661 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26662 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26663 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26664 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26665 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26666
26667 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26668
26669 write_phy_reg(pi, (core == PHY_CORE_0) ?
26670 0xa6 : 0xa7, state->afectrl[core]);
26671 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26672 0xa5, state->afeoverride[core]);
26673 }
26674
26675 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26676 (state->mm & 0xff));
26677
26678 if (NREV_IS(pi->pubpi.phy_rev, 7)
26679 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26680 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
26681 1,
26682 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26683 }
26684 } else {
26685
26686 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26687 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26688 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26689
26690 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26691 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26692
26693 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26694
26695 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26696 state->vga_master[core]);
26697 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26698 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26699 TXFBMIX_G, state->fbmix[core]);
26700 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26701 INTPAG_MASTER,
26702 state->intpa_master[core]);
26703 } else {
26704 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26705 TXFBMIX_A, state->fbmix[core]);
26706 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26707 INTPAA_MASTER,
26708 state->intpa_master[core]);
26709 }
26710
26711 write_phy_reg(pi, (core == PHY_CORE_0) ?
26712 0xa6 : 0xa7, state->afectrl[core]);
26713 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26714 0xa5, state->afeoverride[core]);
26715 }
26716
26717 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26718 (state->mm & 0xff));
26719
26720 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26721 }
26722}
26723
26724static void
66cbd3ab
GKH
26725wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32 start,
26726 u32 end)
a9533e7e 26727{
66cbd3ab 26728 u32 *buf, *src, *dst, sz;
a9533e7e
HP
26729
26730 sz = end - start + 1;
26731 ASSERT(end > start);
26732 ASSERT(end < NPHY_PAPD_EPS_TBL_SIZE);
26733
5fcc1fcb 26734 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
ca8c1e59 26735 if (NULL == buf) {
a9533e7e
HP
26736 return;
26737 }
26738
26739 src = buf;
26740 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26741
26742 wlc_phy_table_read_nphy(pi,
26743 (core ==
26744 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26745 NPHY_TBL_ID_EPSILONTBL1),
26746 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26747
26748 do {
66cbd3ab 26749 u32 phy_a1, phy_a2;
3e26416e 26750 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
a9533e7e 26751
7068c2f1 26752 phy_a1 = end - min(end, (winsz >> 1));
e9e6727f 26753 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1, end + (winsz >> 1));
a9533e7e
HP
26754 phy_a3 = phy_a2 - phy_a1 + 1;
26755 phy_a6 = 0;
26756 phy_a7 = 0;
26757
26758 do {
26759 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26760 &phy_a5);
26761 phy_a6 += phy_a4;
26762 phy_a7 += phy_a5;
26763 } while (phy_a2-- != phy_a1);
26764
26765 phy_a6 /= phy_a3;
26766 phy_a7 /= phy_a3;
66cbd3ab 26767 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
a9533e7e
HP
26768 } while (end-- != start);
26769
26770 wlc_phy_table_write_nphy(pi,
26771 (core ==
26772 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26773 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26774
182acb3c 26775 kfree(buf);
a9533e7e
HP
26776}
26777
26778static void
7cc4a4c0 26779wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *txgains,
e868ab03 26780 phy_cal_mode_t cal_mode, u8 core)
a9533e7e 26781{
7d4df48e
GKH
26782 u16 phy_a1, phy_a2, phy_a3;
26783 u16 phy_a4, phy_a5;
a9533e7e 26784 bool phy_a6;
e868ab03 26785 u8 phy_a7, m[2];
66cbd3ab 26786 u32 phy_a8 = 0;
a9533e7e
HP
26787 nphy_txgains_t phy_a9;
26788
26789 if (NREV_LT(pi->pubpi.phy_rev, 3))
26790 return;
26791
26792 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26793
26794 ASSERT((cal_mode == CAL_FULL) || (cal_mode == CAL_GCTRL)
26795 || (cal_mode == CAL_SOFT));
26796 phy_a6 = ((cal_mode == CAL_GCTRL)
0965ae88 26797 || (cal_mode == CAL_SOFT)) ? true : false;
a9533e7e
HP
26798
26799 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26800
26801 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26802
26803 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26804 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26805 (phy_a9.txgm[core] << 12) |
26806 (phy_a9.pga[core] << 8) |
26807 (txgains->gains.pad[core] << 3) |
26808 (phy_a9.ipa[core]));
26809 } else {
26810 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26811 (phy_a9.txgm[core] << 12) |
26812 (txgains->gains.pga[core] << 8) |
26813 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26814 }
26815
26816 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26817 NPHY_REV7_RfctrlOverride_cmd_txgain,
26818 phy_a5, (1 << core), 0);
26819
26820 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26821 if ((pi->pubpi.radiorev <= 4)
26822 || (pi->pubpi.radiorev == 6)) {
26823
26824 m[core] = IS40MHZ(pi) ? 60 : 79;
26825 } else {
26826
26827 m[core] = IS40MHZ(pi) ? 45 : 64;
26828 }
26829
26830 } else {
26831 m[core] = IS40MHZ(pi) ? 75 : 107;
26832 }
26833
26834 m[phy_a7] = 0;
26835 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26836
26837 phy_a2 = 63;
26838
26839 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26840 if (CHIPID(pi->sh->chip) == BCM6362_CHIP_ID) {
26841 phy_a1 = 35;
26842 phy_a3 = 35;
26843 } else if ((pi->pubpi.radiorev == 4)
26844 || (pi->pubpi.radiorev == 6)) {
26845 phy_a1 = 30;
26846 phy_a3 = 30;
26847 } else {
26848 phy_a1 = 25;
26849 phy_a3 = 25;
26850 }
26851 } else {
26852 if ((pi->pubpi.radiorev == 5)
26853 || (pi->pubpi.radiorev == 7)
26854 || (pi->pubpi.radiorev == 8)) {
26855 phy_a1 = 25;
26856 phy_a3 = 25;
26857 } else {
26858 phy_a1 = 35;
26859 phy_a3 = 35;
26860 }
26861 }
26862
26863 if (cal_mode == CAL_GCTRL) {
26864 if ((pi->pubpi.radiorev == 5)
26865 && (CHSPEC_IS2G(pi->radio_chanspec))) {
26866 phy_a1 = 55;
26867 } else if (((pi->pubpi.radiorev == 7) &&
26868 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26869 ((pi->pubpi.radiorev == 8) &&
26870 (CHSPEC_IS2G(pi->radio_chanspec)))) {
26871 phy_a1 = 60;
26872 } else {
26873 phy_a1 = 63;
26874 }
26875
26876 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26877
26878 phy_a1 = 35;
26879 phy_a3 = 35;
26880 }
26881
26882 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26883 0x29b, (0x1 << 0), (1) << 0);
26884
26885 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26886 0x29b, (0x1 << 0), (0) << 0);
26887
26888 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26889 0x2a4, (0x1 << 13), (1) << 13);
26890
26891 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26892 0x2a4, (0x1 << 13), (0) << 13);
26893
26894 write_phy_reg(pi, 0x2a1, 0x80);
26895 write_phy_reg(pi, 0x2a2, 0x100);
26896
26897 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26898 0x2a4, (0x7 << 4), (11) << 4);
26899
26900 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26901 0x2a4, (0x7 << 8), (11) << 8);
26902
26903 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26904 0x2a4, (0x7 << 0), (0x3) << 0);
26905
26906 write_phy_reg(pi, 0x2e5, 0x20);
26907
26908 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26909
26910 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26911
26912 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26913
26914 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26915 1, ((core == 0) ? 1 : 2), 0,
26916 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26917 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26918 0, ((core == 0) ? 2 : 1), 0,
26919 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26920
26921 write_phy_reg(pi, 0x2be, 1);
26922 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26923
26924 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26925 0, 0x3, 0,
26926 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26927
26928 wlc_phy_table_write_nphy(pi,
26929 (core ==
26930 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26931 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26932 32, &phy_a8);
26933
26934 if (cal_mode != CAL_GCTRL) {
26935 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26936 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26937 }
26938 }
26939
26940 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26941 NPHY_REV7_RfctrlOverride_cmd_txgain,
26942 phy_a5, (1 << core), 1);
26943
26944 } else {
26945
26946 if (txgains) {
26947 if (txgains->useindex) {
26948 phy_a4 = 15 - ((txgains->index) >> 3);
26949 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26950 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26951 phy_a5 = 0x00f7 | (phy_a4 << 8);
26952
26953 if (CHIPID(pi->sh->chip) ==
26954 BCM47162_CHIP_ID) {
26955 phy_a5 =
26956 0x10f7 | (phy_a4 <<
26957 8);
26958 }
26959 } else
26960 if (NREV_IS(pi->pubpi.phy_rev, 5))
26961 phy_a5 = 0x10f7 | (phy_a4 << 8);
26962 else
26963 phy_a5 = 0x50f7 | (phy_a4 << 8);
26964 } else {
26965 phy_a5 = 0x70f7 | (phy_a4 << 8);
26966 }
26967 wlc_phy_rfctrl_override_nphy(pi,
26968 (0x1 << 13),
26969 phy_a5,
26970 (1 << core), 0);
26971 } else {
26972 wlc_phy_rfctrl_override_nphy(pi,
26973 (0x1 << 13),
26974 0x5bf7,
26975 (1 << core), 0);
26976 }
26977 }
26978
26979 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26980 m[core] = IS40MHZ(pi) ? 45 : 64;
26981 } else {
26982 m[core] = IS40MHZ(pi) ? 75 : 107;
26983 }
26984
26985 m[phy_a7] = 0;
26986 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26987
26988 phy_a2 = 63;
26989
26990 if (cal_mode == CAL_FULL) {
26991 phy_a1 = 25;
26992 phy_a3 = 25;
26993 } else if (cal_mode == CAL_SOFT) {
26994 phy_a1 = 25;
26995 phy_a3 = 25;
26996 } else if (cal_mode == CAL_GCTRL) {
26997 phy_a1 = 63;
26998 phy_a3 = 25;
26999 } else {
27000
27001 phy_a1 = 25;
27002 phy_a3 = 25;
27003 }
27004
27005 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27006 0x29b, (0x1 << 0), (1) << 0);
27007
27008 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
27009 0x29b, (0x1 << 0), (0) << 0);
27010
27011 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27012 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27013 0x2a4, (0x1 << 13), (1) << 13);
27014
27015 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27016 0x2a4, (0x1 << 13), (0) << 13);
27017
27018 write_phy_reg(pi, 0x2a1, 0x20);
27019 write_phy_reg(pi, 0x2a2, 0x60);
27020
27021 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27022 0x2a4, (0xf << 4), (9) << 4);
27023
27024 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27025 0x2a4, (0xf << 8), (9) << 8);
27026
27027 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27028 0x2a4, (0xf << 0), (0x2) << 0);
27029
27030 write_phy_reg(pi, 0x2e5, 0x20);
27031 } else {
27032 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27033 0x2a4, (0x1 << 11), (1) << 11);
27034
27035 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27036 0x2a4, (0x1 << 11), (0) << 11);
27037
27038 write_phy_reg(pi, 0x2a1, 0x80);
27039 write_phy_reg(pi, 0x2a2, 0x600);
27040
27041 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27042 0x2a4, (0x7 << 4), (0) << 4);
27043
27044 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27045 0x2a4, (0x7 << 8), (0) << 8);
27046
27047 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27048 0x2a4, (0x7 << 0), (0x3) << 0);
27049
27050 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
27051
27052 }
27053
27054 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
27055
27056 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
27057
27058 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
27059
27060 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
27061
27062 write_phy_reg(pi, 0x2be, 1);
27063 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
27064
27065 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
27066
27067 wlc_phy_table_write_nphy(pi,
27068 (core ==
27069 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
27070 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
27071 32, &phy_a8);
27072
27073 if (cal_mode != CAL_GCTRL) {
27074 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
27075 }
27076 }
27077}
27078
e868ab03 27079static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core)
a9533e7e
HP
27080{
27081 int phy_a1;
27082 int phy_a2;
27083 bool phy_a3;
27084 nphy_ipa_txcalgains_t phy_a4;
0965ae88 27085 bool phy_a5 = false;
0f0881b0 27086 bool phy_a6 = true;
3e26416e 27087 s32 phy_a7, phy_a8;
66cbd3ab 27088 u32 phy_a9;
a9533e7e 27089 int phy_a10;
0965ae88 27090 bool phy_a11 = false;
a9533e7e 27091 int phy_a12;
e868ab03
GKH
27092 u8 phy_a13 = 0;
27093 u8 phy_a14;
27094 u8 *phy_a15 = NULL;
a9533e7e 27095
0f0881b0 27096 phy_a4.useindex = true;
a9533e7e
HP
27097 phy_a12 = start_gain;
27098
27099 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27100
27101 phy_a2 = 20;
27102 phy_a1 = 1;
27103
27104 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27105 if (pi->pubpi.radiorev == 5) {
27106
27107 phy_a15 = pad_gain_codes_used_2057rev5;
27108 phy_a13 = sizeof(pad_gain_codes_used_2057rev5) /
27109 sizeof(pad_gain_codes_used_2057rev5[0]) - 1;
27110
27111 } else if ((pi->pubpi.radiorev == 7)
27112 || (pi->pubpi.radiorev == 8)) {
27113
27114 phy_a15 = pad_gain_codes_used_2057rev7;
27115 phy_a13 = sizeof(pad_gain_codes_used_2057rev7) /
27116 sizeof(pad_gain_codes_used_2057rev7[0]) - 1;
27117
27118 } else {
27119
27120 phy_a15 = pad_all_gain_codes_2057;
27121 phy_a13 = sizeof(pad_all_gain_codes_2057) /
27122 sizeof(pad_all_gain_codes_2057[0]) - 1;
27123 }
27124
27125 } else {
27126
27127 phy_a15 = pga_all_gain_codes_2057;
27128 phy_a13 = sizeof(pga_all_gain_codes_2057) /
27129 sizeof(pga_all_gain_codes_2057[0]) - 1;
27130 }
27131
27132 phy_a14 = 0;
27133
27134 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27135 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27136 phy_a4.gains.pad[core] =
7d4df48e 27137 (u16) phy_a15[phy_a12];
a9533e7e
HP
27138 } else {
27139 phy_a4.gains.pga[core] =
7d4df48e 27140 (u16) phy_a15[phy_a12];
a9533e7e
HP
27141 }
27142
27143 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27144
27145 wlc_phy_table_read_nphy(pi,
27146 (core ==
27147 PHY_CORE_0 ?
27148 NPHY_TBL_ID_EPSILONTBL0 :
27149 NPHY_TBL_ID_EPSILONTBL1), 1,
27150 63, 32, &phy_a9);
27151
27152 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27153
27154 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27155 (phy_a8 == 4095) || (phy_a8 == -4096));
27156
27157 if (!phy_a6 && (phy_a3 != phy_a5)) {
27158 if (!phy_a3) {
e868ab03 27159 phy_a12 -= (u8) phy_a1;
a9533e7e 27160 }
0f0881b0 27161 phy_a11 = true;
a9533e7e
HP
27162 break;
27163 }
27164
27165 if (phy_a3)
e868ab03 27166 phy_a12 += (u8) phy_a1;
a9533e7e 27167 else
e868ab03 27168 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27169
27170 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
27171 if (phy_a12 < phy_a14) {
27172 phy_a12 = phy_a14;
27173 } else {
27174 phy_a12 = phy_a13;
27175 }
0f0881b0 27176 phy_a11 = true;
a9533e7e
HP
27177 break;
27178 }
27179
0965ae88 27180 phy_a6 = false;
a9533e7e
HP
27181 phy_a5 = phy_a3;
27182 }
27183
27184 } else {
27185 phy_a2 = 10;
27186 phy_a1 = 8;
27187 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
e868ab03 27188 phy_a4.index = (u8) phy_a12;
a9533e7e
HP
27189 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27190
27191 wlc_phy_table_read_nphy(pi,
27192 (core ==
27193 PHY_CORE_0 ?
27194 NPHY_TBL_ID_EPSILONTBL0 :
27195 NPHY_TBL_ID_EPSILONTBL1), 1,
27196 63, 32, &phy_a9);
27197
27198 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27199
27200 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27201 (phy_a8 == 4095) || (phy_a8 == -4096));
27202
27203 if (!phy_a6 && (phy_a3 != phy_a5)) {
27204 if (!phy_a3) {
e868ab03 27205 phy_a12 -= (u8) phy_a1;
a9533e7e 27206 }
0f0881b0 27207 phy_a11 = true;
a9533e7e
HP
27208 break;
27209 }
27210
27211 if (phy_a3)
e868ab03 27212 phy_a12 += (u8) phy_a1;
a9533e7e 27213 else
e868ab03 27214 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27215
27216 if ((phy_a12 < 0) || (phy_a12 > 127)) {
27217 if (phy_a12 < 0) {
27218 phy_a12 = 0;
27219 } else {
27220 phy_a12 = 127;
27221 }
0f0881b0 27222 phy_a11 = true;
a9533e7e
HP
27223 break;
27224 }
27225
0965ae88 27226 phy_a6 = false;
a9533e7e
HP
27227 phy_a5 = phy_a3;
27228 }
27229
27230 }
27231
27232 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
e868ab03 27233 return (u8) phy_a15[phy_a12];
a9533e7e 27234 } else {
e868ab03 27235 return (u8) phy_a12;
a9533e7e
HP
27236 }
27237
27238}
27239
7cc4a4c0 27240static void wlc_phy_a4(phy_info_t *pi, bool full_cal)
a9533e7e
HP
27241{
27242 nphy_ipa_txcalgains_t phy_b1[2];
27243 nphy_papd_restore_state phy_b2;
27244 bool phy_b3;
e868ab03
GKH
27245 u8 phy_b4;
27246 u8 phy_b5;
e59fe083 27247 s16 phy_b6, phy_b7, phy_b8;
7d4df48e 27248 u16 phy_b9;
e59fe083 27249 s16 phy_b10, phy_b11, phy_b12;
a9533e7e
HP
27250
27251 phy_b11 = 0;
27252 phy_b12 = 0;
27253 phy_b7 = 0;
27254 phy_b8 = 0;
27255 phy_b6 = 0;
27256
27257 if (pi->nphy_papd_skip == 1)
27258 return;
27259
27260 phy_b3 =
27261 (0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
27262 if (!phy_b3) {
27263 wlapi_suspend_mac_and_wait(pi->sh->physhim);
27264 }
27265
0f0881b0 27266 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e 27267
0965ae88 27268 pi->nphy_force_papd_cal = false;
a9533e7e
HP
27269
27270 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
27271 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
27272 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
27273
27274 pi->nphy_papd_last_cal = pi->sh->now;
27275 pi->nphy_papd_recal_counter++;
27276
27277 if (NORADIO_ENAB(pi->pubpi))
27278 return;
27279
27280 phy_b4 = pi->nphy_txpwrctrl;
27281 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
27282
27283 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
27284 nphy_papd_scaltbl);
27285 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27286 nphy_papd_scaltbl);
27287
27288 phy_b9 = read_phy_reg(pi, 0x01);
27289 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27290
27291 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
3e26416e 27292 s32 i, val = 0;
a9533e7e
HP
27293 for (i = 0; i < 64; i++) {
27294 wlc_phy_table_write_nphy(pi,
27295 ((phy_b5 ==
27296 PHY_CORE_0) ?
27297 NPHY_TBL_ID_EPSILONTBL0 :
27298 NPHY_TBL_ID_EPSILONTBL1), 1,
27299 i, 32, &val);
27300 }
27301 }
27302
27303 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27304
27305 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27306 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27307 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27308
27309 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27310 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27311
27312 if ((pi->pubpi.radiorev == 3)
27313 || (pi->pubpi.radiorev == 4)
27314 || (pi->pubpi.radiorev == 6)) {
27315
27316 pi->nphy_papd_cal_gain_index[phy_b5] =
27317 23;
27318
27319 } else if (pi->pubpi.radiorev == 5) {
27320
27321 pi->nphy_papd_cal_gain_index[phy_b5] =
27322 0;
27323 pi->nphy_papd_cal_gain_index[phy_b5] =
27324 wlc_phy_a3_nphy(pi,
27325 pi->
27326 nphy_papd_cal_gain_index
27327 [phy_b5], phy_b5);
27328
27329 } else if ((pi->pubpi.radiorev == 7)
27330 || (pi->pubpi.radiorev == 8)) {
27331
27332 pi->nphy_papd_cal_gain_index[phy_b5] =
27333 0;
27334 pi->nphy_papd_cal_gain_index[phy_b5] =
27335 wlc_phy_a3_nphy(pi,
27336 pi->
27337 nphy_papd_cal_gain_index
27338 [phy_b5], phy_b5);
27339
27340 } else {
27341 ASSERT(0);
27342 }
27343
27344 phy_b1[phy_b5].gains.pad[phy_b5] =
27345 pi->nphy_papd_cal_gain_index[phy_b5];
27346
27347 } else {
27348 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27349 pi->nphy_papd_cal_gain_index[phy_b5] =
27350 wlc_phy_a3_nphy(pi,
27351 pi->
27352 nphy_papd_cal_gain_index
27353 [phy_b5], phy_b5);
27354 phy_b1[phy_b5].gains.pga[phy_b5] =
27355 pi->nphy_papd_cal_gain_index[phy_b5];
27356 }
27357 } else {
0f0881b0 27358 phy_b1[phy_b5].useindex = true;
a9533e7e
HP
27359 phy_b1[phy_b5].index = 16;
27360 phy_b1[phy_b5].index =
27361 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index, phy_b5);
27362
27363 pi->nphy_papd_cal_gain_index[phy_b5] =
27364 15 - ((phy_b1[phy_b5].index) >> 3);
27365 }
27366
27367 switch (pi->nphy_papd_cal_type) {
27368 case 0:
27369 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27370 break;
27371 case 1:
27372 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27373 break;
27374 }
27375
27376 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27377 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27378 }
27379 }
27380
27381 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27382 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27383 }
27384
27385 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27386 int eps_offset = 0;
27387
27388 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27389 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27390 if (pi->pubpi.radiorev == 3) {
27391 eps_offset = -2;
27392 } else if (pi->pubpi.radiorev == 5) {
27393 eps_offset = 3;
27394 } else {
27395 eps_offset = -1;
27396 }
27397 } else {
27398 eps_offset = 2;
27399 }
27400
27401 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27402 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27403 phy_b10 = 0;
27404 if ((pi->pubpi.radiorev == 3) ||
27405 (pi->pubpi.radiorev == 4) ||
27406 (pi->pubpi.radiorev == 6)) {
27407 phy_b12 =
27408 -
27409 (nphy_papd_padgain_dlt_2g_2057rev3n4
27410 [phy_b8]
27411 + 1) / 2;
27412 phy_b10 = -1;
27413 } else if (pi->pubpi.radiorev == 5) {
27414 phy_b12 =
27415 -(nphy_papd_padgain_dlt_2g_2057rev5
27416 [phy_b8]
27417 + 1) / 2;
27418 } else if ((pi->pubpi.radiorev == 7) ||
27419 (pi->pubpi.radiorev == 8)) {
27420 phy_b12 =
27421 -(nphy_papd_padgain_dlt_2g_2057rev7
27422 [phy_b8]
27423 + 1) / 2;
27424 } else {
27425 ASSERT(0);
27426 }
27427 } else {
27428 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27429 if ((pi->pubpi.radiorev == 3) ||
27430 (pi->pubpi.radiorev == 4) ||
27431 (pi->pubpi.radiorev == 6)) {
27432 phy_b11 =
27433 -(nphy_papd_pgagain_dlt_5g_2057
27434 [phy_b7]
27435 + 1) / 2;
27436 } else if ((pi->pubpi.radiorev == 7)
27437 || (pi->pubpi.radiorev == 8)) {
27438 phy_b11 =
27439 -(nphy_papd_pgagain_dlt_5g_2057rev7
27440 [phy_b7]
27441 + 1) / 2;
27442 } else {
27443 ASSERT(0);
27444 }
27445
27446 phy_b10 = -9;
27447 }
27448
27449 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27450 phy_b6 =
27451 -60 + 27 + eps_offset + phy_b12 + phy_b10;
27452 } else {
27453 phy_b6 =
27454 -60 + 27 + eps_offset + phy_b11 + phy_b10;
27455 }
27456
27457 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27458 0x29c, (0x1ff << 7), (phy_b6) << 7);
27459
27460 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27461 } else {
27462 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
27463 eps_offset = 4;
27464 } else {
27465 eps_offset = 2;
27466 }
27467
27468 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27469
27470 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27471 phy_b11 =
27472 -(nphy_papd_pga_gain_delta_ipa_2g[phy_b7] +
27473 1) / 2;
27474 phy_b10 = 0;
27475 } else {
27476 phy_b11 =
27477 -(nphy_papd_pga_gain_delta_ipa_5g[phy_b7] +
27478 1) / 2;
27479 phy_b10 = -9;
27480 }
27481
27482 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27483
27484 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27485 0x29c, (0x1ff << 7), (phy_b6) << 7);
27486
27487 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27488 }
27489 }
27490
27491 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27492 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27493
27494 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27495 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27496
27497 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27498 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27499 0x2a4, (0x1 << 13), (0) << 13);
27500
27501 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27502 0x2a4, (0x1 << 13), (0) << 13);
27503
27504 } else {
27505 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27506 0x2a4, (0x1 << 11), (0) << 11);
27507
27508 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27509 0x2a4, (0x1 << 11), (0) << 11);
27510
27511 }
27512 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27513
27514 write_phy_reg(pi, 0x01, phy_b9);
27515
27516 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27517
27518 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27519 if (phy_b4 == PHY_TPC_HW_OFF) {
27520 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
562c8850 27521 (s8) (pi->nphy_txpwrindex[0].
0965ae88 27522 index_internal), false);
a9533e7e 27523 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
562c8850 27524 (s8) (pi->nphy_txpwrindex[1].
0965ae88 27525 index_internal), false);
a9533e7e
HP
27526 }
27527
0965ae88 27528 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
27529
27530 if (!phy_b3) {
27531 wlapi_enable_mac(pi->sh->physhim);
27532 }
27533}
27534
7cc4a4c0 27535void wlc_phy_txpwr_fixpower_nphy(phy_info_t *pi)
a9533e7e
HP
27536{
27537 uint core;
66cbd3ab 27538 u32 txgain;
7d4df48e 27539 u16 rad_gain, dac_gain, bbmult, m1m2;
e868ab03 27540 u8 txpi[2], chan_freq_range;
3e26416e 27541 s32 rfpwr_offset;
a9533e7e
HP
27542
27543 ASSERT(pi->nphy_txpwrctrl == PHY_TPC_HW_OFF);
27544
27545 if (pi->phyhang_avoid)
0f0881b0 27546 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
27547
27548 if (pi->sh->sromrev < 4) {
27549 txpi[0] = txpi[1] = 72;
27550 } else {
27551
27552 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27553 switch (chan_freq_range) {
27554 case WL_CHAN_FREQ_RANGE_2G:
27555 txpi[0] = pi->nphy_txpid2g[0];
27556 txpi[1] = pi->nphy_txpid2g[1];
27557 break;
27558 case WL_CHAN_FREQ_RANGE_5GL:
27559 txpi[0] = pi->nphy_txpid5gl[0];
27560 txpi[1] = pi->nphy_txpid5gl[1];
27561 break;
27562 case WL_CHAN_FREQ_RANGE_5GM:
27563 txpi[0] = pi->nphy_txpid5g[0];
27564 txpi[1] = pi->nphy_txpid5g[1];
27565 break;
27566 case WL_CHAN_FREQ_RANGE_5GH:
27567 txpi[0] = pi->nphy_txpid5gh[0];
27568 txpi[1] = pi->nphy_txpid5gh[1];
27569 break;
27570 default:
27571 txpi[0] = txpi[1] = 91;
27572 break;
27573 }
27574 }
27575
27576 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27577 txpi[0] = txpi[1] = 30;
27578 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27579 txpi[0] = txpi[1] = 40;
27580 }
27581
27582 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27583
27584 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27585 (txpi[1] < 40) || (txpi[1] > 100))
27586 txpi[0] = txpi[1] = 91;
27587 }
27588
27589 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27590 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27591 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27592 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27593
27594 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27595 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27596 if (PHY_IPA(pi)) {
66cbd3ab 27597 u32 *tx_gaintbl =
a9533e7e
HP
27598 wlc_phy_get_ipa_gaintbl_nphy(pi);
27599 txgain = tx_gaintbl[txpi[core]];
27600 } else {
27601 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27602 if NREV_IS
27603 (pi->pubpi.phy_rev, 3) {
27604 txgain =
27605 nphy_tpc_5GHz_txgain_rev3
27606 [txpi[core]];
27607 } else if NREV_IS
27608 (pi->pubpi.phy_rev, 4) {
27609 txgain =
27610 (pi->srom_fem5g.extpagain ==
27611 3) ?
27612 nphy_tpc_5GHz_txgain_HiPwrEPA
27613 [txpi[core]] :
27614 nphy_tpc_5GHz_txgain_rev4
27615 [txpi[core]];
27616 } else {
27617 txgain =
27618 nphy_tpc_5GHz_txgain_rev5
27619 [txpi[core]];
27620 }
27621 } else {
27622 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
27623 (pi->srom_fem2g.extpagain == 3)) {
27624 txgain =
27625 nphy_tpc_txgain_HiPwrEPA
27626 [txpi[core]];
27627 } else {
27628 txgain =
27629 nphy_tpc_txgain_rev3[txpi
27630 [core]];
27631 }
27632 }
27633 }
27634 } else {
27635 txgain = nphy_tpc_txgain[txpi[core]];
27636 }
27637
27638 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27639 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27640 } else {
27641 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27642 }
27643
27644 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27645 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27646 } else {
27647 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27648 }
27649 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27650
27651 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27652 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27653 0xa5), (0x1 << 8), (0x1 << 8));
27654 } else {
27655 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27656 }
27657 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27658
27659 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27660 &rad_gain);
27661
27662 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27663 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27664 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27665 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27666
27667 if (PHY_IPA(pi)) {
27668 wlc_phy_table_read_nphy(pi,
27669 (core ==
27670 PHY_CORE_0 ?
27671 NPHY_TBL_ID_CORE1TXPWRCTL :
27672 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27673 576 + txpi[core], 32,
27674 &rfpwr_offset);
27675
27676 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27677 0x29b, (0x1ff << 4),
e59fe083 27678 ((s16) rfpwr_offset) << 4);
a9533e7e
HP
27679
27680 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27681 0x29b, (0x1 << 2), (1) << 2);
27682
27683 }
27684 }
27685
7d4df48e 27686 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
a9533e7e
HP
27687
27688 if (pi->phyhang_avoid)
0965ae88 27689 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
27690}
27691
27692static void
7d4df48e 27693wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
e868ab03
GKH
27694 u8 tmp_max_pwr, u8 rate_start,
27695 u8 rate_end)
a9533e7e 27696{
e868ab03
GKH
27697 u8 rate;
27698 u8 word_num, nibble_num;
27699 u8 tmp_nibble;
a9533e7e
HP
27700
27701 for (rate = rate_start; rate <= rate_end; rate++) {
27702 word_num = (rate - rate_start) >> 2;
27703 nibble_num = (rate - rate_start) & 0x3;
27704 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27705
27706 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27707 }
27708}
27709
27710static void
e868ab03
GKH
27711wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27712 u8 rate_start, u8 rate_end)
a9533e7e 27713{
e868ab03 27714 u8 rate;
a9533e7e
HP
27715
27716 for (rate = rate_start; rate <= rate_end; rate++) {
27717 srom_max[rate] -= 2 * pwr_offset;
27718 }
27719}
27720
27721void
e868ab03
GKH
27722wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27723 u8 rate_mcs_end, u8 rate_ofdm_start)
a9533e7e 27724{
e868ab03 27725 u8 rate1, rate2;
a9533e7e
HP
27726
27727 rate2 = rate_ofdm_start;
27728 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27729 power[rate1] = power[rate2];
27730 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27731 }
27732 power[rate_mcs_end] = power[rate_mcs_end - 1];
27733}
27734
27735void
e868ab03
GKH
27736wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27737 u8 rate_ofdm_end, u8 rate_mcs_start)
a9533e7e 27738{
e868ab03 27739 u8 rate1, rate2;
a9533e7e
HP
27740
27741 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27742 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27743 power[rate1] = power[rate2];
27744 if (rate1 == rate_ofdm_start)
27745 power[++rate1] = power[rate2];
27746 }
27747}
27748
a9d0fffa 27749void wlc_phy_txpwr_apply_nphy(phy_info_t *pi)
a2627bc0 27750{
a9533e7e 27751 uint rate1, rate2, band_num;
e868ab03
GKH
27752 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27753 u8 tmp_max_pwr = 0;
7d4df48e 27754 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
e868ab03 27755 u8 *tx_srom_max_rate = NULL;
a9533e7e
HP
27756
27757 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27758 switch (band_num) {
27759 case 0:
27760
7068c2f1 27761 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
a9533e7e
HP
27762 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27763
27764 pwr_offsets1[0] = pi->cck2gpo;
27765 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27766 pwr_offsets1,
27767 tmp_max_pwr,
27768 TXP_FIRST_CCK,
27769 TXP_LAST_CCK);
27770
7d4df48e 27771 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
a9533e7e 27772 pwr_offsets1[1] =
7d4df48e 27773 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
a9533e7e
HP
27774
27775 pwr_offsets2 = pi->mcs2gpo;
27776
27777 tmp_cddpo = pi->cdd2gpo;
27778 tmp_stbcpo = pi->stbc2gpo;
27779 tmp_bw40po = pi->bw402gpo;
27780
27781 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27782 break;
27783 case 1:
27784
7068c2f1 27785 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
a9533e7e
HP
27786 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27787
7d4df48e 27788 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
a9533e7e 27789 pwr_offsets1[1] =
7d4df48e 27790 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
a9533e7e
HP
27791
27792 pwr_offsets2 = pi->mcs5gpo;
27793
27794 tmp_cddpo = pi->cdd5gpo;
27795 tmp_stbcpo = pi->stbc5gpo;
27796 tmp_bw40po = pi->bw405gpo;
27797
27798 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27799 break;
27800 case 2:
27801
7068c2f1 27802 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
a9533e7e
HP
27803 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27804
7d4df48e 27805 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
a9533e7e 27806 pwr_offsets1[1] =
7d4df48e 27807 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
a9533e7e
HP
27808
27809 pwr_offsets2 = pi->mcs5glpo;
27810
27811 tmp_cddpo = pi->cdd5glpo;
27812 tmp_stbcpo = pi->stbc5glpo;
27813 tmp_bw40po = pi->bw405glpo;
27814
27815 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27816 break;
27817 case 3:
27818
7068c2f1 27819 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
a9533e7e
HP
27820 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27821
7d4df48e 27822 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
a9533e7e 27823 pwr_offsets1[1] =
7d4df48e 27824 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
a9533e7e
HP
27825
27826 pwr_offsets2 = pi->mcs5ghpo;
27827
27828 tmp_cddpo = pi->cdd5ghpo;
27829 tmp_stbcpo = pi->stbc5ghpo;
27830 tmp_bw40po = pi->bw405ghpo;
27831
27832 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27833 break;
27834 }
27835
27836 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27837 tmp_max_pwr, TXP_FIRST_OFDM,
27838 TXP_LAST_OFDM);
27839
27840 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27841 TXP_FIRST_MCS_20_SISO,
27842 TXP_LAST_MCS_20_SISO,
27843 TXP_FIRST_OFDM);
27844
27845 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27846 tmp_max_pwr,
27847 TXP_FIRST_MCS_20_CDD,
27848 TXP_LAST_MCS_20_CDD);
27849
27850 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27851
27852 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27853 TXP_FIRST_MCS_20_CDD,
27854 TXP_LAST_MCS_20_CDD);
27855 }
27856
27857 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27858 TXP_FIRST_OFDM_20_CDD,
27859 TXP_LAST_OFDM_20_CDD,
27860 TXP_FIRST_MCS_20_CDD);
27861
27862 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27863 tmp_max_pwr,
27864 TXP_FIRST_MCS_20_STBC,
27865 TXP_LAST_MCS_20_STBC);
27866
27867 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27868
27869 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27870 tmp_stbcpo,
27871 TXP_FIRST_MCS_20_STBC,
27872 TXP_LAST_MCS_20_STBC);
27873 }
27874
27875 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27876 &pwr_offsets2[2], tmp_max_pwr,
27877 TXP_FIRST_MCS_20_SDM,
27878 TXP_LAST_MCS_20_SDM);
27879
27880 if (NPHY_IS_SROM_REINTERPRET) {
27881
27882 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27883 &pwr_offsets2[4],
27884 tmp_max_pwr,
27885 TXP_FIRST_MCS_40_SISO,
27886 TXP_LAST_MCS_40_SISO);
27887
27888 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27889 TXP_FIRST_OFDM_40_SISO,
27890 TXP_LAST_OFDM_40_SISO,
27891 TXP_FIRST_MCS_40_SISO);
27892
27893 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27894 &pwr_offsets2[4],
27895 tmp_max_pwr,
27896 TXP_FIRST_MCS_40_CDD,
27897 TXP_LAST_MCS_40_CDD);
27898
27899 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27900 TXP_FIRST_MCS_40_CDD,
27901 TXP_LAST_MCS_40_CDD);
27902
27903 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27904 TXP_FIRST_OFDM_40_CDD,
27905 TXP_LAST_OFDM_40_CDD,
27906 TXP_FIRST_MCS_40_CDD);
27907
27908 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27909 &pwr_offsets2[4],
27910 tmp_max_pwr,
27911 TXP_FIRST_MCS_40_STBC,
27912 TXP_LAST_MCS_40_STBC);
27913
27914 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27915 tmp_stbcpo,
27916 TXP_FIRST_MCS_40_STBC,
27917 TXP_LAST_MCS_40_STBC);
27918
27919 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27920 &pwr_offsets2[6],
27921 tmp_max_pwr,
27922 TXP_FIRST_MCS_40_SDM,
27923 TXP_LAST_MCS_40_SDM);
27924 } else {
27925
27926 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27927 TXP_FIRST_OFDM; rate1 <= TXP_LAST_MCS_40_SDM;
27928 rate1++, rate2++)
27929 tx_srom_max_rate[rate1] =
27930 tx_srom_max_rate[rate2];
27931 }
27932
27933 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27934 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27935 tmp_bw40po,
27936 TXP_FIRST_OFDM_40_SISO,
27937 TXP_LAST_MCS_40_SDM);
27938 }
27939
27940 tx_srom_max_rate[TXP_MCS_32] =
27941 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27942 }
27943
27944 return;
27945}
27946
0d2f0724 27947static void wlc_phy_txpwr_srom_read_ppr_nphy(phy_info_t *pi)
a2627bc0 27948{
7d4df48e 27949 u16 bw40po, cddpo, stbcpo, bwduppo;
a9533e7e
HP
27950 uint band_num;
27951
27952 if (pi->sh->sromrev >= 9) {
27953
27954 return;
27955 }
27956
7d4df48e 27957 bw40po = (u16) PHY_GETINTVAR(pi, "bw40po");
a9533e7e
HP
27958 pi->bw402gpo = bw40po & 0xf;
27959 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27960 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27961 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27962
7d4df48e 27963 cddpo = (u16) PHY_GETINTVAR(pi, "cddpo");
a9533e7e
HP
27964 pi->cdd2gpo = cddpo & 0xf;
27965 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27966 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27967 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27968
7d4df48e 27969 stbcpo = (u16) PHY_GETINTVAR(pi, "stbcpo");
a9533e7e
HP
27970 pi->stbc2gpo = stbcpo & 0xf;
27971 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27972 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27973 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27974
7d4df48e 27975 bwduppo = (u16) PHY_GETINTVAR(pi, "bwduppo");
a9533e7e
HP
27976 pi->bwdup2gpo = bwduppo & 0xf;
27977 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27978 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27979 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27980
27981 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27982 switch (band_num) {
27983 case 0:
27984
27985 pi->nphy_txpid2g[PHY_CORE_0] =
e868ab03 27986 (u8) PHY_GETINTVAR(pi, "txpid2ga0");
a9533e7e 27987 pi->nphy_txpid2g[PHY_CORE_1] =
e868ab03 27988 (u8) PHY_GETINTVAR(pi, "txpid2ga1");
a9533e7e 27989 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
562c8850 27990 (s8) PHY_GETINTVAR(pi, "maxp2ga0");
a9533e7e 27991 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
562c8850 27992 (s8) PHY_GETINTVAR(pi, "maxp2ga1");
a9533e7e 27993 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
e59fe083 27994 (s16) PHY_GETINTVAR(pi, "pa2gw0a0");
a9533e7e 27995 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
e59fe083 27996 (s16) PHY_GETINTVAR(pi, "pa2gw0a1");
a9533e7e 27997 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
e59fe083 27998 (s16) PHY_GETINTVAR(pi, "pa2gw1a0");
a9533e7e 27999 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
e59fe083 28000 (s16) PHY_GETINTVAR(pi, "pa2gw1a1");
a9533e7e 28001 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
e59fe083 28002 (s16) PHY_GETINTVAR(pi, "pa2gw2a0");
a9533e7e 28003 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
e59fe083 28004 (s16) PHY_GETINTVAR(pi, "pa2gw2a1");
a9533e7e 28005 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
562c8850 28006 (s8) PHY_GETINTVAR(pi, "itt2ga0");
a9533e7e 28007 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
562c8850 28008 (s8) PHY_GETINTVAR(pi, "itt2ga1");
a9533e7e 28009
7d4df48e 28010 pi->cck2gpo = (u16) PHY_GETINTVAR(pi, "cck2gpo");
a9533e7e 28011
66cbd3ab 28012 pi->ofdm2gpo = (u32) PHY_GETINTVAR(pi, "ofdm2gpo");
a9533e7e 28013
7d4df48e
GKH
28014 pi->mcs2gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs2gpo0");
28015 pi->mcs2gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs2gpo1");
28016 pi->mcs2gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs2gpo2");
28017 pi->mcs2gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs2gpo3");
28018 pi->mcs2gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs2gpo4");
28019 pi->mcs2gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs2gpo5");
28020 pi->mcs2gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs2gpo6");
28021 pi->mcs2gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs2gpo7");
a9533e7e
HP
28022 break;
28023 case 1:
28024
28025 pi->nphy_txpid5g[PHY_CORE_0] =
e868ab03 28026 (u8) PHY_GETINTVAR(pi, "txpid5ga0");
a9533e7e 28027 pi->nphy_txpid5g[PHY_CORE_1] =
e868ab03 28028 (u8) PHY_GETINTVAR(pi, "txpid5ga1");
a9533e7e 28029 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
562c8850 28030 (s8) PHY_GETINTVAR(pi, "maxp5ga0");
a9533e7e 28031 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
562c8850 28032 (s8) PHY_GETINTVAR(pi, "maxp5ga1");
a9533e7e 28033 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
e59fe083 28034 (s16) PHY_GETINTVAR(pi, "pa5gw0a0");
a9533e7e 28035 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
e59fe083 28036 (s16) PHY_GETINTVAR(pi, "pa5gw0a1");
a9533e7e 28037 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
e59fe083 28038 (s16) PHY_GETINTVAR(pi, "pa5gw1a0");
a9533e7e 28039 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
e59fe083 28040 (s16) PHY_GETINTVAR(pi, "pa5gw1a1");
a9533e7e 28041 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
e59fe083 28042 (s16) PHY_GETINTVAR(pi, "pa5gw2a0");
a9533e7e 28043 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
e59fe083 28044 (s16) PHY_GETINTVAR(pi, "pa5gw2a1");
a9533e7e 28045 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
562c8850 28046 (s8) PHY_GETINTVAR(pi, "itt5ga0");
a9533e7e 28047 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
562c8850 28048 (s8) PHY_GETINTVAR(pi, "itt5ga1");
a9533e7e 28049
66cbd3ab 28050 pi->ofdm5gpo = (u32) PHY_GETINTVAR(pi, "ofdm5gpo");
a9533e7e 28051
7d4df48e
GKH
28052 pi->mcs5gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs5gpo0");
28053 pi->mcs5gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs5gpo1");
28054 pi->mcs5gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs5gpo2");
28055 pi->mcs5gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs5gpo3");
28056 pi->mcs5gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs5gpo4");
28057 pi->mcs5gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs5gpo5");
28058 pi->mcs5gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs5gpo6");
28059 pi->mcs5gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs5gpo7");
a9533e7e
HP
28060 break;
28061 case 2:
28062
28063 pi->nphy_txpid5gl[0] =
e868ab03 28064 (u8) PHY_GETINTVAR(pi, "txpid5gla0");
a9533e7e 28065 pi->nphy_txpid5gl[1] =
e868ab03 28066 (u8) PHY_GETINTVAR(pi, "txpid5gla1");
a9533e7e 28067 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
562c8850 28068 (s8) PHY_GETINTVAR(pi, "maxp5gla0");
a9533e7e 28069 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
562c8850 28070 (s8) PHY_GETINTVAR(pi, "maxp5gla1");
a9533e7e 28071 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
e59fe083 28072 (s16) PHY_GETINTVAR(pi, "pa5glw0a0");
a9533e7e 28073 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
e59fe083 28074 (s16) PHY_GETINTVAR(pi, "pa5glw0a1");
a9533e7e 28075 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
e59fe083 28076 (s16) PHY_GETINTVAR(pi, "pa5glw1a0");
a9533e7e 28077 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
e59fe083 28078 (s16) PHY_GETINTVAR(pi, "pa5glw1a1");
a9533e7e 28079 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
e59fe083 28080 (s16) PHY_GETINTVAR(pi, "pa5glw2a0");
a9533e7e 28081 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
e59fe083 28082 (s16) PHY_GETINTVAR(pi, "pa5glw2a1");
a9533e7e
HP
28083 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
28084 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
28085
66cbd3ab 28086 pi->ofdm5glpo = (u32) PHY_GETINTVAR(pi, "ofdm5glpo");
a9533e7e
HP
28087
28088 pi->mcs5glpo[0] =
7d4df48e 28089 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
a9533e7e 28090 pi->mcs5glpo[1] =
7d4df48e 28091 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
a9533e7e 28092 pi->mcs5glpo[2] =
7d4df48e 28093 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
a9533e7e 28094 pi->mcs5glpo[3] =
7d4df48e 28095 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
a9533e7e 28096 pi->mcs5glpo[4] =
7d4df48e 28097 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
a9533e7e 28098 pi->mcs5glpo[5] =
7d4df48e 28099 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
a9533e7e 28100 pi->mcs5glpo[6] =
7d4df48e 28101 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
a9533e7e 28102 pi->mcs5glpo[7] =
7d4df48e 28103 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
a9533e7e
HP
28104 break;
28105 case 3:
28106
28107 pi->nphy_txpid5gh[0] =
e868ab03 28108 (u8) PHY_GETINTVAR(pi, "txpid5gha0");
a9533e7e 28109 pi->nphy_txpid5gh[1] =
e868ab03 28110 (u8) PHY_GETINTVAR(pi, "txpid5gha1");
a9533e7e 28111 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
562c8850 28112 (s8) PHY_GETINTVAR(pi, "maxp5gha0");
a9533e7e 28113 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
562c8850 28114 (s8) PHY_GETINTVAR(pi, "maxp5gha1");
a9533e7e 28115 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
e59fe083 28116 (s16) PHY_GETINTVAR(pi, "pa5ghw0a0");
a9533e7e 28117 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
e59fe083 28118 (s16) PHY_GETINTVAR(pi, "pa5ghw0a1");
a9533e7e 28119 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
e59fe083 28120 (s16) PHY_GETINTVAR(pi, "pa5ghw1a0");
a9533e7e 28121 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
e59fe083 28122 (s16) PHY_GETINTVAR(pi, "pa5ghw1a1");
a9533e7e 28123 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
e59fe083 28124 (s16) PHY_GETINTVAR(pi, "pa5ghw2a0");
a9533e7e 28125 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
e59fe083 28126 (s16) PHY_GETINTVAR(pi, "pa5ghw2a1");
a9533e7e
HP
28127 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
28128 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
28129
66cbd3ab 28130 pi->ofdm5ghpo = (u32) PHY_GETINTVAR(pi, "ofdm5ghpo");
a9533e7e
HP
28131
28132 pi->mcs5ghpo[0] =
7d4df48e 28133 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
a9533e7e 28134 pi->mcs5ghpo[1] =
7d4df48e 28135 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
a9533e7e 28136 pi->mcs5ghpo[2] =
7d4df48e 28137 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
a9533e7e 28138 pi->mcs5ghpo[3] =
7d4df48e 28139 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
a9533e7e 28140 pi->mcs5ghpo[4] =
7d4df48e 28141 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
a9533e7e 28142 pi->mcs5ghpo[5] =
7d4df48e 28143 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
a9533e7e 28144 pi->mcs5ghpo[6] =
7d4df48e 28145 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
a9533e7e 28146 pi->mcs5ghpo[7] =
7d4df48e 28147 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
a9533e7e
HP
28148 break;
28149 }
28150 }
28151
28152 wlc_phy_txpwr_apply_nphy(pi);
28153}
28154
0d2f0724 28155static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi)
a2627bc0 28156{
a9533e7e 28157
e868ab03
GKH
28158 pi->antswitch = (u8) PHY_GETINTVAR(pi, "antswitch");
28159 pi->aa2g = (u8) PHY_GETINTVAR(pi, "aa2g");
28160 pi->aa5g = (u8) PHY_GETINTVAR(pi, "aa5g");
a9533e7e 28161
e868ab03
GKH
28162 pi->srom_fem2g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos2g");
28163 pi->srom_fem2g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain2g");
28164 pi->srom_fem2g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange2g");
28165 pi->srom_fem2g.triso = (u8) PHY_GETINTVAR(pi, "triso2g");
28166 pi->srom_fem2g.antswctrllut = (u8) PHY_GETINTVAR(pi, "antswctl2g");
a9533e7e 28167
e868ab03
GKH
28168 pi->srom_fem5g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos5g");
28169 pi->srom_fem5g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain5g");
28170 pi->srom_fem5g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange5g");
28171 pi->srom_fem5g.triso = (u8) PHY_GETINTVAR(pi, "triso5g");
a9533e7e
HP
28172 if (PHY_GETVAR(pi, "antswctl5g")) {
28173
28174 pi->srom_fem5g.antswctrllut =
e868ab03 28175 (u8) PHY_GETINTVAR(pi, "antswctl5g");
a9533e7e
HP
28176 } else {
28177
28178 pi->srom_fem5g.antswctrllut =
e868ab03 28179 (u8) PHY_GETINTVAR(pi, "antswctl2g");
a9533e7e
HP
28180 }
28181
28182 wlc_phy_txpower_ipa_upd(pi);
28183
e59fe083 28184 pi->phy_txcore_disable_temp = (s16) PHY_GETINTVAR(pi, "tempthresh");
a9533e7e
HP
28185 if (pi->phy_txcore_disable_temp == 0) {
28186 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
28187 }
28188
562c8850 28189 pi->phy_tempsense_offset = (s8) PHY_GETINTVAR(pi, "tempoffset");
a9533e7e
HP
28190 if (pi->phy_tempsense_offset != 0) {
28191 if (pi->phy_tempsense_offset >
28192 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET)) {
28193 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
28194 } else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
e5c4536f 28195 NPHY_SROM_MINTEMPOFFSET)) {
a9533e7e
HP
28196 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
28197 } else {
28198 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
28199 }
28200 }
28201
28202 pi->phy_txcore_enable_temp =
28203 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
28204
e868ab03 28205 pi->phycal_tempdelta = (u8) PHY_GETINTVAR(pi, "phycal_tempdelta");
a9533e7e
HP
28206 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA) {
28207 pi->phycal_tempdelta = 0;
28208 }
28209
28210 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
28211
0f0881b0 28212 return true;
a9533e7e
HP
28213}
28214
7cc4a4c0 28215void wlc_phy_txpower_recalc_target_nphy(phy_info_t *pi)
a9533e7e 28216{
e868ab03 28217 u8 tx_pwr_ctrl_state;
a9533e7e
HP
28218 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28219 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28220
28221 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28222
28223 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28224 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28225 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
7383141b 28226 udelay(1);
a9533e7e
HP
28227 }
28228
28229 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28230
28231 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28232 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28233}
28234
7cc4a4c0 28235static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi)
a9533e7e 28236{
66cbd3ab 28237 u32 idx;
7d4df48e 28238 u16 iqloCalbuf[7];
66cbd3ab 28239 u32 iqcomp, locomp, curr_locomp;
562c8850
GKH
28240 s8 locomp_i, locomp_q;
28241 s8 curr_locomp_i, curr_locomp_q;
66cbd3ab
GKH
28242 u32 tbl_id, tbl_len, tbl_offset;
28243 u32 regval[128];
a9533e7e
HP
28244
28245 if (pi->phyhang_avoid)
0f0881b0 28246 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28247
28248 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
28249
28250 tbl_len = 128;
28251 tbl_offset = 320;
28252 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28253 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28254 iqcomp =
28255 (tbl_id ==
66cbd3ab 28256 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
a9533e7e 28257 (iqloCalbuf[1] & 0x3ff)
66cbd3ab 28258 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
a9533e7e
HP
28259 (iqloCalbuf[3] & 0x3ff);
28260
28261 for (idx = 0; idx < tbl_len; idx++) {
28262 regval[idx] = iqcomp;
28263 }
28264 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28265 regval);
28266 }
28267
28268 tbl_offset = 448;
28269 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28270 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28271
28272 locomp =
66cbd3ab 28273 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
562c8850
GKH
28274 locomp_i = (s8) ((locomp >> 8) & 0xff);
28275 locomp_q = (s8) ((locomp) & 0xff);
a9533e7e
HP
28276 for (idx = 0; idx < tbl_len; idx++) {
28277 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28278 curr_locomp_i = locomp_i;
28279 curr_locomp_q = locomp_q;
28280 } else {
562c8850 28281 curr_locomp_i = (s8) ((locomp_i *
a9533e7e
HP
28282 nphy_tpc_loscale[idx] +
28283 128) >> 8);
28284 curr_locomp_q =
562c8850 28285 (s8) ((locomp_q * nphy_tpc_loscale[idx] +
a9533e7e
HP
28286 128) >> 8);
28287 }
66cbd3ab
GKH
28288 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
28289 curr_locomp |= (u32) (curr_locomp_q & 0xff);
a9533e7e
HP
28290 regval[idx] = curr_locomp;
28291 }
28292 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28293 regval);
28294 }
28295
28296 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
28297
28298 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
28299 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
28300 }
28301
28302 if (pi->phyhang_avoid)
0965ae88 28303 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
28304}
28305
7cc4a4c0 28306static void wlc_phy_ipa_internal_tssi_setup_nphy(phy_info_t *pi)
a9533e7e 28307{
e868ab03 28308 u8 core;
a9533e7e
HP
28309
28310 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28311 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28312 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28313 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28314 TX_SSI_MASTER, 0x5);
28315 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28316 TX_SSI_MUX, 0xe);
28317
28318 if (pi->pubpi.radiorev != 5)
28319 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28320 core, TSSIA, 0);
28321
28322 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28323
28324 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28325 core, TSSIG, 0x1);
28326 } else {
28327
28328 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28329 core, TSSIG, 0x31);
28330 }
28331 } else {
28332 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28333 TX_SSI_MASTER, 0x9);
28334 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28335 TX_SSI_MUX, 0xc);
28336 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28337 TSSIG, 0);
28338
28339 if (pi->pubpi.radiorev != 5) {
28340 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28341
28342 WRITE_RADIO_REG3(pi, RADIO_2057,
28343 TX, core,
28344 TSSIA, 0x1);
28345 } else {
28346
28347 WRITE_RADIO_REG3(pi, RADIO_2057,
28348 TX, core,
28349 TSSIA, 0x31);
28350 }
28351 }
28352 }
28353 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28354 0);
28355 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28356 0);
28357 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28358 0x3);
28359 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28360 0x0);
28361 }
28362 } else {
28363 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28364 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28365 0x80);
28366 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28367 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28368
28369 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28370 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28371 0x0);
28372 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28373 0x0);
28374 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28375 0x3);
28376 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28377 0x0);
28378 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28379 0x8);
28380 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28381 0x0);
28382 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28383 0x0);
28384
28385 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28386 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28387 TX_SSI_MASTER, 0x5);
28388
28389 if (pi->pubpi.radiorev != 5)
28390 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28391 core, TSSIA, 0x0);
28392 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
28393
28394 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28395 core, TSSIG, 0x31);
28396 } else {
28397 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28398 core, TSSIG, 0x11);
28399 }
28400 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28401 TX_SSI_MUX, 0xe);
28402 } else {
28403 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28404 TX_SSI_MASTER, 0x9);
28405 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28406 TSSIA, 0x31);
28407 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28408 TSSIG, 0x0);
28409 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28410 TX_SSI_MUX, 0xc);
28411 }
28412 }
28413 }
28414}
28415
7cc4a4c0 28416static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi)
a9533e7e 28417{
3e26416e
GKH
28418 s32 rssi_buf[4];
28419 s32 int_val;
a9533e7e
HP
28420
28421 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28422
28423 return;
28424
28425 if (PHY_IPA(pi)) {
28426 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28427 }
28428
28429 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28430 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28431 0, 0x3, 0,
28432 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28433 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28434 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28435 }
28436
28437 wlc_phy_stopplayback_nphy(pi);
28438
0965ae88 28439 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
a9533e7e 28440
7383141b 28441 udelay(20);
a9533e7e 28442 int_val =
e868ab03 28443 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
a9533e7e
HP
28444 1);
28445 wlc_phy_stopplayback_nphy(pi);
28446 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28447
28448 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28449 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28450 0, 0x3, 1,
28451 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28452 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28453 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28454 }
28455
28456 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28457
28458 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
e868ab03 28459 (u8) ((int_val >> 24) & 0xff);
a9533e7e 28460 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
e868ab03 28461 (u8) ((int_val >> 24) & 0xff);
a9533e7e
HP
28462
28463 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
e868ab03 28464 (u8) ((int_val >> 8) & 0xff);
a9533e7e 28465 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
e868ab03 28466 (u8) ((int_val >> 8) & 0xff);
a9533e7e
HP
28467 } else {
28468 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
e868ab03 28469 (u8) ((int_val >> 24) & 0xff);
a9533e7e
HP
28470
28471 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
e868ab03 28472 (u8) ((int_val >> 8) & 0xff);
a9533e7e
HP
28473
28474 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
e868ab03 28475 (u8) ((int_val >> 16) & 0xff);
a9533e7e 28476 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
e868ab03 28477 (u8) ((int_val) & 0xff);
a9533e7e
HP
28478 }
28479
28480}
28481
7cc4a4c0 28482static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi)
a9533e7e 28483{
66cbd3ab 28484 u32 idx;
e59fe083 28485 s16 a1[2], b0[2], b1[2];
562c8850 28486 s8 target_pwr_qtrdbm[2];
3e26416e 28487 s32 num, den, pwr_est;
e868ab03
GKH
28488 u8 chan_freq_range;
28489 u8 idle_tssi[2];
66cbd3ab
GKH
28490 u32 tbl_id, tbl_len, tbl_offset;
28491 u32 regval[64];
e868ab03 28492 u8 core;
a9533e7e
HP
28493
28494 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28495 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28496 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
7383141b 28497 udelay(1);
a9533e7e
HP
28498 }
28499
28500 if (pi->phyhang_avoid)
0f0881b0 28501 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28502
28503 or_phy_reg(pi, 0x122, (0x1 << 0));
28504
28505 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
7d4df48e 28506 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
a9533e7e
HP
28507 } else {
28508
28509 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28510 }
28511
28512 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28513 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28514
28515 if (pi->sh->sromrev < 4) {
28516 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28517 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28518 target_pwr_qtrdbm[0] = 13 * 4;
28519 target_pwr_qtrdbm[1] = 13 * 4;
28520 a1[0] = -424;
28521 a1[1] = -424;
28522 b0[0] = 5612;
28523 b0[1] = 5612;
28524 b1[1] = -1393;
28525 b1[0] = -1393;
28526 } else {
28527
28528 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28529 switch (chan_freq_range) {
28530 case WL_CHAN_FREQ_RANGE_2G:
28531 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28532 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28533 target_pwr_qtrdbm[0] =
28534 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28535 target_pwr_qtrdbm[1] =
28536 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28537 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28538 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28539 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28540 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28541 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28542 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28543 break;
28544 case WL_CHAN_FREQ_RANGE_5GL:
28545 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28546 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28547 target_pwr_qtrdbm[0] =
28548 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28549 target_pwr_qtrdbm[1] =
28550 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28551 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28552 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28553 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28554 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28555 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28556 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28557 break;
28558 case WL_CHAN_FREQ_RANGE_5GM:
28559 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28560 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28561 target_pwr_qtrdbm[0] =
28562 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28563 target_pwr_qtrdbm[1] =
28564 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28565 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28566 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28567 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28568 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28569 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28570 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28571 break;
28572 case WL_CHAN_FREQ_RANGE_5GH:
28573 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28574 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28575 target_pwr_qtrdbm[0] =
28576 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28577 target_pwr_qtrdbm[1] =
28578 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28579 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28580 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28581 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28582 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28583 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28584 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28585 break;
28586 default:
28587 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28588 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28589 target_pwr_qtrdbm[0] = 13 * 4;
28590 target_pwr_qtrdbm[1] = 13 * 4;
28591 a1[0] = -424;
28592 a1[1] = -424;
28593 b0[0] = 5612;
28594 b0[1] = 5612;
28595 b1[1] = -1393;
28596 b1[0] = -1393;
28597 break;
28598 }
28599 }
28600
562c8850
GKH
28601 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
28602 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
a9533e7e
HP
28603
28604 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28605 if (pi->srom_fem2g.tssipos) {
28606 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28607 }
28608
28609 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28610 for (core = 0; core <= 1; core++) {
28611 if (PHY_IPA(pi)) {
28612
28613 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28614 WRITE_RADIO_REG3(pi, RADIO_2057,
28615 TX, core,
28616 TX_SSI_MUX,
28617 0xe);
28618 } else {
28619 WRITE_RADIO_REG3(pi, RADIO_2057,
28620 TX, core,
28621 TX_SSI_MUX,
28622 0xc);
28623 }
28624 } else {
28625 }
28626 }
28627 } else {
28628 if (PHY_IPA(pi)) {
28629
28630 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28631 RADIO_2056_TX0,
28632 (CHSPEC_IS5G
28633 (pi->
28634 radio_chanspec)) ? 0xc : 0xe);
28635 write_radio_reg(pi,
28636 RADIO_2056_TX_TX_SSI_MUX |
28637 RADIO_2056_TX1,
28638 (CHSPEC_IS5G
28639 (pi->
28640 radio_chanspec)) ? 0xc : 0xe);
28641 } else {
28642
28643 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28644 RADIO_2056_TX0, 0x11);
28645 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28646 RADIO_2056_TX1, 0x11);
28647 }
28648 }
28649 }
28650
28651 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28652 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28653 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
7383141b 28654 udelay(1);
a9533e7e
HP
28655 }
28656
28657 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28658 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28659 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28660 } else {
28661 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28662 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28663 }
28664
28665 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28666 mod_phy_reg(pi, 0x222, (0xff << 0),
28667 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28668 } else if (NREV_GT(pi->pubpi.phy_rev, 1)) {
28669 mod_phy_reg(pi, 0x222, (0xff << 0),
28670 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28671 }
28672
28673 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28674 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28675
28676 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28677
28678 write_phy_reg(pi, 0x1e9,
28679 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28680
28681 write_phy_reg(pi, 0x1ea,
28682 (target_pwr_qtrdbm[0] << 0) |
28683 (target_pwr_qtrdbm[1] << 8));
28684
28685 tbl_len = 64;
28686 tbl_offset = 0;
28687 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28688 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28689
28690 for (idx = 0; idx < tbl_len; idx++) {
28691 num =
28692 8 * (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28693 den = 32768 + a1[tbl_id - 26] * idx;
3ea2f4d6 28694 pwr_est = max(((4 * num + den / 2) / den), -8);
a9533e7e
HP
28695 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28696 if (idx <=
28697 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28698 pwr_est =
3ea2f4d6 28699 max(pwr_est,
a9533e7e
HP
28700 target_pwr_qtrdbm[tbl_id - 26] +
28701 1);
28702 }
66cbd3ab 28703 regval[idx] = (u32) pwr_est;
a9533e7e
HP
28704 }
28705 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28706 regval);
28707 }
28708
28709 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28710 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28711 pi->adj_pwr_tbl_nphy);
28712 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28713 pi->adj_pwr_tbl_nphy);
28714
28715 if (pi->phyhang_avoid)
0965ae88 28716 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
28717}
28718
7cc4a4c0 28719static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi)
a9533e7e 28720{
90ea2296
JC
28721 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28722 (0x1 << 14) | (0x1 << 13));
a9533e7e
HP
28723}
28724
e868ab03 28725static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core)
a9533e7e 28726{
7d4df48e 28727 u16 tmp;
a9533e7e
HP
28728 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28729
28730 tmp = (tmp & (0x7f << 8)) >> 8;
e868ab03 28731 return (u8) tmp;
a9533e7e
HP
28732}
28733
28734static void
e868ab03 28735wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0, u8 idx1)
a9533e7e
HP
28736{
28737 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28738
28739 if (NREV_GT(pi->pubpi.phy_rev, 1))
28740 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28741}
28742
7d4df48e 28743u16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi)
a9533e7e 28744{
7d4df48e
GKH
28745 u16 tmp;
28746 u16 pwr_idx[2];
a9533e7e
HP
28747
28748 if (wlc_phy_txpwr_ison_nphy(pi)) {
28749 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28750 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28751
28752 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28753 } else {
28754 tmp =
28755 ((pi->nphy_txpwrindex[PHY_CORE_0].
28756 index_internal & 0xff) << 8) | (pi->
28757 nphy_txpwrindex
28758 [PHY_CORE_1].
28759 index_internal & 0xff);
28760 }
28761
28762 return tmp;
28763}
28764
7cc4a4c0 28765void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi)
a9533e7e
HP
28766{
28767 if (PHY_IPA(pi)
28768 && (pi->nphy_force_papd_cal
28769 || (wlc_phy_txpwr_ison_nphy(pi)
28770 &&
66cbd3ab 28771 (((u32)
a9533e7e
HP
28772 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28773 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
66cbd3ab 28774 || ((u32)
a9533e7e
HP
28775 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28776 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4))))) {
0f0881b0 28777 wlc_phy_a4(pi, true);
a9533e7e
HP
28778 }
28779}
28780
e868ab03 28781void wlc_phy_txpwrctrl_enable_nphy(phy_info_t *pi, u8 ctrl_type)
a9533e7e 28782{
7d4df48e 28783 u16 mask = 0, val = 0, ishw = 0;
e868ab03 28784 u8 ctr;
a9533e7e 28785 uint core;
66cbd3ab
GKH
28786 u32 tbl_offset;
28787 u32 tbl_len;
7d4df48e 28788 u16 regval[84];
a9533e7e
HP
28789
28790 if (pi->phyhang_avoid)
0f0881b0 28791 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28792
28793 switch (ctrl_type) {
28794 case PHY_TPC_HW_OFF:
28795 case PHY_TPC_HW_ON:
28796 pi->nphy_txpwrctrl = ctrl_type;
28797 break;
28798 default:
28799 break;
28800 }
28801
28802 if (ctrl_type == PHY_TPC_HW_OFF) {
28803 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28804
28805 if (wlc_phy_txpwr_ison_nphy(pi)) {
28806 for (core = 0; core < pi->pubpi.phy_corenum;
28807 core++)
28808 pi->nphy_txpwr_idx[core] =
28809 wlc_phy_txpwr_idx_cur_get_nphy(pi,
e868ab03 28810 (u8)
a9533e7e
HP
28811 core);
28812 }
28813
28814 }
28815
28816 tbl_len = 84;
28817 tbl_offset = 64;
28818 for (ctr = 0; ctr < tbl_len; ctr++) {
28819 regval[ctr] = 0;
28820 }
28821 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28822 regval);
28823 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28824 regval);
28825
28826 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28827
28828 and_phy_reg(pi, 0x1e7,
7d4df48e 28829 (u16) (~((0x1 << 15) |
a9533e7e
HP
28830 (0x1 << 14) | (0x1 << 13))));
28831 } else {
28832 and_phy_reg(pi, 0x1e7,
7d4df48e 28833 (u16) (~((0x1 << 14) | (0x1 << 13))));
a9533e7e
HP
28834 }
28835
28836 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28837 or_phy_reg(pi, 0x8f, (0x1 << 8));
28838 or_phy_reg(pi, 0xa5, (0x1 << 8));
28839 } else {
28840 or_phy_reg(pi, 0xa5, (0x1 << 14));
28841 }
28842
28843 if (NREV_IS(pi->pubpi.phy_rev, 2))
28844 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28845 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28846 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28847
28848 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28849 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28850 MHF1_IQSWAP_WAR, WLC_BAND_ALL);
28851
28852 } else {
28853
28854 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28855 8, pi->adj_pwr_tbl_nphy);
28856 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28857 8, pi->adj_pwr_tbl_nphy);
28858
28859 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28860 mask = (0x1 << 14) | (0x1 << 13);
28861 val = (ishw << 14) | (ishw << 13);
28862
28863 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28864 mask |= (0x1 << 15);
28865 val |= (ishw << 15);
28866 }
28867
28868 mod_phy_reg(pi, 0x1e7, mask, val);
28869
28870 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28871 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28872 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28873 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28874 } else {
28875 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28876 if (NREV_GT(pi->pubpi.phy_rev, 1))
28877 mod_phy_reg(pi, 0x222,
28878 (0xff << 0), 0x64);
28879 }
28880 }
28881
28882 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28883 if ((pi->nphy_txpwr_idx[0] != 128)
28884 && (pi->nphy_txpwr_idx[1] != 128)) {
28885 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28886 pi->
28887 nphy_txpwr_idx
28888 [0],
28889 pi->
28890 nphy_txpwr_idx
28891 [1]);
28892 }
28893 }
28894
28895 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28896 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28897 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28898 } else {
28899 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28900 }
28901
28902 if (NREV_IS(pi->pubpi.phy_rev, 2))
28903 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28904 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28905 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28906
28907 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28908 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28909 0x0, WLC_BAND_ALL);
28910
28911 if (PHY_IPA(pi)) {
28912 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28913 0x29b, (0x1 << 2), (0) << 2);
28914
28915 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28916 0x29b, (0x1 << 2), (0) << 2);
28917
28918 }
28919
28920 }
28921
28922 if (pi->phyhang_avoid)
0965ae88 28923 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
28924}
28925
28926void
562c8850 28927wlc_phy_txpwr_index_nphy(phy_info_t *pi, u8 core_mask, s8 txpwrindex,
a9533e7e
HP
28928 bool restore_cals)
28929{
e868ab03 28930 u8 core, txpwrctl_tbl;
7d4df48e
GKH
28931 u16 tx_ind0, iq_ind0, lo_ind0;
28932 u16 m1m2;
66cbd3ab 28933 u32 txgain;
7d4df48e 28934 u16 rad_gain, dac_gain;
e868ab03 28935 u8 bbmult;
66cbd3ab 28936 u32 iqcomp;
7d4df48e 28937 u16 iqcomp_a, iqcomp_b;
66cbd3ab 28938 u32 locomp;
7d4df48e 28939 u16 tmpval;
e868ab03 28940 u8 tx_pwr_ctrl_state;
3e26416e 28941 s32 rfpwr_offset;
7d4df48e 28942 u16 regval[2];
a9533e7e
HP
28943
28944 if (pi->phyhang_avoid)
0f0881b0 28945 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28946
28947 tx_ind0 = 192;
28948 iq_ind0 = 320;
28949 lo_ind0 = 448;
28950
28951 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28952
28953 if ((core_mask & (1 << core)) == 0) {
28954 continue;
28955 }
28956
28957 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28958
28959 if (txpwrindex < 0) {
28960 if (pi->nphy_txpwrindex[core].index < 0) {
28961
28962 continue;
28963 }
28964
28965 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28966 mod_phy_reg(pi, 0x8f,
28967 (0x1 << 8),
28968 pi->nphy_txpwrindex[core].
28969 AfectrlOverride);
28970 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28971 pi->nphy_txpwrindex[core].
28972 AfectrlOverride);
28973 } else {
28974 mod_phy_reg(pi, 0xa5,
28975 (0x1 << 14),
28976 pi->nphy_txpwrindex[core].
28977 AfectrlOverride);
28978 }
28979
28980 write_phy_reg(pi, (core == PHY_CORE_0) ?
28981 0xaa : 0xab,
28982 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28983
28984 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28985 &pi->nphy_txpwrindex[core].
28986 rad_gain);
28987
28988 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28989 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28990 m1m2 |= ((core == PHY_CORE_0) ?
28991 (pi->nphy_txpwrindex[core].bbmult << 8) :
28992 (pi->nphy_txpwrindex[core].bbmult << 0));
28993 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28994
28995 if (restore_cals) {
28996
28997 wlc_phy_table_write_nphy(pi, 15, 2,
28998 (80 + 2 * core), 16,
28999 (void *)&pi->
29000 nphy_txpwrindex[core].
29001 iqcomp_a);
29002
29003 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29004 16,
29005 &pi->
29006 nphy_txpwrindex[core].
29007 locomp);
29008 wlc_phy_table_write_nphy(pi, 15, 1, (93 + core),
29009 16,
29010 (void *)&pi->
29011 nphy_txpwrindex[core].
29012 locomp);
29013 }
29014
29015 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
29016
29017 pi->nphy_txpwrindex[core].index_internal =
29018 pi->nphy_txpwrindex[core].index_internal_save;
29019 } else {
29020
29021 if (pi->nphy_txpwrindex[core].index < 0) {
29022
29023 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29024 mod_phy_reg(pi, 0x8f,
29025 (0x1 << 8),
29026 pi->nphy_txpwrindex[core].
29027 AfectrlOverride);
29028 mod_phy_reg(pi, 0xa5, (0x1 << 8),
29029 pi->nphy_txpwrindex[core].
29030 AfectrlOverride);
29031 } else {
29032 pi->nphy_txpwrindex[core].
29033 AfectrlOverride =
29034 read_phy_reg(pi, 0xa5);
29035 }
29036
29037 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
29038 read_phy_reg(pi,
29039 (core ==
29040 PHY_CORE_0) ? 0xaa : 0xab);
29041
29042 wlc_phy_table_read_nphy(pi, 7, 1,
29043 (0x110 + core), 16,
29044 &pi->
29045 nphy_txpwrindex[core].
29046 rad_gain);
29047
29048 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
29049 &tmpval);
29050 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
29051 tmpval &= 0xff;
29052 pi->nphy_txpwrindex[core].bbmult =
e868ab03 29053 (u8) tmpval;
a9533e7e
HP
29054
29055 wlc_phy_table_read_nphy(pi, 15, 2,
29056 (80 + 2 * core), 16,
29057 (void *)&pi->
29058 nphy_txpwrindex[core].
29059 iqcomp_a);
29060
29061 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
29062 16,
29063 (void *)&pi->
29064 nphy_txpwrindex[core].
29065 locomp);
29066
29067 pi->nphy_txpwrindex[core].index_internal_save =
29068 pi->nphy_txpwrindex[core].index_internal;
29069 }
29070
29071 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
29072 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
29073
29074 if (NREV_IS(pi->pubpi.phy_rev, 1))
29075 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
29076
29077 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29078 (tx_ind0 + txpwrindex), 32,
29079 &txgain);
29080
29081 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29082 rad_gain =
29083 (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
29084 } else {
29085 rad_gain =
29086 (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
29087 }
29088 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
29089 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
29090
29091 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29092 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
29093 0xa5), (0x1 << 8), (0x1 << 8));
29094 } else {
29095 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
29096 }
29097 write_phy_reg(pi, (core == PHY_CORE_0) ?
29098 0xaa : 0xab, dac_gain);
29099
29100 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
29101 &rad_gain);
29102
29103 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
29104 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
29105 m1m2 |=
29106 ((core ==
29107 PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
29108
29109 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
29110
29111 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29112 (iq_ind0 + txpwrindex), 32,
29113 &iqcomp);
29114 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
29115 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
29116
29117 if (restore_cals) {
7d4df48e
GKH
29118 regval[0] = (u16) iqcomp_a;
29119 regval[1] = (u16) iqcomp_b;
a9533e7e
HP
29120 wlc_phy_table_write_nphy(pi, 15, 2,
29121 (80 + 2 * core), 16,
29122 regval);
29123 }
29124
29125 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29126 (lo_ind0 + txpwrindex), 32,
29127 &locomp);
29128 if (restore_cals) {
29129 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29130 16, &locomp);
29131 }
29132
29133 if (NREV_IS(pi->pubpi.phy_rev, 1))
29134 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
29135
29136 if (PHY_IPA(pi)) {
29137 wlc_phy_table_read_nphy(pi,
29138 (core ==
29139 PHY_CORE_0 ?
29140 NPHY_TBL_ID_CORE1TXPWRCTL
29141 :
29142 NPHY_TBL_ID_CORE2TXPWRCTL),
29143 1, 576 + txpwrindex, 32,
29144 &rfpwr_offset);
29145
29146 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29147 0x29b, (0x1ff << 4),
e59fe083 29148 ((s16) rfpwr_offset) << 4);
a9533e7e
HP
29149
29150 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29151 0x29b, (0x1 << 2), (1) << 2);
29152
29153 }
29154
29155 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
29156 }
29157
29158 pi->nphy_txpwrindex[core].index = txpwrindex;
29159 }
29160
29161 if (pi->phyhang_avoid)
0965ae88 29162 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
29163}
29164
29165void
e868ab03
GKH
29166wlc_phy_txpower_sromlimit_get_nphy(phy_info_t *pi, uint chan, u8 *max_pwr,
29167 u8 txp_rate_idx)
a9533e7e 29168{
e868ab03 29169 u8 chan_freq_range;
a9533e7e
HP
29170
29171 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
29172 switch (chan_freq_range) {
29173 case WL_CHAN_FREQ_RANGE_2G:
29174 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29175 break;
29176 case WL_CHAN_FREQ_RANGE_5GM:
29177 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
29178 break;
29179 case WL_CHAN_FREQ_RANGE_5GL:
29180 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
29181 break;
29182 case WL_CHAN_FREQ_RANGE_5GH:
29183 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
29184 break;
29185 default:
29186 ASSERT(0);
29187 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29188 break;
29189 }
29190
29191 return;
29192}
29193
7cc4a4c0 29194void wlc_phy_stay_in_carriersearch_nphy(phy_info_t *pi, bool enable)
a9533e7e 29195{
7d4df48e 29196 u16 clip_off[] = { 0xffff, 0xffff };
a9533e7e
HP
29197
29198 ASSERT(0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
29199
29200 if (enable) {
29201 if (pi->nphy_deaf_count == 0) {
29202 pi->classifier_state =
29203 wlc_phy_classifier_nphy(pi, 0, 0);
29204 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
29205 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
29206 wlc_phy_clip_det_nphy(pi, 1, clip_off);
29207 }
29208
29209 pi->nphy_deaf_count++;
29210
29211 wlc_phy_resetcca_nphy(pi);
29212
29213 } else {
29214 ASSERT(pi->nphy_deaf_count > 0);
29215
29216 pi->nphy_deaf_count--;
29217
29218 if (pi->nphy_deaf_count == 0) {
29219 wlc_phy_classifier_nphy(pi, (0x7 << 0),
29220 pi->classifier_state);
29221 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
29222 }
29223 }
29224}
29225
7cc4a4c0 29226void wlc_nphy_deaf_mode(phy_info_t *pi, bool mode)
a9533e7e
HP
29227{
29228 wlapi_suspend_mac_and_wait(pi->sh->physhim);
29229
29230 if (mode) {
29231 if (pi->nphy_deaf_count == 0)
0f0881b0 29232 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
29233 } else {
29234 if (pi->nphy_deaf_count > 0)
0965ae88 29235 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
29236 }
29237 wlapi_enable_mac(pi->sh->physhim);
29238}