]> bbs.cooldavid.org Git - net-next-2.6.git/blame - drivers/staging/brcm80211/phy/wlc_phy_n.c
Staging: brcm80211: remove BCMATTACHFN macro
[net-next-2.6.git] / drivers / staging / brcm80211 / phy / wlc_phy_n.c
CommitLineData
a9533e7e
HP
1/*
2 * Copyright (c) 2010 Broadcom Corporation
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17#include <wlc_cfg.h>
3327989a
BR
18#include <typedefs.h>
19#include <linux/kernel.h>
20#include <linux/string.h>
21#include <linuxver.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
28#include <wlc_phy_radio.h>
29#include <wlc_phy_int.h>
30#include <wlc_phyreg_n.h>
31#include <wlc_phytbl_n.h>
32
33#define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
34 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
35 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1))
36#define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
37 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
38 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1), value);
39#define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
40 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value);
41
42#define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
43 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
44 radio_type##_##jspace##1##_##reg_name));
45#define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
46 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
47 radio_type##_##jspace##1##_##reg_name), value);
48#define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
49 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
50 radio_type##_##reg_name##_##jspace##1));
51#define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
52 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
53 radio_type##_##reg_name##_##jspace##1), value);
54
55#define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
56#define NPHY_ACI_CHANNEL_DELTA 5
57#define NPHY_ACI_CHANNEL_SKIP 4
58#define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
59#define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
60#define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
61#define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
62#define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
63#define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
64
65#define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
66
67#define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
68
69#define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
70
71#define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
72
73#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
74
75#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
76
77#define NPHY_NOISE_NOASSOC_ENTER_TH 400
78
79#define NPHY_NOISE_ASSOC_ENTER_TH 400
80
81#define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
82
83#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
84#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
85
86#define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
87
88#define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
89
90#define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
91
92#define NPHY_RSSICAL_MAXREAD 31
93
94#define NPHY_RSSICAL_NPOLL 8
95#define NPHY_RSSICAL_MAXD (1<<20)
96#define NPHY_MIN_RXIQ_PWR 2
97
98#define NPHY_RSSICAL_W1_TARGET 25
99#define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
100#define NPHY_RSSICAL_NB_TARGET 0
101
102#define NPHY_RSSICAL_W1_TARGET_REV3 29
103#define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
104
105#define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
106#define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
107#define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
108#define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - NPHY_RSSICAL_MAXREAD)
109#define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
110#define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - NPHY_RSSICAL_MAXREAD)
562c8850 111#define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
a9533e7e
HP
112#define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
113 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
114#define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
115 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
116#define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
117 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
118
119#define NPHY_IQCAL_NUMGAINS 9
120#define NPHY_N_GCTL 0x66
121
122#define NPHY_PAPD_EPS_TBL_SIZE 64
123#define NPHY_PAPD_SCL_TBL_SIZE 64
124#define NPHY_NUM_DIG_FILT_COEFFS 15
125
126#define NPHY_PAPD_COMP_OFF 0
127#define NPHY_PAPD_COMP_ON 1
128
129#define NPHY_SROM_TEMPSHIFT 32
130#define NPHY_SROM_MAXTEMPOFFSET 16
131#define NPHY_SROM_MINTEMPOFFSET -16
132
133#define NPHY_CAL_MAXTEMPDELTA 64
134
135#define NPHY_NOISEVAR_TBLLEN40 256
136#define NPHY_NOISEVAR_TBLLEN20 128
137
138#define NPHY_ANARXLPFBW_REDUCTIONFACT 7
139
140#define NPHY_ADJUSTED_MINCRSPOWER 0x1e
141
142typedef struct _nphy_iqcal_params {
7d4df48e
GKH
143 u16 txlpf;
144 u16 txgm;
145 u16 pga;
146 u16 pad;
147 u16 ipa;
148 u16 cal_gain;
149 u16 ncorr[5];
a9533e7e
HP
150} nphy_iqcal_params_t;
151
152typedef struct _nphy_txiqcal_ladder {
e868ab03
GKH
153 u8 percent;
154 u8 g_env;
a9533e7e
HP
155} nphy_txiqcal_ladder_t;
156
157typedef struct {
158 nphy_txgains_t gains;
159 bool useindex;
e868ab03 160 u8 index;
a9533e7e
HP
161} nphy_ipa_txcalgains_t;
162
163typedef struct nphy_papd_restore_state_t {
7d4df48e
GKH
164 u16 fbmix[2];
165 u16 vga_master[2];
166 u16 intpa_master[2];
167 u16 afectrl[2];
168 u16 afeoverride[2];
169 u16 pwrup[2];
170 u16 atten[2];
171 u16 mm;
a9533e7e
HP
172} nphy_papd_restore_state;
173
174typedef struct _nphy_ipa_txrxgain {
7d4df48e
GKH
175 u16 hpvga;
176 u16 lpf_biq1;
177 u16 lpf_biq0;
178 u16 lna2;
179 u16 lna1;
562c8850 180 s8 txpwrindex;
a9533e7e
HP
181} nphy_ipa_txrxgain_t;
182
183#define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
184
185nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz[] = { {0, 0, 0, 0, 0, 100},
186{0, 0, 0, 0, 0, 50},
187{0, 0, 0, 0, 0, -1},
188{0, 0, 0, 3, 0, -1},
189{0, 0, 3, 3, 0, -1},
190{0, 2, 3, 3, 0, -1}
191};
192
193nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz[] = { {0, 0, 0, 0, 0, 128},
194{0, 0, 0, 0, 0, 70},
195{0, 0, 0, 0, 0, 20},
196{0, 0, 0, 3, 0, 20},
197{0, 0, 3, 3, 0, 20},
198{0, 2, 3, 3, 0, 20}
199};
200
201nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = { {0, 0, 0, 0, 0, 100},
202{0, 0, 0, 0, 0, 50},
203{0, 0, 0, 0, 0, -1},
204{0, 0, 0, 3, 0, -1},
205{0, 0, 3, 3, 0, -1},
206{0, 0, 5, 3, 0, -1}
207};
208
209nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = { {0, 0, 0, 0, 0, 10},
210{0, 0, 0, 1, 0, 10},
211{0, 0, 1, 2, 0, 10},
212{0, 0, 1, 3, 0, 10},
213{0, 0, 4, 3, 0, 10},
214{0, 0, 6, 3, 0, 10}
215};
216
217#define NPHY_RXCAL_TONEAMP 181
218#define NPHY_RXCAL_TONEFREQ_40MHz 4000
219#define NPHY_RXCAL_TONEFREQ_20MHz 2000
220
221enum {
222 NPHY_RXCAL_GAIN_INIT = 0,
223 NPHY_RXCAL_GAIN_UP,
224 NPHY_RXCAL_GAIN_DOWN
225};
226
227#define wlc_phy_get_papd_nphy(pi) \
228 (read_phy_reg((pi), 0x1e7) & \
229 ((0x1 << 15) | \
230 (0x1 << 14) | \
231 (0x1 << 13)))
232
233#define TXFILT_SHAPING_OFDM20 0
234#define TXFILT_SHAPING_OFDM40 1
235#define TXFILT_SHAPING_CCK 2
236#define TXFILT_DEFAULT_OFDM20 3
237#define TXFILT_DEFAULT_OFDM40 4
238
7d4df48e 239u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
a9533e7e
HP
240 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
241 230, -44, 230, 201, -191, 201},
242 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
243 26, 34, -32, 34},
244 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
245 121, -73, 121, 91, 124, 91},
246 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
247 151, 301, 151, 602, -752, 602},
248 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
249 12, 25, 12, 13, 27, 13},
250 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
251 230, -44, 230, 201, -191, 201},
252 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
253 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
254};
255
256typedef struct _chan_info_nphy_2055 {
7d4df48e
GKH
257 u16 chan;
258 u16 freq;
a9533e7e 259 uint unknown;
e868ab03
GKH
260 u8 RF_pll_ref;
261 u8 RF_rf_pll_mod1;
262 u8 RF_rf_pll_mod0;
263 u8 RF_vco_cap_tail;
264 u8 RF_vco_cal1;
265 u8 RF_vco_cal2;
266 u8 RF_pll_lf_c1;
267 u8 RF_pll_lf_r1;
268 u8 RF_pll_lf_c2;
269 u8 RF_lgbuf_cen_buf;
270 u8 RF_lgen_tune1;
271 u8 RF_lgen_tune2;
272 u8 RF_core1_lgbuf_a_tune;
273 u8 RF_core1_lgbuf_g_tune;
274 u8 RF_core1_rxrf_reg1;
275 u8 RF_core1_tx_pga_pad_tn;
276 u8 RF_core1_tx_mx_bgtrim;
277 u8 RF_core2_lgbuf_a_tune;
278 u8 RF_core2_lgbuf_g_tune;
279 u8 RF_core2_rxrf_reg1;
280 u8 RF_core2_tx_pga_pad_tn;
281 u8 RF_core2_tx_mx_bgtrim;
7d4df48e
GKH
282 u16 PHY_BW1a;
283 u16 PHY_BW2;
284 u16 PHY_BW3;
285 u16 PHY_BW4;
286 u16 PHY_BW5;
287 u16 PHY_BW6;
a9533e7e
HP
288} chan_info_nphy_2055_t;
289
290typedef struct _chan_info_nphy_radio205x {
7d4df48e
GKH
291 u16 chan;
292 u16 freq;
e868ab03
GKH
293 u8 RF_SYN_pll_vcocal1;
294 u8 RF_SYN_pll_vcocal2;
295 u8 RF_SYN_pll_refdiv;
296 u8 RF_SYN_pll_mmd2;
297 u8 RF_SYN_pll_mmd1;
298 u8 RF_SYN_pll_loopfilter1;
299 u8 RF_SYN_pll_loopfilter2;
300 u8 RF_SYN_pll_loopfilter3;
301 u8 RF_SYN_pll_loopfilter4;
302 u8 RF_SYN_pll_loopfilter5;
303 u8 RF_SYN_reserved_addr27;
304 u8 RF_SYN_reserved_addr28;
305 u8 RF_SYN_reserved_addr29;
306 u8 RF_SYN_logen_VCOBUF1;
307 u8 RF_SYN_logen_MIXER2;
308 u8 RF_SYN_logen_BUF3;
309 u8 RF_SYN_logen_BUF4;
310 u8 RF_RX0_lnaa_tune;
311 u8 RF_RX0_lnag_tune;
312 u8 RF_TX0_intpaa_boost_tune;
313 u8 RF_TX0_intpag_boost_tune;
314 u8 RF_TX0_pada_boost_tune;
315 u8 RF_TX0_padg_boost_tune;
316 u8 RF_TX0_pgaa_boost_tune;
317 u8 RF_TX0_pgag_boost_tune;
318 u8 RF_TX0_mixa_boost_tune;
319 u8 RF_TX0_mixg_boost_tune;
320 u8 RF_RX1_lnaa_tune;
321 u8 RF_RX1_lnag_tune;
322 u8 RF_TX1_intpaa_boost_tune;
323 u8 RF_TX1_intpag_boost_tune;
324 u8 RF_TX1_pada_boost_tune;
325 u8 RF_TX1_padg_boost_tune;
326 u8 RF_TX1_pgaa_boost_tune;
327 u8 RF_TX1_pgag_boost_tune;
328 u8 RF_TX1_mixa_boost_tune;
329 u8 RF_TX1_mixg_boost_tune;
7d4df48e
GKH
330 u16 PHY_BW1a;
331 u16 PHY_BW2;
332 u16 PHY_BW3;
333 u16 PHY_BW4;
334 u16 PHY_BW5;
335 u16 PHY_BW6;
a9533e7e
HP
336} chan_info_nphy_radio205x_t;
337
338typedef struct _chan_info_nphy_radio2057 {
7d4df48e
GKH
339 u16 chan;
340 u16 freq;
e868ab03
GKH
341 u8 RF_vcocal_countval0;
342 u8 RF_vcocal_countval1;
343 u8 RF_rfpll_refmaster_sparextalsize;
344 u8 RF_rfpll_loopfilter_r1;
345 u8 RF_rfpll_loopfilter_c2;
346 u8 RF_rfpll_loopfilter_c1;
347 u8 RF_cp_kpd_idac;
348 u8 RF_rfpll_mmd0;
349 u8 RF_rfpll_mmd1;
350 u8 RF_vcobuf_tune;
351 u8 RF_logen_mx2g_tune;
352 u8 RF_logen_mx5g_tune;
353 u8 RF_logen_indbuf2g_tune;
354 u8 RF_logen_indbuf5g_tune;
355 u8 RF_txmix2g_tune_boost_pu_core0;
356 u8 RF_pad2g_tune_pus_core0;
357 u8 RF_pga_boost_tune_core0;
358 u8 RF_txmix5g_boost_tune_core0;
359 u8 RF_pad5g_tune_misc_pus_core0;
360 u8 RF_lna2g_tune_core0;
361 u8 RF_lna5g_tune_core0;
362 u8 RF_txmix2g_tune_boost_pu_core1;
363 u8 RF_pad2g_tune_pus_core1;
364 u8 RF_pga_boost_tune_core1;
365 u8 RF_txmix5g_boost_tune_core1;
366 u8 RF_pad5g_tune_misc_pus_core1;
367 u8 RF_lna2g_tune_core1;
368 u8 RF_lna5g_tune_core1;
7d4df48e
GKH
369 u16 PHY_BW1a;
370 u16 PHY_BW2;
371 u16 PHY_BW3;
372 u16 PHY_BW4;
373 u16 PHY_BW5;
374 u16 PHY_BW6;
a9533e7e
HP
375} chan_info_nphy_radio2057_t;
376
377typedef struct _chan_info_nphy_radio2057_rev5 {
7d4df48e
GKH
378 u16 chan;
379 u16 freq;
e868ab03
GKH
380 u8 RF_vcocal_countval0;
381 u8 RF_vcocal_countval1;
382 u8 RF_rfpll_refmaster_sparextalsize;
383 u8 RF_rfpll_loopfilter_r1;
384 u8 RF_rfpll_loopfilter_c2;
385 u8 RF_rfpll_loopfilter_c1;
386 u8 RF_cp_kpd_idac;
387 u8 RF_rfpll_mmd0;
388 u8 RF_rfpll_mmd1;
389 u8 RF_vcobuf_tune;
390 u8 RF_logen_mx2g_tune;
391 u8 RF_logen_indbuf2g_tune;
392 u8 RF_txmix2g_tune_boost_pu_core0;
393 u8 RF_pad2g_tune_pus_core0;
394 u8 RF_lna2g_tune_core0;
395 u8 RF_txmix2g_tune_boost_pu_core1;
396 u8 RF_pad2g_tune_pus_core1;
397 u8 RF_lna2g_tune_core1;
7d4df48e
GKH
398 u16 PHY_BW1a;
399 u16 PHY_BW2;
400 u16 PHY_BW3;
401 u16 PHY_BW4;
402 u16 PHY_BW5;
403 u16 PHY_BW6;
a9533e7e
HP
404} chan_info_nphy_radio2057_rev5_t;
405
406typedef struct nphy_sfo_cfg {
7d4df48e
GKH
407 u16 PHY_BW1a;
408 u16 PHY_BW2;
409 u16 PHY_BW3;
410 u16 PHY_BW4;
411 u16 PHY_BW5;
412 u16 PHY_BW6;
a9533e7e
HP
413} nphy_sfo_cfg_t;
414
415static chan_info_nphy_2055_t chan_info_nphy_2055[] = {
416 {
417 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
418 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
419 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
420 {
421 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
422 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
423 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
424 {
425 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
426 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
427 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
428 {
429 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
430 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
431 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
432 {
433 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
434 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
435 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
436 {
437 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
438 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
439 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
440 {
441 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
442 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
443 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
444 {
445 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
446 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
447 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
448 {
449 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
450 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
451 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
452 {
453 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
454 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
455 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
456 {
457 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
458 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
459 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
460 {
461 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
462 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
463 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
464 {
465 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
466 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
467 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
468 {
469 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
470 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
471 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
472 {
473 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
474 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
475 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
476 {
477 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
478 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
479 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
480 {
481 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
482 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
483 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
484 {
485 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
486 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
487 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
488 {
489 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
490 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
491 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
492 {
493 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
494 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
495 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
496 {
497 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
498 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
499 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
500 {
501 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
502 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
503 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
504 {
505 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
506 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
507 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
508 {
509 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
510 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
511 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
512 {
513 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
514 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
515 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
516 {
517 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
518 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
519 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
520 {
521 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
522 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
523 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
524 {
525 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
526 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
527 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
528 {
529 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
530 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
531 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
532 {
533 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
534 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
535 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
536 {
537 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
538 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
539 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
540 {
541 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
542 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
543 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
544 {
545 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
546 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
547 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
548 {
549 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
550 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
551 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
552 {
553 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
554 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
555 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
556 {
557 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
558 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
559 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
560 {
561 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
562 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
563 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
564 {
565 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
566 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
567 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
568 {
569 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
570 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
571 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
572 {
573 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
574 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
575 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
576 {
577 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
578 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
579 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
580 {
581 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
582 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
583 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
584 {
585 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
586 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
587 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
588 {
589 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
590 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
591 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
592 {
593 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
594 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
595 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
596 {
597 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
598 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
599 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
600 {
601 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
602 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
603 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
604 {
605 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
606 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
607 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
608 {
609 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
610 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
611 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
612 {
613 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
614 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
615 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
616 {
617 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
618 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
619 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
620 {
621 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
622 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
623 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
624 {
625 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
626 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
627 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
628 {
629 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
630 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
631 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
632 {
633 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
634 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
635 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
636 {
637 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
638 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
639 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
640 {
641 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
642 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
643 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
644 {
645 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
646 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
647 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
648 {
649 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
650 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
651 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
652 {
653 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
654 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
655 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
656 {
657 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
658 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
659 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
660 {
661 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
662 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
663 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
664 {
665 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
666 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
667 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
668 {
669 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
670 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
671 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
672 {
673 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
674 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
675 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
676 {
677 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
678 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
679 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
680 {
681 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
682 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
683 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
684 {
685 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
686 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
687 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
688 {
689 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
690 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
691 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
692 {
693 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
694 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
695 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
696 {
697 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
698 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
699 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
700 {
701 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
702 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
703 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
704 {
705 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
706 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
707 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
708 {
709 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
710 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
711 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
712 {
713 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
714 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
715 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
716 {
717 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
718 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
719 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
720 {
721 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
722 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
723 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
724 {
725 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
726 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
727 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
728 {
729 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
730 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
731 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
732 {
733 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
734 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
735 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
736 {
737 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
738 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
739 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
740 {
741 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
742 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
743 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
744 {
745 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
746 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
747 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
748 {
749 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
750 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
751 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
752 {
753 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
754 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
755 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
756 {
757 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
758 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
759 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
760 {
761 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
762 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
763 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
764 {
765 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
766 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
767 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
768 {
769 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
770 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
771 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
772 {
773 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
774 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
775 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
776 {
777 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
778 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
779 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
780 {
781 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
782 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
783 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
784 {
785 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
786 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
787 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
788 {
789 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
790 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
791 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
792 {
793 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
794 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
795 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
796 {
797 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
798 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
799 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
800 {
801 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
802 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
803 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
804 {
805 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
806 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
807 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
808 {
809 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
810 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
811 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
812 {
813 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
814 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
815 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
816 {
817 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
818 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
819 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
820 {
821 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
822 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
823 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
824 {
825 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
826 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
827 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
828 {
829 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
830 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
831 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
832 {
833 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
834 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
835 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
836 {
837 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
838 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
839 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
840 {
841 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
842 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
843 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
844 {
845 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
846 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
847 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
848 {
849 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
850 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
851 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
852 {
853 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
854 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
855 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
856 {
857 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
858 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
859 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
860 {
861 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
862 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
863 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
864 {
865 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
866 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
867 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
868 {
869 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
870 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
871 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
872 {
873 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
874 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
875 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
876 {
877 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
878 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
879 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
880 {
881 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
882 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
883 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
884 {
885 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
886 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
887 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
888 {
889 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
890 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
891 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
892 {
893 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
894 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
895 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
896 {
897 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
898 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
899 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
900 {
901 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
902 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
903 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
904 {
905 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
906 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
907 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
908 {
909 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
910 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
911 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
912};
913
914static chan_info_nphy_radio205x_t chan_info_nphyrev3_2056[] = {
915 {
916 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
917 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
918 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
919 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
920 {
921 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
922 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
923 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
924 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
925 {
926 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
927 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
928 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
929 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
930 {
931 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
932 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
933 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
934 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
935 {
936 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
937 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
938 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
939 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
940 {
941 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
942 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
943 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
944 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
945 {
946 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
947 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
948 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
949 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
950 {
951 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
952 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
953 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
954 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
955 {
956 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
957 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
958 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
959 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
960 {
961 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
962 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
963 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
964 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
965 {
966 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
967 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
968 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
969 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
970 {
971 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
972 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
973 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
974 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
975 {
976 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
977 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
978 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
979 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
980 {
981 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
982 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
983 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
984 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
985 {
986 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
987 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
988 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
989 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
990 {
991 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
992 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
993 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
994 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
995 {
996 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
997 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
998 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
999 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1000 {
1001 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1002 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1003 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1004 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1005 {
1006 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1007 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1008 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1009 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1010 {
1011 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1012 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1013 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1014 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1015 {
1016 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1017 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1018 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1019 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1020 {
1021 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1022 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1023 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1024 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1025 {
1026 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1027 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1028 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1029 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1030 {
1031 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1032 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1033 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1034 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1035 {
1036 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1037 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1038 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1039 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1040 {
1041 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1042 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1043 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1044 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1045 {
1046 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1047 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1048 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1049 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1050 {
1051 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1052 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1053 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1054 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1055 {
1056 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1057 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1058 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1059 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1060 {
1061 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1062 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1063 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1064 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1065 {
1066 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1067 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1068 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1069 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1070 {
1071 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1072 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1073 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1074 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1075 {
1076 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1077 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1078 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1079 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1080 {
1081 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1082 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1083 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1084 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1085 {
1086 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1087 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1088 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1089 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1090 {
1091 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1092 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1093 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1094 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1095 {
1096 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1097 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1098 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1099 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1100 {
1101 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1102 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1103 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1104 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1105 {
1106 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1107 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1108 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1109 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1110 {
1111 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1112 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1113 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1114 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1115 {
1116 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1117 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1118 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1119 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1120 {
1121 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1122 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1123 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1124 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1125 {
1126 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1127 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1128 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1129 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1130 {
1131 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1132 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1133 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1134 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1135 {
1136 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1137 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1138 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1139 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1140 {
1141 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1142 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1143 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1144 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1145 {
1146 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1147 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1148 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1149 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1150 {
1151 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1152 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1153 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1154 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1155 {
1156 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1157 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1158 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1159 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1160 {
1161 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1162 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1163 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1164 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1165 {
1166 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1167 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1168 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1169 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1170 {
1171 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1172 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1173 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1174 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1175 {
1176 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1177 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1178 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1179 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1180 {
1181 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1182 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1183 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1184 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1185 {
1186 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1187 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1188 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1189 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1190 {
1191 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1192 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1193 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1194 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1195 {
1196 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1197 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1198 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1199 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1200 {
1201 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1202 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1203 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1204 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1205 {
1206 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1207 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1208 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1209 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1210 {
1211 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1212 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1213 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1214 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1215 {
1216 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1217 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1218 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1219 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1220 {
1221 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1222 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1223 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1224 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1225 {
1226 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1227 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1228 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1229 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1230 {
1231 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1232 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1233 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1234 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1235 {
1236 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1237 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1238 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1239 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1240 {
1241 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1242 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1243 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1244 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1245 {
1246 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1247 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1248 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1249 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1250 {
1251 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1252 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1253 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1254 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1255 {
1256 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1257 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1258 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1259 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1260 {
1261 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1262 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1263 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1264 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1265 {
1266 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1267 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1268 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1269 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1270 {
1271 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1272 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1273 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1274 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1275 {
1276 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1277 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1278 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1279 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1280 {
1281 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1282 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1283 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1284 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1285 {
1286 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1287 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1288 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1289 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1290 {
1291 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1292 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1293 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1294 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1295 {
1296 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1297 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1298 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1299 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1300 {
1301 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1302 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1303 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1304 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1305 {
1306 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1307 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1308 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1309 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1310 {
1311 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1312 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1313 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1314 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1315 {
1316 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1317 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1318 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1319 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1320 {
1321 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1322 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1323 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1324 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1325 {
1326 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1327 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1328 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1329 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1330 {
1331 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1332 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1333 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1334 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1335 {
1336 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1337 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1338 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1339 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1340 {
1341 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1342 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1343 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1344 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1345 {
1346 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1347 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1348 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1349 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1350 {
1351 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1352 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1353 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1354 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1355 {
1356 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1357 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1358 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1359 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1360 {
1361 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1362 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1363 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1364 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1365 {
1366 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1367 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1368 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1369 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1370 {
1371 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1372 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1373 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1374 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1375 {
1376 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1377 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1378 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1379 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1380 {
1381 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1382 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1383 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1384 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1385 {
1386 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1387 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1388 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1389 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1390 {
1391 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1392 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1393 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1394 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1395 {
1396 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1397 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1398 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1399 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1400 {
1401 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1402 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1403 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1404 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1405 {
1406 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1407 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1408 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1409 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1410 {
1411 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1412 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1413 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1414 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1415 {
1416 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1417 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1418 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1419 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1420 {
1421 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1422 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1423 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1424 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1425 {
1426 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1427 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1428 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1429 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1430 {
1431 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1432 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1433 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1434 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1435 {
1436 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1437 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1438 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1439 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1440 {
1441 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1442 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1443 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1444 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1445 {
1446 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1447 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1448 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1449 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1450 {
1451 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1452 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1453 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1454 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1455 {
1456 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1457 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1458 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1459 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1460 {
1461 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1462 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1463 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1464 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1465 {
1466 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1467 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1468 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1469 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1470 {
1471 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1472 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1473 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1474 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1475 {
1476 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1477 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1478 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1479 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1480 {
1481 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1482 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1483 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1484 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1485 {
1486 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1487 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1488 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1489 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1490 {
1491 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1492 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1493 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1494 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1495 {
1496 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1497 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1498 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1499 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1500 {
1501 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1502 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1503 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1504 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1505 {
1506 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1507 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1508 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1509 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1510 {
1511 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1512 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1513 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1514 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1515 {
1516 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1517 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1518 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1519 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1520 {
1521 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1522 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1523 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1524 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1525 {
1526 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1527 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1528 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1529 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1530 {
1531 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1532 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1533 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1534 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1535};
1536
1537static chan_info_nphy_radio205x_t chan_info_nphyrev4_2056_A1[] = {
1538 {
1539 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1540 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1541 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1542 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1543 {
1544 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1545 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1546 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1547 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1548 {
1549 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1550 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1551 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1552 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1553 {
1554 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1555 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1556 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1557 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1558 {
1559 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1560 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1561 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1562 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1563 {
1564 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1565 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1566 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1567 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1568 {
1569 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1570 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1571 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1572 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1573 {
1574 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1575 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1576 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1577 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1578 {
1579 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1580 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1581 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1582 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1583 {
1584 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1585 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1586 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1587 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1588 {
1589 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1590 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1591 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1592 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1593 {
1594 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1595 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1596 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1597 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1598 {
1599 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1600 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1601 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1602 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1603 {
1604 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1605 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1606 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1607 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1608 {
1609 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1610 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1611 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1612 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1613 {
1614 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1615 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1616 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1617 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1618 {
1619 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1620 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1621 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1622 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1623 {
1624 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1625 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1626 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1627 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1628 {
1629 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1630 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1631 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1632 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1633 {
1634 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1635 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1636 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1637 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1638 {
1639 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1640 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1641 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1642 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1643 {
1644 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1645 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1646 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1647 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1648 {
1649 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1650 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1651 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1652 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1653 {
1654 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1655 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1656 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1657 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1658 {
1659 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1660 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1661 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1662 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1663 {
1664 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1665 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1666 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1667 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1668 {
1669 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1670 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1671 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1672 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1673 {
1674 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1675 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1676 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1677 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1678 {
1679 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1680 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1681 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1682 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1683 {
1684 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1685 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1686 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1687 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1688 {
1689 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1690 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1691 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1692 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1693 {
1694 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1695 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1696 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1697 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1698 {
1699 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1700 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1701 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1702 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1703 {
1704 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1705 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1706 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1707 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1708 {
1709 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1710 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1711 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1712 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1713 {
1714 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1715 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1716 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1717 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1718 {
1719 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1720 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1721 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1722 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1723 {
1724 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1725 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1726 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1727 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1728 {
1729 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1730 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1731 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1732 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1733 {
1734 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1735 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1736 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1737 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1738 {
1739 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1740 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1741 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1742 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1743 {
1744 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1745 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1746 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1747 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1748 {
1749 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1750 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1751 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1752 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1753 {
1754 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1755 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1756 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1757 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1758 {
1759 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1760 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1761 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1762 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1763 {
1764 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1765 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1766 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1767 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1768 {
1769 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1770 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1771 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1772 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1773 {
1774 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1775 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1776 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1777 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1778 {
1779 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1780 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1781 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1782 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1783 {
1784 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1785 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1786 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1787 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1788 {
1789 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1790 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1791 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1792 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1793 {
1794 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1795 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1796 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1797 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1798 {
1799 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1800 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1801 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1802 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1803 {
1804 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1805 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1806 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1807 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1808 {
1809 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1810 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1811 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1812 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1813 {
1814 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1815 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1816 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1817 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1818 {
1819 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1820 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1821 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1822 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1823 {
1824 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1825 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1826 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1827 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1828 {
1829 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1830 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1831 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1832 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1833 {
1834 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1835 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1836 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1837 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1838 {
1839 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1840 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1841 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1842 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1843 {
1844 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1845 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1846 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1847 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1848 {
1849 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1850 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1851 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1852 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1853 {
1854 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1855 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1856 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1857 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1858 {
1859 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1860 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1861 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1862 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1863 {
1864 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1865 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1866 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1867 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1868 {
1869 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1870 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1871 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1872 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1873 {
1874 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1875 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1876 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1877 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1878 {
1879 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1880 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1881 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1882 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1883 {
1884 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1885 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1886 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1887 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1888 {
1889 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1890 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1891 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1892 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1893 {
1894 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1895 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1896 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1897 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1898 {
1899 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1900 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1901 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1902 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1903 {
1904 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1905 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1906 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1907 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1908 {
1909 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1910 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1911 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1912 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1913 {
1914 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1915 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1916 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1917 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1918 {
1919 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1920 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1921 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1922 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1923 {
1924 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1925 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1926 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1927 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1928 {
1929 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1930 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1931 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1932 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1933 {
1934 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1935 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1936 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1937 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1938 {
1939 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1940 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1941 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1942 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1943 {
1944 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1945 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1946 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1947 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1948 {
1949 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1950 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1951 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1952 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1953 {
1954 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1955 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1956 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1957 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1958 {
1959 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1960 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1961 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1962 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1963 {
1964 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1965 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1966 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1967 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1968 {
1969 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1970 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1971 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1972 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1973 {
1974 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1975 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1976 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1977 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1978 {
1979 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1980 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1981 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1982 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1983 {
1984 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1985 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1986 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1987 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1988 {
1989 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1990 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1991 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1992 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1993 {
1994 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1995 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1996 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1997 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1998 {
1999 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2000 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2001 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2002 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2003 {
2004 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2005 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2006 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2007 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2008 {
2009 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2010 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2011 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2012 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2013 {
2014 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2015 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2016 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2017 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2018 {
2019 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2020 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2021 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2022 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2023 {
2024 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2025 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2026 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2027 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2028 {
2029 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2030 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2031 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2032 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2033 {
2034 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2035 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2036 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2037 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2038 {
2039 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2040 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2041 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2042 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2043 {
2044 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2045 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2046 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2047 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2048 {
2049 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2050 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2051 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2052 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2053 {
2054 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2055 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2056 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2057 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2058 {
2059 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2060 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2061 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2062 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2063 {
2064 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2065 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2066 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2067 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2068 {
2069 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2070 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2071 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2072 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2073 {
2074 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2075 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2076 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2077 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2078 {
2079 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2080 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2081 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2082 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2083 {
2084 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2085 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2086 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2087 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2088 {
2089 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2090 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2091 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2092 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2093 {
2094 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2095 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2096 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2097 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2098 {
2099 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2100 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2101 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2102 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2103 {
2104 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2105 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2106 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2107 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2108 {
2109 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2110 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2111 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2112 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2113 {
2114 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2115 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2116 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2117 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2118 {
2119 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2120 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2121 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2122 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2123 {
2124 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2125 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2126 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2127 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2128 {
2129 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2130 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2131 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2132 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2133 {
2134 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2135 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2136 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2137 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2138 {
2139 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2140 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2141 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2142 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2143 {
2144 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2145 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2146 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2147 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2148 {
2149 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2150 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2151 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2152 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2153 {
2154 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2155 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2156 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2157 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2158};
2159
2160static chan_info_nphy_radio205x_t chan_info_nphyrev5_2056v5[] = {
2161 {
2162 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2163 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2164 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2165 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2166 {
2167 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2168 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2169 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2170 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2171 {
2172 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2173 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2174 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2175 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2176 {
2177 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2178 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2179 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2180 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2181 {
2182 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2183 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2184 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2185 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2186 {
2187 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2188 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2189 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2190 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2191 {
2192 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2193 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2194 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2195 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2196 {
2197 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2198 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2199 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2200 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2201 {
2202 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2203 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2204 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2205 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2206 {
2207 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2208 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2209 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2210 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2211 {
2212 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2213 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2214 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2215 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2216 {
2217 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2218 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2219 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2220 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2221 {
2222 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2223 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2224 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2225 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2226 {
2227 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2228 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2229 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2230 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2231 {
2232 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2233 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2234 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2235 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2236 {
2237 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2238 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2239 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2240 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2241 {
2242 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2243 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2244 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2245 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2246 {
2247 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2248 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2249 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2250 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2251 {
2252 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2253 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2254 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2255 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2256 {
2257 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2258 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2259 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2260 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2261 {
2262 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2263 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2264 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2265 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2266 {
2267 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2268 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2269 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2270 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2271 {
2272 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2273 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2274 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2275 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2276 {
2277 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2278 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2279 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2280 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2281 {
2282 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2283 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2284 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2285 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2286 {
2287 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2288 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2289 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2290 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2291 {
2292 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2293 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2294 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2295 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2296 {
2297 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2298 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2299 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2300 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2301 {
2302 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2303 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2304 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2305 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2306 {
2307 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2308 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2309 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2310 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2311 {
2312 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2313 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2314 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2315 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2316 {
2317 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2318 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2319 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2320 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2321 {
2322 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2323 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2324 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2325 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2326 {
2327 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2328 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2329 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2330 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2331 {
2332 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2333 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2334 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2335 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2336 {
2337 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2338 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2339 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2340 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2341 {
2342 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2343 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2344 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2345 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2346 {
2347 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2348 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2349 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2350 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2351 {
2352 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2353 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2354 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2355 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2356 {
2357 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2358 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2359 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2360 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2361 {
2362 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2363 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2364 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2365 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2366 {
2367 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2368 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2369 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2370 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2371 {
2372 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2373 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2374 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2375 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2376 {
2377 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2378 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2379 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2380 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2381 {
2382 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2383 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2384 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2385 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2386 {
2387 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2388 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2389 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2390 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2391 {
2392 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2393 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2394 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2395 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2396 {
2397 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2398 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2399 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2400 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2401 {
2402 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2403 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2404 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2405 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2406 {
2407 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2408 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2409 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2410 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2411 {
2412 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2413 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2414 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2415 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2416 {
2417 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2418 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2419 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2420 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2421 {
2422 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2423 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2424 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2425 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2426 {
2427 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2428 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2429 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2430 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2431 {
2432 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2433 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2434 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2435 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2436 {
2437 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2438 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2439 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2440 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2441 {
2442 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2443 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2444 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2445 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2446 {
2447 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2448 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2449 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2450 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2451 {
2452 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2453 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2454 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2455 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2456 {
2457 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2458 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2459 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2460 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2461 {
2462 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2463 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2464 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2465 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2466 {
2467 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2468 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2469 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2470 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2471 {
2472 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2473 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2474 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2475 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2476 {
2477 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2478 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2479 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2480 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2481 {
2482 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2483 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2484 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2485 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2486 {
2487 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2488 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2489 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2490 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2491 {
2492 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2493 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2494 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2495 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2496 {
2497 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2498 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2499 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2500 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2501 {
2502 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2503 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2504 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2505 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2506 {
2507 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2508 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2509 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2510 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2511 {
2512 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2513 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2514 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2515 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2516 {
2517 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2518 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2519 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2520 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2521 {
2522 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2523 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2524 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2525 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2526 {
2527 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2528 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2529 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2530 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2531 {
2532 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2533 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2534 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2535 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2536 {
2537 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2538 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2539 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2540 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2541 {
2542 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2543 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2544 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2545 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2546 {
2547 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2548 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2549 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2550 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2551 {
2552 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2553 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2554 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2555 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2556 {
2557 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2558 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2559 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2560 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2561 {
2562 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2563 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2564 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2565 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2566 {
2567 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2568 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2569 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2570 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2571 {
2572 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2573 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2574 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2575 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2576 {
2577 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2578 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2579 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2580 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2581 {
2582 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2583 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2584 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2585 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2586 {
2587 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2588 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2589 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2590 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2591 {
2592 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2593 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2594 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2595 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2596 {
2597 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2598 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2599 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2600 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2601 {
2602 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2603 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2604 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2605 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2606 {
2607 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2608 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2609 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2610 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2611 {
2612 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2613 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2614 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2615 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2616 {
2617 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2618 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2619 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2620 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2621 {
2622 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2623 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2624 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2625 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2626 {
2627 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2628 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2629 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2630 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2631 {
2632 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2633 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2634 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2635 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2636 {
2637 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2638 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2639 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2640 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2641 {
2642 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2643 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2644 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2645 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2646 {
2647 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2648 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2649 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2650 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2651 {
2652 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2653 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2654 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2655 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2656 {
2657 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2658 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2659 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2660 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2661 {
2662 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2663 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2664 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2665 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2666 {
2667 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2668 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2669 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2670 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2671 {
2672 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2673 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2674 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2675 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2676 {
2677 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2678 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2679 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2680 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2681 {
2682 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2683 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2684 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2685 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2686 {
2687 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2688 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2689 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2690 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2691 {
2692 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2693 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2694 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2695 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2696 {
2697 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2698 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2699 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2700 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2701 {
2702 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2703 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2704 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2705 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2706 {
2707 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2708 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2709 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2710 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2711 {
2712 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2713 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2714 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2715 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2716 {
2717 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2718 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2719 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2720 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2721 {
2722 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2723 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2724 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2725 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2726 {
2727 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2728 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2729 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2730 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2731 {
2732 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2733 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2734 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2735 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2736 {
2737 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2738 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2739 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2740 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2741 {
2742 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2743 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2744 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2745 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2746 {
2747 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2748 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2749 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2750 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2751 {
2752 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2753 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2754 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2755 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2756 {
2757 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2758 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2759 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2760 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2761 {
2762 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2763 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2764 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2765 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2766 {
2767 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2768 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2769 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2770 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2771 {
2772 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2773 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2774 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2775 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2776 {
2777 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2778 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2779 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2780 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2781};
2782
2783static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v6[] = {
2784 {
2785 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2786 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2787 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2788 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2789 {
2790 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2791 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2792 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2793 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2794 {
2795 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2796 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2797 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2798 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2799 {
2800 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2801 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2802 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2803 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2804 {
2805 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2806 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2807 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2808 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2809 {
2810 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2811 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2812 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2813 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2814 {
2815 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2816 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2817 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2818 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2819 {
2820 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2821 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2822 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2823 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2824 {
2825 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2826 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2827 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2828 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2829 {
2830 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2831 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2832 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2833 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2834 {
2835 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2836 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2837 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2838 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2839 {
2840 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2841 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2842 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2843 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2844 {
2845 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2846 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2847 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2848 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2849 {
2850 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2851 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2852 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2853 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2854 {
2855 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2856 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2857 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2858 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2859 {
2860 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2861 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2862 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2863 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2864 {
2865 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2866 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2867 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2868 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2869 {
2870 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2871 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2872 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2873 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2874 {
2875 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2876 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2877 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2878 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2879 {
2880 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2881 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2882 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2883 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2884 {
2885 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2886 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2887 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2888 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2889 {
2890 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2891 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2892 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2893 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2894 {
2895 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2896 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2897 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2898 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2899 {
2900 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2901 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2902 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2903 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2904 {
2905 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2906 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2907 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2908 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2909 {
2910 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2911 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2912 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2913 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2914 {
2915 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2916 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2917 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2918 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2919 {
2920 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2921 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2922 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2923 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2924 {
2925 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2926 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2927 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2928 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2929 {
2930 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2931 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2932 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2933 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2934 {
2935 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2936 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2937 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2938 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2939 {
2940 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2941 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2942 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2943 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2944 {
2945 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2946 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2947 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2948 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2949 {
2950 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2951 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2952 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2953 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2954 {
2955 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2956 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2957 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2958 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2959 {
2960 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2961 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2962 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2963 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2964 {
2965 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2966 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2967 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2968 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2969 {
2970 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2971 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2972 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2973 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2974 {
2975 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2976 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2977 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2978 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2979 {
2980 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2981 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
2982 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2983 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2984 {
2985 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2986 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
2987 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2988 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2989 {
2990 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2991 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2992 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2993 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2994 {
2995 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2996 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2997 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2998 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2999 {
3000 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3001 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3002 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3003 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3004 {
3005 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3006 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3007 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3008 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3009 {
3010 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3011 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3012 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3013 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3014 {
3015 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3016 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3017 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3018 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3019 {
3020 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3021 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3022 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3023 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3024 {
3025 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3026 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3027 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3028 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3029 {
3030 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3031 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3032 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3033 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3034 {
3035 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3036 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3037 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3038 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3039 {
3040 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3041 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3042 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3043 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3044 {
3045 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3046 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3047 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3048 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3049 {
3050 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3051 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3052 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3053 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3054 {
3055 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3056 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3057 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3058 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3059 {
3060 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3061 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3062 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3063 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3064 {
3065 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3066 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3067 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3068 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3069 {
3070 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3071 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3072 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3073 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3074 {
3075 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3076 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3077 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3078 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3079 {
3080 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3081 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3082 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3083 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3084 {
3085 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3086 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3087 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3088 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3089 {
3090 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3091 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3092 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3093 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3094 {
3095 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3096 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3097 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3098 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3099 {
3100 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3101 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3102 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3103 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3104 {
3105 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3106 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3107 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3108 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3109 {
3110 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3111 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3112 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3113 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3114 {
3115 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3116 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3117 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3118 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3119 {
3120 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3121 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3122 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3123 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3124 {
3125 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3126 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3127 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3128 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3129 {
3130 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3131 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3132 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3133 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3134 {
3135 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3136 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3137 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3138 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3139 {
3140 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3141 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3142 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3143 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3144 {
3145 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3146 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3147 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3148 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3149 {
3150 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3151 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3152 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3153 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3154 {
3155 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3156 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3157 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3158 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3159 {
3160 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3161 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3162 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3163 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3164 {
3165 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3166 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3167 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3168 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3169 {
3170 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3171 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3172 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3173 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3174 {
3175 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3176 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3177 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3178 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3179 {
3180 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3181 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3182 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3183 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3184 {
3185 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3186 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3187 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3188 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3189 {
3190 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3191 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3192 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3193 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3194 {
3195 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3196 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3197 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3198 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3199 {
3200 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3201 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3202 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3203 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3204 {
3205 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3206 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3207 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3208 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3209 {
3210 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3211 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3212 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3213 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3214 {
3215 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3216 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3217 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3218 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3219 {
3220 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3221 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3222 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3223 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3224 {
3225 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3226 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3227 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3228 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3229 {
3230 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3231 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3232 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3233 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3234 {
3235 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3236 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3237 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3238 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3239 {
3240 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3241 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3242 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3243 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3244 {
3245 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3246 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3247 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3248 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3249 {
3250 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3251 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3252 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3253 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3254 {
3255 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3256 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3257 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3258 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3259 {
3260 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3261 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3262 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3263 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3264 {
3265 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3266 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3267 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3268 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3269 {
3270 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3271 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3272 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3273 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3274 {
3275 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3276 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3277 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3278 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3279 {
3280 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3281 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3282 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3283 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3284 {
3285 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3286 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3287 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3288 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3289 {
3290 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3291 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3292 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3293 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3294 {
3295 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3296 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3297 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3298 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3299 {
3300 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3301 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3302 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3303 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3304 {
3305 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3306 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3307 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3308 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3309 {
3310 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3311 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3312 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3313 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3314 {
3315 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3316 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3317 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3318 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3319 {
3320 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3321 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3322 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3323 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3324 {
3325 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3326 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3327 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3328 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3329 {
3330 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3331 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3332 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3333 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3334 {
3335 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3336 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3337 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3338 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3339 {
3340 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3341 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3342 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3343 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3344 {
3345 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3346 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3347 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3348 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3349 {
3350 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3351 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3352 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3353 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3354 {
3355 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3356 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3357 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3358 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3359 {
3360 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3361 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3362 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3363 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3364 {
3365 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3366 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3367 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3368 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3369 {
3370 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3371 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3372 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3373 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3374 {
3375 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3376 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3377 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3378 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3379 {
3380 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3381 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3382 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3383 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3384 {
3385 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3386 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3387 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3388 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3389 {
3390 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3391 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3392 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3393 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3394 {
3395 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3396 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3397 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3398 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3399 {
3400 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3401 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3402 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3403 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3404};
3405
3406static chan_info_nphy_radio205x_t chan_info_nphyrev5n6_2056v7[] = {
3407 {
3408 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3409 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3410 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3411 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3412 {
3413 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3414 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3415 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3416 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3417 {
3418 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3419 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3420 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3421 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3422 {
3423 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3424 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3425 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3426 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3427 {
3428 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3429 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3430 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3431 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3432 {
3433 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3434 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3435 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3436 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3437 {
3438 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3439 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3440 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3441 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3442 {
3443 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3444 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3445 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3446 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3447 {
3448 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3449 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3450 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3451 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3452 {
3453 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3454 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3455 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3456 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3457 {
3458 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3459 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3460 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3461 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3462 {
3463 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3464 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3465 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3466 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3467 {
3468 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3469 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3470 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3471 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3472 {
3473 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3474 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3475 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3476 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3477 {
3478 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3479 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3480 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3481 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3482 {
3483 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3484 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3485 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3486 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3487 {
3488 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3489 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3490 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3491 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3492 {
3493 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3494 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3495 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3496 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3497 {
3498 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3499 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3500 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3501 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3502 {
3503 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3504 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3505 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3506 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3507 {
3508 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3509 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3510 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3511 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3512 {
3513 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3514 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3515 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3516 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3517 {
3518 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3519 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3520 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3521 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3522 {
3523 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3524 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3525 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3526 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3527 {
3528 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3529 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3530 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3531 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3532 {
3533 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3534 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3535 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3536 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3537 {
3538 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3539 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3540 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3541 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3542 {
3543 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3544 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3545 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3546 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3547 {
3548 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3549 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3550 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3551 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3552 {
3553 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3554 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3555 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3556 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3557 {
3558 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3559 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3560 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3561 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3562 {
3563 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3564 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3565 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3566 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3567 {
3568 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3569 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3570 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3571 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3572 {
3573 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3574 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3575 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3576 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3577 {
3578 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3579 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3580 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3581 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3582 {
3583 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3584 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3585 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3586 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3587 {
3588 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3589 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3590 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3591 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3592 {
3593 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3594 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3595 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3596 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3597 {
3598 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3599 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3600 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3601 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3602 {
3603 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3604 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3605 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3606 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3607 {
3608 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3609 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3610 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3611 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3612 {
3613 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3614 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3615 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3616 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3617 {
3618 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3619 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3620 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3621 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3622 {
3623 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3624 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3625 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3626 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3627 {
3628 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3629 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3630 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3631 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3632 {
3633 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3634 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3635 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3636 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3637 {
3638 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3639 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3640 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3641 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3642 {
3643 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3644 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3645 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3646 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3647 {
3648 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3649 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3650 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3651 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3652 {
3653 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3654 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3655 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3656 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3657 {
3658 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3659 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3660 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3661 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3662 {
3663 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3664 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3665 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3666 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3667 {
3668 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3669 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3670 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3671 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3672 {
3673 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3674 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3675 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3676 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3677 {
3678 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3679 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3680 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3681 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3682 {
3683 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3684 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3685 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3686 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3687 {
3688 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3689 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3690 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3691 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3692 {
3693 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3694 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3695 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3696 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3697 {
3698 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3699 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3700 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3701 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3702 {
3703 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3704 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3705 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3706 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3707 {
3708 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3709 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3710 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3711 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3712 {
3713 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3714 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3715 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3716 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3717 {
3718 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3719 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3720 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3721 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3722 {
3723 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3724 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3725 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3726 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3727 {
3728 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3729 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3730 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3731 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3732 {
3733 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3734 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3735 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3736 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3737 {
3738 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3739 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3740 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3741 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3742 {
3743 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3744 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3745 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3746 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3747 {
3748 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3749 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3750 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3751 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3752 {
3753 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3754 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3755 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3756 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3757 {
3758 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3759 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3760 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3761 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3762 {
3763 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3764 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3765 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3766 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3767 {
3768 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3769 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3770 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3771 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3772 {
3773 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3774 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3775 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3776 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3777 {
3778 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3779 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3780 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3781 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3782 {
3783 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3784 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3785 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3786 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3787 {
3788 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3789 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3790 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3791 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3792 {
3793 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3794 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3795 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3796 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3797 {
3798 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3799 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3800 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3801 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3802 {
3803 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3804 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3805 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3806 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3807 {
3808 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3809 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3810 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3811 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3812 {
3813 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3814 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3815 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3816 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3817 {
3818 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3819 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3820 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3821 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3822 {
3823 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3824 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3825 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3826 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3827 {
3828 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3829 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3830 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3831 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3832 {
3833 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3834 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3835 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3836 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3837 {
3838 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3839 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3840 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3841 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3842 {
3843 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3844 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3845 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3846 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3847 {
3848 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3849 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3850 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3851 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3852 {
3853 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3854 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3855 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3856 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3857 {
3858 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3859 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3860 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3861 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3862 {
3863 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3864 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3865 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3866 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3867 {
3868 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3869 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3870 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3871 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3872 {
3873 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3874 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3875 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3876 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3877 {
3878 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3879 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3880 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3881 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3882 {
3883 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3884 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3885 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3886 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3887 {
3888 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3889 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3890 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3891 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3892 {
3893 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3894 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3895 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3896 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3897 {
3898 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3899 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3900 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3901 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3902 {
3903 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3904 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3905 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3906 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3907 {
3908 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3909 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3910 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3911 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3912 {
3913 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3914 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3915 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3916 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3917 {
3918 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3919 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3920 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3921 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3922 {
3923 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3924 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3925 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3926 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3927 {
3928 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3929 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3930 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3931 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3932 {
3933 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3934 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3935 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3936 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3937 {
3938 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3939 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3940 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3941 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3942 {
3943 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3944 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3945 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3946 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3947 {
3948 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3949 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3950 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3951 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3952 {
3953 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3954 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3955 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3956 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3957 {
3958 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3959 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3960 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3961 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3962 {
3963 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3964 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3965 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3966 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3967 {
3968 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3969 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3970 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3971 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3972 {
3973 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3974 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3975 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3976 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3977 {
3978 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3979 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
3980 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
3981 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3982 {
3983 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3984 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
3985 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
3986 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3987 {
3988 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3989 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
3990 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
3991 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3992 {
3993 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3994 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
3995 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
3996 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3997 {
3998 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3999 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4000 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4001 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4002 {
4003 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4004 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4005 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4006 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4007 {
4008 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4009 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4010 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4011 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4012 {
4013 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4014 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4015 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4016 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4017 {
4018 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4019 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4020 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4021 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4022 {
4023 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4024 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4025 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4026 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4027};
4028
4029static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v8[] = {
4030 {
4031 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4032 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4033 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4034 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4035 {
4036 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4037 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4038 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4039 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4040 {
4041 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4042 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4043 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4044 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4045 {
4046 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4047 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4048 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4049 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4050 {
4051 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4052 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4053 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4054 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4055 {
4056 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4057 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4058 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4059 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4060 {
4061 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4062 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4063 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4064 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4065 {
4066 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4067 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4068 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4069 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4070 {
4071 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4072 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4073 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4074 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4075 {
4076 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4077 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4078 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4079 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4080 {
4081 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4082 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4083 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4084 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4085 {
4086 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4087 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4088 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4089 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4090 {
4091 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4092 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4093 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4094 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4095 {
4096 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4097 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4098 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4099 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4100 {
4101 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4102 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4103 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4104 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4105 {
4106 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4107 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4108 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4109 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4110 {
4111 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4112 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4113 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4114 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4115 {
4116 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4117 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4118 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4119 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4120 {
4121 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4122 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4123 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4124 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4125 {
4126 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4127 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4128 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4129 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4130 {
4131 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4132 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4133 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4134 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4135 {
4136 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4137 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4138 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4139 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4140 {
4141 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4142 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4143 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4144 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4145 {
4146 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4147 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4148 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4149 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4150 {
4151 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4152 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4153 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4154 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4155 {
4156 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4157 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4158 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4159 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4160 {
4161 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4162 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4163 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4164 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4165 {
4166 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4167 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4168 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4169 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4170 {
4171 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4172 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4173 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4174 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4175 {
4176 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4177 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4178 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4179 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4180 {
4181 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4182 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4183 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4184 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4185 {
4186 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4187 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4188 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4189 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4190 {
4191 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4192 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4193 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4194 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4195 {
4196 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4197 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4198 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4199 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4200 {
4201 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4202 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4203 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4204 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4205 {
4206 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4207 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4208 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4209 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4210 {
4211 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4212 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4213 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4214 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4215 {
4216 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4217 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4218 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4219 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4220 {
4221 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4222 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4223 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4224 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4225 {
4226 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4227 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4228 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4229 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4230 {
4231 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4232 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4233 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4234 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4235 {
4236 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4237 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4238 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4239 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4240 {
4241 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4242 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4243 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4244 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4245 {
4246 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4247 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4248 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4249 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4250 {
4251 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4252 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4253 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4254 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4255 {
4256 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4257 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4258 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4259 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4260 {
4261 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4262 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4263 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4264 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4265 {
4266 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4267 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4268 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4269 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4270 {
4271 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4272 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4273 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4274 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4275 {
4276 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4277 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4278 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4279 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4280 {
4281 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4282 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4283 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4284 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4285 {
4286 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4287 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4288 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4289 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4290 {
4291 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4292 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4293 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4294 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4295 {
4296 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4297 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4298 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4299 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4300 {
4301 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4302 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4303 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4304 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4305 {
4306 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4307 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4308 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4309 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4310 {
4311 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4312 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4313 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4314 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4315 {
4316 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4317 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4318 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4319 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4320 {
4321 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4322 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4323 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4324 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4325 {
4326 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4327 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4328 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4329 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4330 {
4331 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4332 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4333 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4334 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4335 {
4336 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4337 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4338 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4339 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4340 {
4341 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4342 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4343 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4344 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4345 {
4346 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4347 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4348 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4349 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4350 {
4351 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4352 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4353 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4354 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4355 {
4356 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4357 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4358 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4359 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4360 {
4361 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4362 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4363 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4364 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4365 {
4366 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4367 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4368 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4369 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4370 {
4371 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4372 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4373 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4374 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4375 {
4376 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4377 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4378 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4379 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4380 {
4381 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4382 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4383 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4384 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4385 {
4386 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4387 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4388 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4389 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4390 {
4391 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4392 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4393 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4394 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4395 {
4396 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4397 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4398 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4399 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4400 {
4401 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4402 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4403 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4404 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4405 {
4406 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4407 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4408 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4409 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4410 {
4411 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4412 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4413 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4414 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4415 {
4416 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4417 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4418 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4419 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4420 {
4421 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4422 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4423 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4424 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4425 {
4426 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4427 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4428 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4429 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4430 {
4431 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4432 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4433 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4434 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4435 {
4436 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4437 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4438 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4439 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4440 {
4441 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4442 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4443 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4444 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4445 {
4446 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4447 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4448 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4449 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4450 {
4451 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4452 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4453 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4454 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4455 {
4456 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4457 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4458 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4459 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4460 {
4461 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4462 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4463 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4464 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4465 {
4466 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4467 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4468 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4469 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4470 {
4471 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4472 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4473 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4474 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4475 {
4476 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4477 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4478 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4479 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4480 {
4481 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4482 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4483 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4484 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4485 {
4486 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4487 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4488 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4489 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4490 {
4491 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4492 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4493 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4494 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4495 {
4496 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4497 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4498 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4499 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4500 {
4501 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4502 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4503 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4504 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4505 {
4506 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4507 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4508 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4509 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4510 {
4511 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4512 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4513 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4514 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4515 {
4516 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4517 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4518 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4519 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4520 {
4521 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4522 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4523 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4524 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4525 {
4526 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4527 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4528 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4529 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4530 {
4531 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4532 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4533 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4534 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4535 {
4536 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4537 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4538 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4539 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4540 {
4541 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4542 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4543 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4544 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4545 {
4546 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4547 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4548 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4549 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4550 {
4551 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4552 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4553 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4554 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4555 {
4556 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4557 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4558 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4559 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4560 {
4561 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4562 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4563 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4564 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4565 {
4566 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4567 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4568 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4569 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4570 {
4571 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4572 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4573 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4574 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4575 {
4576 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4577 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4578 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4579 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4580 {
4581 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4582 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4583 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4584 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4585 {
4586 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4587 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4588 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4589 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4590 {
4591 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4592 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4593 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4594 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4595 {
4596 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4597 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4598 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4599 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4600 {
4601 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4602 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4603 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4604 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4605 {
4606 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4607 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4608 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4609 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4610 {
4611 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4612 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4613 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4614 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4615 {
4616 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4617 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4618 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4619 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4620 {
4621 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4622 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4623 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4624 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4625 {
4626 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4627 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4628 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4629 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4630 {
4631 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4632 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4633 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4634 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4635 {
4636 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4637 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4638 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4639 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4640 {
4641 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4642 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4643 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4644 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4645 {
4646 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4647 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4648 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4649 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4650};
4651
4652static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v11[] = {
4653 {
4654 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4655 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4656 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4657 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4658 {
4659 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4660 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4661 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4662 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4663 {
4664 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4665 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4666 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4667 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4668 {
4669 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4670 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4671 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4672 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4673 {
4674 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4675 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4676 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4677 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4678 {
4679 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4680 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4681 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4682 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4683 {
4684 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4685 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4686 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4687 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4688 {
4689 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4690 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4691 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4692 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4693 {
4694 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4695 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4696 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4697 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4698 {
4699 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4700 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4701 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4702 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4703 {
4704 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4705 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4706 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4707 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4708 {
4709 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4710 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4711 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4712 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4713 {
4714 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4715 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4716 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4717 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4718 {
4719 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4720 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4721 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4722 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4723 {
4724 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4725 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4726 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4727 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4728 {
4729 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4730 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4731 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4732 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4733 {
4734 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4735 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4736 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4737 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4738 {
4739 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4740 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4741 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4742 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4743 {
4744 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4745 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4746 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4747 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4748 {
4749 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4750 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4751 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4752 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4753 {
4754 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4755 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4756 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4757 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4758 {
4759 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4760 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4761 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4762 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4763 {
4764 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4765 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4766 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4767 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4768 {
4769 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4770 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4771 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4772 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4773 {
4774 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4775 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4776 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4777 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4778 {
4779 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4780 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4781 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4782 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4783 {
4784 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4785 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4786 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4787 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4788 {
4789 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4790 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4791 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4792 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4793 {
4794 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4795 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4796 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4797 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4798 {
4799 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4800 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4801 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4802 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4803 {
4804 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4805 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4806 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4807 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4808 {
4809 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4810 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4811 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4812 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4813 {
4814 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4815 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4816 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4817 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4818 {
4819 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4820 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4821 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4822 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4823 {
4824 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4825 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4826 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4827 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4828 {
4829 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4830 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4831 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4832 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4833 {
4834 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4835 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4836 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4837 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4838 {
4839 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4840 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4841 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4842 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4843 {
4844 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4845 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4846 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4847 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4848 {
4849 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4850 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4851 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4852 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4853 {
4854 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4855 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4856 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4857 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4858 {
4859 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4860 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4861 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4862 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4863 {
4864 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4865 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4866 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4867 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4868 {
4869 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4870 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4871 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4872 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4873 {
4874 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4875 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4876 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4877 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4878 {
4879 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4880 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4881 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4882 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4883 {
4884 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4885 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4886 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4887 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4888 {
4889 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4890 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4891 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4892 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4893 {
4894 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4895 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4896 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4897 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4898 {
4899 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4900 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4901 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4902 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4903 {
4904 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4905 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4906 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4907 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4908 {
4909 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4910 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4911 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4912 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4913 {
4914 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4915 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4916 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4917 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4918 {
4919 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4920 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4921 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4922 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4923 {
4924 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4925 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4926 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4927 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4928 {
4929 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4930 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4931 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4932 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4933 {
4934 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4935 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4936 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4937 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4938 {
4939 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4940 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4941 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4942 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4943 {
4944 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4945 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4946 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4947 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4948 {
4949 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4950 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4951 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4952 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4953 {
4954 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4955 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4956 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4957 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4958 {
4959 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4960 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4961 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4962 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4963 {
4964 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4965 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4966 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4967 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4968 {
4969 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4970 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4971 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4972 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4973 {
4974 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4975 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4976 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4977 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4978 {
4979 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4980 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4981 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4982 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4983 {
4984 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4985 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4986 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4987 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4988 {
4989 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
4990 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4991 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4992 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4993 {
4994 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
4995 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4996 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4997 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4998 {
4999 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5000 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5001 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5002 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5003 {
5004 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5005 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5006 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5007 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5008 {
5009 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5010 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5011 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5012 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5013 {
5014 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5015 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5016 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5017 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5018 {
5019 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5020 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5021 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5022 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5023 {
5024 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5025 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5026 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5027 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5028 {
5029 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5030 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5031 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5032 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5033 {
5034 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5035 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5036 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5037 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5038 {
5039 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5040 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5041 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5042 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5043 {
5044 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5045 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5046 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5047 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5048 {
5049 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5050 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5051 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5052 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5053 {
5054 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5055 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5056 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5057 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5058 {
5059 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5060 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5061 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5062 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5063 {
5064 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5065 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5066 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5067 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5068 {
5069 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5070 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5071 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5072 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5073 {
5074 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5075 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5076 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5077 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5078 {
5079 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5080 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5081 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5082 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5083 {
5084 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5085 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5086 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5087 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5088 {
5089 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5090 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5091 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5092 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5093 {
5094 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5095 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5096 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5097 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5098 {
5099 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5100 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5101 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5102 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5103 {
5104 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5105 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5106 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5107 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5108 {
5109 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5110 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5111 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5112 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5113 {
5114 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5115 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5116 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5117 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5118 {
5119 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5120 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5121 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5122 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5123 {
5124 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5125 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5126 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5127 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5128 {
5129 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5130 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5131 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5132 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5133 {
5134 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5135 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5136 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5137 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5138 {
5139 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5140 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5141 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5142 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5143 {
5144 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5145 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5146 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5147 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5148 {
5149 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5150 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5151 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5152 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5153 {
5154 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5155 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5156 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5157 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5158 {
5159 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5160 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5161 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5162 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5163 {
5164 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5165 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5166 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5167 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5168 {
5169 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5170 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5171 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5172 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5173 {
5174 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5175 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5176 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5177 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5178 {
5179 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5180 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5181 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5182 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5183 {
5184 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5185 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5186 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5187 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5188 {
5189 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5190 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5191 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5192 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5193 {
5194 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5195 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5196 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5197 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5198 {
5199 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5200 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5201 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5202 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5203 {
5204 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5205 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5206 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5207 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5208 {
5209 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5210 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5211 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5212 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5213 {
5214 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5215 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5216 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5217 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5218 {
5219 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5220 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5221 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5222 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5223 {
5224 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5225 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5226 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5227 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5228 {
5229 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5230 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5231 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5232 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5233 {
5234 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5235 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5236 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5237 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5238 {
5239 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5240 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5241 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5242 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5243 {
5244 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5245 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5246 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5247 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5248 {
5249 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5250 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5251 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5252 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5253 {
5254 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5255 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5256 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5257 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5258 {
5259 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5260 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5261 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5262 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5263 {
5264 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5265 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5266 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5267 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5268 {
5269 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5270 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5271 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5272 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5273};
5274
5275static chan_info_nphy_radio2057_t chan_info_nphyrev7_2057_rev4[] = {
5276 {
5277 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5278 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5279 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5280 0x0215,
5281 0x0216,
5282 },
5283 {
5284 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5285 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5286 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5287 0x0214,
5288 0x0215,
5289 },
5290 {
5291 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5292 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5293 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5294 0x0213,
5295 0x0214,
5296 },
5297 {
5298 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5299 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5300 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5301 0x0212,
5302 0x0213,
5303 },
5304 {
5305 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5306 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5307 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5308 0x0211,
5309 0x0212,
5310 },
5311 {
5312 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5313 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5314 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5315 0x020f,
5316 0x0211,
5317 },
5318 {
5319 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5320 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5321 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5322 0x020e,
5323 0x020f,
5324 },
5325 {
5326 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5327 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5328 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5329 0x020d,
5330 0x020e,
5331 },
5332 {
5333 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5334 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5335 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5336 0x020c,
5337 0x020d,
5338 },
5339 {
5340 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5341 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5342 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5343 0x020b,
5344 0x020c,
5345 },
5346 {
5347 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5348 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5349 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5350 0x020a,
5351 0x020b,
5352 },
5353 {
5354 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5355 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5356 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5357 0x0209,
5358 0x020a,
5359 },
5360 {
5361 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5362 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5363 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5364 0x0208,
5365 0x0209,
5366 },
5367 {
5368 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5369 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5370 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5371 0x0207,
5372 0x0208,
5373 },
5374 {
5375 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5376 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5377 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5378 0x0206,
5379 0x0207,
5380 },
5381 {
5382 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5383 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5384 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5385 0x0205,
5386 0x0206,
5387 },
5388 {
5389 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5390 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5391 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5392 0x0204,
5393 0x0205,
5394 },
5395 {
5396 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5397 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5398 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5399 0x0203,
5400 0x0204,
5401 },
5402 {
5403 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5404 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5405 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5406 0x0202,
5407 0x0203,
5408 },
5409 {
5410 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5411 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5412 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5413 0x0201,
5414 0x0202,
5415 },
5416 {
5417 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5418 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5419 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5420 0x0200,
5421 0x0201,
5422 },
5423 {
5424 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5425 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5426 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5427 0x01ff,
5428 0x0200,
5429 },
5430 {
5431 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5432 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5433 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5434 0x01fe,
5435 0x01ff,
5436 },
5437 {
5438 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5439 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5440 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5441 0x01fc,
5442 0x01fd,
5443 },
5444 {
5445 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5446 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5447 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5448 0x01fb,
5449 0x01fc,
5450 },
5451 {
5452 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5453 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5454 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5455 0x01fa,
5456 0x01fb,
5457 },
5458 {
5459 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5460 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5461 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5462 0x01f9,
5463 0x01fa,
5464 },
5465 {
5466 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5467 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5468 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5469 0x01f8,
5470 0x01f9,
5471 },
5472 {
5473 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5474 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5475 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5476 0x01f7,
5477 0x01f8,
5478 },
5479 {
5480 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5481 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5482 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5483 0x01f6,
5484 0x01f7,
5485 },
5486 {
5487 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5488 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5489 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5490 0x01f5,
5491 0x01f6,
5492 },
5493 {
5494 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5495 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5496 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5497 0x01f4,
5498 0x01f5,
5499 },
5500 {
5501 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5502 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5503 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5504 0x01f3,
5505 0x01f4,
5506 },
5507 {
5508 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5509 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5510 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5511 0x01f2,
5512 0x01f3,
5513 },
5514 {
5515 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5516 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5517 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5518 0x01f1,
5519 0x01f2,
5520 },
5521 {
5522 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5523 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5524 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5525 0x01f0,
5526 0x01f1,
5527 },
5528 {
5529 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5530 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5531 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5532 0x01f0,
5533 0x01f0,
5534 },
5535 {
5536 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5537 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5538 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5539 0x01ef,
5540 0x01f0,
5541 },
5542 {
5543 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5544 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5545 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5546 0x01ee,
5547 0x01ef,
5548 },
5549 {
5550 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5551 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5552 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5553 0x01ed,
5554 0x01ee,
5555 },
5556 {
5557 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5558 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5559 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5560 0x01ec,
5561 0x01ed,
5562 },
5563 {
5564 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5565 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5566 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5567 0x01eb,
5568 0x01ec,
5569 },
5570 {
5571 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5572 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5573 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5574 0x01ea,
5575 0x01eb,
5576 },
5577 {
5578 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5579 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5580 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5581 0x01e9,
5582 0x01ea,
5583 },
5584 {
5585 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5586 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5587 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5588 0x01e8,
5589 0x01e9,
5590 },
5591 {
5592 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5593 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5594 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5595 0x01e7,
5596 0x01e8,
5597 },
5598 {
5599 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5600 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5601 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5602 0x01e6,
5603 0x01e7,
5604 },
5605 {
5606 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5607 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5608 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5609 0x01e5,
5610 0x01e6,
5611 },
5612 {
5613 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5614 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5615 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5616 0x01e5,
5617 0x01e5,
5618 },
5619 {
5620 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5621 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5622 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5623 0x01e4,
5624 0x01e5,
5625 },
5626 {
5627 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5628 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5629 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5630 0x01e3,
5631 0x01e4,
5632 },
5633 {
5634 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5635 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5636 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5637 0x01e2,
5638 0x01e3,
5639 },
5640 {
5641 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5642 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5643 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5644 0x01e1,
5645 0x01e2,
5646 },
5647 {
5648 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5649 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5650 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5651 0x01e0,
5652 0x01e1,
5653 },
5654 {
5655 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5656 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5657 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5658 0x01df,
5659 0x01e0,
5660 },
5661 {
5662 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5663 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5664 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5665 0x01de,
5666 0x01df,
5667 },
5668 {
5669 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5670 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5671 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5672 0x01dd,
5673 0x01de,
5674 },
5675 {
5676 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5677 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5678 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5679 0x01dd,
5680 0x01dd,
5681 },
5682 {
5683 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5684 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5685 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5686 0x01dc,
5687 0x01dd,
5688 },
5689 {
5690 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5691 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5692 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5693 0x01db,
5694 0x01dc,
5695 },
5696 {
5697 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5698 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5699 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5700 0x01da,
5701 0x01db,
5702 },
5703 {
5704 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5705 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5706 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5707 0x01d9,
5708 0x01da,
5709 },
5710 {
5711 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5712 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5713 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5714 0x01d8,
5715 0x01d9,
5716 },
5717 {
5718 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5719 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5720 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5721 0x01d7,
5722 0x01d8,
5723 },
5724 {
5725 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5726 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5727 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5728 0x01d7,
5729 0x01d7,
5730 },
5731 {
5732 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5733 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5734 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5735 0x01d6,
5736 0x01d7,
5737 },
5738 {
5739 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5740 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5741 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5742 0x01d5,
5743 0x01d6,
5744 },
5745 {
5746 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5747 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5748 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5749 0x01d4,
5750 0x01d5,
5751 },
5752 {
5753 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5754 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5755 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5756 0x01d3,
5757 0x01d4,
5758 },
5759 {
5760 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5761 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5762 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5763 0x01d2,
5764 0x01d3,
5765 },
5766 {
5767 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5768 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5769 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5770 0x01d2,
5771 0x01d2,
5772 },
5773 {
5774 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5775 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5776 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5777 0x01d1,
5778 0x01d2,
5779 },
5780 {
5781 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5782 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5783 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5784 0x01d0,
5785 0x01d1,
5786 },
5787 {
5788 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5789 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5790 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5791 0x01cf,
5792 0x01d0,
5793 },
5794 {
5795 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5796 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5797 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5798 0x01ce,
5799 0x01cf,
5800 },
5801 {
5802 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5803 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5804 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5805 0x01ce,
5806 0x01ce,
5807 },
5808 {
5809 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5810 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5811 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5812 0x01cd,
5813 0x01ce,
5814 },
5815 {
5816 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5817 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5818 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5819 0x01cc,
5820 0x01cd,
5821 },
5822 {
5823 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5824 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5825 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5826 0x01cb,
5827 0x01cc,
5828 },
5829 {
5830 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5831 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5832 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5833 0x01ca,
5834 0x01cb,
5835 },
5836 {
5837 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5838 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5839 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5840 0x01ca,
5841 0x01cb,
5842 },
5843 {
5844 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5845 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5846 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5847 0x01c9,
5848 0x01ca,
5849 },
5850 {
5851 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5852 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5853 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5854 0x01c9,
5855 0x01ca,
5856 },
5857 {
5858 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5859 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5860 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5861 0x01c9,
5862 0x01c9,
5863 },
5864 {
5865 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5866 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5867 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5868 0x01c8,
5869 0x01c9,
5870 },
5871 {
5872 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5873 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5874 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5875 0x01c8,
5876 0x01c9,
5877 },
5878 {
5879 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5880 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5881 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5882 0x01c8,
5883 0x01c8,
5884 },
5885 {
5886 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5887 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5888 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5889 0x01c7,
5890 0x01c8,
5891 },
5892 {
5893 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5894 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5895 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5896 0x01c7,
5897 0x01c8,
5898 },
5899 {
5900 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5901 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5902 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5903 0x01c6,
5904 0x01c7,
5905 },
5906 {
5907 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5908 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5909 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5910 0x01c6,
5911 0x01c7,
5912 },
5913 {
5914 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5915 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5916 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5917 0x01c6,
5918 0x01c6,
5919 },
5920 {
5921 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5922 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5923 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5924 0x01c5,
5925 0x01c6,
5926 },
5927 {
5928 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5929 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5930 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5931 0x01c5,
5932 0x01c6,
5933 },
5934 {
5935 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5936 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5937 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5938 0x01c4,
5939 0x01c5,
5940 },
5941 {
5942 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5943 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5944 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5945 0x01c4,
5946 0x01c5,
5947 },
5948 {
5949 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5950 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5951 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5952 0x01c4,
5953 0x01c4,
5954 },
5955 {
5956 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5957 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5958 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5959 0x01c3,
5960 0x01c4,
5961 },
5962 {
5963 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5964 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5965 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5966 0x01c3,
5967 0x01c4,
5968 },
5969 {
5970 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5971 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5972 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
5973 0x01c2,
5974 0x01c3,
5975 },
5976 {
5977 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
5978 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5979 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
5980 0x01c2,
5981 0x01c3,
5982 },
5983 {
5984 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
5985 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5986 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
5987 0x01c2,
5988 0x01c2,
5989 },
5990 {
5991 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
5992 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5993 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
5994 0x01c1,
5995 0x01c2,
5996 },
5997 {
5998 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
5999 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6000 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6001 0x01c0,
6002 0x01c1,
6003 },
6004 {
6005 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6006 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6007 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6008 0x01bf,
6009 0x01c0,
6010 },
6011 {
6012 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6013 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6014 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6015 0x01bf,
6016 0x01bf,
6017 },
6018 {
6019 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6020 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6021 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6022 0x01be,
6023 0x01bf,
6024 },
6025 {
6026 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6027 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6028 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6029 0x01bd,
6030 0x01be,
6031 },
6032 {
6033 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6034 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6035 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6036 0x01bc,
6037 0x01bd,
6038 },
6039 {
6040 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6041 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6042 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6043 0x043f,
6044 0x0443,
6045 },
6046 {
6047 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6048 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6049 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6050 0x043d,
6051 0x0441,
6052 },
6053 {
6054 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6055 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6056 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6057 0x043a,
6058 0x043f,
6059 },
6060 {
6061 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6062 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6063 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6064 0x0438,
6065 0x043d,
6066 },
6067 {
6068 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6069 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6070 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6071 0x0436,
6072 0x043a,
6073 },
6074 {
6075 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6076 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6077 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6078 0x0434,
6079 0x0438,
6080 },
6081 {
6082 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6083 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6084 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6085 0x0431,
6086 0x0436,
6087 },
6088 {
6089 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6090 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6091 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6092 0x042f,
6093 0x0434,
6094 },
6095 {
6096 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6097 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6098 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6099 0x042d,
6100 0x0431,
6101 },
6102 {
6103 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6104 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6105 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6106 0x042b,
6107 0x042f,
6108 },
6109 {
6110 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6111 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6112 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6113 0x0429,
6114 0x042d,
6115 },
6116 {
6117 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6118 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6119 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6120 0x0427,
6121 0x042b,
6122 },
6123 {
6124 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6125 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6126 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6127 0x0424,
6128 0x0429,
6129 },
6130 {
6131 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6132 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6133 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6134 0x041f,
6135 0x0424}
6136};
6137
6138static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev8_2057_rev5[] = {
6139 {
6140 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6141 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6142 0x043a, 0x043f, 0x0443},
6143 {
6144 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6145 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6146 0x0438, 0x043d, 0x0441},
6147 {
6148 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6149 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6150 0x0436, 0x043a, 0x043f},
6151 {
6152 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6153 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6154 0x0434, 0x0438, 0x043d},
6155 {
6156 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6157 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6158 0x0431, 0x0436, 0x043a},
6159 {
6160 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6161 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6162 0x042f, 0x0434, 0x0438},
6163 {
6164 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6165 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6166 0x042d, 0x0431, 0x0436},
6167 {
6168 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6169 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6170 0x042b, 0x042f, 0x0434},
6171 {
6172 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6173 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6174 0x0429, 0x042d, 0x0431},
6175 {
6176 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6177 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6178 0x0427, 0x042b, 0x042f},
6179 {
6180 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6181 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6182 0x0424, 0x0429, 0x042d},
6183 {
6184 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6185 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6186 0x0422, 0x0427, 0x042b},
6187 {
6188 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6189 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6190 0x0420, 0x0424, 0x0429},
6191 {
6192 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6193 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6194 0x041b, 0x041f, 0x0424}
6195};
6196
6197static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev9_2057_rev5v1[] = {
6198 {
6199 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6200 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6201 0x043a, 0x043f, 0x0443},
6202 {
6203 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6204 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6205 0x0438, 0x043d, 0x0441},
6206 {
6207 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6208 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6209 0x0436, 0x043a, 0x043f},
6210 {
6211 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6212 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6213 0x0434, 0x0438, 0x043d},
6214 {
6215 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6216 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6217 0x0431, 0x0436, 0x043a},
6218 {
6219 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6220 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6221 0x042f, 0x0434, 0x0438},
6222 {
6223 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6224 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6225 0x042d, 0x0431, 0x0436},
6226 {
6227 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6228 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6229 0x042b, 0x042f, 0x0434},
6230 {
6231 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6232 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6233 0x0429, 0x042d, 0x0431},
6234 {
6235 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6236 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6237 0x0427, 0x042b, 0x042f},
6238 {
6239 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6240 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6241 0x0424, 0x0429, 0x042d},
6242 {
6243 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6244 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6245 0x0422, 0x0427, 0x042b},
6246 {
6247 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6248 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6249 0x0420, 0x0424, 0x0429},
6250 {
6251 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6252 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6253 0x041b, 0x041f, 0x0424}
6254};
6255
6256static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev7[] = {
6257 {
6258 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6259 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6260 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6261 0x0215,
6262 0x0216},
6263 {
6264 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6265 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6266 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6267 0x0214,
6268 0x0215},
6269 {
6270 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6271 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6272 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6273 0x0213,
6274 0x0214},
6275 {
6276 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6277 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6278 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6279 0x0212,
6280 0x0213},
6281 {
6282 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6283 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6284 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6285 0x0211,
6286 0x0212},
6287 {
6288 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6289 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6290 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6291 0x020f,
6292 0x0211},
6293 {
6294 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6295 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6296 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6297 0x020e,
6298 0x020f},
6299 {
6300 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6301 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6302 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6303 0x020d,
6304 0x020e},
6305 {
6306 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6307 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6308 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6309 0x020c,
6310 0x020d},
6311 {
6312 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6313 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6314 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6315 0x020b,
6316 0x020c},
6317 {
6318 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6319 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6320 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6321 0x020a,
6322 0x020b},
6323 {
6324 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6325 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6326 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6327 0x0209,
6328 0x020a},
6329 {
6330 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6331 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6332 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6333 0x0208,
6334 0x0209},
6335 {
6336 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6337 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6338 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6339 0x0207,
6340 0x0208},
6341 {
6342 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6343 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6344 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6345 0x0206,
6346 0x0207},
6347 {
6348 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6349 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6350 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6351 0x0205,
6352 0x0206},
6353 {
6354 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6355 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6356 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6357 0x0204,
6358 0x0205},
6359 {
6360 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6361 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6362 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6363 0x0203,
6364 0x0204},
6365 {
6366 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6367 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6368 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6369 0x0202,
6370 0x0203},
6371 {
6372 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6373 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6374 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6375 0x0201,
6376 0x0202},
6377 {
6378 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6379 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6380 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6381 0x0200,
6382 0x0201},
6383 {
6384 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6385 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6386 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6387 0x01ff,
6388 0x0200},
6389 {
6390 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6391 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6392 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6393 0x01fe,
6394 0x01ff},
6395 {
6396 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6397 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6398 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6399 0x01fc,
6400 0x01fd},
6401 {
6402 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6403 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6404 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6405 0x01fb,
6406 0x01fc},
6407 {
6408 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6409 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6410 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6411 0x01fa,
6412 0x01fb},
6413 {
6414 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6415 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6416 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6417 0x01f9,
6418 0x01fa},
6419 {
6420 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6421 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6422 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6423 0x01f8,
6424 0x01f9},
6425 {
6426 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6427 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6428 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6429 0x01f7,
6430 0x01f8},
6431 {
6432 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6433 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6434 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6435 0x01f6,
6436 0x01f7},
6437 {
6438 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6439 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6440 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6441 0x01f5,
6442 0x01f6},
6443 {
6444 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6445 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6446 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6447 0x01f4,
6448 0x01f5},
6449 {
6450 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6451 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6452 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6453 0x01f3,
6454 0x01f4},
6455 {
6456 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6457 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6458 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6459 0x01f2,
6460 0x01f3},
6461 {
6462 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6463 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6464 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6465 0x01f1,
6466 0x01f2},
6467 {
6468 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6469 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6470 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6471 0x01f0,
6472 0x01f1},
6473 {
6474 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6475 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6476 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6477 0x01f0,
6478 0x01f0},
6479 {
6480 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6481 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6482 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6483 0x01ef,
6484 0x01f0},
6485 {
6486 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6487 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6488 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6489 0x01ee,
6490 0x01ef},
6491 {
6492 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6493 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6494 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6495 0x01ed,
6496 0x01ee},
6497 {
6498 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6499 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6500 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6501 0x01ec,
6502 0x01ed},
6503 {
6504 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6505 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6506 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6507 0x01eb,
6508 0x01ec},
6509 {
6510 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6511 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6512 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6513 0x01ea,
6514 0x01eb},
6515 {
6516 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6517 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6518 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6519 0x01e9,
6520 0x01ea},
6521 {
6522 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6523 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6524 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6525 0x01e8,
6526 0x01e9},
6527 {
6528 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6529 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6530 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6531 0x01e7,
6532 0x01e8},
6533 {
6534 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6535 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6536 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6537 0x01e6,
6538 0x01e7},
6539 {
6540 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6541 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6542 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6543 0x01e5,
6544 0x01e6},
6545 {
6546 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6547 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6548 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6549 0x01e5,
6550 0x01e5},
6551 {
6552 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6553 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6554 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6555 0x01e4,
6556 0x01e5},
6557 {
6558 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6559 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6560 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6561 0x01e3,
6562 0x01e4},
6563 {
6564 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6565 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6566 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6567 0x01e2,
6568 0x01e3},
6569 {
6570 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6571 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6572 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6573 0x01e1,
6574 0x01e2},
6575 {
6576 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6577 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6578 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6579 0x01e0,
6580 0x01e1},
6581 {
6582 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6583 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6584 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6585 0x01df,
6586 0x01e0},
6587 {
6588 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6589 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6590 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6591 0x01de,
6592 0x01df},
6593 {
6594 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6595 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6596 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6597 0x01dd,
6598 0x01de},
6599 {
6600 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6601 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6602 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6603 0x01dd,
6604 0x01dd},
6605 {
6606 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6607 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6608 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6609 0x01dc,
6610 0x01dd},
6611 {
6612 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6613 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6614 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6615 0x01db,
6616 0x01dc},
6617 {
6618 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6619 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6620 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6621 0x01da,
6622 0x01db},
6623 {
6624 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6625 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6626 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6627 0x01d9,
6628 0x01da},
6629 {
6630 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6631 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6632 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6633 0x01d8,
6634 0x01d9},
6635 {
6636 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6637 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6638 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6639 0x01d7,
6640 0x01d8},
6641 {
6642 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6643 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6644 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6645 0x01d7,
6646 0x01d7},
6647 {
6648 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6649 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6650 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6651 0x01d6,
6652 0x01d7},
6653 {
6654 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6655 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6656 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6657 0x01d5,
6658 0x01d6},
6659 {
6660 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6661 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6662 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6663 0x01d4,
6664 0x01d5},
6665 {
6666 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6667 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6668 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6669 0x01d3,
6670 0x01d4},
6671 {
6672 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6673 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6674 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6675 0x01d2,
6676 0x01d3},
6677 {
6678 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6679 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6680 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6681 0x01d2,
6682 0x01d2},
6683 {
6684 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6685 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6686 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6687 0x01d1,
6688 0x01d2},
6689 {
6690 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6691 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6692 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6693 0x01d0,
6694 0x01d1},
6695 {
6696 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6697 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6698 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6699 0x01cf,
6700 0x01d0},
6701 {
6702 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6703 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6704 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6705 0x01ce,
6706 0x01cf},
6707 {
6708 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6709 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6710 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6711 0x01ce,
6712 0x01ce},
6713 {
6714 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6715 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6716 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6717 0x01cd,
6718 0x01ce},
6719 {
6720 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6721 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6722 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6723 0x01cc,
6724 0x01cd},
6725 {
6726 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6727 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6728 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6729 0x01cb,
6730 0x01cc},
6731 {
6732 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6733 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6734 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6735 0x01ca,
6736 0x01cb},
6737 {
6738 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6739 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6740 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6741 0x01ca,
6742 0x01cb},
6743 {
6744 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6745 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6746 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6747 0x01c9,
6748 0x01ca},
6749 {
6750 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6751 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6752 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6753 0x01c9,
6754 0x01ca},
6755 {
6756 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6757 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6758 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6759 0x01c9,
6760 0x01c9},
6761 {
6762 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6763 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6764 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6765 0x01c8,
6766 0x01c9},
6767 {
6768 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6769 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6770 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6771 0x01c8,
6772 0x01c9},
6773 {
6774 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6775 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6776 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6777 0x01c8,
6778 0x01c8},
6779 {
6780 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6781 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6782 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6783 0x01c7,
6784 0x01c8},
6785 {
6786 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6787 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6788 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6789 0x01c7,
6790 0x01c8},
6791 {
6792 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6793 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6794 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6795 0x01c6,
6796 0x01c7},
6797 {
6798 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6799 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6800 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6801 0x01c6,
6802 0x01c7},
6803 {
6804 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6805 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6806 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6807 0x01c6,
6808 0x01c6},
6809 {
6810 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6811 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6812 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6813 0x01c5,
6814 0x01c6},
6815 {
6816 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6817 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6818 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6819 0x01c5,
6820 0x01c6},
6821 {
6822 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6823 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6824 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6825 0x01c4,
6826 0x01c5},
6827 {
6828 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6829 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6830 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6831 0x01c4,
6832 0x01c5},
6833 {
6834 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6835 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6836 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6837 0x01c4,
6838 0x01c4},
6839 {
6840 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6841 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6842 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6843 0x01c3,
6844 0x01c4},
6845 {
6846 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6847 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6848 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6849 0x01c3,
6850 0x01c4},
6851 {
6852 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6853 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6854 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6855 0x01c2,
6856 0x01c3},
6857 {
6858 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6859 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6860 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6861 0x01c2,
6862 0x01c3},
6863 {
6864 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6865 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6866 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6867 0x01c2,
6868 0x01c2},
6869 {
6870 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6871 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6872 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6873 0x01c1,
6874 0x01c2},
6875 {
6876 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6877 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6878 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6879 0x01c0,
6880 0x01c1},
6881 {
6882 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6883 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6884 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6885 0x01bf,
6886 0x01c0},
6887 {
6888 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6889 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6890 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6891 0x01bf,
6892 0x01bf},
6893 {
6894 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6895 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6896 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6897 0x01be,
6898 0x01bf},
6899 {
6900 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6901 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6902 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6903 0x01bd,
6904 0x01be},
6905 {
6906 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6907 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6908 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6909 0x01bc,
6910 0x01bd},
6911 {
6912 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6913 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6914 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6915 0x043f,
6916 0x0443},
6917 {
6918 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6919 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6920 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6921 0x043d,
6922 0x0441},
6923 {
6924 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6925 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6926 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6927 0x043a,
6928 0x043f},
6929 {
6930 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6931 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6932 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6933 0x0438,
6934 0x043d},
6935 {
6936 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6937 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6938 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6939 0x0436,
6940 0x043a},
6941 {
6942 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6943 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6944 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6945 0x0434,
6946 0x0438},
6947 {
6948 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6949 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6950 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6951 0x0431,
6952 0x0436},
6953 {
6954 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6955 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6956 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6957 0x042f,
6958 0x0434},
6959 {
6960 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6961 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6962 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6963 0x042d,
6964 0x0431},
6965 {
6966 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6967 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6968 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6969 0x042b,
6970 0x042f},
6971 {
6972 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6973 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6974 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6975 0x0429,
6976 0x042d},
6977 {
6978 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6979 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6980 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6981 0x0427,
6982 0x042b},
6983 {
6984 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6985 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6986 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6987 0x0424,
6988 0x0429},
6989 {
6990 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6991 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
6992 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6993 0x041f,
6994 0x0424}
6995};
6996
6997static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev8[] = {
6998 {
6999 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7000 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7001 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7002 0x0214,
7003 0x0215},
7004 {
7005 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7006 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7007 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7008 0x0213,
7009 0x0214},
7010 {
7011 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7012 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7013 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7014 0x0212,
7015 0x0213},
7016 {
7017 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7018 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7019 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7020 0x0211,
7021 0x0212},
7022 {
7023 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7024 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7025 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7026 0x020f,
7027 0x0211},
7028 {
7029 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7030 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7031 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7032 0x020e,
7033 0x020f},
7034 {
7035 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7036 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7037 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7038 0x020d,
7039 0x020e},
7040 {
7041 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7042 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7043 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7044 0x020c,
7045 0x020d},
7046 {
7047 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7048 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7049 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7050 0x020b,
7051 0x020c},
7052 {
7053 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7054 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7055 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7056 0x020a,
7057 0x020b},
7058 {
7059 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7060 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7061 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7062 0x0209,
7063 0x020a},
7064 {
7065 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7066 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7067 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7068 0x0208,
7069 0x0209},
7070 {
7071 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7072 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7073 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7074 0x0207,
7075 0x0208},
7076 {
7077 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7078 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7079 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7080 0x0206,
7081 0x0207},
7082 {
7083 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7084 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7085 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7086 0x0205,
7087 0x0206},
7088 {
7089 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7090 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7091 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7092 0x0204,
7093 0x0205},
7094 {
7095 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7096 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7097 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7098 0x0203,
7099 0x0204},
7100 {
7101 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7102 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7103 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7104 0x0202,
7105 0x0203},
7106 {
7107 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7108 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7109 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7110 0x0201,
7111 0x0202},
7112 {
7113 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7114 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7115 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7116 0x0200,
7117 0x0201},
7118 {
7119 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7120 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7121 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7122 0x01ff,
7123 0x0200},
7124 {
7125 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7126 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7127 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7128 0x01fe,
7129 0x01ff},
7130 {
7131 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7132 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7133 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7134 0x01fc,
7135 0x01fd},
7136 {
7137 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7138 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7139 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7140 0x01fb,
7141 0x01fc},
7142 {
7143 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7144 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7145 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7146 0x01fa,
7147 0x01fb},
7148 {
7149 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7150 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7151 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7152 0x01f9,
7153 0x01fa},
7154 {
7155 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7156 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7157 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7158 0x01f8,
7159 0x01f9},
7160 {
7161 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7162 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7163 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7164 0x01f7,
7165 0x01f8},
7166 {
7167 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7168 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7169 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7170 0x01f6,
7171 0x01f7},
7172 {
7173 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7174 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7175 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7176 0x01f5,
7177 0x01f6},
7178 {
7179 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7180 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7181 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7182 0x01f4,
7183 0x01f5},
7184 {
7185 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7186 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7187 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7188 0x01f3,
7189 0x01f4},
7190 {
7191 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7192 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7193 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7194 0x01f2,
7195 0x01f3},
7196 {
7197 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7198 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7199 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7200 0x01f1,
7201 0x01f2},
7202 {
7203 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7204 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7205 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7206 0x01f0,
7207 0x01f1},
7208 {
7209 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7210 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7211 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7212 0x01f0,
7213 0x01f0},
7214 {
7215 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7216 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7217 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7218 0x01ef,
7219 0x01f0},
7220 {
7221 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7222 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7223 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7224 0x01ee,
7225 0x01ef},
7226 {
7227 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7228 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7229 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7230 0x01ed,
7231 0x01ee},
7232 {
7233 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7234 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7235 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7236 0x01ec,
7237 0x01ed},
7238 {
7239 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7240 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7241 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7242 0x01eb,
7243 0x01ec},
7244 {
7245 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7246 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7247 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7248 0x01ea,
7249 0x01eb},
7250 {
7251 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7252 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7253 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7254 0x01e9,
7255 0x01ea},
7256 {
7257 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7258 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7259 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7260 0x01e8,
7261 0x01e9},
7262 {
7263 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7264 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7265 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7266 0x01e7,
7267 0x01e8},
7268 {
7269 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7270 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7271 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7272 0x01e6,
7273 0x01e7},
7274 {
7275 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7276 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7277 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7278 0x01e5,
7279 0x01e6},
7280 {
7281 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7282 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7283 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7284 0x01e5,
7285 0x01e5},
7286 {
7287 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7288 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7289 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7290 0x01e4,
7291 0x01e5},
7292 {
7293 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7294 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7295 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7296 0x01e3,
7297 0x01e4},
7298 {
7299 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7300 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7301 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7302 0x01e2,
7303 0x01e3},
7304 {
7305 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7306 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7307 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7308 0x01e1,
7309 0x01e2},
7310 {
7311 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7312 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7313 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7314 0x01e0,
7315 0x01e1},
7316 {
7317 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7318 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7319 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7320 0x01df,
7321 0x01e0},
7322 {
7323 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7324 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7325 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7326 0x01de,
7327 0x01df},
7328 {
7329 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7330 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7331 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7332 0x01dd,
7333 0x01de},
7334 {
7335 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7336 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7337 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7338 0x01dd,
7339 0x01dd},
7340 {
7341 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7342 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7343 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7344 0x01dc,
7345 0x01dd},
7346 {
7347 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7348 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7349 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7350 0x01db,
7351 0x01dc},
7352 {
7353 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7354 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7355 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7356 0x01da,
7357 0x01db},
7358 {
7359 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7360 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7361 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7362 0x01d9,
7363 0x01da},
7364 {
7365 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7366 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7367 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7368 0x01d8,
7369 0x01d9},
7370 {
7371 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7372 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7373 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7374 0x01d7,
7375 0x01d8},
7376 {
7377 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7378 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7379 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7380 0x01d7,
7381 0x01d7},
7382 {
7383 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7384 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7385 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7386 0x01d6,
7387 0x01d7},
7388 {
7389 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7390 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7391 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7392 0x01d5,
7393 0x01d6},
7394 {
7395 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7396 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7397 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7398 0x01d4,
7399 0x01d5},
7400 {
7401 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7402 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7403 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7404 0x01d3,
7405 0x01d4},
7406 {
7407 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7408 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7409 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7410 0x01d2,
7411 0x01d3},
7412 {
7413 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7414 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7415 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7416 0x01d2,
7417 0x01d2},
7418 {
7419 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7420 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7421 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7422 0x01d1,
7423 0x01d2},
7424 {
7425 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7426 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7427 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7428 0x01d0,
7429 0x01d1},
7430 {
7431 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7432 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7433 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7434 0x01cf,
7435 0x01d0},
7436 {
7437 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7438 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7439 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7440 0x01ce,
7441 0x01cf},
7442 {
7443 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7444 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7445 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7446 0x01ce,
7447 0x01ce},
7448 {
7449 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7450 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7451 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7452 0x01cd,
7453 0x01ce},
7454 {
7455 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7456 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7457 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7458 0x01cc,
7459 0x01cd},
7460 {
7461 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7462 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7463 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7464 0x01cb,
7465 0x01cc},
7466 {
7467 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7468 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7469 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7470 0x01ca,
7471 0x01cb},
7472 {
7473 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7474 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7475 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7476 0x01ca,
7477 0x01cb},
7478 {
7479 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7480 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7481 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7482 0x01c9,
7483 0x01ca},
7484 {
7485 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7486 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7487 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7488 0x01c9,
7489 0x01ca},
7490 {
7491 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7492 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7493 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7494 0x01c9,
7495 0x01c9},
7496 {
7497 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7498 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7499 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7500 0x01c8,
7501 0x01c9},
7502 {
7503 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7504 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7505 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7506 0x01c8,
7507 0x01c9},
7508 {
7509 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7510 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7511 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7512 0x01c8,
7513 0x01c8},
7514 {
7515 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7516 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7517 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7518 0x01c7,
7519 0x01c8},
7520 {
7521 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7522 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7523 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7524 0x01c7,
7525 0x01c8},
7526 {
7527 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7528 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7529 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7530 0x01c6,
7531 0x01c7},
7532 {
7533 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7534 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7535 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7536 0x01c6,
7537 0x01c7},
7538 {
7539 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7540 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7541 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7542 0x01c6,
7543 0x01c6},
7544 {
7545 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7546 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7547 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7548 0x01c5,
7549 0x01c6},
7550 {
7551 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7552 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7553 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7554 0x01c5,
7555 0x01c6},
7556 {
7557 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7558 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7559 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7560 0x01c4,
7561 0x01c5},
7562 {
7563 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7564 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7565 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7566 0x01c4,
7567 0x01c5},
7568 {
7569 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7570 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7571 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7572 0x01c4,
7573 0x01c4},
7574 {
7575 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7576 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7577 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7578 0x01c3,
7579 0x01c4},
7580 {
7581 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7582 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7583 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7584 0x01c3,
7585 0x01c4},
7586 {
7587 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7588 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7589 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7590 0x01c2,
7591 0x01c3},
7592 {
7593 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7594 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7595 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7596 0x01c2,
7597 0x01c3},
7598 {
7599 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7600 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7601 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7602 0x01c2,
7603 0x01c2},
7604 {
7605 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7606 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7607 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7608 0x01c1,
7609 0x01c2},
7610 {
7611 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7612 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7613 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7614 0x01c0,
7615 0x01c1},
7616 {
7617 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7618 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7619 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7620 0x01bf,
7621 0x01c0},
7622 {
7623 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7624 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7625 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7626 0x01bf,
7627 0x01bf},
7628 {
7629 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7630 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7631 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7632 0x01be,
7633 0x01bf},
7634 {
7635 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7636 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7637 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7638 0x01bd,
7639 0x01be},
7640 {
7641 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7642 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7643 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7644 0x01bc,
7645 0x01bd},
7646 {
7647 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7648 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7649 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7650 0x043f,
7651 0x0443},
7652 {
7653 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7654 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7655 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7656 0x043d,
7657 0x0441},
7658 {
7659 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7660 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7661 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7662 0x043a,
7663 0x043f},
7664 {
7665 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7666 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7667 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7668 0x0438,
7669 0x043d},
7670 {
7671 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7672 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7673 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7674 0x0436,
7675 0x043a},
7676 {
7677 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7678 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7679 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7680 0x0434,
7681 0x0438},
7682 {
7683 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7684 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7685 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7686 0x0431,
7687 0x0436},
7688 {
7689 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7690 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7691 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7692 0x042f,
7693 0x0434},
7694 {
7695 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7696 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7697 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7698 0x042d,
7699 0x0431},
7700 {
7701 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7702 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7703 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7704 0x042b,
7705 0x042f},
7706 {
7707 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7708 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7709 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7710 0x0429,
7711 0x042d},
7712 {
7713 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7714 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7715 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7716 0x0427,
7717 0x042b},
7718 {
7719 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7720 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7721 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7722 0x0424,
7723 0x0429},
7724 {
7725 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7726 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7727 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7728 0x041f,
7729 0x0424}
7730};
7731
7732radio_regs_t regs_2055[] = {
7733 {0x02, 0x80, 0x80, 0, 0},
7734 {0x03, 0, 0, 0, 0},
7735 {0x04, 0x27, 0x27, 0, 0},
7736 {0x05, 0, 0, 0, 0},
7737 {0x06, 0x27, 0x27, 0, 0},
7738 {0x07, 0x7f, 0x7f, 1, 1},
7739 {0x08, 0x7, 0x7, 1, 1},
7740 {0x09, 0x7f, 0x7f, 1, 1},
7741 {0x0A, 0x7, 0x7, 1, 1},
7742 {0x0B, 0x15, 0x15, 0, 0},
7743 {0x0C, 0x15, 0x15, 0, 0},
7744 {0x0D, 0x4f, 0x4f, 1, 1},
7745 {0x0E, 0x5, 0x5, 1, 1},
7746 {0x0F, 0x4f, 0x4f, 1, 1},
7747 {0x10, 0x5, 0x5, 1, 1},
7748 {0x11, 0xd0, 0xd0, 0, 0},
7749 {0x12, 0x2, 0x2, 0, 0},
7750 {0x13, 0, 0, 0, 0},
7751 {0x14, 0x40, 0x40, 0, 0},
7752 {0x15, 0, 0, 0, 0},
7753 {0x16, 0, 0, 0, 0},
7754 {0x17, 0, 0, 0, 0},
7755 {0x18, 0, 0, 0, 0},
7756 {0x19, 0, 0, 0, 0},
7757 {0x1A, 0, 0, 0, 0},
7758 {0x1B, 0, 0, 0, 0},
7759 {0x1C, 0, 0, 0, 0},
7760 {0x1D, 0xc0, 0xc0, 0, 0},
7761 {0x1E, 0xff, 0xff, 0, 0},
7762 {0x1F, 0xc0, 0xc0, 0, 0},
7763 {0x20, 0xff, 0xff, 0, 0},
7764 {0x21, 0xc0, 0xc0, 0, 0},
7765 {0x22, 0, 0, 0, 0},
7766 {0x23, 0x2c, 0x2c, 0, 0},
7767 {0x24, 0, 0, 0, 0},
7768 {0x25, 0, 0, 0, 0},
7769 {0x26, 0, 0, 0, 0},
7770 {0x27, 0, 0, 0, 0},
7771 {0x28, 0, 0, 0, 0},
7772 {0x29, 0, 0, 0, 0},
7773 {0x2A, 0, 0, 0, 0},
7774 {0x2B, 0, 0, 0, 0},
7775 {0x2C, 0, 0, 0, 0},
7776 {0x2D, 0xa4, 0xa4, 0, 0},
7777 {0x2E, 0x38, 0x38, 0, 0},
7778 {0x2F, 0, 0, 0, 0},
7779 {0x30, 0x4, 0x4, 1, 1},
7780 {0x31, 0, 0, 0, 0},
7781 {0x32, 0xa, 0xa, 0, 0},
7782 {0x33, 0x87, 0x87, 0, 0},
7783 {0x34, 0x9, 0x9, 0, 0},
7784 {0x35, 0x70, 0x70, 0, 0},
7785 {0x36, 0x11, 0x11, 0, 0},
7786 {0x37, 0x18, 0x18, 1, 1},
7787 {0x38, 0x6, 0x6, 0, 0},
7788 {0x39, 0x4, 0x4, 1, 1},
7789 {0x3A, 0x6, 0x6, 0, 0},
7790 {0x3B, 0x9e, 0x9e, 0, 0},
7791 {0x3C, 0x9, 0x9, 0, 0},
7792 {0x3D, 0xc8, 0xc8, 1, 1},
7793 {0x3E, 0x88, 0x88, 0, 0},
7794 {0x3F, 0, 0, 0, 0},
7795 {0x40, 0, 0, 0, 0},
7796 {0x41, 0, 0, 0, 0},
7797 {0x42, 0x1, 0x1, 0, 0},
7798 {0x43, 0x2, 0x2, 0, 0},
7799 {0x44, 0x96, 0x96, 0, 0},
7800 {0x45, 0x3e, 0x3e, 0, 0},
7801 {0x46, 0x3e, 0x3e, 0, 0},
7802 {0x47, 0x13, 0x13, 0, 0},
7803 {0x48, 0x2, 0x2, 0, 0},
7804 {0x49, 0x15, 0x15, 0, 0},
7805 {0x4A, 0x7, 0x7, 0, 0},
7806 {0x4B, 0, 0, 0, 0},
7807 {0x4C, 0, 0, 0, 0},
7808 {0x4D, 0, 0, 0, 0},
7809 {0x4E, 0, 0, 0, 0},
7810 {0x4F, 0, 0, 0, 0},
7811 {0x50, 0x8, 0x8, 0, 0},
7812 {0x51, 0x8, 0x8, 0, 0},
7813 {0x52, 0x6, 0x6, 0, 0},
7814 {0x53, 0x84, 0x84, 1, 1},
7815 {0x54, 0xc3, 0xc3, 0, 0},
7816 {0x55, 0x8f, 0x8f, 0, 0},
7817 {0x56, 0xff, 0xff, 0, 0},
7818 {0x57, 0xff, 0xff, 0, 0},
7819 {0x58, 0x88, 0x88, 0, 0},
7820 {0x59, 0x88, 0x88, 0, 0},
7821 {0x5A, 0, 0, 0, 0},
7822 {0x5B, 0xcc, 0xcc, 0, 0},
7823 {0x5C, 0x6, 0x6, 0, 0},
7824 {0x5D, 0x80, 0x80, 0, 0},
7825 {0x5E, 0x80, 0x80, 0, 0},
7826 {0x5F, 0xf8, 0xf8, 0, 0},
7827 {0x60, 0x88, 0x88, 0, 0},
7828 {0x61, 0x88, 0x88, 0, 0},
7829 {0x62, 0x88, 0x8, 1, 1},
7830 {0x63, 0x88, 0x88, 0, 0},
7831 {0x64, 0, 0, 0, 0},
7832 {0x65, 0x1, 0x1, 1, 1},
7833 {0x66, 0x8a, 0x8a, 0, 0},
7834 {0x67, 0x8, 0x8, 0, 0},
7835 {0x68, 0x83, 0x83, 0, 0},
7836 {0x69, 0x6, 0x6, 0, 0},
7837 {0x6A, 0xa0, 0xa0, 0, 0},
7838 {0x6B, 0xa, 0xa, 0, 0},
7839 {0x6C, 0x87, 0x87, 1, 1},
7840 {0x6D, 0x2a, 0x2a, 0, 0},
7841 {0x6E, 0x2a, 0x2a, 0, 0},
7842 {0x6F, 0x2a, 0x2a, 0, 0},
7843 {0x70, 0x2a, 0x2a, 0, 0},
7844 {0x71, 0x18, 0x18, 0, 0},
7845 {0x72, 0x6a, 0x6a, 1, 1},
7846 {0x73, 0xab, 0xab, 1, 1},
7847 {0x74, 0x13, 0x13, 1, 1},
7848 {0x75, 0xc1, 0xc1, 1, 1},
7849 {0x76, 0xaa, 0xaa, 1, 1},
7850 {0x77, 0x87, 0x87, 1, 1},
7851 {0x78, 0, 0, 0, 0},
7852 {0x79, 0x6, 0x6, 0, 0},
7853 {0x7A, 0x7, 0x7, 0, 0},
7854 {0x7B, 0x7, 0x7, 0, 0},
7855 {0x7C, 0x15, 0x15, 0, 0},
7856 {0x7D, 0x55, 0x55, 0, 0},
7857 {0x7E, 0x97, 0x97, 1, 1},
7858 {0x7F, 0x8, 0x8, 0, 0},
7859 {0x80, 0x14, 0x14, 1, 1},
7860 {0x81, 0x33, 0x33, 0, 0},
7861 {0x82, 0x88, 0x88, 0, 0},
7862 {0x83, 0x6, 0x6, 0, 0},
7863 {0x84, 0x3, 0x3, 1, 1},
7864 {0x85, 0xa, 0xa, 0, 0},
7865 {0x86, 0x3, 0x3, 1, 1},
7866 {0x87, 0x2a, 0x2a, 0, 0},
7867 {0x88, 0xa4, 0xa4, 0, 0},
7868 {0x89, 0x18, 0x18, 0, 0},
7869 {0x8A, 0x28, 0x28, 0, 0},
7870 {0x8B, 0, 0, 0, 0},
7871 {0x8C, 0x4a, 0x4a, 0, 0},
7872 {0x8D, 0, 0, 0, 0},
7873 {0x8E, 0xf8, 0xf8, 0, 0},
7874 {0x8F, 0x88, 0x88, 0, 0},
7875 {0x90, 0x88, 0x88, 0, 0},
7876 {0x91, 0x88, 0x8, 1, 1},
7877 {0x92, 0x88, 0x88, 0, 0},
7878 {0x93, 0, 0, 0, 0},
7879 {0x94, 0x1, 0x1, 1, 1},
7880 {0x95, 0x8a, 0x8a, 0, 0},
7881 {0x96, 0x8, 0x8, 0, 0},
7882 {0x97, 0x83, 0x83, 0, 0},
7883 {0x98, 0x6, 0x6, 0, 0},
7884 {0x99, 0xa0, 0xa0, 0, 0},
7885 {0x9A, 0xa, 0xa, 0, 0},
7886 {0x9B, 0x87, 0x87, 1, 1},
7887 {0x9C, 0x2a, 0x2a, 0, 0},
7888 {0x9D, 0x2a, 0x2a, 0, 0},
7889 {0x9E, 0x2a, 0x2a, 0, 0},
7890 {0x9F, 0x2a, 0x2a, 0, 0},
7891 {0xA0, 0x18, 0x18, 0, 0},
7892 {0xA1, 0x6a, 0x6a, 1, 1},
7893 {0xA2, 0xab, 0xab, 1, 1},
7894 {0xA3, 0x13, 0x13, 1, 1},
7895 {0xA4, 0xc1, 0xc1, 1, 1},
7896 {0xA5, 0xaa, 0xaa, 1, 1},
7897 {0xA6, 0x87, 0x87, 1, 1},
7898 {0xA7, 0, 0, 0, 0},
7899 {0xA8, 0x6, 0x6, 0, 0},
7900 {0xA9, 0x7, 0x7, 0, 0},
7901 {0xAA, 0x7, 0x7, 0, 0},
7902 {0xAB, 0x15, 0x15, 0, 0},
7903 {0xAC, 0x55, 0x55, 0, 0},
7904 {0xAD, 0x97, 0x97, 1, 1},
7905 {0xAE, 0x8, 0x8, 0, 0},
7906 {0xAF, 0x14, 0x14, 1, 1},
7907 {0xB0, 0x33, 0x33, 0, 0},
7908 {0xB1, 0x88, 0x88, 0, 0},
7909 {0xB2, 0x6, 0x6, 0, 0},
7910 {0xB3, 0x3, 0x3, 1, 1},
7911 {0xB4, 0xa, 0xa, 0, 0},
7912 {0xB5, 0x3, 0x3, 1, 1},
7913 {0xB6, 0x2a, 0x2a, 0, 0},
7914 {0xB7, 0xa4, 0xa4, 0, 0},
7915 {0xB8, 0x18, 0x18, 0, 0},
7916 {0xB9, 0x28, 0x28, 0, 0},
7917 {0xBA, 0, 0, 0, 0},
7918 {0xBB, 0x4a, 0x4a, 0, 0},
7919 {0xBC, 0, 0, 0, 0},
7920 {0xBD, 0x71, 0x71, 0, 0},
7921 {0xBE, 0x72, 0x72, 0, 0},
7922 {0xBF, 0x73, 0x73, 0, 0},
7923 {0xC0, 0x74, 0x74, 0, 0},
7924 {0xC1, 0x75, 0x75, 0, 0},
7925 {0xC2, 0x76, 0x76, 0, 0},
7926 {0xC3, 0x77, 0x77, 0, 0},
7927 {0xC4, 0x78, 0x78, 0, 0},
7928 {0xC5, 0x79, 0x79, 0, 0},
7929 {0xC6, 0x7a, 0x7a, 0, 0},
7930 {0xC7, 0, 0, 0, 0},
7931 {0xC8, 0, 0, 0, 0},
7932 {0xC9, 0, 0, 0, 0},
7933 {0xCA, 0, 0, 0, 0},
7934 {0xCB, 0, 0, 0, 0},
7935 {0xCC, 0, 0, 0, 0},
7936 {0xCD, 0, 0, 0, 0},
7937 {0xCE, 0x6, 0x6, 0, 0},
7938 {0xCF, 0, 0, 0, 0},
7939 {0xD0, 0, 0, 0, 0},
7940 {0xD1, 0x18, 0x18, 0, 0},
7941 {0xD2, 0x88, 0x88, 0, 0},
7942 {0xD3, 0, 0, 0, 0},
7943 {0xD4, 0, 0, 0, 0},
7944 {0xD5, 0, 0, 0, 0},
7945 {0xD6, 0, 0, 0, 0},
7946 {0xD7, 0, 0, 0, 0},
7947 {0xD8, 0, 0, 0, 0},
7948 {0xD9, 0, 0, 0, 0},
7949 {0xDA, 0x6, 0x6, 0, 0},
7950 {0xDB, 0, 0, 0, 0},
7951 {0xDC, 0, 0, 0, 0},
7952 {0xDD, 0x18, 0x18, 0, 0},
7953 {0xDE, 0x88, 0x88, 0, 0},
7954 {0xDF, 0, 0, 0, 0},
7955 {0xE0, 0, 0, 0, 0},
7956 {0xE1, 0, 0, 0, 0},
7957 {0xE2, 0, 0, 0, 0},
7958 {0xFFFF, 0, 0, 0, 0},
7959};
7960
7961radio_regs_t regs_SYN_2056[] = {
7962 {0x02, 0, 0, 0, 0},
7963 {0x03, 0, 0, 0, 0},
7964 {0x04, 0, 0, 0, 0},
7965 {0x05, 0, 0, 0, 0},
7966 {0x06, 0, 0, 0, 0},
7967 {0x07, 0, 0, 0, 0},
7968 {0x08, 0, 0, 0, 0},
7969 {0x09, 0x1, 0x1, 0, 0},
7970 {0x0A, 0, 0, 0, 0},
7971 {0x0B, 0, 0, 0, 0},
7972 {0x0C, 0, 0, 0, 0},
7973 {0x0D, 0, 0, 0, 0},
7974 {0x0E, 0, 0, 0, 0},
7975 {0x0F, 0, 0, 0, 0},
7976 {0x10, 0, 0, 0, 0},
7977 {0x11, 0, 0, 0, 0},
7978 {0x12, 0, 0, 0, 0},
7979 {0x13, 0, 0, 0, 0},
7980 {0x14, 0, 0, 0, 0},
7981 {0x15, 0, 0, 0, 0},
7982 {0x16, 0, 0, 0, 0},
7983 {0x17, 0, 0, 0, 0},
7984 {0x18, 0, 0, 0, 0},
7985 {0x19, 0, 0, 0, 0},
7986 {0x1A, 0, 0, 0, 0},
7987 {0x1B, 0, 0, 0, 0},
7988 {0x1C, 0, 0, 0, 0},
7989 {0x1D, 0, 0, 0, 0},
7990 {0x1E, 0, 0, 0, 0},
7991 {0x1F, 0, 0, 0, 0},
7992 {0x20, 0, 0, 0, 0},
7993 {0x21, 0, 0, 0, 0},
7994 {0x22, 0x60, 0x60, 0, 0},
7995 {0x23, 0x6, 0x6, 0, 0},
7996 {0x24, 0xc, 0xc, 0, 0},
7997 {0x25, 0, 0, 0, 0},
7998 {0x26, 0, 0, 0, 0},
7999 {0x27, 0, 0, 0, 0},
8000 {0x28, 0x1, 0x1, 0, 0},
8001 {0x29, 0, 0, 0, 0},
8002 {0x2A, 0, 0, 0, 0},
8003 {0x2B, 0, 0, 0, 0},
8004 {0x2C, 0, 0, 0, 0},
8005 {0x2D, 0, 0, 0, 0},
8006 {0x2E, 0xd, 0xd, 0, 0},
8007 {0x2F, 0x1f, 0x1f, 0, 0},
8008 {0x30, 0x15, 0x15, 0, 0},
8009 {0x31, 0xf, 0xf, 0, 0},
8010 {0x32, 0, 0, 0, 0},
8011 {0x33, 0, 0, 0, 0},
8012 {0x34, 0, 0, 0, 0},
8013 {0x35, 0, 0, 0, 0},
8014 {0x36, 0, 0, 0, 0},
8015 {0x37, 0, 0, 0, 0},
8016 {0x38, 0, 0, 0, 0},
8017 {0x39, 0, 0, 0, 0},
8018 {0x3A, 0, 0, 0, 0},
8019 {0x3B, 0, 0, 0, 0},
8020 {0x3C, 0x13, 0x13, 0, 0},
8021 {0x3D, 0xf, 0xf, 0, 0},
8022 {0x3E, 0x18, 0x18, 0, 0},
8023 {0x3F, 0, 0, 0, 0},
8024 {0x40, 0, 0, 0, 0},
8025 {0x41, 0x20, 0x20, 0, 0},
8026 {0x42, 0x20, 0x20, 0, 0},
8027 {0x43, 0, 0, 0, 0},
8028 {0x44, 0x77, 0x77, 0, 0},
8029 {0x45, 0x7, 0x7, 0, 0},
8030 {0x46, 0x1, 0x1, 0, 0},
8031 {0x47, 0x4, 0x4, 0, 0},
8032 {0x48, 0xf, 0xf, 0, 0},
8033 {0x49, 0x30, 0x30, 0, 0},
8034 {0x4A, 0x32, 0x32, 0, 0},
8035 {0x4B, 0xd, 0xd, 0, 0},
8036 {0x4C, 0xd, 0xd, 0, 0},
8037 {0x4D, 0x4, 0x4, 0, 0},
8038 {0x4E, 0x6, 0x6, 0, 0},
8039 {0x4F, 0x1, 0x1, 0, 0},
8040 {0x50, 0x1c, 0x1c, 0, 0},
8041 {0x51, 0x2, 0x2, 0, 0},
8042 {0x52, 0x2, 0x2, 0, 0},
8043 {0x53, 0xf7, 0xf7, 1, 1},
8044 {0x54, 0xb4, 0xb4, 0, 0},
8045 {0x55, 0xd2, 0xd2, 0, 0},
8046 {0x56, 0, 0, 0, 0},
8047 {0x57, 0, 0, 0, 0},
8048 {0x58, 0x4, 0x4, 0, 0},
8049 {0x59, 0x96, 0x96, 0, 0},
8050 {0x5A, 0x3e, 0x3e, 0, 0},
8051 {0x5B, 0x3e, 0x3e, 0, 0},
8052 {0x5C, 0x13, 0x13, 0, 0},
8053 {0x5D, 0x2, 0x2, 0, 0},
8054 {0x5E, 0, 0, 0, 0},
8055 {0x5F, 0x7, 0x7, 0, 0},
8056 {0x60, 0x7, 0x7, 1, 1},
8057 {0x61, 0x8, 0x8, 0, 0},
8058 {0x62, 0x3, 0x3, 0, 0},
8059 {0x63, 0, 0, 0, 0},
8060 {0x64, 0, 0, 0, 0},
8061 {0x65, 0, 0, 0, 0},
8062 {0x66, 0, 0, 0, 0},
8063 {0x67, 0, 0, 0, 0},
8064 {0x68, 0x40, 0x40, 0, 0},
8065 {0x69, 0, 0, 0, 0},
8066 {0x6A, 0, 0, 0, 0},
8067 {0x6B, 0, 0, 0, 0},
8068 {0x6C, 0, 0, 0, 0},
8069 {0x6D, 0x1, 0x1, 0, 0},
8070 {0x6E, 0, 0, 0, 0},
8071 {0x6F, 0, 0, 0, 0},
8072 {0x70, 0x60, 0x60, 0, 0},
8073 {0x71, 0x66, 0x66, 0, 0},
8074 {0x72, 0xc, 0xc, 0, 0},
8075 {0x73, 0x66, 0x66, 0, 0},
8076 {0x74, 0x8f, 0x8f, 1, 1},
8077 {0x75, 0, 0, 0, 0},
8078 {0x76, 0xcc, 0xcc, 0, 0},
8079 {0x77, 0x1, 0x1, 0, 0},
8080 {0x78, 0x66, 0x66, 0, 0},
8081 {0x79, 0x66, 0x66, 0, 0},
8082 {0x7A, 0, 0, 0, 0},
8083 {0x7B, 0, 0, 0, 0},
8084 {0x7C, 0, 0, 0, 0},
8085 {0x7D, 0, 0, 0, 0},
8086 {0x7E, 0, 0, 0, 0},
8087 {0x7F, 0, 0, 0, 0},
8088 {0x80, 0, 0, 0, 0},
8089 {0x81, 0, 0, 0, 0},
8090 {0x82, 0, 0, 0, 0},
8091 {0x83, 0, 0, 0, 0},
8092 {0x84, 0, 0, 0, 0},
8093 {0x85, 0xff, 0xff, 0, 0},
8094 {0x86, 0, 0, 0, 0},
8095 {0x87, 0, 0, 0, 0},
8096 {0x88, 0, 0, 0, 0},
8097 {0x89, 0, 0, 0, 0},
8098 {0x8A, 0, 0, 0, 0},
8099 {0x8B, 0, 0, 0, 0},
8100 {0x8C, 0, 0, 0, 0},
8101 {0x8D, 0, 0, 0, 0},
8102 {0x8E, 0, 0, 0, 0},
8103 {0x8F, 0, 0, 0, 0},
8104 {0x90, 0, 0, 0, 0},
8105 {0x91, 0, 0, 0, 0},
8106 {0x92, 0, 0, 0, 0},
8107 {0x93, 0, 0, 0, 0},
8108 {0x94, 0, 0, 0, 0},
8109 {0x95, 0, 0, 0, 0},
8110 {0x96, 0, 0, 0, 0},
8111 {0x97, 0, 0, 0, 0},
8112 {0x98, 0, 0, 0, 0},
8113 {0x99, 0, 0, 0, 0},
8114 {0x9A, 0, 0, 0, 0},
8115 {0x9B, 0, 0, 0, 0},
8116 {0x9C, 0, 0, 0, 0},
8117 {0x9D, 0, 0, 0, 0},
8118 {0x9E, 0, 0, 0, 0},
8119 {0x9F, 0x6, 0x6, 0, 0},
8120 {0xA0, 0x66, 0x66, 0, 0},
8121 {0xA1, 0x66, 0x66, 0, 0},
8122 {0xA2, 0x66, 0x66, 0, 0},
8123 {0xA3, 0x66, 0x66, 0, 0},
8124 {0xA4, 0x66, 0x66, 0, 0},
8125 {0xA5, 0x66, 0x66, 0, 0},
8126 {0xA6, 0x66, 0x66, 0, 0},
8127 {0xA7, 0x66, 0x66, 0, 0},
8128 {0xA8, 0x66, 0x66, 0, 0},
8129 {0xA9, 0x66, 0x66, 0, 0},
8130 {0xAA, 0x66, 0x66, 0, 0},
8131 {0xAB, 0x66, 0x66, 0, 0},
8132 {0xAC, 0x66, 0x66, 0, 0},
8133 {0xAD, 0x66, 0x66, 0, 0},
8134 {0xAE, 0x66, 0x66, 0, 0},
8135 {0xAF, 0x66, 0x66, 0, 0},
8136 {0xB0, 0x66, 0x66, 0, 0},
8137 {0xB1, 0x66, 0x66, 0, 0},
8138 {0xB2, 0x66, 0x66, 0, 0},
8139 {0xB3, 0xa, 0xa, 0, 0},
8140 {0xB4, 0, 0, 0, 0},
8141 {0xB5, 0, 0, 0, 0},
8142 {0xB6, 0, 0, 0, 0},
8143 {0xFFFF, 0, 0, 0, 0}
8144};
8145
8146radio_regs_t regs_TX_2056[] = {
8147 {0x02, 0, 0, 0, 0},
8148 {0x03, 0, 0, 0, 0},
8149 {0x04, 0, 0, 0, 0},
8150 {0x05, 0, 0, 0, 0},
8151 {0x06, 0, 0, 0, 0},
8152 {0x07, 0, 0, 0, 0},
8153 {0x08, 0, 0, 0, 0},
8154 {0x09, 0, 0, 0, 0},
8155 {0x0A, 0, 0, 0, 0},
8156 {0x0B, 0, 0, 0, 0},
8157 {0x0C, 0, 0, 0, 0},
8158 {0x0D, 0, 0, 0, 0},
8159 {0x0E, 0, 0, 0, 0},
8160 {0x0F, 0, 0, 0, 0},
8161 {0x10, 0, 0, 0, 0},
8162 {0x11, 0, 0, 0, 0},
8163 {0x12, 0, 0, 0, 0},
8164 {0x13, 0, 0, 0, 0},
8165 {0x14, 0, 0, 0, 0},
8166 {0x15, 0, 0, 0, 0},
8167 {0x16, 0, 0, 0, 0},
8168 {0x17, 0, 0, 0, 0},
8169 {0x18, 0, 0, 0, 0},
8170 {0x19, 0, 0, 0, 0},
8171 {0x1A, 0, 0, 0, 0},
8172 {0x1B, 0, 0, 0, 0},
8173 {0x1C, 0, 0, 0, 0},
8174 {0x1D, 0, 0, 0, 0},
8175 {0x1E, 0, 0, 0, 0},
8176 {0x1F, 0, 0, 0, 0},
8177 {0x20, 0, 0, 0, 0},
8178 {0x21, 0x88, 0x88, 0, 0},
8179 {0x22, 0x88, 0x88, 0, 0},
8180 {0x23, 0x88, 0x88, 0, 0},
8181 {0x24, 0x88, 0x88, 0, 0},
8182 {0x25, 0xc, 0xc, 0, 0},
8183 {0x26, 0, 0, 0, 0},
8184 {0x27, 0x3, 0x3, 0, 0},
8185 {0x28, 0, 0, 0, 0},
8186 {0x29, 0x3, 0x3, 0, 0},
8187 {0x2A, 0x37, 0x37, 0, 0},
8188 {0x2B, 0x3, 0x3, 0, 0},
8189 {0x2C, 0, 0, 0, 0},
8190 {0x2D, 0, 0, 0, 0},
8191 {0x2E, 0x1, 0x1, 0, 0},
8192 {0x2F, 0x1, 0x1, 0, 0},
8193 {0x30, 0, 0, 0, 0},
8194 {0x31, 0, 0, 0, 0},
8195 {0x32, 0, 0, 0, 0},
8196 {0x33, 0x11, 0x11, 0, 0},
8197 {0x34, 0x11, 0x11, 0, 0},
8198 {0x35, 0, 0, 0, 0},
8199 {0x36, 0, 0, 0, 0},
8200 {0x37, 0x3, 0x3, 0, 0},
8201 {0x38, 0xf, 0xf, 0, 0},
8202 {0x39, 0, 0, 0, 0},
8203 {0x3A, 0x2d, 0x2d, 0, 0},
8204 {0x3B, 0, 0, 0, 0},
8205 {0x3C, 0x6e, 0x6e, 0, 0},
8206 {0x3D, 0xf0, 0xf0, 1, 1},
8207 {0x3E, 0, 0, 0, 0},
8208 {0x3F, 0, 0, 0, 0},
8209 {0x40, 0, 0, 0, 0},
8210 {0x41, 0x3, 0x3, 0, 0},
8211 {0x42, 0x3, 0x3, 0, 0},
8212 {0x43, 0, 0, 0, 0},
8213 {0x44, 0x1e, 0x1e, 0, 0},
8214 {0x45, 0, 0, 0, 0},
8215 {0x46, 0x6e, 0x6e, 0, 0},
8216 {0x47, 0xf0, 0xf0, 1, 1},
8217 {0x48, 0, 0, 0, 0},
8218 {0x49, 0x2, 0x2, 0, 0},
8219 {0x4A, 0xff, 0xff, 1, 1},
8220 {0x4B, 0xc, 0xc, 0, 0},
8221 {0x4C, 0, 0, 0, 0},
8222 {0x4D, 0x38, 0x38, 0, 0},
8223 {0x4E, 0x70, 0x70, 1, 1},
8224 {0x4F, 0x2, 0x2, 0, 0},
8225 {0x50, 0x88, 0x88, 0, 0},
8226 {0x51, 0xc, 0xc, 0, 0},
8227 {0x52, 0, 0, 0, 0},
8228 {0x53, 0x8, 0x8, 0, 0},
8229 {0x54, 0x70, 0x70, 1, 1},
8230 {0x55, 0x2, 0x2, 0, 0},
8231 {0x56, 0xff, 0xff, 1, 1},
8232 {0x57, 0, 0, 0, 0},
8233 {0x58, 0x83, 0x83, 0, 0},
8234 {0x59, 0x77, 0x77, 1, 1},
8235 {0x5A, 0, 0, 0, 0},
8236 {0x5B, 0x2, 0x2, 0, 0},
8237 {0x5C, 0x88, 0x88, 0, 0},
8238 {0x5D, 0, 0, 0, 0},
8239 {0x5E, 0x8, 0x8, 0, 0},
8240 {0x5F, 0x77, 0x77, 1, 1},
8241 {0x60, 0x1, 0x1, 0, 0},
8242 {0x61, 0, 0, 0, 0},
8243 {0x62, 0x7, 0x7, 0, 0},
8244 {0x63, 0, 0, 0, 0},
8245 {0x64, 0x7, 0x7, 0, 0},
8246 {0x65, 0, 0, 0, 0},
8247 {0x66, 0, 0, 0, 0},
8248 {0x67, 0x74, 0x74, 1, 1},
8249 {0x68, 0, 0, 0, 0},
8250 {0x69, 0xa, 0xa, 0, 0},
8251 {0x6A, 0, 0, 0, 0},
8252 {0x6B, 0, 0, 0, 0},
8253 {0x6C, 0, 0, 0, 0},
8254 {0x6D, 0, 0, 0, 0},
8255 {0x6E, 0, 0, 0, 0},
8256 {0x6F, 0, 0, 0, 0},
8257 {0x70, 0, 0, 0, 0},
8258 {0x71, 0x2, 0x2, 0, 0},
8259 {0x72, 0, 0, 0, 0},
8260 {0x73, 0, 0, 0, 0},
8261 {0x74, 0xe, 0xe, 0, 0},
8262 {0x75, 0xe, 0xe, 0, 0},
8263 {0x76, 0xe, 0xe, 0, 0},
8264 {0x77, 0x13, 0x13, 0, 0},
8265 {0x78, 0x13, 0x13, 0, 0},
8266 {0x79, 0x1b, 0x1b, 0, 0},
8267 {0x7A, 0x1b, 0x1b, 0, 0},
8268 {0x7B, 0x55, 0x55, 0, 0},
8269 {0x7C, 0x5b, 0x5b, 0, 0},
8270 {0x7D, 0, 0, 0, 0},
8271 {0x7E, 0, 0, 0, 0},
8272 {0x7F, 0, 0, 0, 0},
8273 {0x80, 0, 0, 0, 0},
8274 {0x81, 0, 0, 0, 0},
8275 {0x82, 0, 0, 0, 0},
8276 {0x83, 0, 0, 0, 0},
8277 {0x84, 0, 0, 0, 0},
8278 {0x85, 0, 0, 0, 0},
8279 {0x86, 0, 0, 0, 0},
8280 {0x87, 0, 0, 0, 0},
8281 {0x88, 0, 0, 0, 0},
8282 {0x89, 0, 0, 0, 0},
8283 {0x8A, 0, 0, 0, 0},
8284 {0x8B, 0, 0, 0, 0},
8285 {0x8C, 0, 0, 0, 0},
8286 {0x8D, 0, 0, 0, 0},
8287 {0x8E, 0, 0, 0, 0},
8288 {0x8F, 0, 0, 0, 0},
8289 {0x90, 0, 0, 0, 0},
8290 {0x91, 0, 0, 0, 0},
8291 {0x92, 0, 0, 0, 0},
8292 {0xFFFF, 0, 0, 0, 0}
8293};
8294
8295radio_regs_t regs_RX_2056[] = {
8296 {0x02, 0, 0, 0, 0},
8297 {0x03, 0, 0, 0, 0},
8298 {0x04, 0, 0, 0, 0},
8299 {0x05, 0, 0, 0, 0},
8300 {0x06, 0, 0, 0, 0},
8301 {0x07, 0, 0, 0, 0},
8302 {0x08, 0, 0, 0, 0},
8303 {0x09, 0, 0, 0, 0},
8304 {0x0A, 0, 0, 0, 0},
8305 {0x0B, 0, 0, 0, 0},
8306 {0x0C, 0, 0, 0, 0},
8307 {0x0D, 0, 0, 0, 0},
8308 {0x0E, 0, 0, 0, 0},
8309 {0x0F, 0, 0, 0, 0},
8310 {0x10, 0, 0, 0, 0},
8311 {0x11, 0, 0, 0, 0},
8312 {0x12, 0, 0, 0, 0},
8313 {0x13, 0, 0, 0, 0},
8314 {0x14, 0, 0, 0, 0},
8315 {0x15, 0, 0, 0, 0},
8316 {0x16, 0, 0, 0, 0},
8317 {0x17, 0, 0, 0, 0},
8318 {0x18, 0, 0, 0, 0},
8319 {0x19, 0, 0, 0, 0},
8320 {0x1A, 0, 0, 0, 0},
8321 {0x1B, 0, 0, 0, 0},
8322 {0x1C, 0, 0, 0, 0},
8323 {0x1D, 0, 0, 0, 0},
8324 {0x1E, 0, 0, 0, 0},
8325 {0x1F, 0, 0, 0, 0},
8326 {0x20, 0x3, 0x3, 0, 0},
8327 {0x21, 0, 0, 0, 0},
8328 {0x22, 0, 0, 0, 0},
8329 {0x23, 0x90, 0x90, 0, 0},
8330 {0x24, 0x55, 0x55, 0, 0},
8331 {0x25, 0x15, 0x15, 0, 0},
8332 {0x26, 0x5, 0x5, 0, 0},
8333 {0x27, 0x15, 0x15, 0, 0},
8334 {0x28, 0x5, 0x5, 0, 0},
8335 {0x29, 0x20, 0x20, 0, 0},
8336 {0x2A, 0x11, 0x11, 0, 0},
8337 {0x2B, 0x90, 0x90, 0, 0},
8338 {0x2C, 0, 0, 0, 0},
8339 {0x2D, 0x88, 0x88, 0, 0},
8340 {0x2E, 0x32, 0x32, 0, 0},
8341 {0x2F, 0x77, 0x77, 0, 0},
8342 {0x30, 0x17, 0x17, 1, 1},
8343 {0x31, 0xff, 0xff, 1, 1},
8344 {0x32, 0x20, 0x20, 0, 0},
8345 {0x33, 0, 0, 0, 0},
8346 {0x34, 0x88, 0x88, 0, 0},
8347 {0x35, 0x32, 0x32, 0, 0},
8348 {0x36, 0x77, 0x77, 0, 0},
8349 {0x37, 0x17, 0x17, 1, 1},
8350 {0x38, 0xf0, 0xf0, 1, 1},
8351 {0x39, 0x20, 0x20, 0, 0},
8352 {0x3A, 0x8, 0x8, 0, 0},
8353 {0x3B, 0x99, 0x99, 0, 0},
8354 {0x3C, 0, 0, 0, 0},
8355 {0x3D, 0x44, 0x44, 1, 1},
8356 {0x3E, 0, 0, 0, 0},
8357 {0x3F, 0x44, 0x44, 0, 0},
8358 {0x40, 0xf, 0xf, 1, 1},
8359 {0x41, 0x6, 0x6, 0, 0},
8360 {0x42, 0x4, 0x4, 0, 0},
8361 {0x43, 0x50, 0x50, 1, 1},
8362 {0x44, 0x8, 0x8, 0, 0},
8363 {0x45, 0x99, 0x99, 0, 0},
8364 {0x46, 0, 0, 0, 0},
8365 {0x47, 0x11, 0x11, 0, 0},
8366 {0x48, 0, 0, 0, 0},
8367 {0x49, 0x44, 0x44, 0, 0},
8368 {0x4A, 0x7, 0x7, 0, 0},
8369 {0x4B, 0x6, 0x6, 0, 0},
8370 {0x4C, 0x4, 0x4, 0, 0},
8371 {0x4D, 0, 0, 0, 0},
8372 {0x4E, 0, 0, 0, 0},
8373 {0x4F, 0x66, 0x66, 0, 0},
8374 {0x50, 0x66, 0x66, 0, 0},
8375 {0x51, 0x57, 0x57, 0, 0},
8376 {0x52, 0x57, 0x57, 0, 0},
8377 {0x53, 0x44, 0x44, 0, 0},
8378 {0x54, 0, 0, 0, 0},
8379 {0x55, 0, 0, 0, 0},
8380 {0x56, 0x8, 0x8, 0, 0},
8381 {0x57, 0x8, 0x8, 0, 0},
8382 {0x58, 0x7, 0x7, 0, 0},
8383 {0x59, 0x22, 0x22, 0, 0},
8384 {0x5A, 0x22, 0x22, 0, 0},
8385 {0x5B, 0x2, 0x2, 0, 0},
8386 {0x5C, 0x23, 0x23, 0, 0},
8387 {0x5D, 0x7, 0x7, 0, 0},
8388 {0x5E, 0x55, 0x55, 0, 0},
8389 {0x5F, 0x23, 0x23, 0, 0},
8390 {0x60, 0x41, 0x41, 0, 0},
8391 {0x61, 0x1, 0x1, 0, 0},
8392 {0x62, 0xa, 0xa, 0, 0},
8393 {0x63, 0, 0, 0, 0},
8394 {0x64, 0, 0, 0, 0},
8395 {0x65, 0, 0, 0, 0},
8396 {0x66, 0, 0, 0, 0},
8397 {0x67, 0, 0, 0, 0},
8398 {0x68, 0, 0, 0, 0},
8399 {0x69, 0, 0, 0, 0},
8400 {0x6A, 0, 0, 0, 0},
8401 {0x6B, 0xc, 0xc, 0, 0},
8402 {0x6C, 0, 0, 0, 0},
8403 {0x6D, 0, 0, 0, 0},
8404 {0x6E, 0, 0, 0, 0},
8405 {0x6F, 0, 0, 0, 0},
8406 {0x70, 0, 0, 0, 0},
8407 {0x71, 0, 0, 0, 0},
8408 {0x72, 0x22, 0x22, 0, 0},
8409 {0x73, 0x22, 0x22, 0, 0},
8410 {0x74, 0x2, 0x2, 0, 0},
8411 {0x75, 0xa, 0xa, 0, 0},
8412 {0x76, 0x1, 0x1, 0, 0},
8413 {0x77, 0x22, 0x22, 0, 0},
8414 {0x78, 0x30, 0x30, 0, 0},
8415 {0x79, 0, 0, 0, 0},
8416 {0x7A, 0, 0, 0, 0},
8417 {0x7B, 0, 0, 0, 0},
8418 {0x7C, 0, 0, 0, 0},
8419 {0x7D, 0, 0, 0, 0},
8420 {0x7E, 0, 0, 0, 0},
8421 {0x7F, 0, 0, 0, 0},
8422 {0x80, 0, 0, 0, 0},
8423 {0x81, 0, 0, 0, 0},
8424 {0x82, 0, 0, 0, 0},
8425 {0x83, 0, 0, 0, 0},
8426 {0x84, 0, 0, 0, 0},
8427 {0x85, 0, 0, 0, 0},
8428 {0x86, 0, 0, 0, 0},
8429 {0x87, 0, 0, 0, 0},
8430 {0x88, 0, 0, 0, 0},
8431 {0x89, 0, 0, 0, 0},
8432 {0x8A, 0, 0, 0, 0},
8433 {0x8B, 0, 0, 0, 0},
8434 {0x8C, 0, 0, 0, 0},
8435 {0x8D, 0, 0, 0, 0},
8436 {0x8E, 0, 0, 0, 0},
8437 {0x8F, 0, 0, 0, 0},
8438 {0x90, 0, 0, 0, 0},
8439 {0x91, 0, 0, 0, 0},
8440 {0x92, 0, 0, 0, 0},
8441 {0x93, 0, 0, 0, 0},
8442 {0x94, 0, 0, 0, 0},
8443 {0xFFFF, 0, 0, 0, 0}
8444};
8445
8446radio_regs_t regs_SYN_2056_A1[] = {
8447 {0x02, 0, 0, 0, 0},
8448 {0x03, 0, 0, 0, 0},
8449 {0x04, 0, 0, 0, 0},
8450 {0x05, 0, 0, 0, 0},
8451 {0x06, 0, 0, 0, 0},
8452 {0x07, 0, 0, 0, 0},
8453 {0x08, 0, 0, 0, 0},
8454 {0x09, 0x1, 0x1, 0, 0},
8455 {0x0A, 0, 0, 0, 0},
8456 {0x0B, 0, 0, 0, 0},
8457 {0x0C, 0, 0, 0, 0},
8458 {0x0D, 0, 0, 0, 0},
8459 {0x0E, 0, 0, 0, 0},
8460 {0x0F, 0, 0, 0, 0},
8461 {0x10, 0, 0, 0, 0},
8462 {0x11, 0, 0, 0, 0},
8463 {0x12, 0, 0, 0, 0},
8464 {0x13, 0, 0, 0, 0},
8465 {0x14, 0, 0, 0, 0},
8466 {0x15, 0, 0, 0, 0},
8467 {0x16, 0, 0, 0, 0},
8468 {0x17, 0, 0, 0, 0},
8469 {0x18, 0, 0, 0, 0},
8470 {0x19, 0, 0, 0, 0},
8471 {0x1A, 0, 0, 0, 0},
8472 {0x1B, 0, 0, 0, 0},
8473 {0x1C, 0, 0, 0, 0},
8474 {0x1D, 0, 0, 0, 0},
8475 {0x1E, 0, 0, 0, 0},
8476 {0x1F, 0, 0, 0, 0},
8477 {0x20, 0, 0, 0, 0},
8478 {0x21, 0, 0, 0, 0},
8479 {0x22, 0x60, 0x60, 0, 0},
8480 {0x23, 0x6, 0x6, 0, 0},
8481 {0x24, 0xc, 0xc, 0, 0},
8482 {0x25, 0, 0, 0, 0},
8483 {0x26, 0, 0, 0, 0},
8484 {0x27, 0, 0, 0, 0},
8485 {0x28, 0x1, 0x1, 0, 0},
8486 {0x29, 0, 0, 0, 0},
8487 {0x2A, 0, 0, 0, 0},
8488 {0x2B, 0, 0, 0, 0},
8489 {0x2C, 0, 0, 0, 0},
8490 {0x2D, 0, 0, 0, 0},
8491 {0x2E, 0xd, 0xd, 0, 0},
8492 {0x2F, 0x1f, 0x1f, 0, 0},
8493 {0x30, 0x15, 0x15, 0, 0},
8494 {0x31, 0xf, 0xf, 0, 0},
8495 {0x32, 0, 0, 0, 0},
8496 {0x33, 0, 0, 0, 0},
8497 {0x34, 0, 0, 0, 0},
8498 {0x35, 0, 0, 0, 0},
8499 {0x36, 0, 0, 0, 0},
8500 {0x37, 0, 0, 0, 0},
8501 {0x38, 0, 0, 0, 0},
8502 {0x39, 0, 0, 0, 0},
8503 {0x3A, 0, 0, 0, 0},
8504 {0x3B, 0, 0, 0, 0},
8505 {0x3C, 0x13, 0x13, 0, 0},
8506 {0x3D, 0xf, 0xf, 0, 0},
8507 {0x3E, 0x18, 0x18, 0, 0},
8508 {0x3F, 0, 0, 0, 0},
8509 {0x40, 0, 0, 0, 0},
8510 {0x41, 0x20, 0x20, 0, 0},
8511 {0x42, 0x20, 0x20, 0, 0},
8512 {0x43, 0, 0, 0, 0},
8513 {0x44, 0x77, 0x77, 0, 0},
8514 {0x45, 0x7, 0x7, 0, 0},
8515 {0x46, 0x1, 0x1, 0, 0},
8516 {0x47, 0x4, 0x4, 0, 0},
8517 {0x48, 0xf, 0xf, 0, 0},
8518 {0x49, 0x30, 0x30, 0, 0},
8519 {0x4A, 0x32, 0x32, 0, 0},
8520 {0x4B, 0xd, 0xd, 0, 0},
8521 {0x4C, 0xd, 0xd, 0, 0},
8522 {0x4D, 0x4, 0x4, 0, 0},
8523 {0x4E, 0x6, 0x6, 0, 0},
8524 {0x4F, 0x1, 0x1, 0, 0},
8525 {0x50, 0x1c, 0x1c, 0, 0},
8526 {0x51, 0x2, 0x2, 0, 0},
8527 {0x52, 0x2, 0x2, 0, 0},
8528 {0x53, 0xf7, 0xf7, 1, 1},
8529 {0x54, 0xb4, 0xb4, 0, 0},
8530 {0x55, 0xd2, 0xd2, 0, 0},
8531 {0x56, 0, 0, 0, 0},
8532 {0x57, 0, 0, 0, 0},
8533 {0x58, 0x4, 0x4, 0, 0},
8534 {0x59, 0x96, 0x96, 0, 0},
8535 {0x5A, 0x3e, 0x3e, 0, 0},
8536 {0x5B, 0x3e, 0x3e, 0, 0},
8537 {0x5C, 0x13, 0x13, 0, 0},
8538 {0x5D, 0x2, 0x2, 0, 0},
8539 {0x5E, 0, 0, 0, 0},
8540 {0x5F, 0x7, 0x7, 0, 0},
8541 {0x60, 0x7, 0x7, 1, 1},
8542 {0x61, 0x8, 0x8, 0, 0},
8543 {0x62, 0x3, 0x3, 0, 0},
8544 {0x63, 0, 0, 0, 0},
8545 {0x64, 0, 0, 0, 0},
8546 {0x65, 0, 0, 0, 0},
8547 {0x66, 0, 0, 0, 0},
8548 {0x67, 0, 0, 0, 0},
8549 {0x68, 0x40, 0x40, 0, 0},
8550 {0x69, 0, 0, 0, 0},
8551 {0x6A, 0, 0, 0, 0},
8552 {0x6B, 0, 0, 0, 0},
8553 {0x6C, 0, 0, 0, 0},
8554 {0x6D, 0x1, 0x1, 0, 0},
8555 {0x6E, 0, 0, 0, 0},
8556 {0x6F, 0, 0, 0, 0},
8557 {0x70, 0x60, 0x60, 0, 0},
8558 {0x71, 0x66, 0x66, 0, 0},
8559 {0x72, 0xc, 0xc, 0, 0},
8560 {0x73, 0x66, 0x66, 0, 0},
8561 {0x74, 0x8f, 0x8f, 1, 1},
8562 {0x75, 0, 0, 0, 0},
8563 {0x76, 0xcc, 0xcc, 0, 0},
8564 {0x77, 0x1, 0x1, 0, 0},
8565 {0x78, 0x66, 0x66, 0, 0},
8566 {0x79, 0x66, 0x66, 0, 0},
8567 {0x7A, 0, 0, 0, 0},
8568 {0x7B, 0, 0, 0, 0},
8569 {0x7C, 0, 0, 0, 0},
8570 {0x7D, 0, 0, 0, 0},
8571 {0x7E, 0, 0, 0, 0},
8572 {0x7F, 0, 0, 0, 0},
8573 {0x80, 0, 0, 0, 0},
8574 {0x81, 0, 0, 0, 0},
8575 {0x82, 0, 0, 0, 0},
8576 {0x83, 0, 0, 0, 0},
8577 {0x84, 0, 0, 0, 0},
8578 {0x85, 0xff, 0xff, 0, 0},
8579 {0x86, 0, 0, 0, 0},
8580 {0x87, 0, 0, 0, 0},
8581 {0x88, 0, 0, 0, 0},
8582 {0x89, 0, 0, 0, 0},
8583 {0x8A, 0, 0, 0, 0},
8584 {0x8B, 0, 0, 0, 0},
8585 {0x8C, 0, 0, 0, 0},
8586 {0x8D, 0, 0, 0, 0},
8587 {0x8E, 0, 0, 0, 0},
8588 {0x8F, 0, 0, 0, 0},
8589 {0x90, 0, 0, 0, 0},
8590 {0x91, 0, 0, 0, 0},
8591 {0x92, 0, 0, 0, 0},
8592 {0x93, 0, 0, 0, 0},
8593 {0x94, 0, 0, 0, 0},
8594 {0x95, 0, 0, 0, 0},
8595 {0x96, 0, 0, 0, 0},
8596 {0x97, 0, 0, 0, 0},
8597 {0x98, 0, 0, 0, 0},
8598 {0x99, 0, 0, 0, 0},
8599 {0x9A, 0, 0, 0, 0},
8600 {0x9B, 0, 0, 0, 0},
8601 {0x9C, 0, 0, 0, 0},
8602 {0x9D, 0, 0, 0, 0},
8603 {0x9E, 0, 0, 0, 0},
8604 {0x9F, 0x6, 0x6, 0, 0},
8605 {0xA0, 0x66, 0x66, 0, 0},
8606 {0xA1, 0x66, 0x66, 0, 0},
8607 {0xA2, 0x66, 0x66, 0, 0},
8608 {0xA3, 0x66, 0x66, 0, 0},
8609 {0xA4, 0x66, 0x66, 0, 0},
8610 {0xA5, 0x66, 0x66, 0, 0},
8611 {0xA6, 0x66, 0x66, 0, 0},
8612 {0xA7, 0x66, 0x66, 0, 0},
8613 {0xA8, 0x66, 0x66, 0, 0},
8614 {0xA9, 0x66, 0x66, 0, 0},
8615 {0xAA, 0x66, 0x66, 0, 0},
8616 {0xAB, 0x66, 0x66, 0, 0},
8617 {0xAC, 0x66, 0x66, 0, 0},
8618 {0xAD, 0x66, 0x66, 0, 0},
8619 {0xAE, 0x66, 0x66, 0, 0},
8620 {0xAF, 0x66, 0x66, 0, 0},
8621 {0xB0, 0x66, 0x66, 0, 0},
8622 {0xB1, 0x66, 0x66, 0, 0},
8623 {0xB2, 0x66, 0x66, 0, 0},
8624 {0xB3, 0xa, 0xa, 0, 0},
8625 {0xB4, 0, 0, 0, 0},
8626 {0xB5, 0, 0, 0, 0},
8627 {0xB6, 0, 0, 0, 0},
8628 {0xFFFF, 0, 0, 0, 0}
8629};
8630
8631radio_regs_t regs_TX_2056_A1[] = {
8632 {0x02, 0, 0, 0, 0},
8633 {0x03, 0, 0, 0, 0},
8634 {0x04, 0, 0, 0, 0},
8635 {0x05, 0, 0, 0, 0},
8636 {0x06, 0, 0, 0, 0},
8637 {0x07, 0, 0, 0, 0},
8638 {0x08, 0, 0, 0, 0},
8639 {0x09, 0, 0, 0, 0},
8640 {0x0A, 0, 0, 0, 0},
8641 {0x0B, 0, 0, 0, 0},
8642 {0x0C, 0, 0, 0, 0},
8643 {0x0D, 0, 0, 0, 0},
8644 {0x0E, 0, 0, 0, 0},
8645 {0x0F, 0, 0, 0, 0},
8646 {0x10, 0, 0, 0, 0},
8647 {0x11, 0, 0, 0, 0},
8648 {0x12, 0, 0, 0, 0},
8649 {0x13, 0, 0, 0, 0},
8650 {0x14, 0, 0, 0, 0},
8651 {0x15, 0, 0, 0, 0},
8652 {0x16, 0, 0, 0, 0},
8653 {0x17, 0, 0, 0, 0},
8654 {0x18, 0, 0, 0, 0},
8655 {0x19, 0, 0, 0, 0},
8656 {0x1A, 0, 0, 0, 0},
8657 {0x1B, 0, 0, 0, 0},
8658 {0x1C, 0, 0, 0, 0},
8659 {0x1D, 0, 0, 0, 0},
8660 {0x1E, 0, 0, 0, 0},
8661 {0x1F, 0, 0, 0, 0},
8662 {0x20, 0, 0, 0, 0},
8663 {0x21, 0x88, 0x88, 0, 0},
8664 {0x22, 0x88, 0x88, 0, 0},
8665 {0x23, 0x88, 0x88, 0, 0},
8666 {0x24, 0x88, 0x88, 0, 0},
8667 {0x25, 0xc, 0xc, 0, 0},
8668 {0x26, 0, 0, 0, 0},
8669 {0x27, 0x3, 0x3, 0, 0},
8670 {0x28, 0, 0, 0, 0},
8671 {0x29, 0x3, 0x3, 0, 0},
8672 {0x2A, 0x37, 0x37, 0, 0},
8673 {0x2B, 0x3, 0x3, 0, 0},
8674 {0x2C, 0, 0, 0, 0},
8675 {0x2D, 0, 0, 0, 0},
8676 {0x2E, 0x1, 0x1, 0, 0},
8677 {0x2F, 0x1, 0x1, 0, 0},
8678 {0x30, 0, 0, 0, 0},
8679 {0x31, 0, 0, 0, 0},
8680 {0x32, 0, 0, 0, 0},
8681 {0x33, 0x11, 0x11, 0, 0},
8682 {0x34, 0x11, 0x11, 0, 0},
8683 {0x35, 0, 0, 0, 0},
8684 {0x36, 0, 0, 0, 0},
8685 {0x37, 0x3, 0x3, 0, 0},
8686 {0x38, 0xf, 0xf, 0, 0},
8687 {0x39, 0, 0, 0, 0},
8688 {0x3A, 0x2d, 0x2d, 0, 0},
8689 {0x3B, 0, 0, 0, 0},
8690 {0x3C, 0x6e, 0x6e, 0, 0},
8691 {0x3D, 0xf0, 0xf0, 1, 1},
8692 {0x3E, 0, 0, 0, 0},
8693 {0x3F, 0, 0, 0, 0},
8694 {0x40, 0, 0, 0, 0},
8695 {0x41, 0x3, 0x3, 0, 0},
8696 {0x42, 0x3, 0x3, 0, 0},
8697 {0x43, 0, 0, 0, 0},
8698 {0x44, 0x1e, 0x1e, 0, 0},
8699 {0x45, 0, 0, 0, 0},
8700 {0x46, 0x6e, 0x6e, 0, 0},
8701 {0x47, 0xf0, 0xf0, 1, 1},
8702 {0x48, 0, 0, 0, 0},
8703 {0x49, 0x2, 0x2, 0, 0},
8704 {0x4A, 0xff, 0xff, 1, 1},
8705 {0x4B, 0xc, 0xc, 0, 0},
8706 {0x4C, 0, 0, 0, 0},
8707 {0x4D, 0x38, 0x38, 0, 0},
8708 {0x4E, 0x70, 0x70, 1, 1},
8709 {0x4F, 0x2, 0x2, 0, 0},
8710 {0x50, 0x88, 0x88, 0, 0},
8711 {0x51, 0xc, 0xc, 0, 0},
8712 {0x52, 0, 0, 0, 0},
8713 {0x53, 0x8, 0x8, 0, 0},
8714 {0x54, 0x70, 0x70, 1, 1},
8715 {0x55, 0x2, 0x2, 0, 0},
8716 {0x56, 0xff, 0xff, 1, 1},
8717 {0x57, 0, 0, 0, 0},
8718 {0x58, 0x83, 0x83, 0, 0},
8719 {0x59, 0x77, 0x77, 1, 1},
8720 {0x5A, 0, 0, 0, 0},
8721 {0x5B, 0x2, 0x2, 0, 0},
8722 {0x5C, 0x88, 0x88, 0, 0},
8723 {0x5D, 0, 0, 0, 0},
8724 {0x5E, 0x8, 0x8, 0, 0},
8725 {0x5F, 0x77, 0x77, 1, 1},
8726 {0x60, 0x1, 0x1, 0, 0},
8727 {0x61, 0, 0, 0, 0},
8728 {0x62, 0x7, 0x7, 0, 0},
8729 {0x63, 0, 0, 0, 0},
8730 {0x64, 0x7, 0x7, 0, 0},
8731 {0x65, 0, 0, 0, 0},
8732 {0x66, 0, 0, 0, 0},
8733 {0x67, 0x72, 0x72, 1, 1},
8734 {0x68, 0, 0, 0, 0},
8735 {0x69, 0xa, 0xa, 0, 0},
8736 {0x6A, 0, 0, 0, 0},
8737 {0x6B, 0, 0, 0, 0},
8738 {0x6C, 0, 0, 0, 0},
8739 {0x6D, 0, 0, 0, 0},
8740 {0x6E, 0, 0, 0, 0},
8741 {0x6F, 0, 0, 0, 0},
8742 {0x70, 0, 0, 0, 0},
8743 {0x71, 0x2, 0x2, 0, 0},
8744 {0x72, 0, 0, 0, 0},
8745 {0x73, 0, 0, 0, 0},
8746 {0x74, 0xe, 0xe, 0, 0},
8747 {0x75, 0xe, 0xe, 0, 0},
8748 {0x76, 0xe, 0xe, 0, 0},
8749 {0x77, 0x13, 0x13, 0, 0},
8750 {0x78, 0x13, 0x13, 0, 0},
8751 {0x79, 0x1b, 0x1b, 0, 0},
8752 {0x7A, 0x1b, 0x1b, 0, 0},
8753 {0x7B, 0x55, 0x55, 0, 0},
8754 {0x7C, 0x5b, 0x5b, 0, 0},
8755 {0x7D, 0, 0, 0, 0},
8756 {0x7E, 0, 0, 0, 0},
8757 {0x7F, 0, 0, 0, 0},
8758 {0x80, 0, 0, 0, 0},
8759 {0x81, 0, 0, 0, 0},
8760 {0x82, 0, 0, 0, 0},
8761 {0x83, 0, 0, 0, 0},
8762 {0x84, 0, 0, 0, 0},
8763 {0x85, 0, 0, 0, 0},
8764 {0x86, 0, 0, 0, 0},
8765 {0x87, 0, 0, 0, 0},
8766 {0x88, 0, 0, 0, 0},
8767 {0x89, 0, 0, 0, 0},
8768 {0x8A, 0, 0, 0, 0},
8769 {0x8B, 0, 0, 0, 0},
8770 {0x8C, 0, 0, 0, 0},
8771 {0x8D, 0, 0, 0, 0},
8772 {0x8E, 0, 0, 0, 0},
8773 {0x8F, 0, 0, 0, 0},
8774 {0x90, 0, 0, 0, 0},
8775 {0x91, 0, 0, 0, 0},
8776 {0x92, 0, 0, 0, 0},
8777 {0xFFFF, 0, 0, 0, 0}
8778};
8779
8780radio_regs_t regs_RX_2056_A1[] = {
8781 {0x02, 0, 0, 0, 0},
8782 {0x03, 0, 0, 0, 0},
8783 {0x04, 0, 0, 0, 0},
8784 {0x05, 0, 0, 0, 0},
8785 {0x06, 0, 0, 0, 0},
8786 {0x07, 0, 0, 0, 0},
8787 {0x08, 0, 0, 0, 0},
8788 {0x09, 0, 0, 0, 0},
8789 {0x0A, 0, 0, 0, 0},
8790 {0x0B, 0, 0, 0, 0},
8791 {0x0C, 0, 0, 0, 0},
8792 {0x0D, 0, 0, 0, 0},
8793 {0x0E, 0, 0, 0, 0},
8794 {0x0F, 0, 0, 0, 0},
8795 {0x10, 0, 0, 0, 0},
8796 {0x11, 0, 0, 0, 0},
8797 {0x12, 0, 0, 0, 0},
8798 {0x13, 0, 0, 0, 0},
8799 {0x14, 0, 0, 0, 0},
8800 {0x15, 0, 0, 0, 0},
8801 {0x16, 0, 0, 0, 0},
8802 {0x17, 0, 0, 0, 0},
8803 {0x18, 0, 0, 0, 0},
8804 {0x19, 0, 0, 0, 0},
8805 {0x1A, 0, 0, 0, 0},
8806 {0x1B, 0, 0, 0, 0},
8807 {0x1C, 0, 0, 0, 0},
8808 {0x1D, 0, 0, 0, 0},
8809 {0x1E, 0, 0, 0, 0},
8810 {0x1F, 0, 0, 0, 0},
8811 {0x20, 0x3, 0x3, 0, 0},
8812 {0x21, 0, 0, 0, 0},
8813 {0x22, 0, 0, 0, 0},
8814 {0x23, 0x90, 0x90, 0, 0},
8815 {0x24, 0x55, 0x55, 0, 0},
8816 {0x25, 0x15, 0x15, 0, 0},
8817 {0x26, 0x5, 0x5, 0, 0},
8818 {0x27, 0x15, 0x15, 0, 0},
8819 {0x28, 0x5, 0x5, 0, 0},
8820 {0x29, 0x20, 0x20, 0, 0},
8821 {0x2A, 0x11, 0x11, 0, 0},
8822 {0x2B, 0x90, 0x90, 0, 0},
8823 {0x2C, 0, 0, 0, 0},
8824 {0x2D, 0x88, 0x88, 0, 0},
8825 {0x2E, 0x32, 0x32, 0, 0},
8826 {0x2F, 0x77, 0x77, 0, 0},
8827 {0x30, 0x17, 0x17, 1, 1},
8828 {0x31, 0xff, 0xff, 1, 1},
8829 {0x32, 0x20, 0x20, 0, 0},
8830 {0x33, 0, 0, 0, 0},
8831 {0x34, 0x88, 0x88, 0, 0},
8832 {0x35, 0x32, 0x32, 0, 0},
8833 {0x36, 0x77, 0x77, 0, 0},
8834 {0x37, 0x17, 0x17, 1, 1},
8835 {0x38, 0xf0, 0xf0, 1, 1},
8836 {0x39, 0x20, 0x20, 0, 0},
8837 {0x3A, 0x8, 0x8, 0, 0},
8838 {0x3B, 0x55, 0x55, 1, 1},
8839 {0x3C, 0, 0, 0, 0},
8840 {0x3D, 0x44, 0x44, 1, 1},
8841 {0x3E, 0, 0, 0, 0},
8842 {0x3F, 0x44, 0x44, 0, 0},
8843 {0x40, 0xf, 0xf, 1, 1},
8844 {0x41, 0x6, 0x6, 0, 0},
8845 {0x42, 0x4, 0x4, 0, 0},
8846 {0x43, 0x50, 0x50, 1, 1},
8847 {0x44, 0x8, 0x8, 0, 0},
8848 {0x45, 0x55, 0x55, 1, 1},
8849 {0x46, 0, 0, 0, 0},
8850 {0x47, 0x11, 0x11, 0, 0},
8851 {0x48, 0, 0, 0, 0},
8852 {0x49, 0x44, 0x44, 0, 0},
8853 {0x4A, 0x7, 0x7, 0, 0},
8854 {0x4B, 0x6, 0x6, 0, 0},
8855 {0x4C, 0x4, 0x4, 0, 0},
8856 {0x4D, 0, 0, 0, 0},
8857 {0x4E, 0, 0, 0, 0},
8858 {0x4F, 0x26, 0x26, 1, 1},
8859 {0x50, 0x26, 0x26, 1, 1},
8860 {0x51, 0xf, 0xf, 1, 1},
8861 {0x52, 0xf, 0xf, 1, 1},
8862 {0x53, 0x44, 0x44, 0, 0},
8863 {0x54, 0, 0, 0, 0},
8864 {0x55, 0, 0, 0, 0},
8865 {0x56, 0x8, 0x8, 0, 0},
8866 {0x57, 0x8, 0x8, 0, 0},
8867 {0x58, 0x7, 0x7, 0, 0},
8868 {0x59, 0x22, 0x22, 0, 0},
8869 {0x5A, 0x22, 0x22, 0, 0},
8870 {0x5B, 0x2, 0x2, 0, 0},
8871 {0x5C, 0x2f, 0x2f, 1, 1},
8872 {0x5D, 0x7, 0x7, 0, 0},
8873 {0x5E, 0x55, 0x55, 0, 0},
8874 {0x5F, 0x23, 0x23, 0, 0},
8875 {0x60, 0x41, 0x41, 0, 0},
8876 {0x61, 0x1, 0x1, 0, 0},
8877 {0x62, 0xa, 0xa, 0, 0},
8878 {0x63, 0, 0, 0, 0},
8879 {0x64, 0, 0, 0, 0},
8880 {0x65, 0, 0, 0, 0},
8881 {0x66, 0, 0, 0, 0},
8882 {0x67, 0, 0, 0, 0},
8883 {0x68, 0, 0, 0, 0},
8884 {0x69, 0, 0, 0, 0},
8885 {0x6A, 0, 0, 0, 0},
8886 {0x6B, 0xc, 0xc, 0, 0},
8887 {0x6C, 0, 0, 0, 0},
8888 {0x6D, 0, 0, 0, 0},
8889 {0x6E, 0, 0, 0, 0},
8890 {0x6F, 0, 0, 0, 0},
8891 {0x70, 0, 0, 0, 0},
8892 {0x71, 0, 0, 0, 0},
8893 {0x72, 0x22, 0x22, 0, 0},
8894 {0x73, 0x22, 0x22, 0, 0},
8895 {0x74, 0, 0, 1, 1},
8896 {0x75, 0xa, 0xa, 0, 0},
8897 {0x76, 0x1, 0x1, 0, 0},
8898 {0x77, 0x22, 0x22, 0, 0},
8899 {0x78, 0x30, 0x30, 0, 0},
8900 {0x79, 0, 0, 0, 0},
8901 {0x7A, 0, 0, 0, 0},
8902 {0x7B, 0, 0, 0, 0},
8903 {0x7C, 0, 0, 0, 0},
8904 {0x7D, 0, 0, 0, 0},
8905 {0x7E, 0, 0, 0, 0},
8906 {0x7F, 0, 0, 0, 0},
8907 {0x80, 0, 0, 0, 0},
8908 {0x81, 0, 0, 0, 0},
8909 {0x82, 0, 0, 0, 0},
8910 {0x83, 0, 0, 0, 0},
8911 {0x84, 0, 0, 0, 0},
8912 {0x85, 0, 0, 0, 0},
8913 {0x86, 0, 0, 0, 0},
8914 {0x87, 0, 0, 0, 0},
8915 {0x88, 0, 0, 0, 0},
8916 {0x89, 0, 0, 0, 0},
8917 {0x8A, 0, 0, 0, 0},
8918 {0x8B, 0, 0, 0, 0},
8919 {0x8C, 0, 0, 0, 0},
8920 {0x8D, 0, 0, 0, 0},
8921 {0x8E, 0, 0, 0, 0},
8922 {0x8F, 0, 0, 0, 0},
8923 {0x90, 0, 0, 0, 0},
8924 {0x91, 0, 0, 0, 0},
8925 {0x92, 0, 0, 0, 0},
8926 {0x93, 0, 0, 0, 0},
8927 {0x94, 0, 0, 0, 0},
8928 {0xFFFF, 0, 0, 0, 0}
8929};
8930
8931radio_regs_t regs_SYN_2056_rev5[] = {
8932 {0x02, 0, 0, 0, 0},
8933 {0x03, 0, 0, 0, 0},
8934 {0x04, 0, 0, 0, 0},
8935 {0x05, 0, 0, 0, 0},
8936 {0x06, 0, 0, 0, 0},
8937 {0x07, 0, 0, 0, 0},
8938 {0x08, 0, 0, 0, 0},
8939 {0x09, 0x1, 0x1, 0, 0},
8940 {0x0A, 0, 0, 0, 0},
8941 {0x0B, 0, 0, 0, 0},
8942 {0x0C, 0, 0, 0, 0},
8943 {0x0D, 0, 0, 0, 0},
8944 {0x0E, 0, 0, 0, 0},
8945 {0x0F, 0, 0, 0, 0},
8946 {0x10, 0, 0, 0, 0},
8947 {0x11, 0, 0, 0, 0},
8948 {0x12, 0, 0, 0, 0},
8949 {0x13, 0, 0, 0, 0},
8950 {0x14, 0, 0, 0, 0},
8951 {0x15, 0, 0, 0, 0},
8952 {0x16, 0, 0, 0, 0},
8953 {0x17, 0, 0, 0, 0},
8954 {0x18, 0, 0, 0, 0},
8955 {0x19, 0, 0, 0, 0},
8956 {0x1A, 0, 0, 0, 0},
8957 {0x1B, 0, 0, 0, 0},
8958 {0x1C, 0, 0, 0, 0},
8959 {0x1D, 0, 0, 0, 0},
8960 {0x1E, 0, 0, 0, 0},
8961 {0x1F, 0, 0, 0, 0},
8962 {0x20, 0, 0, 0, 0},
8963 {0x21, 0, 0, 0, 0},
8964 {0x22, 0x60, 0x60, 0, 0},
8965 {0x23, 0x6, 0x6, 0, 0},
8966 {0x24, 0xc, 0xc, 0, 0},
8967 {0x25, 0, 0, 0, 0},
8968 {0x26, 0, 0, 0, 0},
8969 {0x27, 0, 0, 0, 0},
8970 {0x28, 0x1, 0x1, 0, 0},
8971 {0x29, 0, 0, 0, 0},
8972 {0x2A, 0, 0, 0, 0},
8973 {0x2B, 0, 0, 0, 0},
8974 {0x2C, 0, 0, 0, 0},
8975 {0x2D, 0, 0, 0, 0},
8976 {0x2E, 0, 0, 0, 0},
8977 {0x2F, 0x1f, 0x1f, 0, 0},
8978 {0x30, 0x15, 0x15, 0, 0},
8979 {0x31, 0xf, 0xf, 0, 0},
8980 {0x32, 0, 0, 0, 0},
8981 {0x33, 0, 0, 0, 0},
8982 {0x34, 0, 0, 0, 0},
8983 {0x35, 0, 0, 0, 0},
8984 {0x36, 0, 0, 0, 0},
8985 {0x37, 0, 0, 0, 0},
8986 {0x38, 0, 0, 0, 0},
8987 {0x39, 0, 0, 0, 0},
8988 {0x3A, 0, 0, 0, 0},
8989 {0x3B, 0, 0, 0, 0},
8990 {0x3C, 0x13, 0x13, 0, 0},
8991 {0x3D, 0xf, 0xf, 0, 0},
8992 {0x3E, 0x18, 0x18, 0, 0},
8993 {0x3F, 0, 0, 0, 0},
8994 {0x40, 0, 0, 0, 0},
8995 {0x41, 0x20, 0x20, 0, 0},
8996 {0x42, 0x20, 0x20, 0, 0},
8997 {0x43, 0, 0, 0, 0},
8998 {0x44, 0x77, 0x77, 0, 0},
8999 {0x45, 0x7, 0x7, 0, 0},
9000 {0x46, 0x1, 0x1, 0, 0},
9001 {0x47, 0x4, 0x4, 0, 0},
9002 {0x48, 0xf, 0xf, 0, 0},
9003 {0x49, 0x30, 0x30, 0, 0},
9004 {0x4A, 0x32, 0x32, 0, 0},
9005 {0x4B, 0xd, 0xd, 0, 0},
9006 {0x4C, 0xd, 0xd, 0, 0},
9007 {0x4D, 0x4, 0x4, 0, 0},
9008 {0x4E, 0x6, 0x6, 0, 0},
9009 {0x4F, 0x1, 0x1, 0, 0},
9010 {0x50, 0x1c, 0x1c, 0, 0},
9011 {0x51, 0x2, 0x2, 0, 0},
9012 {0x52, 0x2, 0x2, 0, 0},
9013 {0x53, 0xf7, 0xf7, 1, 1},
9014 {0x54, 0xb4, 0xb4, 0, 0},
9015 {0x55, 0xd2, 0xd2, 0, 0},
9016 {0x56, 0, 0, 0, 0},
9017 {0x57, 0, 0, 0, 0},
9018 {0x58, 0x4, 0x4, 0, 0},
9019 {0x59, 0x96, 0x96, 0, 0},
9020 {0x5A, 0x3e, 0x3e, 0, 0},
9021 {0x5B, 0x3e, 0x3e, 0, 0},
9022 {0x5C, 0x13, 0x13, 0, 0},
9023 {0x5D, 0x2, 0x2, 0, 0},
9024 {0x5E, 0, 0, 0, 0},
9025 {0x5F, 0x7, 0x7, 0, 0},
9026 {0x60, 0x7, 0x7, 1, 1},
9027 {0x61, 0x8, 0x8, 0, 0},
9028 {0x62, 0x3, 0x3, 0, 0},
9029 {0x63, 0, 0, 0, 0},
9030 {0x64, 0, 0, 0, 0},
9031 {0x65, 0, 0, 0, 0},
9032 {0x66, 0, 0, 0, 0},
9033 {0x67, 0, 0, 0, 0},
9034 {0x68, 0x40, 0x40, 0, 0},
9035 {0x69, 0, 0, 0, 0},
9036 {0x6A, 0, 0, 0, 0},
9037 {0x6B, 0, 0, 0, 0},
9038 {0x6C, 0, 0, 0, 0},
9039 {0x6D, 0x1, 0x1, 0, 0},
9040 {0x6E, 0, 0, 0, 0},
9041 {0x6F, 0, 0, 0, 0},
9042 {0x70, 0x60, 0x60, 0, 0},
9043 {0x71, 0x66, 0x66, 0, 0},
9044 {0x72, 0xc, 0xc, 0, 0},
9045 {0x73, 0x66, 0x66, 0, 0},
9046 {0x74, 0x8f, 0x8f, 1, 1},
9047 {0x75, 0, 0, 0, 0},
9048 {0x76, 0xcc, 0xcc, 0, 0},
9049 {0x77, 0x1, 0x1, 0, 0},
9050 {0x78, 0x66, 0x66, 0, 0},
9051 {0x79, 0x66, 0x66, 0, 0},
9052 {0x7A, 0, 0, 0, 0},
9053 {0x7B, 0, 0, 0, 0},
9054 {0x7C, 0, 0, 0, 0},
9055 {0x7D, 0, 0, 0, 0},
9056 {0x7E, 0, 0, 0, 0},
9057 {0x7F, 0, 0, 0, 0},
9058 {0x80, 0, 0, 0, 0},
9059 {0x81, 0, 0, 0, 0},
9060 {0x82, 0, 0, 0, 0},
9061 {0x83, 0, 0, 0, 0},
9062 {0x84, 0, 0, 0, 0},
9063 {0x85, 0xff, 0xff, 0, 0},
9064 {0x86, 0, 0, 0, 0},
9065 {0x87, 0, 0, 0, 0},
9066 {0x88, 0, 0, 0, 0},
9067 {0x89, 0, 0, 0, 0},
9068 {0x8A, 0, 0, 0, 0},
9069 {0x8B, 0, 0, 0, 0},
9070 {0x8C, 0, 0, 0, 0},
9071 {0x8D, 0, 0, 0, 0},
9072 {0x8E, 0, 0, 0, 0},
9073 {0x8F, 0, 0, 0, 0},
9074 {0x90, 0, 0, 0, 0},
9075 {0x91, 0, 0, 0, 0},
9076 {0x92, 0, 0, 0, 0},
9077 {0x93, 0, 0, 0, 0},
9078 {0x94, 0, 0, 0, 0},
9079 {0x95, 0, 0, 0, 0},
9080 {0x96, 0, 0, 0, 0},
9081 {0x97, 0, 0, 0, 0},
9082 {0x98, 0, 0, 0, 0},
9083 {0x99, 0, 0, 0, 0},
9084 {0x9A, 0, 0, 0, 0},
9085 {0x9B, 0, 0, 0, 0},
9086 {0x9C, 0, 0, 0, 0},
9087 {0x9D, 0, 0, 0, 0},
9088 {0x9E, 0, 0, 0, 0},
9089 {0x9F, 0x6, 0x6, 0, 0},
9090 {0xA0, 0x66, 0x66, 0, 0},
9091 {0xA1, 0x66, 0x66, 0, 0},
9092 {0xA2, 0x66, 0x66, 0, 0},
9093 {0xA3, 0x66, 0x66, 0, 0},
9094 {0xA4, 0x66, 0x66, 0, 0},
9095 {0xA5, 0x66, 0x66, 0, 0},
9096 {0xA6, 0x66, 0x66, 0, 0},
9097 {0xA7, 0x66, 0x66, 0, 0},
9098 {0xA8, 0x66, 0x66, 0, 0},
9099 {0xA9, 0x66, 0x66, 0, 0},
9100 {0xAA, 0x66, 0x66, 0, 0},
9101 {0xAB, 0x66, 0x66, 0, 0},
9102 {0xAC, 0x66, 0x66, 0, 0},
9103 {0xAD, 0x66, 0x66, 0, 0},
9104 {0xAE, 0x66, 0x66, 0, 0},
9105 {0xAF, 0x66, 0x66, 0, 0},
9106 {0xB0, 0x66, 0x66, 0, 0},
9107 {0xB1, 0x66, 0x66, 0, 0},
9108 {0xB2, 0x66, 0x66, 0, 0},
9109 {0xB3, 0xa, 0xa, 0, 0},
9110 {0xB4, 0, 0, 0, 0},
9111 {0xB5, 0, 0, 0, 0},
9112 {0xB6, 0, 0, 0, 0},
9113 {0xFFFF, 0, 0, 0, 0}
9114};
9115
9116radio_regs_t regs_TX_2056_rev5[] = {
9117 {0x02, 0, 0, 0, 0},
9118 {0x03, 0, 0, 0, 0},
9119 {0x04, 0, 0, 0, 0},
9120 {0x05, 0, 0, 0, 0},
9121 {0x06, 0, 0, 0, 0},
9122 {0x07, 0, 0, 0, 0},
9123 {0x08, 0, 0, 0, 0},
9124 {0x09, 0, 0, 0, 0},
9125 {0x0A, 0, 0, 0, 0},
9126 {0x0B, 0, 0, 0, 0},
9127 {0x0C, 0, 0, 0, 0},
9128 {0x0D, 0, 0, 0, 0},
9129 {0x0E, 0, 0, 0, 0},
9130 {0x0F, 0, 0, 0, 0},
9131 {0x10, 0, 0, 0, 0},
9132 {0x11, 0, 0, 0, 0},
9133 {0x12, 0, 0, 0, 0},
9134 {0x13, 0, 0, 0, 0},
9135 {0x14, 0, 0, 0, 0},
9136 {0x15, 0, 0, 0, 0},
9137 {0x16, 0, 0, 0, 0},
9138 {0x17, 0, 0, 0, 0},
9139 {0x18, 0, 0, 0, 0},
9140 {0x19, 0, 0, 0, 0},
9141 {0x1A, 0, 0, 0, 0},
9142 {0x1B, 0, 0, 0, 0},
9143 {0x1C, 0, 0, 0, 0},
9144 {0x1D, 0, 0, 0, 0},
9145 {0x1E, 0, 0, 0, 0},
9146 {0x1F, 0, 0, 0, 0},
9147 {0x20, 0, 0, 0, 0},
9148 {0x21, 0x88, 0x88, 0, 0},
9149 {0x22, 0x88, 0x88, 0, 0},
9150 {0x23, 0x88, 0x88, 0, 0},
9151 {0x24, 0x88, 0x88, 0, 0},
9152 {0x25, 0xc, 0xc, 0, 0},
9153 {0x26, 0, 0, 0, 0},
9154 {0x27, 0x3, 0x3, 0, 0},
9155 {0x28, 0, 0, 0, 0},
9156 {0x29, 0x3, 0x3, 0, 0},
9157 {0x2A, 0x37, 0x37, 0, 0},
9158 {0x2B, 0x3, 0x3, 0, 0},
9159 {0x2C, 0, 0, 0, 0},
9160 {0x2D, 0, 0, 0, 0},
9161 {0x2E, 0x1, 0x1, 0, 0},
9162 {0x2F, 0x1, 0x1, 0, 0},
9163 {0x30, 0, 0, 0, 0},
9164 {0x31, 0, 0, 0, 0},
9165 {0x32, 0, 0, 0, 0},
9166 {0x33, 0x11, 0x11, 0, 0},
9167 {0x34, 0x11, 0x11, 0, 0},
9168 {0x35, 0, 0, 0, 0},
9169 {0x36, 0, 0, 0, 0},
9170 {0x37, 0x3, 0x3, 0, 0},
9171 {0x38, 0xf, 0xf, 0, 0},
9172 {0x39, 0, 0, 0, 0},
9173 {0x3A, 0x2d, 0x2d, 0, 0},
9174 {0x3B, 0, 0, 0, 0},
9175 {0x3C, 0x6e, 0x6e, 0, 0},
9176 {0x3D, 0xf0, 0xf0, 1, 1},
9177 {0x3E, 0, 0, 0, 0},
9178 {0x3F, 0, 0, 0, 0},
9179 {0x40, 0, 0, 0, 0},
9180 {0x41, 0x3, 0x3, 0, 0},
9181 {0x42, 0x3, 0x3, 0, 0},
9182 {0x43, 0, 0, 0, 0},
9183 {0x44, 0x1e, 0x1e, 0, 0},
9184 {0x45, 0, 0, 0, 0},
9185 {0x46, 0x6e, 0x6e, 0, 0},
9186 {0x47, 0xf0, 0xf0, 1, 1},
9187 {0x48, 0, 0, 0, 0},
9188 {0x49, 0x2, 0x2, 0, 0},
9189 {0x4A, 0xff, 0xff, 1, 1},
9190 {0x4B, 0xc, 0xc, 0, 0},
9191 {0x4C, 0, 0, 0, 0},
9192 {0x4D, 0x38, 0x38, 0, 0},
9193 {0x4E, 0x70, 0x70, 1, 1},
9194 {0x4F, 0x2, 0x2, 0, 0},
9195 {0x50, 0x88, 0x88, 0, 0},
9196 {0x51, 0xc, 0xc, 0, 0},
9197 {0x52, 0, 0, 0, 0},
9198 {0x53, 0x8, 0x8, 0, 0},
9199 {0x54, 0x70, 0x70, 1, 1},
9200 {0x55, 0x2, 0x2, 0, 0},
9201 {0x56, 0xff, 0xff, 1, 1},
9202 {0x57, 0, 0, 0, 0},
9203 {0x58, 0x83, 0x83, 0, 0},
9204 {0x59, 0x77, 0x77, 1, 1},
9205 {0x5A, 0, 0, 0, 0},
9206 {0x5B, 0x2, 0x2, 0, 0},
9207 {0x5C, 0x88, 0x88, 0, 0},
9208 {0x5D, 0, 0, 0, 0},
9209 {0x5E, 0x8, 0x8, 0, 0},
9210 {0x5F, 0x77, 0x77, 1, 1},
9211 {0x60, 0x1, 0x1, 0, 0},
9212 {0x61, 0, 0, 0, 0},
9213 {0x62, 0x7, 0x7, 0, 0},
9214 {0x63, 0, 0, 0, 0},
9215 {0x64, 0x7, 0x7, 0, 0},
9216 {0x65, 0, 0, 0, 0},
9217 {0x66, 0, 0, 0, 0},
9218 {0x67, 0, 0, 1, 1},
9219 {0x68, 0, 0, 0, 0},
9220 {0x69, 0xa, 0xa, 0, 0},
9221 {0x6A, 0, 0, 0, 0},
9222 {0x6B, 0, 0, 0, 0},
9223 {0x6C, 0, 0, 0, 0},
9224 {0x6D, 0, 0, 0, 0},
9225 {0x6E, 0, 0, 0, 0},
9226 {0x6F, 0, 0, 0, 0},
9227 {0x70, 0, 0, 0, 0},
9228 {0x71, 0x2, 0x2, 0, 0},
9229 {0x72, 0, 0, 0, 0},
9230 {0x73, 0, 0, 0, 0},
9231 {0x74, 0xe, 0xe, 0, 0},
9232 {0x75, 0xe, 0xe, 0, 0},
9233 {0x76, 0xe, 0xe, 0, 0},
9234 {0x77, 0x13, 0x13, 0, 0},
9235 {0x78, 0x13, 0x13, 0, 0},
9236 {0x79, 0x1b, 0x1b, 0, 0},
9237 {0x7A, 0x1b, 0x1b, 0, 0},
9238 {0x7B, 0x55, 0x55, 0, 0},
9239 {0x7C, 0x5b, 0x5b, 0, 0},
9240 {0x7D, 0, 0, 0, 0},
9241 {0x7E, 0, 0, 0, 0},
9242 {0x7F, 0, 0, 0, 0},
9243 {0x80, 0, 0, 0, 0},
9244 {0x81, 0, 0, 0, 0},
9245 {0x82, 0, 0, 0, 0},
9246 {0x83, 0, 0, 0, 0},
9247 {0x84, 0, 0, 0, 0},
9248 {0x85, 0, 0, 0, 0},
9249 {0x86, 0, 0, 0, 0},
9250 {0x87, 0, 0, 0, 0},
9251 {0x88, 0, 0, 0, 0},
9252 {0x89, 0, 0, 0, 0},
9253 {0x8A, 0, 0, 0, 0},
9254 {0x8B, 0, 0, 0, 0},
9255 {0x8C, 0, 0, 0, 0},
9256 {0x8D, 0, 0, 0, 0},
9257 {0x8E, 0, 0, 0, 0},
9258 {0x8F, 0, 0, 0, 0},
9259 {0x90, 0, 0, 0, 0},
9260 {0x91, 0, 0, 0, 0},
9261 {0x92, 0, 0, 0, 0},
9262 {0x93, 0x70, 0x70, 0, 0},
9263 {0x94, 0x70, 0x70, 0, 0},
9264 {0x95, 0x71, 0x71, 1, 1},
9265 {0x96, 0x71, 0x71, 1, 1},
9266 {0x97, 0x72, 0x72, 1, 1},
9267 {0x98, 0x73, 0x73, 1, 1},
9268 {0x99, 0x74, 0x74, 1, 1},
9269 {0x9A, 0x75, 0x75, 1, 1},
9270 {0xFFFF, 0, 0, 0, 0}
9271};
9272
9273radio_regs_t regs_RX_2056_rev5[] = {
9274 {0x02, 0, 0, 0, 0},
9275 {0x03, 0, 0, 0, 0},
9276 {0x04, 0, 0, 0, 0},
9277 {0x05, 0, 0, 0, 0},
9278 {0x06, 0, 0, 0, 0},
9279 {0x07, 0, 0, 0, 0},
9280 {0x08, 0, 0, 0, 0},
9281 {0x09, 0, 0, 0, 0},
9282 {0x0A, 0, 0, 0, 0},
9283 {0x0B, 0, 0, 0, 0},
9284 {0x0C, 0, 0, 0, 0},
9285 {0x0D, 0, 0, 0, 0},
9286 {0x0E, 0, 0, 0, 0},
9287 {0x0F, 0, 0, 0, 0},
9288 {0x10, 0, 0, 0, 0},
9289 {0x11, 0, 0, 0, 0},
9290 {0x12, 0, 0, 0, 0},
9291 {0x13, 0, 0, 0, 0},
9292 {0x14, 0, 0, 0, 0},
9293 {0x15, 0, 0, 0, 0},
9294 {0x16, 0, 0, 0, 0},
9295 {0x17, 0, 0, 0, 0},
9296 {0x18, 0, 0, 0, 0},
9297 {0x19, 0, 0, 0, 0},
9298 {0x1A, 0, 0, 0, 0},
9299 {0x1B, 0, 0, 0, 0},
9300 {0x1C, 0, 0, 0, 0},
9301 {0x1D, 0, 0, 0, 0},
9302 {0x1E, 0, 0, 0, 0},
9303 {0x1F, 0, 0, 0, 0},
9304 {0x20, 0x3, 0x3, 0, 0},
9305 {0x21, 0, 0, 0, 0},
9306 {0x22, 0, 0, 0, 0},
9307 {0x23, 0x90, 0x90, 0, 0},
9308 {0x24, 0x55, 0x55, 0, 0},
9309 {0x25, 0x15, 0x15, 0, 0},
9310 {0x26, 0x5, 0x5, 0, 0},
9311 {0x27, 0x15, 0x15, 0, 0},
9312 {0x28, 0x5, 0x5, 0, 0},
9313 {0x29, 0x20, 0x20, 0, 0},
9314 {0x2A, 0x11, 0x11, 0, 0},
9315 {0x2B, 0x90, 0x90, 0, 0},
9316 {0x2C, 0, 0, 0, 0},
9317 {0x2D, 0x88, 0x88, 0, 0},
9318 {0x2E, 0x32, 0x32, 0, 0},
9319 {0x2F, 0x77, 0x77, 0, 0},
9320 {0x30, 0x17, 0x17, 1, 1},
9321 {0x31, 0xff, 0xff, 1, 1},
9322 {0x32, 0x20, 0x20, 0, 0},
9323 {0x33, 0, 0, 0, 0},
9324 {0x34, 0x88, 0x88, 0, 0},
9325 {0x35, 0x32, 0x32, 0, 0},
9326 {0x36, 0x77, 0x77, 0, 0},
9327 {0x37, 0x17, 0x17, 1, 1},
9328 {0x38, 0xf0, 0xf0, 1, 1},
9329 {0x39, 0x20, 0x20, 0, 0},
9330 {0x3A, 0x8, 0x8, 0, 0},
9331 {0x3B, 0x55, 0x55, 1, 1},
9332 {0x3C, 0, 0, 0, 0},
9333 {0x3D, 0x88, 0x88, 1, 1},
9334 {0x3E, 0, 0, 0, 0},
9335 {0x3F, 0, 0, 1, 1},
9336 {0x40, 0x7, 0x7, 1, 1},
9337 {0x41, 0x6, 0x6, 0, 0},
9338 {0x42, 0x4, 0x4, 0, 0},
9339 {0x43, 0, 0, 0, 0},
9340 {0x44, 0x8, 0x8, 0, 0},
9341 {0x45, 0x55, 0x55, 1, 1},
9342 {0x46, 0, 0, 0, 0},
9343 {0x47, 0x11, 0x11, 0, 0},
9344 {0x48, 0, 0, 0, 0},
9345 {0x49, 0, 0, 1, 1},
9346 {0x4A, 0x7, 0x7, 0, 0},
9347 {0x4B, 0x6, 0x6, 0, 0},
9348 {0x4C, 0x4, 0x4, 0, 0},
9349 {0x4D, 0, 0, 0, 0},
9350 {0x4E, 0, 0, 0, 0},
9351 {0x4F, 0x26, 0x26, 1, 1},
9352 {0x50, 0x26, 0x26, 1, 1},
9353 {0x51, 0xf, 0xf, 1, 1},
9354 {0x52, 0xf, 0xf, 1, 1},
9355 {0x53, 0x44, 0x44, 0, 0},
9356 {0x54, 0, 0, 0, 0},
9357 {0x55, 0, 0, 0, 0},
9358 {0x56, 0x8, 0x8, 0, 0},
9359 {0x57, 0x8, 0x8, 0, 0},
9360 {0x58, 0x7, 0x7, 0, 0},
9361 {0x59, 0x22, 0x22, 0, 0},
9362 {0x5A, 0x22, 0x22, 0, 0},
9363 {0x5B, 0x2, 0x2, 0, 0},
9364 {0x5C, 0x4, 0x4, 1, 1},
9365 {0x5D, 0x7, 0x7, 0, 0},
9366 {0x5E, 0x55, 0x55, 0, 0},
9367 {0x5F, 0x23, 0x23, 0, 0},
9368 {0x60, 0x41, 0x41, 0, 0},
9369 {0x61, 0x1, 0x1, 0, 0},
9370 {0x62, 0xa, 0xa, 0, 0},
9371 {0x63, 0, 0, 0, 0},
9372 {0x64, 0, 0, 0, 0},
9373 {0x65, 0, 0, 0, 0},
9374 {0x66, 0, 0, 0, 0},
9375 {0x67, 0, 0, 0, 0},
9376 {0x68, 0, 0, 0, 0},
9377 {0x69, 0, 0, 0, 0},
9378 {0x6A, 0, 0, 0, 0},
9379 {0x6B, 0xc, 0xc, 0, 0},
9380 {0x6C, 0, 0, 0, 0},
9381 {0x6D, 0, 0, 0, 0},
9382 {0x6E, 0, 0, 0, 0},
9383 {0x6F, 0, 0, 0, 0},
9384 {0x70, 0, 0, 0, 0},
9385 {0x71, 0, 0, 0, 0},
9386 {0x72, 0x22, 0x22, 0, 0},
9387 {0x73, 0x22, 0x22, 0, 0},
9388 {0x74, 0, 0, 1, 1},
9389 {0x75, 0xa, 0xa, 0, 0},
9390 {0x76, 0x1, 0x1, 0, 0},
9391 {0x77, 0x22, 0x22, 0, 0},
9392 {0x78, 0x30, 0x30, 0, 0},
9393 {0x79, 0, 0, 0, 0},
9394 {0x7A, 0, 0, 0, 0},
9395 {0x7B, 0, 0, 0, 0},
9396 {0x7C, 0, 0, 0, 0},
9397 {0x7D, 0, 0, 0, 0},
9398 {0x7E, 0, 0, 0, 0},
9399 {0x7F, 0, 0, 0, 0},
9400 {0x80, 0, 0, 0, 0},
9401 {0x81, 0, 0, 0, 0},
9402 {0x82, 0, 0, 0, 0},
9403 {0x83, 0, 0, 0, 0},
9404 {0x84, 0, 0, 0, 0},
9405 {0x85, 0, 0, 0, 0},
9406 {0x86, 0, 0, 0, 0},
9407 {0x87, 0, 0, 0, 0},
9408 {0x88, 0, 0, 0, 0},
9409 {0x89, 0, 0, 0, 0},
9410 {0x8A, 0, 0, 0, 0},
9411 {0x8B, 0, 0, 0, 0},
9412 {0x8C, 0, 0, 0, 0},
9413 {0x8D, 0, 0, 0, 0},
9414 {0x8E, 0, 0, 0, 0},
9415 {0x8F, 0, 0, 0, 0},
9416 {0x90, 0, 0, 0, 0},
9417 {0x91, 0, 0, 0, 0},
9418 {0x92, 0, 0, 0, 0},
9419 {0x93, 0, 0, 0, 0},
9420 {0x94, 0, 0, 0, 0},
9421 {0xFFFF, 0, 0, 0, 0}
9422};
9423
9424radio_regs_t regs_SYN_2056_rev6[] = {
9425 {0x02, 0, 0, 0, 0},
9426 {0x03, 0, 0, 0, 0},
9427 {0x04, 0, 0, 0, 0},
9428 {0x05, 0, 0, 0, 0},
9429 {0x06, 0, 0, 0, 0},
9430 {0x07, 0, 0, 0, 0},
9431 {0x08, 0, 0, 0, 0},
9432 {0x09, 0x1, 0x1, 0, 0},
9433 {0x0A, 0, 0, 0, 0},
9434 {0x0B, 0, 0, 0, 0},
9435 {0x0C, 0, 0, 0, 0},
9436 {0x0D, 0, 0, 0, 0},
9437 {0x0E, 0, 0, 0, 0},
9438 {0x0F, 0, 0, 0, 0},
9439 {0x10, 0, 0, 0, 0},
9440 {0x11, 0, 0, 0, 0},
9441 {0x12, 0, 0, 0, 0},
9442 {0x13, 0, 0, 0, 0},
9443 {0x14, 0, 0, 0, 0},
9444 {0x15, 0, 0, 0, 0},
9445 {0x16, 0, 0, 0, 0},
9446 {0x17, 0, 0, 0, 0},
9447 {0x18, 0, 0, 0, 0},
9448 {0x19, 0, 0, 0, 0},
9449 {0x1A, 0, 0, 0, 0},
9450 {0x1B, 0, 0, 0, 0},
9451 {0x1C, 0, 0, 0, 0},
9452 {0x1D, 0, 0, 0, 0},
9453 {0x1E, 0, 0, 0, 0},
9454 {0x1F, 0, 0, 0, 0},
9455 {0x20, 0, 0, 0, 0},
9456 {0x21, 0, 0, 0, 0},
9457 {0x22, 0x60, 0x60, 0, 0},
9458 {0x23, 0x6, 0x6, 0, 0},
9459 {0x24, 0xc, 0xc, 0, 0},
9460 {0x25, 0, 0, 0, 0},
9461 {0x26, 0, 0, 0, 0},
9462 {0x27, 0, 0, 0, 0},
9463 {0x28, 0x1, 0x1, 0, 0},
9464 {0x29, 0, 0, 0, 0},
9465 {0x2A, 0, 0, 0, 0},
9466 {0x2B, 0, 0, 0, 0},
9467 {0x2C, 0, 0, 0, 0},
9468 {0x2D, 0, 0, 0, 0},
9469 {0x2E, 0, 0, 0, 0},
9470 {0x2F, 0x1f, 0x1f, 0, 0},
9471 {0x30, 0x15, 0x15, 0, 0},
9472 {0x31, 0xf, 0xf, 0, 0},
9473 {0x32, 0, 0, 0, 0},
9474 {0x33, 0, 0, 0, 0},
9475 {0x34, 0, 0, 0, 0},
9476 {0x35, 0, 0, 0, 0},
9477 {0x36, 0, 0, 0, 0},
9478 {0x37, 0, 0, 0, 0},
9479 {0x38, 0, 0, 0, 0},
9480 {0x39, 0, 0, 0, 0},
9481 {0x3A, 0, 0, 0, 0},
9482 {0x3B, 0, 0, 0, 0},
9483 {0x3C, 0x13, 0x13, 0, 0},
9484 {0x3D, 0xf, 0xf, 0, 0},
9485 {0x3E, 0x18, 0x18, 0, 0},
9486 {0x3F, 0, 0, 0, 0},
9487 {0x40, 0, 0, 0, 0},
9488 {0x41, 0x20, 0x20, 0, 0},
9489 {0x42, 0x20, 0x20, 0, 0},
9490 {0x43, 0, 0, 0, 0},
9491 {0x44, 0x77, 0x77, 0, 0},
9492 {0x45, 0x7, 0x7, 0, 0},
9493 {0x46, 0x1, 0x1, 0, 0},
9494 {0x47, 0x4, 0x4, 0, 0},
9495 {0x48, 0xf, 0xf, 0, 0},
9496 {0x49, 0x30, 0x30, 0, 0},
9497 {0x4A, 0x32, 0x32, 0, 0},
9498 {0x4B, 0xd, 0xd, 0, 0},
9499 {0x4C, 0xd, 0xd, 0, 0},
9500 {0x4D, 0x4, 0x4, 0, 0},
9501 {0x4E, 0x6, 0x6, 0, 0},
9502 {0x4F, 0x1, 0x1, 0, 0},
9503 {0x50, 0x1c, 0x1c, 0, 0},
9504 {0x51, 0x2, 0x2, 0, 0},
9505 {0x52, 0x2, 0x2, 0, 0},
9506 {0x53, 0xf7, 0xf7, 1, 1},
9507 {0x54, 0xb4, 0xb4, 0, 0},
9508 {0x55, 0xd2, 0xd2, 0, 0},
9509 {0x56, 0, 0, 0, 0},
9510 {0x57, 0, 0, 0, 0},
9511 {0x58, 0x4, 0x4, 0, 0},
9512 {0x59, 0x96, 0x96, 0, 0},
9513 {0x5A, 0x3e, 0x3e, 0, 0},
9514 {0x5B, 0x3e, 0x3e, 0, 0},
9515 {0x5C, 0x13, 0x13, 0, 0},
9516 {0x5D, 0x2, 0x2, 0, 0},
9517 {0x5E, 0, 0, 0, 0},
9518 {0x5F, 0x7, 0x7, 0, 0},
9519 {0x60, 0x7, 0x7, 1, 1},
9520 {0x61, 0x8, 0x8, 0, 0},
9521 {0x62, 0x3, 0x3, 0, 0},
9522 {0x63, 0, 0, 0, 0},
9523 {0x64, 0, 0, 0, 0},
9524 {0x65, 0, 0, 0, 0},
9525 {0x66, 0, 0, 0, 0},
9526 {0x67, 0, 0, 0, 0},
9527 {0x68, 0x40, 0x40, 0, 0},
9528 {0x69, 0, 0, 0, 0},
9529 {0x6A, 0, 0, 0, 0},
9530 {0x6B, 0, 0, 0, 0},
9531 {0x6C, 0, 0, 0, 0},
9532 {0x6D, 0x1, 0x1, 0, 0},
9533 {0x6E, 0, 0, 0, 0},
9534 {0x6F, 0, 0, 0, 0},
9535 {0x70, 0x60, 0x60, 0, 0},
9536 {0x71, 0x66, 0x66, 0, 0},
9537 {0x72, 0xc, 0xc, 0, 0},
9538 {0x73, 0x66, 0x66, 0, 0},
9539 {0x74, 0x8f, 0x8f, 1, 1},
9540 {0x75, 0, 0, 0, 0},
9541 {0x76, 0xcc, 0xcc, 0, 0},
9542 {0x77, 0x1, 0x1, 0, 0},
9543 {0x78, 0x66, 0x66, 0, 0},
9544 {0x79, 0x66, 0x66, 0, 0},
9545 {0x7A, 0, 0, 0, 0},
9546 {0x7B, 0, 0, 0, 0},
9547 {0x7C, 0, 0, 0, 0},
9548 {0x7D, 0, 0, 0, 0},
9549 {0x7E, 0, 0, 0, 0},
9550 {0x7F, 0, 0, 0, 0},
9551 {0x80, 0, 0, 0, 0},
9552 {0x81, 0, 0, 0, 0},
9553 {0x82, 0, 0, 0, 0},
9554 {0x83, 0, 0, 0, 0},
9555 {0x84, 0, 0, 0, 0},
9556 {0x85, 0xff, 0xff, 0, 0},
9557 {0x86, 0, 0, 0, 0},
9558 {0x87, 0, 0, 0, 0},
9559 {0x88, 0, 0, 0, 0},
9560 {0x89, 0, 0, 0, 0},
9561 {0x8A, 0, 0, 0, 0},
9562 {0x8B, 0, 0, 0, 0},
9563 {0x8C, 0, 0, 0, 0},
9564 {0x8D, 0, 0, 0, 0},
9565 {0x8E, 0, 0, 0, 0},
9566 {0x8F, 0, 0, 0, 0},
9567 {0x90, 0, 0, 0, 0},
9568 {0x91, 0, 0, 0, 0},
9569 {0x92, 0, 0, 0, 0},
9570 {0x93, 0, 0, 0, 0},
9571 {0x94, 0, 0, 0, 0},
9572 {0x95, 0, 0, 0, 0},
9573 {0x96, 0, 0, 0, 0},
9574 {0x97, 0, 0, 0, 0},
9575 {0x98, 0, 0, 0, 0},
9576 {0x99, 0, 0, 0, 0},
9577 {0x9A, 0, 0, 0, 0},
9578 {0x9B, 0, 0, 0, 0},
9579 {0x9C, 0, 0, 0, 0},
9580 {0x9D, 0, 0, 0, 0},
9581 {0x9E, 0, 0, 0, 0},
9582 {0x9F, 0x6, 0x6, 0, 0},
9583 {0xA0, 0x66, 0x66, 0, 0},
9584 {0xA1, 0x66, 0x66, 0, 0},
9585 {0xA2, 0x66, 0x66, 0, 0},
9586 {0xA3, 0x66, 0x66, 0, 0},
9587 {0xA4, 0x66, 0x66, 0, 0},
9588 {0xA5, 0x66, 0x66, 0, 0},
9589 {0xA6, 0x66, 0x66, 0, 0},
9590 {0xA7, 0x66, 0x66, 0, 0},
9591 {0xA8, 0x66, 0x66, 0, 0},
9592 {0xA9, 0x66, 0x66, 0, 0},
9593 {0xAA, 0x66, 0x66, 0, 0},
9594 {0xAB, 0x66, 0x66, 0, 0},
9595 {0xAC, 0x66, 0x66, 0, 0},
9596 {0xAD, 0x66, 0x66, 0, 0},
9597 {0xAE, 0x66, 0x66, 0, 0},
9598 {0xAF, 0x66, 0x66, 0, 0},
9599 {0xB0, 0x66, 0x66, 0, 0},
9600 {0xB1, 0x66, 0x66, 0, 0},
9601 {0xB2, 0x66, 0x66, 0, 0},
9602 {0xB3, 0xa, 0xa, 0, 0},
9603 {0xB4, 0, 0, 0, 0},
9604 {0xB5, 0, 0, 0, 0},
9605 {0xB6, 0, 0, 0, 0},
9606 {0xFFFF, 0, 0, 0, 0}
9607};
9608
9609radio_regs_t regs_TX_2056_rev6[] = {
9610 {0x02, 0, 0, 0, 0},
9611 {0x03, 0, 0, 0, 0},
9612 {0x04, 0, 0, 0, 0},
9613 {0x05, 0, 0, 0, 0},
9614 {0x06, 0, 0, 0, 0},
9615 {0x07, 0, 0, 0, 0},
9616 {0x08, 0, 0, 0, 0},
9617 {0x09, 0, 0, 0, 0},
9618 {0x0A, 0, 0, 0, 0},
9619 {0x0B, 0, 0, 0, 0},
9620 {0x0C, 0, 0, 0, 0},
9621 {0x0D, 0, 0, 0, 0},
9622 {0x0E, 0, 0, 0, 0},
9623 {0x0F, 0, 0, 0, 0},
9624 {0x10, 0, 0, 0, 0},
9625 {0x11, 0, 0, 0, 0},
9626 {0x12, 0, 0, 0, 0},
9627 {0x13, 0, 0, 0, 0},
9628 {0x14, 0, 0, 0, 0},
9629 {0x15, 0, 0, 0, 0},
9630 {0x16, 0, 0, 0, 0},
9631 {0x17, 0, 0, 0, 0},
9632 {0x18, 0, 0, 0, 0},
9633 {0x19, 0, 0, 0, 0},
9634 {0x1A, 0, 0, 0, 0},
9635 {0x1B, 0, 0, 0, 0},
9636 {0x1C, 0, 0, 0, 0},
9637 {0x1D, 0, 0, 0, 0},
9638 {0x1E, 0, 0, 0, 0},
9639 {0x1F, 0, 0, 0, 0},
9640 {0x20, 0, 0, 0, 0},
9641 {0x21, 0x88, 0x88, 0, 0},
9642 {0x22, 0x88, 0x88, 0, 0},
9643 {0x23, 0x88, 0x88, 0, 0},
9644 {0x24, 0x88, 0x88, 0, 0},
9645 {0x25, 0xc, 0xc, 0, 0},
9646 {0x26, 0, 0, 0, 0},
9647 {0x27, 0x3, 0x3, 0, 0},
9648 {0x28, 0, 0, 0, 0},
9649 {0x29, 0x3, 0x3, 0, 0},
9650 {0x2A, 0x37, 0x37, 0, 0},
9651 {0x2B, 0x3, 0x3, 0, 0},
9652 {0x2C, 0, 0, 0, 0},
9653 {0x2D, 0, 0, 0, 0},
9654 {0x2E, 0x1, 0x1, 0, 0},
9655 {0x2F, 0x1, 0x1, 0, 0},
9656 {0x30, 0, 0, 0, 0},
9657 {0x31, 0, 0, 0, 0},
9658 {0x32, 0, 0, 0, 0},
9659 {0x33, 0x11, 0x11, 0, 0},
9660 {0x34, 0xee, 0xee, 1, 1},
9661 {0x35, 0, 0, 0, 0},
9662 {0x36, 0, 0, 0, 0},
9663 {0x37, 0x3, 0x3, 0, 0},
9664 {0x38, 0x50, 0x50, 1, 1},
9665 {0x39, 0, 0, 0, 0},
9666 {0x3A, 0x50, 0x50, 1, 1},
9667 {0x3B, 0, 0, 0, 0},
9668 {0x3C, 0x6e, 0x6e, 0, 0},
9669 {0x3D, 0xf0, 0xf0, 1, 1},
9670 {0x3E, 0, 0, 0, 0},
9671 {0x3F, 0, 0, 0, 0},
9672 {0x40, 0, 0, 0, 0},
9673 {0x41, 0x3, 0x3, 0, 0},
9674 {0x42, 0x3, 0x3, 0, 0},
9675 {0x43, 0, 0, 0, 0},
9676 {0x44, 0x1e, 0x1e, 0, 0},
9677 {0x45, 0, 0, 0, 0},
9678 {0x46, 0x6e, 0x6e, 0, 0},
9679 {0x47, 0xf0, 0xf0, 1, 1},
9680 {0x48, 0, 0, 0, 0},
9681 {0x49, 0x2, 0x2, 0, 0},
9682 {0x4A, 0xff, 0xff, 1, 1},
9683 {0x4B, 0xc, 0xc, 0, 0},
9684 {0x4C, 0, 0, 0, 0},
9685 {0x4D, 0x38, 0x38, 0, 0},
9686 {0x4E, 0x70, 0x70, 1, 1},
9687 {0x4F, 0x2, 0x2, 0, 0},
9688 {0x50, 0x88, 0x88, 0, 0},
9689 {0x51, 0xc, 0xc, 0, 0},
9690 {0x52, 0, 0, 0, 0},
9691 {0x53, 0x8, 0x8, 0, 0},
9692 {0x54, 0x70, 0x70, 1, 1},
9693 {0x55, 0x2, 0x2, 0, 0},
9694 {0x56, 0xff, 0xff, 1, 1},
9695 {0x57, 0, 0, 0, 0},
9696 {0x58, 0x83, 0x83, 0, 0},
9697 {0x59, 0x77, 0x77, 1, 1},
9698 {0x5A, 0, 0, 0, 0},
9699 {0x5B, 0x2, 0x2, 0, 0},
9700 {0x5C, 0x88, 0x88, 0, 0},
9701 {0x5D, 0, 0, 0, 0},
9702 {0x5E, 0x8, 0x8, 0, 0},
9703 {0x5F, 0x77, 0x77, 1, 1},
9704 {0x60, 0x1, 0x1, 0, 0},
9705 {0x61, 0, 0, 0, 0},
9706 {0x62, 0x7, 0x7, 0, 0},
9707 {0x63, 0, 0, 0, 0},
9708 {0x64, 0x7, 0x7, 0, 0},
9709 {0x65, 0, 0, 0, 0},
9710 {0x66, 0, 0, 0, 0},
9711 {0x67, 0, 0, 1, 1},
9712 {0x68, 0, 0, 0, 0},
9713 {0x69, 0xa, 0xa, 0, 0},
9714 {0x6A, 0, 0, 0, 0},
9715 {0x6B, 0, 0, 0, 0},
9716 {0x6C, 0, 0, 0, 0},
9717 {0x6D, 0, 0, 0, 0},
9718 {0x6E, 0, 0, 0, 0},
9719 {0x6F, 0, 0, 0, 0},
9720 {0x70, 0, 0, 0, 0},
9721 {0x71, 0x2, 0x2, 0, 0},
9722 {0x72, 0, 0, 0, 0},
9723 {0x73, 0, 0, 0, 0},
9724 {0x74, 0xe, 0xe, 0, 0},
9725 {0x75, 0xe, 0xe, 0, 0},
9726 {0x76, 0xe, 0xe, 0, 0},
9727 {0x77, 0x13, 0x13, 0, 0},
9728 {0x78, 0x13, 0x13, 0, 0},
9729 {0x79, 0x1b, 0x1b, 0, 0},
9730 {0x7A, 0x1b, 0x1b, 0, 0},
9731 {0x7B, 0x55, 0x55, 0, 0},
9732 {0x7C, 0x5b, 0x5b, 0, 0},
9733 {0x7D, 0x30, 0x30, 1, 1},
9734 {0x7E, 0, 0, 0, 0},
9735 {0x7F, 0, 0, 0, 0},
9736 {0x80, 0, 0, 0, 0},
9737 {0x81, 0, 0, 0, 0},
9738 {0x82, 0, 0, 0, 0},
9739 {0x83, 0, 0, 0, 0},
9740 {0x84, 0, 0, 0, 0},
9741 {0x85, 0, 0, 0, 0},
9742 {0x86, 0, 0, 0, 0},
9743 {0x87, 0, 0, 0, 0},
9744 {0x88, 0, 0, 0, 0},
9745 {0x89, 0, 0, 0, 0},
9746 {0x8A, 0, 0, 0, 0},
9747 {0x8B, 0, 0, 0, 0},
9748 {0x8C, 0, 0, 0, 0},
9749 {0x8D, 0, 0, 0, 0},
9750 {0x8E, 0, 0, 0, 0},
9751 {0x8F, 0, 0, 0, 0},
9752 {0x90, 0, 0, 0, 0},
9753 {0x91, 0, 0, 0, 0},
9754 {0x92, 0, 0, 0, 0},
9755 {0x93, 0x70, 0x70, 0, 0},
9756 {0x94, 0x70, 0x70, 0, 0},
9757 {0x95, 0x70, 0x70, 0, 0},
9758 {0x96, 0x70, 0x70, 0, 0},
9759 {0x97, 0x70, 0x70, 0, 0},
9760 {0x98, 0x70, 0x70, 0, 0},
9761 {0x99, 0x70, 0x70, 0, 0},
9762 {0x9A, 0x70, 0x70, 0, 0},
9763 {0xFFFF, 0, 0, 0, 0}
9764};
9765
9766radio_regs_t regs_RX_2056_rev6[] = {
9767 {0x02, 0, 0, 0, 0},
9768 {0x03, 0, 0, 0, 0},
9769 {0x04, 0, 0, 0, 0},
9770 {0x05, 0, 0, 0, 0},
9771 {0x06, 0, 0, 0, 0},
9772 {0x07, 0, 0, 0, 0},
9773 {0x08, 0, 0, 0, 0},
9774 {0x09, 0, 0, 0, 0},
9775 {0x0A, 0, 0, 0, 0},
9776 {0x0B, 0, 0, 0, 0},
9777 {0x0C, 0, 0, 0, 0},
9778 {0x0D, 0, 0, 0, 0},
9779 {0x0E, 0, 0, 0, 0},
9780 {0x0F, 0, 0, 0, 0},
9781 {0x10, 0, 0, 0, 0},
9782 {0x11, 0, 0, 0, 0},
9783 {0x12, 0, 0, 0, 0},
9784 {0x13, 0, 0, 0, 0},
9785 {0x14, 0, 0, 0, 0},
9786 {0x15, 0, 0, 0, 0},
9787 {0x16, 0, 0, 0, 0},
9788 {0x17, 0, 0, 0, 0},
9789 {0x18, 0, 0, 0, 0},
9790 {0x19, 0, 0, 0, 0},
9791 {0x1A, 0, 0, 0, 0},
9792 {0x1B, 0, 0, 0, 0},
9793 {0x1C, 0, 0, 0, 0},
9794 {0x1D, 0, 0, 0, 0},
9795 {0x1E, 0, 0, 0, 0},
9796 {0x1F, 0, 0, 0, 0},
9797 {0x20, 0x3, 0x3, 0, 0},
9798 {0x21, 0, 0, 0, 0},
9799 {0x22, 0, 0, 0, 0},
9800 {0x23, 0x90, 0x90, 0, 0},
9801 {0x24, 0x55, 0x55, 0, 0},
9802 {0x25, 0x15, 0x15, 0, 0},
9803 {0x26, 0x5, 0x5, 0, 0},
9804 {0x27, 0x15, 0x15, 0, 0},
9805 {0x28, 0x5, 0x5, 0, 0},
9806 {0x29, 0x20, 0x20, 0, 0},
9807 {0x2A, 0x11, 0x11, 0, 0},
9808 {0x2B, 0x90, 0x90, 0, 0},
9809 {0x2C, 0, 0, 0, 0},
9810 {0x2D, 0x88, 0x88, 0, 0},
9811 {0x2E, 0x32, 0x32, 0, 0},
9812 {0x2F, 0x77, 0x77, 0, 0},
9813 {0x30, 0x17, 0x17, 1, 1},
9814 {0x31, 0xff, 0xff, 1, 1},
9815 {0x32, 0x20, 0x20, 0, 0},
9816 {0x33, 0, 0, 0, 0},
9817 {0x34, 0x88, 0x88, 0, 0},
9818 {0x35, 0x32, 0x32, 0, 0},
9819 {0x36, 0x77, 0x77, 0, 0},
9820 {0x37, 0x17, 0x17, 1, 1},
9821 {0x38, 0xf0, 0xf0, 1, 1},
9822 {0x39, 0x20, 0x20, 0, 0},
9823 {0x3A, 0x8, 0x8, 0, 0},
9824 {0x3B, 0x55, 0x55, 1, 1},
9825 {0x3C, 0, 0, 0, 0},
9826 {0x3D, 0x88, 0x88, 1, 1},
9827 {0x3E, 0, 0, 0, 0},
9828 {0x3F, 0x44, 0x44, 0, 0},
9829 {0x40, 0x7, 0x7, 1, 1},
9830 {0x41, 0x6, 0x6, 0, 0},
9831 {0x42, 0x4, 0x4, 0, 0},
9832 {0x43, 0, 0, 0, 0},
9833 {0x44, 0x8, 0x8, 0, 0},
9834 {0x45, 0x55, 0x55, 1, 1},
9835 {0x46, 0, 0, 0, 0},
9836 {0x47, 0x11, 0x11, 0, 0},
9837 {0x48, 0, 0, 0, 0},
9838 {0x49, 0x44, 0x44, 0, 0},
9839 {0x4A, 0x7, 0x7, 0, 0},
9840 {0x4B, 0x6, 0x6, 0, 0},
9841 {0x4C, 0x4, 0x4, 0, 0},
9842 {0x4D, 0, 0, 0, 0},
9843 {0x4E, 0, 0, 0, 0},
9844 {0x4F, 0x26, 0x26, 1, 1},
9845 {0x50, 0x26, 0x26, 1, 1},
9846 {0x51, 0xf, 0xf, 1, 1},
9847 {0x52, 0xf, 0xf, 1, 1},
9848 {0x53, 0x44, 0x44, 0, 0},
9849 {0x54, 0, 0, 0, 0},
9850 {0x55, 0, 0, 0, 0},
9851 {0x56, 0x8, 0x8, 0, 0},
9852 {0x57, 0x8, 0x8, 0, 0},
9853 {0x58, 0x7, 0x7, 0, 0},
9854 {0x59, 0x22, 0x22, 0, 0},
9855 {0x5A, 0x22, 0x22, 0, 0},
9856 {0x5B, 0x2, 0x2, 0, 0},
9857 {0x5C, 0x4, 0x4, 1, 1},
9858 {0x5D, 0x7, 0x7, 0, 0},
9859 {0x5E, 0x55, 0x55, 0, 0},
9860 {0x5F, 0x23, 0x23, 0, 0},
9861 {0x60, 0x41, 0x41, 0, 0},
9862 {0x61, 0x1, 0x1, 0, 0},
9863 {0x62, 0xa, 0xa, 0, 0},
9864 {0x63, 0, 0, 0, 0},
9865 {0x64, 0, 0, 0, 0},
9866 {0x65, 0, 0, 0, 0},
9867 {0x66, 0, 0, 0, 0},
9868 {0x67, 0, 0, 0, 0},
9869 {0x68, 0, 0, 0, 0},
9870 {0x69, 0, 0, 0, 0},
9871 {0x6A, 0, 0, 0, 0},
9872 {0x6B, 0xc, 0xc, 0, 0},
9873 {0x6C, 0, 0, 0, 0},
9874 {0x6D, 0, 0, 0, 0},
9875 {0x6E, 0, 0, 0, 0},
9876 {0x6F, 0, 0, 0, 0},
9877 {0x70, 0, 0, 0, 0},
9878 {0x71, 0, 0, 0, 0},
9879 {0x72, 0x22, 0x22, 0, 0},
9880 {0x73, 0x22, 0x22, 0, 0},
9881 {0x74, 0, 0, 1, 1},
9882 {0x75, 0xa, 0xa, 0, 0},
9883 {0x76, 0x1, 0x1, 0, 0},
9884 {0x77, 0x22, 0x22, 0, 0},
9885 {0x78, 0x30, 0x30, 0, 0},
9886 {0x79, 0, 0, 0, 0},
9887 {0x7A, 0, 0, 0, 0},
9888 {0x7B, 0, 0, 0, 0},
9889 {0x7C, 0, 0, 0, 0},
9890 {0x7D, 0x5, 0x5, 1, 1},
9891 {0x7E, 0, 0, 0, 0},
9892 {0x7F, 0, 0, 0, 0},
9893 {0x80, 0, 0, 0, 0},
9894 {0x81, 0, 0, 0, 0},
9895 {0x82, 0, 0, 0, 0},
9896 {0x83, 0, 0, 0, 0},
9897 {0x84, 0, 0, 0, 0},
9898 {0x85, 0, 0, 0, 0},
9899 {0x86, 0, 0, 0, 0},
9900 {0x87, 0, 0, 0, 0},
9901 {0x88, 0, 0, 0, 0},
9902 {0x89, 0, 0, 0, 0},
9903 {0x8A, 0, 0, 0, 0},
9904 {0x8B, 0, 0, 0, 0},
9905 {0x8C, 0, 0, 0, 0},
9906 {0x8D, 0, 0, 0, 0},
9907 {0x8E, 0, 0, 0, 0},
9908 {0x8F, 0, 0, 0, 0},
9909 {0x90, 0, 0, 0, 0},
9910 {0x91, 0, 0, 0, 0},
9911 {0x92, 0, 0, 0, 0},
9912 {0x93, 0, 0, 0, 0},
9913 {0x94, 0, 0, 0, 0},
9914 {0xFFFF, 0, 0, 0, 0}
9915};
9916
9917radio_regs_t regs_SYN_2056_rev7[] = {
9918 {0x02, 0, 0, 0, 0},
9919 {0x03, 0, 0, 0, 0},
9920 {0x04, 0, 0, 0, 0},
9921 {0x05, 0, 0, 0, 0},
9922 {0x06, 0, 0, 0, 0},
9923 {0x07, 0, 0, 0, 0},
9924 {0x08, 0, 0, 0, 0},
9925 {0x09, 0x1, 0x1, 0, 0},
9926 {0x0A, 0, 0, 0, 0},
9927 {0x0B, 0, 0, 0, 0},
9928 {0x0C, 0, 0, 0, 0},
9929 {0x0D, 0, 0, 0, 0},
9930 {0x0E, 0, 0, 0, 0},
9931 {0x0F, 0, 0, 0, 0},
9932 {0x10, 0, 0, 0, 0},
9933 {0x11, 0, 0, 0, 0},
9934 {0x12, 0, 0, 0, 0},
9935 {0x13, 0, 0, 0, 0},
9936 {0x14, 0, 0, 0, 0},
9937 {0x15, 0, 0, 0, 0},
9938 {0x16, 0, 0, 0, 0},
9939 {0x17, 0, 0, 0, 0},
9940 {0x18, 0, 0, 0, 0},
9941 {0x19, 0, 0, 0, 0},
9942 {0x1A, 0, 0, 0, 0},
9943 {0x1B, 0, 0, 0, 0},
9944 {0x1C, 0, 0, 0, 0},
9945 {0x1D, 0, 0, 0, 0},
9946 {0x1E, 0, 0, 0, 0},
9947 {0x1F, 0, 0, 0, 0},
9948 {0x20, 0, 0, 0, 0},
9949 {0x21, 0, 0, 0, 0},
9950 {0x22, 0x60, 0x60, 0, 0},
9951 {0x23, 0x6, 0x6, 0, 0},
9952 {0x24, 0xc, 0xc, 0, 0},
9953 {0x25, 0, 0, 0, 0},
9954 {0x26, 0, 0, 0, 0},
9955 {0x27, 0, 0, 0, 0},
9956 {0x28, 0x1, 0x1, 0, 0},
9957 {0x29, 0, 0, 0, 0},
9958 {0x2A, 0, 0, 0, 0},
9959 {0x2B, 0, 0, 0, 0},
9960 {0x2C, 0, 0, 0, 0},
9961 {0x2D, 0, 0, 0, 0},
9962 {0x2E, 0, 0, 0, 0},
9963 {0x2F, 0x1f, 0x1f, 0, 0},
9964 {0x30, 0x15, 0x15, 0, 0},
9965 {0x31, 0xf, 0xf, 0, 0},
9966 {0x32, 0, 0, 0, 0},
9967 {0x33, 0, 0, 0, 0},
9968 {0x34, 0, 0, 0, 0},
9969 {0x35, 0, 0, 0, 0},
9970 {0x36, 0, 0, 0, 0},
9971 {0x37, 0, 0, 0, 0},
9972 {0x38, 0, 0, 0, 0},
9973 {0x39, 0, 0, 0, 0},
9974 {0x3A, 0, 0, 0, 0},
9975 {0x3B, 0, 0, 0, 0},
9976 {0x3C, 0x13, 0x13, 0, 0},
9977 {0x3D, 0xf, 0xf, 0, 0},
9978 {0x3E, 0x18, 0x18, 0, 0},
9979 {0x3F, 0, 0, 0, 0},
9980 {0x40, 0, 0, 0, 0},
9981 {0x41, 0x20, 0x20, 0, 0},
9982 {0x42, 0x20, 0x20, 0, 0},
9983 {0x43, 0, 0, 0, 0},
9984 {0x44, 0x77, 0x77, 0, 0},
9985 {0x45, 0x7, 0x7, 0, 0},
9986 {0x46, 0x1, 0x1, 0, 0},
9987 {0x47, 0x4, 0x4, 0, 0},
9988 {0x48, 0xf, 0xf, 0, 0},
9989 {0x49, 0x30, 0x30, 0, 0},
9990 {0x4A, 0x32, 0x32, 0, 0},
9991 {0x4B, 0xd, 0xd, 0, 0},
9992 {0x4C, 0xd, 0xd, 0, 0},
9993 {0x4D, 0x4, 0x4, 0, 0},
9994 {0x4E, 0x6, 0x6, 0, 0},
9995 {0x4F, 0x1, 0x1, 0, 0},
9996 {0x50, 0x1c, 0x1c, 0, 0},
9997 {0x51, 0x2, 0x2, 0, 0},
9998 {0x52, 0x2, 0x2, 0, 0},
9999 {0x53, 0xf7, 0xf7, 1, 1},
10000 {0x54, 0xb4, 0xb4, 0, 0},
10001 {0x55, 0xd2, 0xd2, 0, 0},
10002 {0x56, 0, 0, 0, 0},
10003 {0x57, 0, 0, 0, 0},
10004 {0x58, 0x4, 0x4, 0, 0},
10005 {0x59, 0x96, 0x96, 0, 0},
10006 {0x5A, 0x3e, 0x3e, 0, 0},
10007 {0x5B, 0x3e, 0x3e, 0, 0},
10008 {0x5C, 0x13, 0x13, 0, 0},
10009 {0x5D, 0x2, 0x2, 0, 0},
10010 {0x5E, 0, 0, 0, 0},
10011 {0x5F, 0x7, 0x7, 0, 0},
10012 {0x60, 0x7, 0x7, 1, 1},
10013 {0x61, 0x8, 0x8, 0, 0},
10014 {0x62, 0x3, 0x3, 0, 0},
10015 {0x63, 0, 0, 0, 0},
10016 {0x64, 0, 0, 0, 0},
10017 {0x65, 0, 0, 0, 0},
10018 {0x66, 0, 0, 0, 0},
10019 {0x67, 0, 0, 0, 0},
10020 {0x68, 0x40, 0x40, 0, 0},
10021 {0x69, 0, 0, 0, 0},
10022 {0x6A, 0, 0, 0, 0},
10023 {0x6B, 0, 0, 0, 0},
10024 {0x6C, 0, 0, 0, 0},
10025 {0x6D, 0x1, 0x1, 0, 0},
10026 {0x6E, 0, 0, 0, 0},
10027 {0x6F, 0, 0, 0, 0},
10028 {0x70, 0x60, 0x60, 0, 0},
10029 {0x71, 0x66, 0x66, 0, 0},
10030 {0x72, 0xc, 0xc, 0, 0},
10031 {0x73, 0x66, 0x66, 0, 0},
10032 {0x74, 0x8f, 0x8f, 1, 1},
10033 {0x75, 0, 0, 0, 0},
10034 {0x76, 0xcc, 0xcc, 0, 0},
10035 {0x77, 0x1, 0x1, 0, 0},
10036 {0x78, 0x66, 0x66, 0, 0},
10037 {0x79, 0x66, 0x66, 0, 0},
10038 {0x7A, 0, 0, 0, 0},
10039 {0x7B, 0, 0, 0, 0},
10040 {0x7C, 0, 0, 0, 0},
10041 {0x7D, 0, 0, 0, 0},
10042 {0x7E, 0, 0, 0, 0},
10043 {0x7F, 0, 0, 0, 0},
10044 {0x80, 0, 0, 0, 0},
10045 {0x81, 0, 0, 0, 0},
10046 {0x82, 0, 0, 0, 0},
10047 {0x83, 0, 0, 0, 0},
10048 {0x84, 0, 0, 0, 0},
10049 {0x85, 0xff, 0xff, 0, 0},
10050 {0x86, 0, 0, 0, 0},
10051 {0x87, 0, 0, 0, 0},
10052 {0x88, 0, 0, 0, 0},
10053 {0x89, 0, 0, 0, 0},
10054 {0x8A, 0, 0, 0, 0},
10055 {0x8B, 0, 0, 0, 0},
10056 {0x8C, 0, 0, 0, 0},
10057 {0x8D, 0, 0, 0, 0},
10058 {0x8E, 0, 0, 0, 0},
10059 {0x8F, 0, 0, 0, 0},
10060 {0x90, 0, 0, 0, 0},
10061 {0x91, 0, 0, 0, 0},
10062 {0x92, 0, 0, 0, 0},
10063 {0x93, 0, 0, 0, 0},
10064 {0x94, 0, 0, 0, 0},
10065 {0x95, 0, 0, 0, 0},
10066 {0x96, 0, 0, 0, 0},
10067 {0x97, 0, 0, 0, 0},
10068 {0x98, 0, 0, 0, 0},
10069 {0x99, 0, 0, 0, 0},
10070 {0x9A, 0, 0, 0, 0},
10071 {0x9B, 0, 0, 0, 0},
10072 {0x9C, 0, 0, 0, 0},
10073 {0x9D, 0, 0, 0, 0},
10074 {0x9E, 0, 0, 0, 0},
10075 {0x9F, 0x6, 0x6, 0, 0},
10076 {0xA0, 0x66, 0x66, 0, 0},
10077 {0xA1, 0x66, 0x66, 0, 0},
10078 {0xA2, 0x66, 0x66, 0, 0},
10079 {0xA3, 0x66, 0x66, 0, 0},
10080 {0xA4, 0x66, 0x66, 0, 0},
10081 {0xA5, 0x66, 0x66, 0, 0},
10082 {0xA6, 0x66, 0x66, 0, 0},
10083 {0xA7, 0x66, 0x66, 0, 0},
10084 {0xA8, 0x66, 0x66, 0, 0},
10085 {0xA9, 0x66, 0x66, 0, 0},
10086 {0xAA, 0x66, 0x66, 0, 0},
10087 {0xAB, 0x66, 0x66, 0, 0},
10088 {0xAC, 0x66, 0x66, 0, 0},
10089 {0xAD, 0x66, 0x66, 0, 0},
10090 {0xAE, 0x66, 0x66, 0, 0},
10091 {0xAF, 0x66, 0x66, 0, 0},
10092 {0xB0, 0x66, 0x66, 0, 0},
10093 {0xB1, 0x66, 0x66, 0, 0},
10094 {0xB2, 0x66, 0x66, 0, 0},
10095 {0xB3, 0xa, 0xa, 0, 0},
10096 {0xB4, 0, 0, 0, 0},
10097 {0xB5, 0, 0, 0, 0},
10098 {0xB6, 0, 0, 0, 0},
10099 {0xFFFF, 0, 0, 0, 0},
10100};
10101
10102radio_regs_t regs_TX_2056_rev7[] = {
10103 {0x02, 0, 0, 0, 0},
10104 {0x03, 0, 0, 0, 0},
10105 {0x04, 0, 0, 0, 0},
10106 {0x05, 0, 0, 0, 0},
10107 {0x06, 0, 0, 0, 0},
10108 {0x07, 0, 0, 0, 0},
10109 {0x08, 0, 0, 0, 0},
10110 {0x09, 0, 0, 0, 0},
10111 {0x0A, 0, 0, 0, 0},
10112 {0x0B, 0, 0, 0, 0},
10113 {0x0C, 0, 0, 0, 0},
10114 {0x0D, 0, 0, 0, 0},
10115 {0x0E, 0, 0, 0, 0},
10116 {0x0F, 0, 0, 0, 0},
10117 {0x10, 0, 0, 0, 0},
10118 {0x11, 0, 0, 0, 0},
10119 {0x12, 0, 0, 0, 0},
10120 {0x13, 0, 0, 0, 0},
10121 {0x14, 0, 0, 0, 0},
10122 {0x15, 0, 0, 0, 0},
10123 {0x16, 0, 0, 0, 0},
10124 {0x17, 0, 0, 0, 0},
10125 {0x18, 0, 0, 0, 0},
10126 {0x19, 0, 0, 0, 0},
10127 {0x1A, 0, 0, 0, 0},
10128 {0x1B, 0, 0, 0, 0},
10129 {0x1C, 0, 0, 0, 0},
10130 {0x1D, 0, 0, 0, 0},
10131 {0x1E, 0, 0, 0, 0},
10132 {0x1F, 0, 0, 0, 0},
10133 {0x20, 0, 0, 0, 0},
10134 {0x21, 0x88, 0x88, 0, 0},
10135 {0x22, 0x88, 0x88, 0, 0},
10136 {0x23, 0x88, 0x88, 0, 0},
10137 {0x24, 0x88, 0x88, 0, 0},
10138 {0x25, 0xc, 0xc, 0, 0},
10139 {0x26, 0, 0, 0, 0},
10140 {0x27, 0x3, 0x3, 0, 0},
10141 {0x28, 0, 0, 0, 0},
10142 {0x29, 0x3, 0x3, 0, 0},
10143 {0x2A, 0x37, 0x37, 0, 0},
10144 {0x2B, 0x3, 0x3, 0, 0},
10145 {0x2C, 0, 0, 0, 0},
10146 {0x2D, 0, 0, 0, 0},
10147 {0x2E, 0x1, 0x1, 0, 0},
10148 {0x2F, 0x1, 0x1, 0, 0},
10149 {0x30, 0, 0, 0, 0},
10150 {0x31, 0, 0, 0, 0},
10151 {0x32, 0, 0, 0, 0},
10152 {0x33, 0x11, 0x11, 0, 0},
10153 {0x34, 0xee, 0xee, 1, 1},
10154 {0x35, 0, 0, 0, 0},
10155 {0x36, 0, 0, 0, 0},
10156 {0x37, 0x3, 0x3, 0, 0},
10157 {0x38, 0x50, 0x50, 1, 1},
10158 {0x39, 0, 0, 0, 0},
10159 {0x3A, 0x50, 0x50, 1, 1},
10160 {0x3B, 0, 0, 0, 0},
10161 {0x3C, 0x6e, 0x6e, 0, 0},
10162 {0x3D, 0xf0, 0xf0, 1, 1},
10163 {0x3E, 0, 0, 0, 0},
10164 {0x3F, 0, 0, 0, 0},
10165 {0x40, 0, 0, 0, 0},
10166 {0x41, 0x3, 0x3, 0, 0},
10167 {0x42, 0x3, 0x3, 0, 0},
10168 {0x43, 0, 0, 0, 0},
10169 {0x44, 0x1e, 0x1e, 0, 0},
10170 {0x45, 0, 0, 0, 0},
10171 {0x46, 0x6e, 0x6e, 0, 0},
10172 {0x47, 0xf0, 0xf0, 1, 1},
10173 {0x48, 0, 0, 0, 0},
10174 {0x49, 0x2, 0x2, 0, 0},
10175 {0x4A, 0xff, 0xff, 1, 1},
10176 {0x4B, 0xc, 0xc, 0, 0},
10177 {0x4C, 0, 0, 0, 0},
10178 {0x4D, 0x38, 0x38, 0, 0},
10179 {0x4E, 0x70, 0x70, 1, 1},
10180 {0x4F, 0x2, 0x2, 0, 0},
10181 {0x50, 0x88, 0x88, 0, 0},
10182 {0x51, 0xc, 0xc, 0, 0},
10183 {0x52, 0, 0, 0, 0},
10184 {0x53, 0x8, 0x8, 0, 0},
10185 {0x54, 0x70, 0x70, 1, 1},
10186 {0x55, 0x2, 0x2, 0, 0},
10187 {0x56, 0xff, 0xff, 1, 1},
10188 {0x57, 0, 0, 0, 0},
10189 {0x58, 0x83, 0x83, 0, 0},
10190 {0x59, 0x77, 0x77, 1, 1},
10191 {0x5A, 0, 0, 0, 0},
10192 {0x5B, 0x2, 0x2, 0, 0},
10193 {0x5C, 0x88, 0x88, 0, 0},
10194 {0x5D, 0, 0, 0, 0},
10195 {0x5E, 0x8, 0x8, 0, 0},
10196 {0x5F, 0x77, 0x77, 1, 1},
10197 {0x60, 0x1, 0x1, 0, 0},
10198 {0x61, 0, 0, 0, 0},
10199 {0x62, 0x7, 0x7, 0, 0},
10200 {0x63, 0, 0, 0, 0},
10201 {0x64, 0x7, 0x7, 0, 0},
10202 {0x65, 0, 0, 0, 0},
10203 {0x66, 0, 0, 0, 0},
10204 {0x67, 0, 0, 1, 1},
10205 {0x68, 0, 0, 0, 0},
10206 {0x69, 0xa, 0xa, 0, 0},
10207 {0x6A, 0, 0, 0, 0},
10208 {0x6B, 0, 0, 0, 0},
10209 {0x6C, 0, 0, 0, 0},
10210 {0x6D, 0, 0, 0, 0},
10211 {0x6E, 0, 0, 0, 0},
10212 {0x6F, 0, 0, 0, 0},
10213 {0x70, 0, 0, 0, 0},
10214 {0x71, 0x2, 0x2, 0, 0},
10215 {0x72, 0, 0, 0, 0},
10216 {0x73, 0, 0, 0, 0},
10217 {0x74, 0xe, 0xe, 0, 0},
10218 {0x75, 0xe, 0xe, 0, 0},
10219 {0x76, 0xe, 0xe, 0, 0},
10220 {0x77, 0x13, 0x13, 0, 0},
10221 {0x78, 0x13, 0x13, 0, 0},
10222 {0x79, 0x1b, 0x1b, 0, 0},
10223 {0x7A, 0x1b, 0x1b, 0, 0},
10224 {0x7B, 0x55, 0x55, 0, 0},
10225 {0x7C, 0x5b, 0x5b, 0, 0},
10226 {0x7D, 0x30, 0x30, 1, 1},
10227 {0x7E, 0, 0, 0, 0},
10228 {0x7F, 0, 0, 0, 0},
10229 {0x80, 0, 0, 0, 0},
10230 {0x81, 0, 0, 0, 0},
10231 {0x82, 0, 0, 0, 0},
10232 {0x83, 0, 0, 0, 0},
10233 {0x84, 0, 0, 0, 0},
10234 {0x85, 0, 0, 0, 0},
10235 {0x86, 0, 0, 0, 0},
10236 {0x87, 0, 0, 0, 0},
10237 {0x88, 0, 0, 0, 0},
10238 {0x89, 0, 0, 0, 0},
10239 {0x8A, 0, 0, 0, 0},
10240 {0x8B, 0, 0, 0, 0},
10241 {0x8C, 0, 0, 0, 0},
10242 {0x8D, 0, 0, 0, 0},
10243 {0x8E, 0, 0, 0, 0},
10244 {0x8F, 0, 0, 0, 0},
10245 {0x90, 0, 0, 0, 0},
10246 {0x91, 0, 0, 0, 0},
10247 {0x92, 0, 0, 0, 0},
10248 {0x93, 0x70, 0x70, 0, 0},
10249 {0x94, 0x70, 0x70, 0, 0},
10250 {0x95, 0x71, 0x71, 1, 1},
10251 {0x96, 0x71, 0x71, 1, 1},
10252 {0x97, 0x72, 0x72, 1, 1},
10253 {0x98, 0x73, 0x73, 1, 1},
10254 {0x99, 0x74, 0x74, 1, 1},
10255 {0x9A, 0x75, 0x75, 1, 1},
10256 {0xFFFF, 0, 0, 0, 0},
10257};
10258
10259radio_regs_t regs_RX_2056_rev7[] = {
10260 {0x02, 0, 0, 0, 0},
10261 {0x03, 0, 0, 0, 0},
10262 {0x04, 0, 0, 0, 0},
10263 {0x05, 0, 0, 0, 0},
10264 {0x06, 0, 0, 0, 0},
10265 {0x07, 0, 0, 0, 0},
10266 {0x08, 0, 0, 0, 0},
10267 {0x09, 0, 0, 0, 0},
10268 {0x0A, 0, 0, 0, 0},
10269 {0x0B, 0, 0, 0, 0},
10270 {0x0C, 0, 0, 0, 0},
10271 {0x0D, 0, 0, 0, 0},
10272 {0x0E, 0, 0, 0, 0},
10273 {0x0F, 0, 0, 0, 0},
10274 {0x10, 0, 0, 0, 0},
10275 {0x11, 0, 0, 0, 0},
10276 {0x12, 0, 0, 0, 0},
10277 {0x13, 0, 0, 0, 0},
10278 {0x14, 0, 0, 0, 0},
10279 {0x15, 0, 0, 0, 0},
10280 {0x16, 0, 0, 0, 0},
10281 {0x17, 0, 0, 0, 0},
10282 {0x18, 0, 0, 0, 0},
10283 {0x19, 0, 0, 0, 0},
10284 {0x1A, 0, 0, 0, 0},
10285 {0x1B, 0, 0, 0, 0},
10286 {0x1C, 0, 0, 0, 0},
10287 {0x1D, 0, 0, 0, 0},
10288 {0x1E, 0, 0, 0, 0},
10289 {0x1F, 0, 0, 0, 0},
10290 {0x20, 0x3, 0x3, 0, 0},
10291 {0x21, 0, 0, 0, 0},
10292 {0x22, 0, 0, 0, 0},
10293 {0x23, 0x90, 0x90, 0, 0},
10294 {0x24, 0x55, 0x55, 0, 0},
10295 {0x25, 0x15, 0x15, 0, 0},
10296 {0x26, 0x5, 0x5, 0, 0},
10297 {0x27, 0x15, 0x15, 0, 0},
10298 {0x28, 0x5, 0x5, 0, 0},
10299 {0x29, 0x20, 0x20, 0, 0},
10300 {0x2A, 0x11, 0x11, 0, 0},
10301 {0x2B, 0x90, 0x90, 0, 0},
10302 {0x2C, 0, 0, 0, 0},
10303 {0x2D, 0x88, 0x88, 0, 0},
10304 {0x2E, 0x32, 0x32, 0, 0},
10305 {0x2F, 0x77, 0x77, 0, 0},
10306 {0x30, 0x17, 0x17, 1, 1},
10307 {0x31, 0xff, 0xff, 1, 1},
10308 {0x32, 0x20, 0x20, 0, 0},
10309 {0x33, 0, 0, 0, 0},
10310 {0x34, 0x88, 0x88, 0, 0},
10311 {0x35, 0x32, 0x32, 0, 0},
10312 {0x36, 0x77, 0x77, 0, 0},
10313 {0x37, 0x17, 0x17, 1, 1},
10314 {0x38, 0xf0, 0xf0, 1, 1},
10315 {0x39, 0x20, 0x20, 0, 0},
10316 {0x3A, 0x8, 0x8, 0, 0},
10317 {0x3B, 0x55, 0x55, 1, 1},
10318 {0x3C, 0, 0, 0, 0},
10319 {0x3D, 0x88, 0x88, 1, 1},
10320 {0x3E, 0, 0, 0, 0},
10321 {0x3F, 0, 0, 1, 1},
10322 {0x40, 0x7, 0x7, 1, 1},
10323 {0x41, 0x6, 0x6, 0, 0},
10324 {0x42, 0x4, 0x4, 0, 0},
10325 {0x43, 0, 0, 0, 0},
10326 {0x44, 0x8, 0x8, 0, 0},
10327 {0x45, 0x55, 0x55, 1, 1},
10328 {0x46, 0, 0, 0, 0},
10329 {0x47, 0x11, 0x11, 0, 0},
10330 {0x48, 0, 0, 0, 0},
10331 {0x49, 0, 0, 1, 1},
10332 {0x4A, 0x7, 0x7, 0, 0},
10333 {0x4B, 0x6, 0x6, 0, 0},
10334 {0x4C, 0x4, 0x4, 0, 0},
10335 {0x4D, 0, 0, 0, 0},
10336 {0x4E, 0, 0, 0, 0},
10337 {0x4F, 0x26, 0x26, 1, 1},
10338 {0x50, 0x26, 0x26, 1, 1},
10339 {0x51, 0xf, 0xf, 1, 1},
10340 {0x52, 0xf, 0xf, 1, 1},
10341 {0x53, 0x44, 0x44, 0, 0},
10342 {0x54, 0, 0, 0, 0},
10343 {0x55, 0, 0, 0, 0},
10344 {0x56, 0x8, 0x8, 0, 0},
10345 {0x57, 0x8, 0x8, 0, 0},
10346 {0x58, 0x7, 0x7, 0, 0},
10347 {0x59, 0x22, 0x22, 0, 0},
10348 {0x5A, 0x22, 0x22, 0, 0},
10349 {0x5B, 0x2, 0x2, 0, 0},
10350 {0x5C, 0x4, 0x4, 1, 1},
10351 {0x5D, 0x7, 0x7, 0, 0},
10352 {0x5E, 0x55, 0x55, 0, 0},
10353 {0x5F, 0x23, 0x23, 0, 0},
10354 {0x60, 0x41, 0x41, 0, 0},
10355 {0x61, 0x1, 0x1, 0, 0},
10356 {0x62, 0xa, 0xa, 0, 0},
10357 {0x63, 0, 0, 0, 0},
10358 {0x64, 0, 0, 0, 0},
10359 {0x65, 0, 0, 0, 0},
10360 {0x66, 0, 0, 0, 0},
10361 {0x67, 0, 0, 0, 0},
10362 {0x68, 0, 0, 0, 0},
10363 {0x69, 0, 0, 0, 0},
10364 {0x6A, 0, 0, 0, 0},
10365 {0x6B, 0xc, 0xc, 0, 0},
10366 {0x6C, 0, 0, 0, 0},
10367 {0x6D, 0, 0, 0, 0},
10368 {0x6E, 0, 0, 0, 0},
10369 {0x6F, 0, 0, 0, 0},
10370 {0x70, 0, 0, 0, 0},
10371 {0x71, 0, 0, 0, 0},
10372 {0x72, 0x22, 0x22, 0, 0},
10373 {0x73, 0x22, 0x22, 0, 0},
10374 {0x74, 0, 0, 1, 1},
10375 {0x75, 0xa, 0xa, 0, 0},
10376 {0x76, 0x1, 0x1, 0, 0},
10377 {0x77, 0x22, 0x22, 0, 0},
10378 {0x78, 0x30, 0x30, 0, 0},
10379 {0x79, 0, 0, 0, 0},
10380 {0x7A, 0, 0, 0, 0},
10381 {0x7B, 0, 0, 0, 0},
10382 {0x7C, 0, 0, 0, 0},
10383 {0x7D, 0, 0, 0, 0},
10384 {0x7E, 0, 0, 0, 0},
10385 {0x7F, 0, 0, 0, 0},
10386 {0x80, 0, 0, 0, 0},
10387 {0x81, 0, 0, 0, 0},
10388 {0x82, 0, 0, 0, 0},
10389 {0x83, 0, 0, 0, 0},
10390 {0x84, 0, 0, 0, 0},
10391 {0x85, 0, 0, 0, 0},
10392 {0x86, 0, 0, 0, 0},
10393 {0x87, 0, 0, 0, 0},
10394 {0x88, 0, 0, 0, 0},
10395 {0x89, 0, 0, 0, 0},
10396 {0x8A, 0, 0, 0, 0},
10397 {0x8B, 0, 0, 0, 0},
10398 {0x8C, 0, 0, 0, 0},
10399 {0x8D, 0, 0, 0, 0},
10400 {0x8E, 0, 0, 0, 0},
10401 {0x8F, 0, 0, 0, 0},
10402 {0x90, 0, 0, 0, 0},
10403 {0x91, 0, 0, 0, 0},
10404 {0x92, 0, 0, 0, 0},
10405 {0x93, 0, 0, 0, 0},
10406 {0x94, 0, 0, 0, 0},
10407 {0xFFFF, 0, 0, 0, 0},
10408};
10409
10410radio_regs_t regs_SYN_2056_rev8[] = {
10411 {0x02, 0, 0, 0, 0},
10412 {0x03, 0, 0, 0, 0},
10413 {0x04, 0, 0, 0, 0},
10414 {0x05, 0, 0, 0, 0},
10415 {0x06, 0, 0, 0, 0},
10416 {0x07, 0, 0, 0, 0},
10417 {0x08, 0, 0, 0, 0},
10418 {0x09, 0x1, 0x1, 0, 0},
10419 {0x0A, 0, 0, 0, 0},
10420 {0x0B, 0, 0, 0, 0},
10421 {0x0C, 0, 0, 0, 0},
10422 {0x0D, 0, 0, 0, 0},
10423 {0x0E, 0, 0, 0, 0},
10424 {0x0F, 0, 0, 0, 0},
10425 {0x10, 0, 0, 0, 0},
10426 {0x11, 0, 0, 0, 0},
10427 {0x12, 0, 0, 0, 0},
10428 {0x13, 0, 0, 0, 0},
10429 {0x14, 0, 0, 0, 0},
10430 {0x15, 0, 0, 0, 0},
10431 {0x16, 0, 0, 0, 0},
10432 {0x17, 0, 0, 0, 0},
10433 {0x18, 0, 0, 0, 0},
10434 {0x19, 0, 0, 0, 0},
10435 {0x1A, 0, 0, 0, 0},
10436 {0x1B, 0, 0, 0, 0},
10437 {0x1C, 0, 0, 0, 0},
10438 {0x1D, 0, 0, 0, 0},
10439 {0x1E, 0, 0, 0, 0},
10440 {0x1F, 0, 0, 0, 0},
10441 {0x20, 0, 0, 0, 0},
10442 {0x21, 0, 0, 0, 0},
10443 {0x22, 0x60, 0x60, 0, 0},
10444 {0x23, 0x6, 0x6, 0, 0},
10445 {0x24, 0xc, 0xc, 0, 0},
10446 {0x25, 0, 0, 0, 0},
10447 {0x26, 0, 0, 0, 0},
10448 {0x27, 0, 0, 0, 0},
10449 {0x28, 0x1, 0x1, 0, 0},
10450 {0x29, 0, 0, 0, 0},
10451 {0x2A, 0, 0, 0, 0},
10452 {0x2B, 0, 0, 0, 0},
10453 {0x2C, 0, 0, 0, 0},
10454 {0x2D, 0, 0, 0, 0},
10455 {0x2E, 0, 0, 0, 0},
10456 {0x2F, 0x1f, 0x1f, 0, 0},
10457 {0x30, 0x15, 0x15, 0, 0},
10458 {0x31, 0xf, 0xf, 0, 0},
10459 {0x32, 0, 0, 0, 0},
10460 {0x33, 0, 0, 0, 0},
10461 {0x34, 0, 0, 0, 0},
10462 {0x35, 0, 0, 0, 0},
10463 {0x36, 0, 0, 0, 0},
10464 {0x37, 0, 0, 0, 0},
10465 {0x38, 0, 0, 0, 0},
10466 {0x39, 0, 0, 0, 0},
10467 {0x3A, 0, 0, 0, 0},
10468 {0x3B, 0, 0, 0, 0},
10469 {0x3C, 0x13, 0x13, 0, 0},
10470 {0x3D, 0xf, 0xf, 0, 0},
10471 {0x3E, 0x18, 0x18, 0, 0},
10472 {0x3F, 0, 0, 0, 0},
10473 {0x40, 0, 0, 0, 0},
10474 {0x41, 0x20, 0x20, 0, 0},
10475 {0x42, 0x20, 0x20, 0, 0},
10476 {0x43, 0, 0, 0, 0},
10477 {0x44, 0x77, 0x77, 0, 0},
10478 {0x45, 0x7, 0x7, 0, 0},
10479 {0x46, 0x1, 0x1, 0, 0},
10480 {0x47, 0x4, 0x4, 0, 0},
10481 {0x48, 0xf, 0xf, 0, 0},
10482 {0x49, 0x30, 0x30, 0, 0},
10483 {0x4A, 0x32, 0x32, 0, 0},
10484 {0x4B, 0xd, 0xd, 0, 0},
10485 {0x4C, 0xd, 0xd, 0, 0},
10486 {0x4D, 0x4, 0x4, 0, 0},
10487 {0x4E, 0x6, 0x6, 0, 0},
10488 {0x4F, 0x1, 0x1, 0, 0},
10489 {0x50, 0x1c, 0x1c, 0, 0},
10490 {0x51, 0x2, 0x2, 0, 0},
10491 {0x52, 0x2, 0x2, 0, 0},
10492 {0x53, 0xf7, 0xf7, 1, 1},
10493 {0x54, 0xb4, 0xb4, 0, 0},
10494 {0x55, 0xd2, 0xd2, 0, 0},
10495 {0x56, 0, 0, 0, 0},
10496 {0x57, 0, 0, 0, 0},
10497 {0x58, 0x4, 0x4, 0, 0},
10498 {0x59, 0x96, 0x96, 0, 0},
10499 {0x5A, 0x3e, 0x3e, 0, 0},
10500 {0x5B, 0x3e, 0x3e, 0, 0},
10501 {0x5C, 0x13, 0x13, 0, 0},
10502 {0x5D, 0x2, 0x2, 0, 0},
10503 {0x5E, 0, 0, 0, 0},
10504 {0x5F, 0x7, 0x7, 0, 0},
10505 {0x60, 0x7, 0x7, 1, 1},
10506 {0x61, 0x8, 0x8, 0, 0},
10507 {0x62, 0x3, 0x3, 0, 0},
10508 {0x63, 0, 0, 0, 0},
10509 {0x64, 0, 0, 0, 0},
10510 {0x65, 0, 0, 0, 0},
10511 {0x66, 0, 0, 0, 0},
10512 {0x67, 0, 0, 0, 0},
10513 {0x68, 0x40, 0x40, 0, 0},
10514 {0x69, 0, 0, 0, 0},
10515 {0x6A, 0, 0, 0, 0},
10516 {0x6B, 0, 0, 0, 0},
10517 {0x6C, 0, 0, 0, 0},
10518 {0x6D, 0x1, 0x1, 0, 0},
10519 {0x6E, 0, 0, 0, 0},
10520 {0x6F, 0, 0, 0, 0},
10521 {0x70, 0x60, 0x60, 0, 0},
10522 {0x71, 0x66, 0x66, 0, 0},
10523 {0x72, 0xc, 0xc, 0, 0},
10524 {0x73, 0x66, 0x66, 0, 0},
10525 {0x74, 0x8f, 0x8f, 1, 1},
10526 {0x75, 0, 0, 0, 0},
10527 {0x76, 0xcc, 0xcc, 0, 0},
10528 {0x77, 0x1, 0x1, 0, 0},
10529 {0x78, 0x66, 0x66, 0, 0},
10530 {0x79, 0x66, 0x66, 0, 0},
10531 {0x7A, 0, 0, 0, 0},
10532 {0x7B, 0, 0, 0, 0},
10533 {0x7C, 0, 0, 0, 0},
10534 {0x7D, 0, 0, 0, 0},
10535 {0x7E, 0, 0, 0, 0},
10536 {0x7F, 0, 0, 0, 0},
10537 {0x80, 0, 0, 0, 0},
10538 {0x81, 0, 0, 0, 0},
10539 {0x82, 0, 0, 0, 0},
10540 {0x83, 0, 0, 0, 0},
10541 {0x84, 0, 0, 0, 0},
10542 {0x85, 0xff, 0xff, 0, 0},
10543 {0x86, 0, 0, 0, 0},
10544 {0x87, 0, 0, 0, 0},
10545 {0x88, 0, 0, 0, 0},
10546 {0x89, 0, 0, 0, 0},
10547 {0x8A, 0, 0, 0, 0},
10548 {0x8B, 0, 0, 0, 0},
10549 {0x8C, 0, 0, 0, 0},
10550 {0x8D, 0, 0, 0, 0},
10551 {0x8E, 0, 0, 0, 0},
10552 {0x8F, 0, 0, 0, 0},
10553 {0x90, 0, 0, 0, 0},
10554 {0x91, 0, 0, 0, 0},
10555 {0x92, 0, 0, 0, 0},
10556 {0x93, 0, 0, 0, 0},
10557 {0x94, 0, 0, 0, 0},
10558 {0x95, 0, 0, 0, 0},
10559 {0x96, 0, 0, 0, 0},
10560 {0x97, 0, 0, 0, 0},
10561 {0x98, 0, 0, 0, 0},
10562 {0x99, 0, 0, 0, 0},
10563 {0x9A, 0, 0, 0, 0},
10564 {0x9B, 0, 0, 0, 0},
10565 {0x9C, 0, 0, 0, 0},
10566 {0x9D, 0, 0, 0, 0},
10567 {0x9E, 0, 0, 0, 0},
10568 {0x9F, 0x6, 0x6, 0, 0},
10569 {0xA0, 0x66, 0x66, 0, 0},
10570 {0xA1, 0x66, 0x66, 0, 0},
10571 {0xA2, 0x66, 0x66, 0, 0},
10572 {0xA3, 0x66, 0x66, 0, 0},
10573 {0xA4, 0x66, 0x66, 0, 0},
10574 {0xA5, 0x66, 0x66, 0, 0},
10575 {0xA6, 0x66, 0x66, 0, 0},
10576 {0xA7, 0x66, 0x66, 0, 0},
10577 {0xA8, 0x66, 0x66, 0, 0},
10578 {0xA9, 0x66, 0x66, 0, 0},
10579 {0xAA, 0x66, 0x66, 0, 0},
10580 {0xAB, 0x66, 0x66, 0, 0},
10581 {0xAC, 0x66, 0x66, 0, 0},
10582 {0xAD, 0x66, 0x66, 0, 0},
10583 {0xAE, 0x66, 0x66, 0, 0},
10584 {0xAF, 0x66, 0x66, 0, 0},
10585 {0xB0, 0x66, 0x66, 0, 0},
10586 {0xB1, 0x66, 0x66, 0, 0},
10587 {0xB2, 0x66, 0x66, 0, 0},
10588 {0xB3, 0xa, 0xa, 0, 0},
10589 {0xB4, 0, 0, 0, 0},
10590 {0xB5, 0, 0, 0, 0},
10591 {0xB6, 0, 0, 0, 0},
10592 {0xFFFF, 0, 0, 0, 0},
10593};
10594
10595radio_regs_t regs_TX_2056_rev8[] = {
10596 {0x02, 0, 0, 0, 0},
10597 {0x03, 0, 0, 0, 0},
10598 {0x04, 0, 0, 0, 0},
10599 {0x05, 0, 0, 0, 0},
10600 {0x06, 0, 0, 0, 0},
10601 {0x07, 0, 0, 0, 0},
10602 {0x08, 0, 0, 0, 0},
10603 {0x09, 0, 0, 0, 0},
10604 {0x0A, 0, 0, 0, 0},
10605 {0x0B, 0, 0, 0, 0},
10606 {0x0C, 0, 0, 0, 0},
10607 {0x0D, 0, 0, 0, 0},
10608 {0x0E, 0, 0, 0, 0},
10609 {0x0F, 0, 0, 0, 0},
10610 {0x10, 0, 0, 0, 0},
10611 {0x11, 0, 0, 0, 0},
10612 {0x12, 0, 0, 0, 0},
10613 {0x13, 0, 0, 0, 0},
10614 {0x14, 0, 0, 0, 0},
10615 {0x15, 0, 0, 0, 0},
10616 {0x16, 0, 0, 0, 0},
10617 {0x17, 0, 0, 0, 0},
10618 {0x18, 0, 0, 0, 0},
10619 {0x19, 0, 0, 0, 0},
10620 {0x1A, 0, 0, 0, 0},
10621 {0x1B, 0, 0, 0, 0},
10622 {0x1C, 0, 0, 0, 0},
10623 {0x1D, 0, 0, 0, 0},
10624 {0x1E, 0, 0, 0, 0},
10625 {0x1F, 0, 0, 0, 0},
10626 {0x20, 0, 0, 0, 0},
10627 {0x21, 0x88, 0x88, 0, 0},
10628 {0x22, 0x88, 0x88, 0, 0},
10629 {0x23, 0x88, 0x88, 0, 0},
10630 {0x24, 0x88, 0x88, 0, 0},
10631 {0x25, 0xc, 0xc, 0, 0},
10632 {0x26, 0, 0, 0, 0},
10633 {0x27, 0x3, 0x3, 0, 0},
10634 {0x28, 0, 0, 0, 0},
10635 {0x29, 0x3, 0x3, 0, 0},
10636 {0x2A, 0x37, 0x37, 0, 0},
10637 {0x2B, 0x3, 0x3, 0, 0},
10638 {0x2C, 0, 0, 0, 0},
10639 {0x2D, 0, 0, 0, 0},
10640 {0x2E, 0x1, 0x1, 0, 0},
10641 {0x2F, 0x1, 0x1, 0, 0},
10642 {0x30, 0, 0, 0, 0},
10643 {0x31, 0, 0, 0, 0},
10644 {0x32, 0, 0, 0, 0},
10645 {0x33, 0x11, 0x11, 0, 0},
10646 {0x34, 0xee, 0xee, 1, 1},
10647 {0x35, 0, 0, 0, 0},
10648 {0x36, 0, 0, 0, 0},
10649 {0x37, 0x3, 0x3, 0, 0},
10650 {0x38, 0x50, 0x50, 1, 1},
10651 {0x39, 0, 0, 0, 0},
10652 {0x3A, 0x50, 0x50, 1, 1},
10653 {0x3B, 0, 0, 0, 0},
10654 {0x3C, 0x6e, 0x6e, 0, 0},
10655 {0x3D, 0xf0, 0xf0, 1, 1},
10656 {0x3E, 0, 0, 0, 0},
10657 {0x3F, 0, 0, 0, 0},
10658 {0x40, 0, 0, 0, 0},
10659 {0x41, 0x3, 0x3, 0, 0},
10660 {0x42, 0x3, 0x3, 0, 0},
10661 {0x43, 0, 0, 0, 0},
10662 {0x44, 0x1e, 0x1e, 0, 0},
10663 {0x45, 0, 0, 0, 0},
10664 {0x46, 0x6e, 0x6e, 0, 0},
10665 {0x47, 0xf0, 0xf0, 1, 1},
10666 {0x48, 0, 0, 0, 0},
10667 {0x49, 0x2, 0x2, 0, 0},
10668 {0x4A, 0xff, 0xff, 1, 1},
10669 {0x4B, 0xc, 0xc, 0, 0},
10670 {0x4C, 0, 0, 0, 0},
10671 {0x4D, 0x38, 0x38, 0, 0},
10672 {0x4E, 0x70, 0x70, 1, 1},
10673 {0x4F, 0x2, 0x2, 0, 0},
10674 {0x50, 0x88, 0x88, 0, 0},
10675 {0x51, 0xc, 0xc, 0, 0},
10676 {0x52, 0, 0, 0, 0},
10677 {0x53, 0x8, 0x8, 0, 0},
10678 {0x54, 0x70, 0x70, 1, 1},
10679 {0x55, 0x2, 0x2, 0, 0},
10680 {0x56, 0xff, 0xff, 1, 1},
10681 {0x57, 0, 0, 0, 0},
10682 {0x58, 0x83, 0x83, 0, 0},
10683 {0x59, 0x77, 0x77, 1, 1},
10684 {0x5A, 0, 0, 0, 0},
10685 {0x5B, 0x2, 0x2, 0, 0},
10686 {0x5C, 0x88, 0x88, 0, 0},
10687 {0x5D, 0, 0, 0, 0},
10688 {0x5E, 0x8, 0x8, 0, 0},
10689 {0x5F, 0x77, 0x77, 1, 1},
10690 {0x60, 0x1, 0x1, 0, 0},
10691 {0x61, 0, 0, 0, 0},
10692 {0x62, 0x7, 0x7, 0, 0},
10693 {0x63, 0, 0, 0, 0},
10694 {0x64, 0x7, 0x7, 0, 0},
10695 {0x65, 0, 0, 0, 0},
10696 {0x66, 0, 0, 0, 0},
10697 {0x67, 0, 0, 1, 1},
10698 {0x68, 0, 0, 0, 0},
10699 {0x69, 0xa, 0xa, 0, 0},
10700 {0x6A, 0, 0, 0, 0},
10701 {0x6B, 0, 0, 0, 0},
10702 {0x6C, 0, 0, 0, 0},
10703 {0x6D, 0, 0, 0, 0},
10704 {0x6E, 0, 0, 0, 0},
10705 {0x6F, 0, 0, 0, 0},
10706 {0x70, 0, 0, 0, 0},
10707 {0x71, 0x2, 0x2, 0, 0},
10708 {0x72, 0, 0, 0, 0},
10709 {0x73, 0, 0, 0, 0},
10710 {0x74, 0xe, 0xe, 0, 0},
10711 {0x75, 0xe, 0xe, 0, 0},
10712 {0x76, 0xe, 0xe, 0, 0},
10713 {0x77, 0x13, 0x13, 0, 0},
10714 {0x78, 0x13, 0x13, 0, 0},
10715 {0x79, 0x1b, 0x1b, 0, 0},
10716 {0x7A, 0x1b, 0x1b, 0, 0},
10717 {0x7B, 0x55, 0x55, 0, 0},
10718 {0x7C, 0x5b, 0x5b, 0, 0},
10719 {0x7D, 0x30, 0x30, 1, 1},
10720 {0x7E, 0, 0, 0, 0},
10721 {0x7F, 0, 0, 0, 0},
10722 {0x80, 0, 0, 0, 0},
10723 {0x81, 0, 0, 0, 0},
10724 {0x82, 0, 0, 0, 0},
10725 {0x83, 0, 0, 0, 0},
10726 {0x84, 0, 0, 0, 0},
10727 {0x85, 0, 0, 0, 0},
10728 {0x86, 0, 0, 0, 0},
10729 {0x87, 0, 0, 0, 0},
10730 {0x88, 0, 0, 0, 0},
10731 {0x89, 0, 0, 0, 0},
10732 {0x8A, 0, 0, 0, 0},
10733 {0x8B, 0, 0, 0, 0},
10734 {0x8C, 0, 0, 0, 0},
10735 {0x8D, 0, 0, 0, 0},
10736 {0x8E, 0, 0, 0, 0},
10737 {0x8F, 0, 0, 0, 0},
10738 {0x90, 0, 0, 0, 0},
10739 {0x91, 0, 0, 0, 0},
10740 {0x92, 0, 0, 0, 0},
10741 {0x93, 0x70, 0x70, 0, 0},
10742 {0x94, 0x70, 0x70, 0, 0},
10743 {0x95, 0x70, 0x70, 0, 0},
10744 {0x96, 0x70, 0x70, 0, 0},
10745 {0x97, 0x70, 0x70, 0, 0},
10746 {0x98, 0x70, 0x70, 0, 0},
10747 {0x99, 0x70, 0x70, 0, 0},
10748 {0x9A, 0x70, 0x70, 0, 0},
10749 {0xFFFF, 0, 0, 0, 0},
10750};
10751
10752radio_regs_t regs_RX_2056_rev8[] = {
10753 {0x02, 0, 0, 0, 0},
10754 {0x03, 0, 0, 0, 0},
10755 {0x04, 0, 0, 0, 0},
10756 {0x05, 0, 0, 0, 0},
10757 {0x06, 0, 0, 0, 0},
10758 {0x07, 0, 0, 0, 0},
10759 {0x08, 0, 0, 0, 0},
10760 {0x09, 0, 0, 0, 0},
10761 {0x0A, 0, 0, 0, 0},
10762 {0x0B, 0, 0, 0, 0},
10763 {0x0C, 0, 0, 0, 0},
10764 {0x0D, 0, 0, 0, 0},
10765 {0x0E, 0, 0, 0, 0},
10766 {0x0F, 0, 0, 0, 0},
10767 {0x10, 0, 0, 0, 0},
10768 {0x11, 0, 0, 0, 0},
10769 {0x12, 0, 0, 0, 0},
10770 {0x13, 0, 0, 0, 0},
10771 {0x14, 0, 0, 0, 0},
10772 {0x15, 0, 0, 0, 0},
10773 {0x16, 0, 0, 0, 0},
10774 {0x17, 0, 0, 0, 0},
10775 {0x18, 0, 0, 0, 0},
10776 {0x19, 0, 0, 0, 0},
10777 {0x1A, 0, 0, 0, 0},
10778 {0x1B, 0, 0, 0, 0},
10779 {0x1C, 0, 0, 0, 0},
10780 {0x1D, 0, 0, 0, 0},
10781 {0x1E, 0, 0, 0, 0},
10782 {0x1F, 0, 0, 0, 0},
10783 {0x20, 0x3, 0x3, 0, 0},
10784 {0x21, 0, 0, 0, 0},
10785 {0x22, 0, 0, 0, 0},
10786 {0x23, 0x90, 0x90, 0, 0},
10787 {0x24, 0x55, 0x55, 0, 0},
10788 {0x25, 0x15, 0x15, 0, 0},
10789 {0x26, 0x5, 0x5, 0, 0},
10790 {0x27, 0x15, 0x15, 0, 0},
10791 {0x28, 0x5, 0x5, 0, 0},
10792 {0x29, 0x20, 0x20, 0, 0},
10793 {0x2A, 0x11, 0x11, 0, 0},
10794 {0x2B, 0x90, 0x90, 0, 0},
10795 {0x2C, 0, 0, 0, 0},
10796 {0x2D, 0x88, 0x88, 0, 0},
10797 {0x2E, 0x32, 0x32, 0, 0},
10798 {0x2F, 0x77, 0x77, 0, 0},
10799 {0x30, 0x17, 0x17, 1, 1},
10800 {0x31, 0xff, 0xff, 1, 1},
10801 {0x32, 0x20, 0x20, 0, 0},
10802 {0x33, 0, 0, 0, 0},
10803 {0x34, 0x88, 0x88, 0, 0},
10804 {0x35, 0x32, 0x32, 0, 0},
10805 {0x36, 0x77, 0x77, 0, 0},
10806 {0x37, 0x17, 0x17, 1, 1},
10807 {0x38, 0xf0, 0xf0, 1, 1},
10808 {0x39, 0x20, 0x20, 0, 0},
10809 {0x3A, 0x8, 0x8, 0, 0},
10810 {0x3B, 0x55, 0x55, 1, 1},
10811 {0x3C, 0, 0, 0, 0},
10812 {0x3D, 0x88, 0x88, 1, 1},
10813 {0x3E, 0, 0, 0, 0},
10814 {0x3F, 0x44, 0x44, 0, 0},
10815 {0x40, 0x7, 0x7, 1, 1},
10816 {0x41, 0x6, 0x6, 0, 0},
10817 {0x42, 0x4, 0x4, 0, 0},
10818 {0x43, 0, 0, 0, 0},
10819 {0x44, 0x8, 0x8, 0, 0},
10820 {0x45, 0x55, 0x55, 1, 1},
10821 {0x46, 0, 0, 0, 0},
10822 {0x47, 0x11, 0x11, 0, 0},
10823 {0x48, 0, 0, 0, 0},
10824 {0x49, 0x44, 0x44, 0, 0},
10825 {0x4A, 0x7, 0x7, 0, 0},
10826 {0x4B, 0x6, 0x6, 0, 0},
10827 {0x4C, 0x4, 0x4, 0, 0},
10828 {0x4D, 0, 0, 0, 0},
10829 {0x4E, 0, 0, 0, 0},
10830 {0x4F, 0x26, 0x26, 1, 1},
10831 {0x50, 0x26, 0x26, 1, 1},
10832 {0x51, 0xf, 0xf, 1, 1},
10833 {0x52, 0xf, 0xf, 1, 1},
10834 {0x53, 0x44, 0x44, 0, 0},
10835 {0x54, 0, 0, 0, 0},
10836 {0x55, 0, 0, 0, 0},
10837 {0x56, 0x8, 0x8, 0, 0},
10838 {0x57, 0x8, 0x8, 0, 0},
10839 {0x58, 0x7, 0x7, 0, 0},
10840 {0x59, 0x22, 0x22, 0, 0},
10841 {0x5A, 0x22, 0x22, 0, 0},
10842 {0x5B, 0x2, 0x2, 0, 0},
10843 {0x5C, 0x4, 0x4, 1, 1},
10844 {0x5D, 0x7, 0x7, 0, 0},
10845 {0x5E, 0x55, 0x55, 0, 0},
10846 {0x5F, 0x23, 0x23, 0, 0},
10847 {0x60, 0x41, 0x41, 0, 0},
10848 {0x61, 0x1, 0x1, 0, 0},
10849 {0x62, 0xa, 0xa, 0, 0},
10850 {0x63, 0, 0, 0, 0},
10851 {0x64, 0, 0, 0, 0},
10852 {0x65, 0, 0, 0, 0},
10853 {0x66, 0, 0, 0, 0},
10854 {0x67, 0, 0, 0, 0},
10855 {0x68, 0, 0, 0, 0},
10856 {0x69, 0, 0, 0, 0},
10857 {0x6A, 0, 0, 0, 0},
10858 {0x6B, 0xc, 0xc, 0, 0},
10859 {0x6C, 0, 0, 0, 0},
10860 {0x6D, 0, 0, 0, 0},
10861 {0x6E, 0, 0, 0, 0},
10862 {0x6F, 0, 0, 0, 0},
10863 {0x70, 0, 0, 0, 0},
10864 {0x71, 0, 0, 0, 0},
10865 {0x72, 0x22, 0x22, 0, 0},
10866 {0x73, 0x22, 0x22, 0, 0},
10867 {0x74, 0, 0, 1, 1},
10868 {0x75, 0xa, 0xa, 0, 0},
10869 {0x76, 0x1, 0x1, 0, 0},
10870 {0x77, 0x22, 0x22, 0, 0},
10871 {0x78, 0x30, 0x30, 0, 0},
10872 {0x79, 0, 0, 0, 0},
10873 {0x7A, 0, 0, 0, 0},
10874 {0x7B, 0, 0, 0, 0},
10875 {0x7C, 0, 0, 0, 0},
10876 {0x7D, 0x5, 0x5, 1, 1},
10877 {0x7E, 0, 0, 0, 0},
10878 {0x7F, 0, 0, 0, 0},
10879 {0x80, 0, 0, 0, 0},
10880 {0x81, 0, 0, 0, 0},
10881 {0x82, 0, 0, 0, 0},
10882 {0x83, 0, 0, 0, 0},
10883 {0x84, 0, 0, 0, 0},
10884 {0x85, 0, 0, 0, 0},
10885 {0x86, 0, 0, 0, 0},
10886 {0x87, 0, 0, 0, 0},
10887 {0x88, 0, 0, 0, 0},
10888 {0x89, 0, 0, 0, 0},
10889 {0x8A, 0, 0, 0, 0},
10890 {0x8B, 0, 0, 0, 0},
10891 {0x8C, 0, 0, 0, 0},
10892 {0x8D, 0, 0, 0, 0},
10893 {0x8E, 0, 0, 0, 0},
10894 {0x8F, 0, 0, 0, 0},
10895 {0x90, 0, 0, 0, 0},
10896 {0x91, 0, 0, 0, 0},
10897 {0x92, 0, 0, 0, 0},
10898 {0x93, 0, 0, 0, 0},
10899 {0x94, 0, 0, 0, 0},
10900 {0xFFFF, 0, 0, 0, 0},
10901};
10902
10903radio_regs_t regs_SYN_2056_rev11[] = {
10904 {0x02, 0, 0, 0, 0},
10905 {0x03, 0, 0, 0, 0},
10906 {0x04, 0, 0, 0, 0},
10907 {0x05, 0, 0, 0, 0},
10908 {0x06, 0, 0, 0, 0},
10909 {0x07, 0, 0, 0, 0},
10910 {0x08, 0, 0, 0, 0},
10911 {0x09, 0x1, 0x1, 0, 0},
10912 {0x0A, 0, 0, 0, 0},
10913 {0x0B, 0, 0, 0, 0},
10914 {0x0C, 0, 0, 0, 0},
10915 {0x0D, 0, 0, 0, 0},
10916 {0x0E, 0, 0, 0, 0},
10917 {0x0F, 0, 0, 0, 0},
10918 {0x10, 0, 0, 0, 0},
10919 {0x11, 0, 0, 0, 0},
10920 {0x12, 0, 0, 0, 0},
10921 {0x13, 0, 0, 0, 0},
10922 {0x14, 0, 0, 0, 0},
10923 {0x15, 0, 0, 0, 0},
10924 {0x16, 0, 0, 0, 0},
10925 {0x17, 0, 0, 0, 0},
10926 {0x18, 0, 0, 0, 0},
10927 {0x19, 0, 0, 0, 0},
10928 {0x1A, 0, 0, 0, 0},
10929 {0x1B, 0, 0, 0, 0},
10930 {0x1C, 0, 0, 0, 0},
10931 {0x1D, 0, 0, 0, 0},
10932 {0x1E, 0, 0, 0, 0},
10933 {0x1F, 0, 0, 0, 0},
10934 {0x20, 0, 0, 0, 0},
10935 {0x21, 0, 0, 0, 0},
10936 {0x22, 0x60, 0x60, 0, 0},
10937 {0x23, 0x6, 0x6, 0, 0},
10938 {0x24, 0xc, 0xc, 0, 0},
10939 {0x25, 0, 0, 0, 0},
10940 {0x26, 0, 0, 0, 0},
10941 {0x27, 0, 0, 0, 0},
10942 {0x28, 0x1, 0x1, 0, 0},
10943 {0x29, 0, 0, 0, 0},
10944 {0x2A, 0, 0, 0, 0},
10945 {0x2B, 0, 0, 0, 0},
10946 {0x2C, 0, 0, 0, 0},
10947 {0x2D, 0, 0, 0, 0},
10948 {0x2E, 0, 0, 0, 0},
10949 {0x2F, 0x1f, 0x1f, 0, 0},
10950 {0x30, 0x15, 0x15, 0, 0},
10951 {0x31, 0xf, 0xf, 0, 0},
10952 {0x32, 0, 0, 0, 0},
10953 {0x33, 0, 0, 0, 0},
10954 {0x34, 0, 0, 0, 0},
10955 {0x35, 0, 0, 0, 0},
10956 {0x36, 0, 0, 0, 0},
10957 {0x37, 0, 0, 0, 0},
10958 {0x38, 0, 0, 0, 0},
10959 {0x39, 0, 0, 0, 0},
10960 {0x3A, 0, 0, 0, 0},
10961 {0x3B, 0, 0, 0, 0},
10962 {0x3C, 0x13, 0x13, 0, 0},
10963 {0x3D, 0xf, 0xf, 0, 0},
10964 {0x3E, 0x18, 0x18, 0, 0},
10965 {0x3F, 0, 0, 0, 0},
10966 {0x40, 0, 0, 0, 0},
10967 {0x41, 0x20, 0x20, 0, 0},
10968 {0x42, 0x20, 0x20, 0, 0},
10969 {0x43, 0, 0, 0, 0},
10970 {0x44, 0x77, 0x77, 0, 0},
10971 {0x45, 0x7, 0x7, 0, 0},
10972 {0x46, 0x1, 0x1, 0, 0},
10973 {0x47, 0x6, 0x6, 1, 1},
10974 {0x48, 0xf, 0xf, 0, 0},
10975 {0x49, 0x3f, 0x3f, 1, 1},
10976 {0x4A, 0x32, 0x32, 0, 0},
10977 {0x4B, 0x6, 0x6, 1, 1},
10978 {0x4C, 0x6, 0x6, 1, 1},
10979 {0x4D, 0x4, 0x4, 0, 0},
10980 {0x4E, 0x2b, 0x2b, 1, 1},
10981 {0x4F, 0x1, 0x1, 0, 0},
10982 {0x50, 0x1c, 0x1c, 0, 0},
10983 {0x51, 0x2, 0x2, 0, 0},
10984 {0x52, 0x2, 0x2, 0, 0},
10985 {0x53, 0xf7, 0xf7, 1, 1},
10986 {0x54, 0xb4, 0xb4, 0, 0},
10987 {0x55, 0xd2, 0xd2, 0, 0},
10988 {0x56, 0, 0, 0, 0},
10989 {0x57, 0, 0, 0, 0},
10990 {0x58, 0x4, 0x4, 0, 0},
10991 {0x59, 0x96, 0x96, 0, 0},
10992 {0x5A, 0x3e, 0x3e, 0, 0},
10993 {0x5B, 0x3e, 0x3e, 0, 0},
10994 {0x5C, 0x13, 0x13, 0, 0},
10995 {0x5D, 0x2, 0x2, 0, 0},
10996 {0x5E, 0, 0, 0, 0},
10997 {0x5F, 0x7, 0x7, 0, 0},
10998 {0x60, 0x7, 0x7, 1, 1},
10999 {0x61, 0x8, 0x8, 0, 0},
11000 {0x62, 0x3, 0x3, 0, 0},
11001 {0x63, 0, 0, 0, 0},
11002 {0x64, 0, 0, 0, 0},
11003 {0x65, 0, 0, 0, 0},
11004 {0x66, 0, 0, 0, 0},
11005 {0x67, 0, 0, 0, 0},
11006 {0x68, 0x40, 0x40, 0, 0},
11007 {0x69, 0, 0, 0, 0},
11008 {0x6A, 0, 0, 0, 0},
11009 {0x6B, 0, 0, 0, 0},
11010 {0x6C, 0, 0, 0, 0},
11011 {0x6D, 0x1, 0x1, 0, 0},
11012 {0x6E, 0, 0, 0, 0},
11013 {0x6F, 0, 0, 0, 0},
11014 {0x70, 0x60, 0x60, 0, 0},
11015 {0x71, 0x66, 0x66, 0, 0},
11016 {0x72, 0xc, 0xc, 0, 0},
11017 {0x73, 0x66, 0x66, 0, 0},
11018 {0x74, 0x8f, 0x8f, 1, 1},
11019 {0x75, 0, 0, 0, 0},
11020 {0x76, 0xcc, 0xcc, 0, 0},
11021 {0x77, 0x1, 0x1, 0, 0},
11022 {0x78, 0x66, 0x66, 0, 0},
11023 {0x79, 0x66, 0x66, 0, 0},
11024 {0x7A, 0, 0, 0, 0},
11025 {0x7B, 0, 0, 0, 0},
11026 {0x7C, 0, 0, 0, 0},
11027 {0x7D, 0, 0, 0, 0},
11028 {0x7E, 0, 0, 0, 0},
11029 {0x7F, 0, 0, 0, 0},
11030 {0x80, 0, 0, 0, 0},
11031 {0x81, 0, 0, 0, 0},
11032 {0x82, 0, 0, 0, 0},
11033 {0x83, 0, 0, 0, 0},
11034 {0x84, 0, 0, 0, 0},
11035 {0x85, 0xff, 0xff, 0, 0},
11036 {0x86, 0, 0, 0, 0},
11037 {0x87, 0, 0, 0, 0},
11038 {0x88, 0, 0, 0, 0},
11039 {0x89, 0, 0, 0, 0},
11040 {0x8A, 0, 0, 0, 0},
11041 {0x8B, 0, 0, 0, 0},
11042 {0x8C, 0, 0, 0, 0},
11043 {0x8D, 0, 0, 0, 0},
11044 {0x8E, 0, 0, 0, 0},
11045 {0x8F, 0, 0, 0, 0},
11046 {0x90, 0, 0, 0, 0},
11047 {0x91, 0, 0, 0, 0},
11048 {0x92, 0, 0, 0, 0},
11049 {0x93, 0, 0, 0, 0},
11050 {0x94, 0, 0, 0, 0},
11051 {0x95, 0, 0, 0, 0},
11052 {0x96, 0, 0, 0, 0},
11053 {0x97, 0, 0, 0, 0},
11054 {0x98, 0, 0, 0, 0},
11055 {0x99, 0, 0, 0, 0},
11056 {0x9A, 0, 0, 0, 0},
11057 {0x9B, 0, 0, 0, 0},
11058 {0x9C, 0, 0, 0, 0},
11059 {0x9D, 0, 0, 0, 0},
11060 {0x9E, 0, 0, 0, 0},
11061 {0x9F, 0x6, 0x6, 0, 0},
11062 {0xA0, 0x66, 0x66, 0, 0},
11063 {0xA1, 0x66, 0x66, 0, 0},
11064 {0xA2, 0x66, 0x66, 0, 0},
11065 {0xA3, 0x66, 0x66, 0, 0},
11066 {0xA4, 0x66, 0x66, 0, 0},
11067 {0xA5, 0x66, 0x66, 0, 0},
11068 {0xA6, 0x66, 0x66, 0, 0},
11069 {0xA7, 0x66, 0x66, 0, 0},
11070 {0xA8, 0x66, 0x66, 0, 0},
11071 {0xA9, 0x66, 0x66, 0, 0},
11072 {0xAA, 0x66, 0x66, 0, 0},
11073 {0xAB, 0x66, 0x66, 0, 0},
11074 {0xAC, 0x66, 0x66, 0, 0},
11075 {0xAD, 0x66, 0x66, 0, 0},
11076 {0xAE, 0x66, 0x66, 0, 0},
11077 {0xAF, 0x66, 0x66, 0, 0},
11078 {0xB0, 0x66, 0x66, 0, 0},
11079 {0xB1, 0x66, 0x66, 0, 0},
11080 {0xB2, 0x66, 0x66, 0, 0},
11081 {0xB3, 0xa, 0xa, 0, 0},
11082 {0xB4, 0, 0, 0, 0},
11083 {0xB5, 0, 0, 0, 0},
11084 {0xB6, 0, 0, 0, 0},
11085 {0xFFFF, 0, 0, 0, 0},
11086};
11087
11088radio_regs_t regs_TX_2056_rev11[] = {
11089 {0x02, 0, 0, 0, 0},
11090 {0x03, 0, 0, 0, 0},
11091 {0x04, 0, 0, 0, 0},
11092 {0x05, 0, 0, 0, 0},
11093 {0x06, 0, 0, 0, 0},
11094 {0x07, 0, 0, 0, 0},
11095 {0x08, 0, 0, 0, 0},
11096 {0x09, 0, 0, 0, 0},
11097 {0x0A, 0, 0, 0, 0},
11098 {0x0B, 0, 0, 0, 0},
11099 {0x0C, 0, 0, 0, 0},
11100 {0x0D, 0, 0, 0, 0},
11101 {0x0E, 0, 0, 0, 0},
11102 {0x0F, 0, 0, 0, 0},
11103 {0x10, 0, 0, 0, 0},
11104 {0x11, 0, 0, 0, 0},
11105 {0x12, 0, 0, 0, 0},
11106 {0x13, 0, 0, 0, 0},
11107 {0x14, 0, 0, 0, 0},
11108 {0x15, 0, 0, 0, 0},
11109 {0x16, 0, 0, 0, 0},
11110 {0x17, 0, 0, 0, 0},
11111 {0x18, 0, 0, 0, 0},
11112 {0x19, 0, 0, 0, 0},
11113 {0x1A, 0, 0, 0, 0},
11114 {0x1B, 0, 0, 0, 0},
11115 {0x1C, 0, 0, 0, 0},
11116 {0x1D, 0, 0, 0, 0},
11117 {0x1E, 0, 0, 0, 0},
11118 {0x1F, 0, 0, 0, 0},
11119 {0x20, 0, 0, 0, 0},
11120 {0x21, 0x88, 0x88, 0, 0},
11121 {0x22, 0x88, 0x88, 0, 0},
11122 {0x23, 0x88, 0x88, 0, 0},
11123 {0x24, 0x88, 0x88, 0, 0},
11124 {0x25, 0xc, 0xc, 0, 0},
11125 {0x26, 0, 0, 0, 0},
11126 {0x27, 0x3, 0x3, 0, 0},
11127 {0x28, 0, 0, 0, 0},
11128 {0x29, 0x3, 0x3, 0, 0},
11129 {0x2A, 0x37, 0x37, 0, 0},
11130 {0x2B, 0x3, 0x3, 0, 0},
11131 {0x2C, 0, 0, 0, 0},
11132 {0x2D, 0, 0, 0, 0},
11133 {0x2E, 0x1, 0x1, 0, 0},
11134 {0x2F, 0x1, 0x1, 0, 0},
11135 {0x30, 0, 0, 0, 0},
11136 {0x31, 0, 0, 0, 0},
11137 {0x32, 0, 0, 0, 0},
11138 {0x33, 0x11, 0x11, 0, 0},
11139 {0x34, 0xee, 0xee, 1, 1},
11140 {0x35, 0, 0, 0, 0},
11141 {0x36, 0, 0, 0, 0},
11142 {0x37, 0x3, 0x3, 0, 0},
11143 {0x38, 0x50, 0x50, 1, 1},
11144 {0x39, 0, 0, 0, 0},
11145 {0x3A, 0x50, 0x50, 1, 1},
11146 {0x3B, 0, 0, 0, 0},
11147 {0x3C, 0x6e, 0x6e, 0, 0},
11148 {0x3D, 0xf0, 0xf0, 1, 1},
11149 {0x3E, 0, 0, 0, 0},
11150 {0x3F, 0, 0, 0, 0},
11151 {0x40, 0, 0, 0, 0},
11152 {0x41, 0x3, 0x3, 0, 0},
11153 {0x42, 0x3, 0x3, 0, 0},
11154 {0x43, 0, 0, 0, 0},
11155 {0x44, 0x1e, 0x1e, 0, 0},
11156 {0x45, 0, 0, 0, 0},
11157 {0x46, 0x6e, 0x6e, 0, 0},
11158 {0x47, 0xf0, 0xf0, 1, 1},
11159 {0x48, 0, 0, 0, 0},
11160 {0x49, 0x2, 0x2, 0, 0},
11161 {0x4A, 0xff, 0xff, 1, 1},
11162 {0x4B, 0xc, 0xc, 0, 0},
11163 {0x4C, 0, 0, 0, 0},
11164 {0x4D, 0x38, 0x38, 0, 0},
11165 {0x4E, 0x70, 0x70, 1, 1},
11166 {0x4F, 0x2, 0x2, 0, 0},
11167 {0x50, 0x88, 0x88, 0, 0},
11168 {0x51, 0xc, 0xc, 0, 0},
11169 {0x52, 0, 0, 0, 0},
11170 {0x53, 0x8, 0x8, 0, 0},
11171 {0x54, 0x70, 0x70, 1, 1},
11172 {0x55, 0x2, 0x2, 0, 0},
11173 {0x56, 0xff, 0xff, 1, 1},
11174 {0x57, 0, 0, 0, 0},
11175 {0x58, 0x83, 0x83, 0, 0},
11176 {0x59, 0x77, 0x77, 1, 1},
11177 {0x5A, 0, 0, 0, 0},
11178 {0x5B, 0x2, 0x2, 0, 0},
11179 {0x5C, 0x88, 0x88, 0, 0},
11180 {0x5D, 0, 0, 0, 0},
11181 {0x5E, 0x8, 0x8, 0, 0},
11182 {0x5F, 0x77, 0x77, 1, 1},
11183 {0x60, 0x1, 0x1, 0, 0},
11184 {0x61, 0, 0, 0, 0},
11185 {0x62, 0x7, 0x7, 0, 0},
11186 {0x63, 0, 0, 0, 0},
11187 {0x64, 0x7, 0x7, 0, 0},
11188 {0x65, 0, 0, 0, 0},
11189 {0x66, 0, 0, 0, 0},
11190 {0x67, 0, 0, 1, 1},
11191 {0x68, 0, 0, 0, 0},
11192 {0x69, 0xa, 0xa, 0, 0},
11193 {0x6A, 0, 0, 0, 0},
11194 {0x6B, 0, 0, 0, 0},
11195 {0x6C, 0, 0, 0, 0},
11196 {0x6D, 0, 0, 0, 0},
11197 {0x6E, 0, 0, 0, 0},
11198 {0x6F, 0, 0, 0, 0},
11199 {0x70, 0, 0, 0, 0},
11200 {0x71, 0x2, 0x2, 0, 0},
11201 {0x72, 0, 0, 0, 0},
11202 {0x73, 0, 0, 0, 0},
11203 {0x74, 0xe, 0xe, 0, 0},
11204 {0x75, 0xe, 0xe, 0, 0},
11205 {0x76, 0xe, 0xe, 0, 0},
11206 {0x77, 0x13, 0x13, 0, 0},
11207 {0x78, 0x13, 0x13, 0, 0},
11208 {0x79, 0x1b, 0x1b, 0, 0},
11209 {0x7A, 0x1b, 0x1b, 0, 0},
11210 {0x7B, 0x55, 0x55, 0, 0},
11211 {0x7C, 0x5b, 0x5b, 0, 0},
11212 {0x7D, 0x30, 0x30, 1, 1},
11213 {0x7E, 0, 0, 0, 0},
11214 {0x7F, 0, 0, 0, 0},
11215 {0x80, 0, 0, 0, 0},
11216 {0x81, 0, 0, 0, 0},
11217 {0x82, 0, 0, 0, 0},
11218 {0x83, 0, 0, 0, 0},
11219 {0x84, 0, 0, 0, 0},
11220 {0x85, 0, 0, 0, 0},
11221 {0x86, 0, 0, 0, 0},
11222 {0x87, 0, 0, 0, 0},
11223 {0x88, 0, 0, 0, 0},
11224 {0x89, 0, 0, 0, 0},
11225 {0x8A, 0, 0, 0, 0},
11226 {0x8B, 0, 0, 0, 0},
11227 {0x8C, 0, 0, 0, 0},
11228 {0x8D, 0, 0, 0, 0},
11229 {0x8E, 0, 0, 0, 0},
11230 {0x8F, 0, 0, 0, 0},
11231 {0x90, 0, 0, 0, 0},
11232 {0x91, 0, 0, 0, 0},
11233 {0x92, 0, 0, 0, 0},
11234 {0x93, 0x70, 0x70, 0, 0},
11235 {0x94, 0x70, 0x70, 0, 0},
11236 {0x95, 0x70, 0x70, 0, 0},
11237 {0x96, 0x70, 0x70, 0, 0},
11238 {0x97, 0x70, 0x70, 0, 0},
11239 {0x98, 0x70, 0x70, 0, 0},
11240 {0x99, 0x70, 0x70, 0, 0},
11241 {0x9A, 0x70, 0x70, 0, 0},
11242 {0xFFFF, 0, 0, 0, 0},
11243};
11244
11245radio_regs_t regs_RX_2056_rev11[] = {
11246 {0x02, 0, 0, 0, 0},
11247 {0x03, 0, 0, 0, 0},
11248 {0x04, 0, 0, 0, 0},
11249 {0x05, 0, 0, 0, 0},
11250 {0x06, 0, 0, 0, 0},
11251 {0x07, 0, 0, 0, 0},
11252 {0x08, 0, 0, 0, 0},
11253 {0x09, 0, 0, 0, 0},
11254 {0x0A, 0, 0, 0, 0},
11255 {0x0B, 0, 0, 0, 0},
11256 {0x0C, 0, 0, 0, 0},
11257 {0x0D, 0, 0, 0, 0},
11258 {0x0E, 0, 0, 0, 0},
11259 {0x0F, 0, 0, 0, 0},
11260 {0x10, 0, 0, 0, 0},
11261 {0x11, 0, 0, 0, 0},
11262 {0x12, 0, 0, 0, 0},
11263 {0x13, 0, 0, 0, 0},
11264 {0x14, 0, 0, 0, 0},
11265 {0x15, 0, 0, 0, 0},
11266 {0x16, 0, 0, 0, 0},
11267 {0x17, 0, 0, 0, 0},
11268 {0x18, 0, 0, 0, 0},
11269 {0x19, 0, 0, 0, 0},
11270 {0x1A, 0, 0, 0, 0},
11271 {0x1B, 0, 0, 0, 0},
11272 {0x1C, 0, 0, 0, 0},
11273 {0x1D, 0, 0, 0, 0},
11274 {0x1E, 0, 0, 0, 0},
11275 {0x1F, 0, 0, 0, 0},
11276 {0x20, 0x3, 0x3, 0, 0},
11277 {0x21, 0, 0, 0, 0},
11278 {0x22, 0, 0, 0, 0},
11279 {0x23, 0x90, 0x90, 0, 0},
11280 {0x24, 0x55, 0x55, 0, 0},
11281 {0x25, 0x15, 0x15, 0, 0},
11282 {0x26, 0x5, 0x5, 0, 0},
11283 {0x27, 0x15, 0x15, 0, 0},
11284 {0x28, 0x5, 0x5, 0, 0},
11285 {0x29, 0x20, 0x20, 0, 0},
11286 {0x2A, 0x11, 0x11, 0, 0},
11287 {0x2B, 0x90, 0x90, 0, 0},
11288 {0x2C, 0, 0, 0, 0},
11289 {0x2D, 0x88, 0x88, 0, 0},
11290 {0x2E, 0x32, 0x32, 0, 0},
11291 {0x2F, 0x77, 0x77, 0, 0},
11292 {0x30, 0x17, 0x17, 1, 1},
11293 {0x31, 0xff, 0xff, 1, 1},
11294 {0x32, 0x20, 0x20, 0, 0},
11295 {0x33, 0, 0, 0, 0},
11296 {0x34, 0x88, 0x88, 0, 0},
11297 {0x35, 0x32, 0x32, 0, 0},
11298 {0x36, 0x77, 0x77, 0, 0},
11299 {0x37, 0x17, 0x17, 1, 1},
11300 {0x38, 0xf0, 0xf0, 1, 1},
11301 {0x39, 0x20, 0x20, 0, 0},
11302 {0x3A, 0x8, 0x8, 0, 0},
11303 {0x3B, 0x55, 0x55, 1, 1},
11304 {0x3C, 0, 0, 0, 0},
11305 {0x3D, 0x88, 0x88, 1, 1},
11306 {0x3E, 0, 0, 0, 0},
11307 {0x3F, 0x44, 0x44, 0, 0},
11308 {0x40, 0x7, 0x7, 1, 1},
11309 {0x41, 0x6, 0x6, 0, 0},
11310 {0x42, 0x4, 0x4, 0, 0},
11311 {0x43, 0, 0, 0, 0},
11312 {0x44, 0x8, 0x8, 0, 0},
11313 {0x45, 0x55, 0x55, 1, 1},
11314 {0x46, 0, 0, 0, 0},
11315 {0x47, 0x11, 0x11, 0, 0},
11316 {0x48, 0, 0, 0, 0},
11317 {0x49, 0x44, 0x44, 0, 0},
11318 {0x4A, 0x7, 0x7, 0, 0},
11319 {0x4B, 0x6, 0x6, 0, 0},
11320 {0x4C, 0x4, 0x4, 0, 0},
11321 {0x4D, 0, 0, 0, 0},
11322 {0x4E, 0, 0, 0, 0},
11323 {0x4F, 0x26, 0x26, 1, 1},
11324 {0x50, 0x26, 0x26, 1, 1},
11325 {0x51, 0xf, 0xf, 1, 1},
11326 {0x52, 0xf, 0xf, 1, 1},
11327 {0x53, 0x44, 0x44, 0, 0},
11328 {0x54, 0, 0, 0, 0},
11329 {0x55, 0, 0, 0, 0},
11330 {0x56, 0x8, 0x8, 0, 0},
11331 {0x57, 0x8, 0x8, 0, 0},
11332 {0x58, 0x7, 0x7, 0, 0},
11333 {0x59, 0x22, 0x22, 0, 0},
11334 {0x5A, 0x22, 0x22, 0, 0},
11335 {0x5B, 0x2, 0x2, 0, 0},
11336 {0x5C, 0x4, 0x4, 1, 1},
11337 {0x5D, 0x7, 0x7, 0, 0},
11338 {0x5E, 0x55, 0x55, 0, 0},
11339 {0x5F, 0x23, 0x23, 0, 0},
11340 {0x60, 0x41, 0x41, 0, 0},
11341 {0x61, 0x1, 0x1, 0, 0},
11342 {0x62, 0xa, 0xa, 0, 0},
11343 {0x63, 0, 0, 0, 0},
11344 {0x64, 0, 0, 0, 0},
11345 {0x65, 0, 0, 0, 0},
11346 {0x66, 0, 0, 0, 0},
11347 {0x67, 0, 0, 0, 0},
11348 {0x68, 0, 0, 0, 0},
11349 {0x69, 0, 0, 0, 0},
11350 {0x6A, 0, 0, 0, 0},
11351 {0x6B, 0xc, 0xc, 0, 0},
11352 {0x6C, 0, 0, 0, 0},
11353 {0x6D, 0, 0, 0, 0},
11354 {0x6E, 0, 0, 0, 0},
11355 {0x6F, 0, 0, 0, 0},
11356 {0x70, 0, 0, 0, 0},
11357 {0x71, 0, 0, 0, 0},
11358 {0x72, 0x22, 0x22, 0, 0},
11359 {0x73, 0x22, 0x22, 0, 0},
11360 {0x74, 0, 0, 1, 1},
11361 {0x75, 0xa, 0xa, 0, 0},
11362 {0x76, 0x1, 0x1, 0, 0},
11363 {0x77, 0x22, 0x22, 0, 0},
11364 {0x78, 0x30, 0x30, 0, 0},
11365 {0x79, 0, 0, 0, 0},
11366 {0x7A, 0, 0, 0, 0},
11367 {0x7B, 0, 0, 0, 0},
11368 {0x7C, 0, 0, 0, 0},
11369 {0x7D, 0x5, 0x5, 1, 1},
11370 {0x7E, 0, 0, 0, 0},
11371 {0x7F, 0, 0, 0, 0},
11372 {0x80, 0, 0, 0, 0},
11373 {0x81, 0, 0, 0, 0},
11374 {0x82, 0, 0, 0, 0},
11375 {0x83, 0, 0, 0, 0},
11376 {0x84, 0, 0, 0, 0},
11377 {0x85, 0, 0, 0, 0},
11378 {0x86, 0, 0, 0, 0},
11379 {0x87, 0, 0, 0, 0},
11380 {0x88, 0, 0, 0, 0},
11381 {0x89, 0, 0, 0, 0},
11382 {0x8A, 0, 0, 0, 0},
11383 {0x8B, 0, 0, 0, 0},
11384 {0x8C, 0, 0, 0, 0},
11385 {0x8D, 0, 0, 0, 0},
11386 {0x8E, 0, 0, 0, 0},
11387 {0x8F, 0, 0, 0, 0},
11388 {0x90, 0, 0, 0, 0},
11389 {0x91, 0, 0, 0, 0},
11390 {0x92, 0, 0, 0, 0},
11391 {0x93, 0, 0, 0, 0},
11392 {0x94, 0, 0, 0, 0},
11393 {0xFFFF, 0, 0, 0, 0},
11394};
11395
11396radio_20xx_regs_t regs_2057_rev4[] = {
11397 {0x00, 0x84, 0},
11398 {0x01, 0, 0},
11399 {0x02, 0x60, 0},
11400 {0x03, 0x1f, 0},
11401 {0x04, 0x4, 0},
11402 {0x05, 0x2, 0},
11403 {0x06, 0x1, 0},
11404 {0x07, 0x1, 0},
11405 {0x08, 0x1, 0},
11406 {0x09, 0x69, 0},
11407 {0x0A, 0x66, 0},
11408 {0x0B, 0x6, 0},
11409 {0x0C, 0x18, 0},
11410 {0x0D, 0x3, 0},
11411 {0x0E, 0x20, 1},
11412 {0x0F, 0x20, 0},
11413 {0x10, 0, 0},
11414 {0x11, 0x7c, 0},
11415 {0x12, 0x42, 0},
11416 {0x13, 0xbd, 0},
11417 {0x14, 0x7, 0},
11418 {0x15, 0xf7, 0},
11419 {0x16, 0x8, 0},
11420 {0x17, 0x17, 0},
11421 {0x18, 0x7, 0},
11422 {0x19, 0, 0},
11423 {0x1A, 0x2, 0},
11424 {0x1B, 0x13, 0},
11425 {0x1C, 0x3e, 0},
11426 {0x1D, 0x3e, 0},
11427 {0x1E, 0x96, 0},
11428 {0x1F, 0x4, 0},
11429 {0x20, 0, 0},
11430 {0x21, 0, 0},
11431 {0x22, 0x17, 0},
11432 {0x23, 0x4, 0},
11433 {0x24, 0x1, 0},
11434 {0x25, 0x6, 0},
11435 {0x26, 0x4, 0},
11436 {0x27, 0xd, 0},
11437 {0x28, 0xd, 0},
11438 {0x29, 0x30, 0},
11439 {0x2A, 0x32, 0},
11440 {0x2B, 0x8, 0},
11441 {0x2C, 0x1c, 0},
11442 {0x2D, 0x2, 0},
11443 {0x2E, 0x4, 0},
11444 {0x2F, 0x7f, 0},
11445 {0x30, 0x27, 0},
11446 {0x31, 0, 1},
11447 {0x32, 0, 1},
11448 {0x33, 0, 1},
11449 {0x34, 0, 0},
11450 {0x35, 0x26, 1},
11451 {0x36, 0x18, 0},
11452 {0x37, 0x7, 0},
11453 {0x38, 0x66, 0},
11454 {0x39, 0x66, 0},
11455 {0x3A, 0x66, 0},
11456 {0x3B, 0x66, 0},
11457 {0x3C, 0xff, 1},
11458 {0x3D, 0xff, 1},
11459 {0x3E, 0xff, 1},
11460 {0x3F, 0xff, 1},
11461 {0x40, 0x16, 0},
11462 {0x41, 0x7, 0},
11463 {0x42, 0x19, 0},
11464 {0x43, 0x7, 0},
11465 {0x44, 0x6, 0},
11466 {0x45, 0x3, 0},
11467 {0x46, 0x1, 0},
11468 {0x47, 0x7, 0},
11469 {0x48, 0x33, 0},
11470 {0x49, 0x5, 0},
11471 {0x4A, 0x77, 0},
11472 {0x4B, 0x66, 0},
11473 {0x4C, 0x66, 0},
11474 {0x4D, 0, 0},
11475 {0x4E, 0x4, 0},
11476 {0x4F, 0xc, 0},
11477 {0x50, 0, 0},
11478 {0x51, 0x75, 0},
11479 {0x56, 0x7, 0},
11480 {0x57, 0, 0},
11481 {0x58, 0, 0},
11482 {0x59, 0xa8, 0},
11483 {0x5A, 0, 0},
11484 {0x5B, 0x1f, 0},
11485 {0x5C, 0x30, 0},
11486 {0x5D, 0x1, 0},
11487 {0x5E, 0x30, 0},
11488 {0x5F, 0x70, 0},
11489 {0x60, 0, 0},
11490 {0x61, 0, 0},
11491 {0x62, 0x33, 1},
11492 {0x63, 0x19, 0},
11493 {0x64, 0x62, 0},
11494 {0x65, 0, 0},
11495 {0x66, 0x11, 0},
11496 {0x69, 0, 0},
11497 {0x6A, 0x7e, 0},
11498 {0x6B, 0x3f, 0},
11499 {0x6C, 0x7f, 0},
11500 {0x6D, 0x78, 0},
11501 {0x6E, 0xc8, 0},
11502 {0x6F, 0x88, 0},
11503 {0x70, 0x8, 0},
11504 {0x71, 0xf, 0},
11505 {0x72, 0xbc, 0},
11506 {0x73, 0x8, 0},
11507 {0x74, 0x60, 0},
11508 {0x75, 0x1e, 0},
11509 {0x76, 0x70, 0},
11510 {0x77, 0, 0},
11511 {0x78, 0, 0},
11512 {0x79, 0, 0},
11513 {0x7A, 0x33, 0},
11514 {0x7B, 0x1e, 0},
11515 {0x7C, 0x62, 0},
11516 {0x7D, 0x11, 0},
11517 {0x80, 0x3c, 0},
11518 {0x81, 0x9c, 0},
11519 {0x82, 0xa, 0},
11520 {0x83, 0x9d, 0},
11521 {0x84, 0xa, 0},
11522 {0x85, 0, 0},
11523 {0x86, 0x40, 0},
11524 {0x87, 0x40, 0},
11525 {0x88, 0x88, 0},
11526 {0x89, 0x10, 0},
11527 {0x8A, 0xf0, 1},
11528 {0x8B, 0x10, 1},
11529 {0x8C, 0xf0, 1},
11530 {0x8D, 0, 0},
11531 {0x8E, 0, 0},
11532 {0x8F, 0x10, 0},
11533 {0x90, 0x55, 0},
11534 {0x91, 0x3f, 1},
11535 {0x92, 0x36, 1},
11536 {0x93, 0, 0},
11537 {0x94, 0, 0},
11538 {0x95, 0, 0},
11539 {0x96, 0x87, 0},
11540 {0x97, 0x11, 0},
11541 {0x98, 0, 0},
11542 {0x99, 0x33, 0},
11543 {0x9A, 0x88, 0},
11544 {0x9B, 0, 0},
11545 {0x9C, 0x87, 0},
11546 {0x9D, 0x11, 0},
11547 {0x9E, 0, 0},
11548 {0x9F, 0x33, 0},
11549 {0xA0, 0x88, 0},
11550 {0xA1, 0xe1, 0},
11551 {0xA2, 0x3f, 0},
11552 {0xA3, 0x44, 0},
11553 {0xA4, 0x8c, 1},
11554 {0xA5, 0x6d, 0},
11555 {0xA6, 0x22, 0},
11556 {0xA7, 0xbe, 0},
11557 {0xA8, 0x55, 1},
11558 {0xA9, 0xc, 0},
11559 {0xAA, 0xc, 0},
11560 {0xAB, 0xaa, 0},
11561 {0xAC, 0x2, 0},
11562 {0xAD, 0, 0},
11563 {0xAE, 0x10, 0},
11564 {0xAF, 0x1, 1},
11565 {0xB0, 0, 0},
11566 {0xB1, 0, 0},
11567 {0xB2, 0x80, 0},
11568 {0xB3, 0x60, 0},
11569 {0xB4, 0x44, 0},
11570 {0xB5, 0x55, 0},
11571 {0xB6, 0x1, 0},
11572 {0xB7, 0x55, 0},
11573 {0xB8, 0x1, 0},
11574 {0xB9, 0x5, 0},
11575 {0xBA, 0x55, 0},
11576 {0xBB, 0x55, 0},
11577 {0xC1, 0, 0},
11578 {0xC2, 0, 0},
11579 {0xC3, 0, 0},
11580 {0xC4, 0, 0},
11581 {0xC5, 0, 0},
11582 {0xC6, 0, 0},
11583 {0xC7, 0, 0},
11584 {0xC8, 0, 0},
11585 {0xC9, 0, 0},
11586 {0xCA, 0, 0},
11587 {0xCB, 0, 0},
11588 {0xCC, 0, 0},
11589 {0xCD, 0, 0},
11590 {0xCE, 0x5e, 0},
11591 {0xCF, 0xc, 0},
11592 {0xD0, 0xc, 0},
11593 {0xD1, 0xc, 0},
11594 {0xD2, 0, 0},
11595 {0xD3, 0x2b, 0},
11596 {0xD4, 0xc, 0},
11597 {0xD5, 0, 0},
11598 {0xD6, 0x75, 0},
11599 {0xDB, 0x7, 0},
11600 {0xDC, 0, 0},
11601 {0xDD, 0, 0},
11602 {0xDE, 0xa8, 0},
11603 {0xDF, 0, 0},
11604 {0xE0, 0x1f, 0},
11605 {0xE1, 0x30, 0},
11606 {0xE2, 0x1, 0},
11607 {0xE3, 0x30, 0},
11608 {0xE4, 0x70, 0},
11609 {0xE5, 0, 0},
11610 {0xE6, 0, 0},
11611 {0xE7, 0x33, 0},
11612 {0xE8, 0x19, 0},
11613 {0xE9, 0x62, 0},
11614 {0xEA, 0, 0},
11615 {0xEB, 0x11, 0},
11616 {0xEE, 0, 0},
11617 {0xEF, 0x7e, 0},
11618 {0xF0, 0x3f, 0},
11619 {0xF1, 0x7f, 0},
11620 {0xF2, 0x78, 0},
11621 {0xF3, 0xc8, 0},
11622 {0xF4, 0x88, 0},
11623 {0xF5, 0x8, 0},
11624 {0xF6, 0xf, 0},
11625 {0xF7, 0xbc, 0},
11626 {0xF8, 0x8, 0},
11627 {0xF9, 0x60, 0},
11628 {0xFA, 0x1e, 0},
11629 {0xFB, 0x70, 0},
11630 {0xFC, 0, 0},
11631 {0xFD, 0, 0},
11632 {0xFE, 0, 0},
11633 {0xFF, 0x33, 0},
11634 {0x100, 0x1e, 0},
11635 {0x101, 0x62, 0},
11636 {0x102, 0x11, 0},
11637 {0x105, 0x3c, 0},
11638 {0x106, 0x9c, 0},
11639 {0x107, 0xa, 0},
11640 {0x108, 0x9d, 0},
11641 {0x109, 0xa, 0},
11642 {0x10A, 0, 0},
11643 {0x10B, 0x40, 0},
11644 {0x10C, 0x40, 0},
11645 {0x10D, 0x88, 0},
11646 {0x10E, 0x10, 0},
11647 {0x10F, 0xf0, 1},
11648 {0x110, 0x10, 1},
11649 {0x111, 0xf0, 1},
11650 {0x112, 0, 0},
11651 {0x113, 0, 0},
11652 {0x114, 0x10, 0},
11653 {0x115, 0x55, 0},
11654 {0x116, 0x3f, 1},
11655 {0x117, 0x36, 1},
11656 {0x118, 0, 0},
11657 {0x119, 0, 0},
11658 {0x11A, 0, 0},
11659 {0x11B, 0x87, 0},
11660 {0x11C, 0x11, 0},
11661 {0x11D, 0, 0},
11662 {0x11E, 0x33, 0},
11663 {0x11F, 0x88, 0},
11664 {0x120, 0, 0},
11665 {0x121, 0x87, 0},
11666 {0x122, 0x11, 0},
11667 {0x123, 0, 0},
11668 {0x124, 0x33, 0},
11669 {0x125, 0x88, 0},
11670 {0x126, 0xe1, 0},
11671 {0x127, 0x3f, 0},
11672 {0x128, 0x44, 0},
11673 {0x129, 0x8c, 1},
11674 {0x12A, 0x6d, 0},
11675 {0x12B, 0x22, 0},
11676 {0x12C, 0xbe, 0},
11677 {0x12D, 0x55, 1},
11678 {0x12E, 0xc, 0},
11679 {0x12F, 0xc, 0},
11680 {0x130, 0xaa, 0},
11681 {0x131, 0x2, 0},
11682 {0x132, 0, 0},
11683 {0x133, 0x10, 0},
11684 {0x134, 0x1, 1},
11685 {0x135, 0, 0},
11686 {0x136, 0, 0},
11687 {0x137, 0x80, 0},
11688 {0x138, 0x60, 0},
11689 {0x139, 0x44, 0},
11690 {0x13A, 0x55, 0},
11691 {0x13B, 0x1, 0},
11692 {0x13C, 0x55, 0},
11693 {0x13D, 0x1, 0},
11694 {0x13E, 0x5, 0},
11695 {0x13F, 0x55, 0},
11696 {0x140, 0x55, 0},
11697 {0x146, 0, 0},
11698 {0x147, 0, 0},
11699 {0x148, 0, 0},
11700 {0x149, 0, 0},
11701 {0x14A, 0, 0},
11702 {0x14B, 0, 0},
11703 {0x14C, 0, 0},
11704 {0x14D, 0, 0},
11705 {0x14E, 0, 0},
11706 {0x14F, 0, 0},
11707 {0x150, 0, 0},
11708 {0x151, 0, 0},
11709 {0x152, 0, 0},
11710 {0x153, 0, 0},
11711 {0x154, 0xc, 0},
11712 {0x155, 0xc, 0},
11713 {0x156, 0xc, 0},
11714 {0x157, 0, 0},
11715 {0x158, 0x2b, 0},
11716 {0x159, 0x84, 0},
11717 {0x15A, 0x15, 0},
11718 {0x15B, 0xf, 0},
11719 {0x15C, 0, 0},
11720 {0x15D, 0, 0},
11721 {0x15E, 0, 1},
11722 {0x15F, 0, 1},
11723 {0x160, 0, 1},
11724 {0x161, 0, 1},
11725 {0x162, 0, 1},
11726 {0x163, 0, 1},
11727 {0x164, 0, 0},
11728 {0x165, 0, 0},
11729 {0x166, 0, 0},
11730 {0x167, 0, 0},
11731 {0x168, 0, 0},
11732 {0x169, 0x2, 1},
11733 {0x16A, 0, 1},
11734 {0x16B, 0, 1},
11735 {0x16C, 0, 1},
11736 {0x16D, 0, 0},
11737 {0x170, 0, 0},
11738 {0x171, 0x77, 0},
11739 {0x172, 0x77, 0},
11740 {0x173, 0x77, 0},
11741 {0x174, 0x77, 0},
11742 {0x175, 0, 0},
11743 {0x176, 0x3, 0},
11744 {0x177, 0x37, 0},
11745 {0x178, 0x3, 0},
11746 {0x179, 0, 0},
11747 {0x17A, 0x21, 0},
11748 {0x17B, 0x21, 0},
11749 {0x17C, 0, 0},
11750 {0x17D, 0xaa, 0},
11751 {0x17E, 0, 0},
11752 {0x17F, 0xaa, 0},
11753 {0x180, 0, 0},
11754 {0x190, 0, 0},
11755 {0x191, 0x77, 0},
11756 {0x192, 0x77, 0},
11757 {0x193, 0x77, 0},
11758 {0x194, 0x77, 0},
11759 {0x195, 0, 0},
11760 {0x196, 0x3, 0},
11761 {0x197, 0x37, 0},
11762 {0x198, 0x3, 0},
11763 {0x199, 0, 0},
11764 {0x19A, 0x21, 0},
11765 {0x19B, 0x21, 0},
11766 {0x19C, 0, 0},
11767 {0x19D, 0xaa, 0},
11768 {0x19E, 0, 0},
11769 {0x19F, 0xaa, 0},
11770 {0x1A0, 0, 0},
11771 {0x1A1, 0x2, 0},
11772 {0x1A2, 0xf, 0},
11773 {0x1A3, 0xf, 0},
11774 {0x1A4, 0, 1},
11775 {0x1A5, 0, 1},
11776 {0x1A6, 0, 1},
11777 {0x1A7, 0x2, 0},
11778 {0x1A8, 0xf, 0},
11779 {0x1A9, 0xf, 0},
11780 {0x1AA, 0, 1},
11781 {0x1AB, 0, 1},
11782 {0x1AC, 0, 1},
11783 {0xFFFF, 0, 0},
11784};
11785
11786radio_20xx_regs_t regs_2057_rev5[] = {
11787 {0x00, 0, 1},
11788 {0x01, 0x57, 1},
11789 {0x02, 0x20, 1},
11790 {0x03, 0x1f, 0},
11791 {0x04, 0x4, 0},
11792 {0x05, 0x2, 0},
11793 {0x06, 0x1, 0},
11794 {0x07, 0x1, 0},
11795 {0x08, 0x1, 0},
11796 {0x09, 0x69, 0},
11797 {0x0A, 0x66, 0},
11798 {0x0B, 0x6, 0},
11799 {0x0C, 0x18, 0},
11800 {0x0D, 0x3, 0},
11801 {0x0E, 0x20, 0},
11802 {0x0F, 0x20, 0},
11803 {0x10, 0, 0},
11804 {0x11, 0x7c, 0},
11805 {0x12, 0x42, 0},
11806 {0x13, 0xbd, 0},
11807 {0x14, 0x7, 0},
11808 {0x15, 0x87, 0},
11809 {0x16, 0x8, 0},
11810 {0x17, 0x17, 0},
11811 {0x18, 0x7, 0},
11812 {0x19, 0, 0},
11813 {0x1A, 0x2, 0},
11814 {0x1B, 0x13, 0},
11815 {0x1C, 0x3e, 0},
11816 {0x1D, 0x3e, 0},
11817 {0x1E, 0x96, 0},
11818 {0x1F, 0x4, 0},
11819 {0x20, 0, 0},
11820 {0x21, 0, 0},
11821 {0x22, 0x17, 0},
11822 {0x23, 0x6, 1},
11823 {0x24, 0x1, 0},
11824 {0x25, 0x6, 0},
11825 {0x26, 0x4, 0},
11826 {0x27, 0xd, 0},
11827 {0x28, 0xd, 0},
11828 {0x29, 0x30, 0},
11829 {0x2A, 0x32, 0},
11830 {0x2B, 0x8, 0},
11831 {0x2C, 0x1c, 0},
11832 {0x2D, 0x2, 0},
11833 {0x2E, 0x4, 0},
11834 {0x2F, 0x7f, 0},
11835 {0x30, 0x27, 0},
11836 {0x31, 0, 1},
11837 {0x32, 0, 1},
11838 {0x33, 0, 1},
11839 {0x34, 0, 0},
11840 {0x35, 0x20, 0},
11841 {0x36, 0x18, 0},
11842 {0x37, 0x7, 0},
11843 {0x38, 0x66, 0},
11844 {0x39, 0x66, 0},
11845 {0x3C, 0xff, 0},
11846 {0x3D, 0xff, 0},
11847 {0x40, 0x16, 0},
11848 {0x41, 0x7, 0},
11849 {0x45, 0x3, 0},
11850 {0x46, 0x1, 0},
11851 {0x47, 0x7, 0},
11852 {0x4B, 0x66, 0},
11853 {0x4C, 0x66, 0},
11854 {0x4D, 0, 0},
11855 {0x4E, 0x4, 0},
11856 {0x4F, 0xc, 0},
11857 {0x50, 0, 0},
11858 {0x51, 0x70, 1},
11859 {0x56, 0x7, 0},
11860 {0x57, 0, 0},
11861 {0x58, 0, 0},
11862 {0x59, 0x88, 1},
11863 {0x5A, 0, 0},
11864 {0x5B, 0x1f, 0},
11865 {0x5C, 0x20, 1},
11866 {0x5D, 0x1, 0},
11867 {0x5E, 0x30, 0},
11868 {0x5F, 0x70, 0},
11869 {0x60, 0, 0},
11870 {0x61, 0, 0},
11871 {0x62, 0x33, 1},
11872 {0x63, 0xf, 1},
11873 {0x64, 0xf, 1},
11874 {0x65, 0, 0},
11875 {0x66, 0x11, 0},
11876 {0x80, 0x3c, 0},
11877 {0x81, 0x1, 1},
11878 {0x82, 0xa, 0},
11879 {0x85, 0, 0},
11880 {0x86, 0x40, 0},
11881 {0x87, 0x40, 0},
11882 {0x88, 0x88, 0},
11883 {0x89, 0x10, 0},
11884 {0x8A, 0xf0, 0},
11885 {0x8B, 0x10, 0},
11886 {0x8C, 0xf0, 0},
11887 {0x8F, 0x10, 0},
11888 {0x90, 0x55, 0},
11889 {0x91, 0x3f, 1},
11890 {0x92, 0x36, 1},
11891 {0x93, 0, 0},
11892 {0x94, 0, 0},
11893 {0x95, 0, 0},
11894 {0x96, 0x87, 0},
11895 {0x97, 0x11, 0},
11896 {0x98, 0, 0},
11897 {0x99, 0x33, 0},
11898 {0x9A, 0x88, 0},
11899 {0xA1, 0x20, 1},
11900 {0xA2, 0x3f, 0},
11901 {0xA3, 0x44, 0},
11902 {0xA4, 0x8c, 0},
11903 {0xA5, 0x6c, 0},
11904 {0xA6, 0x22, 0},
11905 {0xA7, 0xbe, 0},
11906 {0xA8, 0x55, 0},
11907 {0xAA, 0xc, 0},
11908 {0xAB, 0xaa, 0},
11909 {0xAC, 0x2, 0},
11910 {0xAD, 0, 0},
11911 {0xAE, 0x10, 0},
11912 {0xAF, 0x1, 0},
11913 {0xB0, 0, 0},
11914 {0xB1, 0, 0},
11915 {0xB2, 0x80, 0},
11916 {0xB3, 0x60, 0},
11917 {0xB4, 0x44, 0},
11918 {0xB5, 0x55, 0},
11919 {0xB6, 0x1, 0},
11920 {0xB7, 0x55, 0},
11921 {0xB8, 0x1, 0},
11922 {0xB9, 0x5, 0},
11923 {0xBA, 0x55, 0},
11924 {0xBB, 0x55, 0},
11925 {0xC3, 0, 0},
11926 {0xC4, 0, 0},
11927 {0xC5, 0, 0},
11928 {0xC6, 0, 0},
11929 {0xC7, 0, 0},
11930 {0xC8, 0, 0},
11931 {0xC9, 0, 0},
11932 {0xCA, 0, 0},
11933 {0xCB, 0, 0},
11934 {0xCD, 0, 0},
11935 {0xCE, 0x5e, 0},
11936 {0xCF, 0xc, 0},
11937 {0xD0, 0xc, 0},
11938 {0xD1, 0xc, 0},
11939 {0xD2, 0, 0},
11940 {0xD3, 0x2b, 0},
11941 {0xD4, 0xc, 0},
11942 {0xD5, 0, 0},
11943 {0xD6, 0x70, 1},
11944 {0xDB, 0x7, 0},
11945 {0xDC, 0, 0},
11946 {0xDD, 0, 0},
11947 {0xDE, 0x88, 1},
11948 {0xDF, 0, 0},
11949 {0xE0, 0x1f, 0},
11950 {0xE1, 0x20, 1},
11951 {0xE2, 0x1, 0},
11952 {0xE3, 0x30, 0},
11953 {0xE4, 0x70, 0},
11954 {0xE5, 0, 0},
11955 {0xE6, 0, 0},
11956 {0xE7, 0x33, 0},
11957 {0xE8, 0xf, 1},
11958 {0xE9, 0xf, 1},
11959 {0xEA, 0, 0},
11960 {0xEB, 0x11, 0},
11961 {0x105, 0x3c, 0},
11962 {0x106, 0x1, 1},
11963 {0x107, 0xa, 0},
11964 {0x10A, 0, 0},
11965 {0x10B, 0x40, 0},
11966 {0x10C, 0x40, 0},
11967 {0x10D, 0x88, 0},
11968 {0x10E, 0x10, 0},
11969 {0x10F, 0xf0, 0},
11970 {0x110, 0x10, 0},
11971 {0x111, 0xf0, 0},
11972 {0x114, 0x10, 0},
11973 {0x115, 0x55, 0},
11974 {0x116, 0x3f, 1},
11975 {0x117, 0x36, 1},
11976 {0x118, 0, 0},
11977 {0x119, 0, 0},
11978 {0x11A, 0, 0},
11979 {0x11B, 0x87, 0},
11980 {0x11C, 0x11, 0},
11981 {0x11D, 0, 0},
11982 {0x11E, 0x33, 0},
11983 {0x11F, 0x88, 0},
11984 {0x126, 0x20, 1},
11985 {0x127, 0x3f, 0},
11986 {0x128, 0x44, 0},
11987 {0x129, 0x8c, 0},
11988 {0x12A, 0x6c, 0},
11989 {0x12B, 0x22, 0},
11990 {0x12C, 0xbe, 0},
11991 {0x12D, 0x55, 0},
11992 {0x12F, 0xc, 0},
11993 {0x130, 0xaa, 0},
11994 {0x131, 0x2, 0},
11995 {0x132, 0, 0},
11996 {0x133, 0x10, 0},
11997 {0x134, 0x1, 0},
11998 {0x135, 0, 0},
11999 {0x136, 0, 0},
12000 {0x137, 0x80, 0},
12001 {0x138, 0x60, 0},
12002 {0x139, 0x44, 0},
12003 {0x13A, 0x55, 0},
12004 {0x13B, 0x1, 0},
12005 {0x13C, 0x55, 0},
12006 {0x13D, 0x1, 0},
12007 {0x13E, 0x5, 0},
12008 {0x13F, 0x55, 0},
12009 {0x140, 0x55, 0},
12010 {0x148, 0, 0},
12011 {0x149, 0, 0},
12012 {0x14A, 0, 0},
12013 {0x14B, 0, 0},
12014 {0x14C, 0, 0},
12015 {0x14D, 0, 0},
12016 {0x14E, 0, 0},
12017 {0x14F, 0, 0},
12018 {0x150, 0, 0},
12019 {0x154, 0xc, 0},
12020 {0x155, 0xc, 0},
12021 {0x156, 0xc, 0},
12022 {0x157, 0, 0},
12023 {0x158, 0x2b, 0},
12024 {0x159, 0x84, 0},
12025 {0x15A, 0x15, 0},
12026 {0x15B, 0xf, 0},
12027 {0x15C, 0, 0},
12028 {0x15D, 0, 0},
12029 {0x15E, 0, 1},
12030 {0x15F, 0, 1},
12031 {0x160, 0, 1},
12032 {0x161, 0, 1},
12033 {0x162, 0, 1},
12034 {0x163, 0, 1},
12035 {0x164, 0, 0},
12036 {0x165, 0, 0},
12037 {0x166, 0, 0},
12038 {0x167, 0, 0},
12039 {0x168, 0, 0},
12040 {0x169, 0, 0},
12041 {0x16A, 0, 1},
12042 {0x16B, 0, 1},
12043 {0x16C, 0, 1},
12044 {0x16D, 0, 0},
12045 {0x170, 0, 0},
12046 {0x171, 0x77, 0},
12047 {0x172, 0x77, 0},
12048 {0x173, 0x77, 0},
12049 {0x174, 0x77, 0},
12050 {0x175, 0, 0},
12051 {0x176, 0x3, 0},
12052 {0x177, 0x37, 0},
12053 {0x178, 0x3, 0},
12054 {0x179, 0, 0},
12055 {0x17B, 0x21, 0},
12056 {0x17C, 0, 0},
12057 {0x17D, 0xaa, 0},
12058 {0x17E, 0, 0},
12059 {0x190, 0, 0},
12060 {0x191, 0x77, 0},
12061 {0x192, 0x77, 0},
12062 {0x193, 0x77, 0},
12063 {0x194, 0x77, 0},
12064 {0x195, 0, 0},
12065 {0x196, 0x3, 0},
12066 {0x197, 0x37, 0},
12067 {0x198, 0x3, 0},
12068 {0x199, 0, 0},
12069 {0x19B, 0x21, 0},
12070 {0x19C, 0, 0},
12071 {0x19D, 0xaa, 0},
12072 {0x19E, 0, 0},
12073 {0x1A1, 0x2, 0},
12074 {0x1A2, 0xf, 0},
12075 {0x1A3, 0xf, 0},
12076 {0x1A4, 0, 1},
12077 {0x1A5, 0, 1},
12078 {0x1A6, 0, 1},
12079 {0x1A7, 0x2, 0},
12080 {0x1A8, 0xf, 0},
12081 {0x1A9, 0xf, 0},
12082 {0x1AA, 0, 1},
12083 {0x1AB, 0, 1},
12084 {0x1AC, 0, 1},
12085 {0x1AD, 0x84, 0},
12086 {0x1AE, 0x60, 0},
12087 {0x1AF, 0x47, 0},
12088 {0x1B0, 0x47, 0},
12089 {0x1B1, 0, 0},
12090 {0x1B2, 0, 0},
12091 {0x1B3, 0, 0},
12092 {0x1B4, 0, 0},
12093 {0x1B5, 0, 0},
12094 {0x1B6, 0, 0},
12095 {0x1B7, 0xc, 1},
12096 {0x1B8, 0, 0},
12097 {0x1B9, 0, 0},
12098 {0x1BA, 0, 0},
12099 {0x1BB, 0, 0},
12100 {0x1BC, 0, 0},
12101 {0x1BD, 0, 0},
12102 {0x1BE, 0, 0},
12103 {0x1BF, 0, 0},
12104 {0x1C0, 0, 0},
12105 {0x1C1, 0x1, 1},
12106 {0x1C2, 0x80, 1},
12107 {0x1C3, 0, 0},
12108 {0x1C4, 0, 0},
12109 {0x1C5, 0, 0},
12110 {0x1C6, 0, 0},
12111 {0x1C7, 0, 0},
12112 {0x1C8, 0, 0},
12113 {0x1C9, 0, 0},
12114 {0x1CA, 0, 0},
12115 {0xFFFF, 0, 0}
12116};
12117
12118radio_20xx_regs_t regs_2057_rev5v1[] = {
12119 {0x00, 0x15, 1},
12120 {0x01, 0x57, 1},
12121 {0x02, 0x20, 1},
12122 {0x03, 0x1f, 0},
12123 {0x04, 0x4, 0},
12124 {0x05, 0x2, 0},
12125 {0x06, 0x1, 0},
12126 {0x07, 0x1, 0},
12127 {0x08, 0x1, 0},
12128 {0x09, 0x69, 0},
12129 {0x0A, 0x66, 0},
12130 {0x0B, 0x6, 0},
12131 {0x0C, 0x18, 0},
12132 {0x0D, 0x3, 0},
12133 {0x0E, 0x20, 0},
12134 {0x0F, 0x20, 0},
12135 {0x10, 0, 0},
12136 {0x11, 0x7c, 0},
12137 {0x12, 0x42, 0},
12138 {0x13, 0xbd, 0},
12139 {0x14, 0x7, 0},
12140 {0x15, 0x87, 0},
12141 {0x16, 0x8, 0},
12142 {0x17, 0x17, 0},
12143 {0x18, 0x7, 0},
12144 {0x19, 0, 0},
12145 {0x1A, 0x2, 0},
12146 {0x1B, 0x13, 0},
12147 {0x1C, 0x3e, 0},
12148 {0x1D, 0x3e, 0},
12149 {0x1E, 0x96, 0},
12150 {0x1F, 0x4, 0},
12151 {0x20, 0, 0},
12152 {0x21, 0, 0},
12153 {0x22, 0x17, 0},
12154 {0x23, 0x6, 1},
12155 {0x24, 0x1, 0},
12156 {0x25, 0x6, 0},
12157 {0x26, 0x4, 0},
12158 {0x27, 0xd, 0},
12159 {0x28, 0xd, 0},
12160 {0x29, 0x30, 0},
12161 {0x2A, 0x32, 0},
12162 {0x2B, 0x8, 0},
12163 {0x2C, 0x1c, 0},
12164 {0x2D, 0x2, 0},
12165 {0x2E, 0x4, 0},
12166 {0x2F, 0x7f, 0},
12167 {0x30, 0x27, 0},
12168 {0x31, 0, 1},
12169 {0x32, 0, 1},
12170 {0x33, 0, 1},
12171 {0x34, 0, 0},
12172 {0x35, 0x20, 0},
12173 {0x36, 0x18, 0},
12174 {0x37, 0x7, 0},
12175 {0x38, 0x66, 0},
12176 {0x39, 0x66, 0},
12177 {0x3C, 0xff, 0},
12178 {0x3D, 0xff, 0},
12179 {0x40, 0x16, 0},
12180 {0x41, 0x7, 0},
12181 {0x45, 0x3, 0},
12182 {0x46, 0x1, 0},
12183 {0x47, 0x7, 0},
12184 {0x4B, 0x66, 0},
12185 {0x4C, 0x66, 0},
12186 {0x4D, 0, 0},
12187 {0x4E, 0x4, 0},
12188 {0x4F, 0xc, 0},
12189 {0x50, 0, 0},
12190 {0x51, 0x70, 1},
12191 {0x56, 0x7, 0},
12192 {0x57, 0, 0},
12193 {0x58, 0, 0},
12194 {0x59, 0x88, 1},
12195 {0x5A, 0, 0},
12196 {0x5B, 0x1f, 0},
12197 {0x5C, 0x20, 1},
12198 {0x5D, 0x1, 0},
12199 {0x5E, 0x30, 0},
12200 {0x5F, 0x70, 0},
12201 {0x60, 0, 0},
12202 {0x61, 0, 0},
12203 {0x62, 0x33, 1},
12204 {0x63, 0xf, 1},
12205 {0x64, 0xf, 1},
12206 {0x65, 0, 0},
12207 {0x66, 0x11, 0},
12208 {0x80, 0x3c, 0},
12209 {0x81, 0x1, 1},
12210 {0x82, 0xa, 0},
12211 {0x85, 0, 0},
12212 {0x86, 0x40, 0},
12213 {0x87, 0x40, 0},
12214 {0x88, 0x88, 0},
12215 {0x89, 0x10, 0},
12216 {0x8A, 0xf0, 0},
12217 {0x8B, 0x10, 0},
12218 {0x8C, 0xf0, 0},
12219 {0x8F, 0x10, 0},
12220 {0x90, 0x55, 0},
12221 {0x91, 0x3f, 1},
12222 {0x92, 0x36, 1},
12223 {0x93, 0, 0},
12224 {0x94, 0, 0},
12225 {0x95, 0, 0},
12226 {0x96, 0x87, 0},
12227 {0x97, 0x11, 0},
12228 {0x98, 0, 0},
12229 {0x99, 0x33, 0},
12230 {0x9A, 0x88, 0},
12231 {0xA1, 0x20, 1},
12232 {0xA2, 0x3f, 0},
12233 {0xA3, 0x44, 0},
12234 {0xA4, 0x8c, 0},
12235 {0xA5, 0x6c, 0},
12236 {0xA6, 0x22, 0},
12237 {0xA7, 0xbe, 0},
12238 {0xA8, 0x55, 0},
12239 {0xAA, 0xc, 0},
12240 {0xAB, 0xaa, 0},
12241 {0xAC, 0x2, 0},
12242 {0xAD, 0, 0},
12243 {0xAE, 0x10, 0},
12244 {0xAF, 0x1, 0},
12245 {0xB0, 0, 0},
12246 {0xB1, 0, 0},
12247 {0xB2, 0x80, 0},
12248 {0xB3, 0x60, 0},
12249 {0xB4, 0x44, 0},
12250 {0xB5, 0x55, 0},
12251 {0xB6, 0x1, 0},
12252 {0xB7, 0x55, 0},
12253 {0xB8, 0x1, 0},
12254 {0xB9, 0x5, 0},
12255 {0xBA, 0x55, 0},
12256 {0xBB, 0x55, 0},
12257 {0xC3, 0, 0},
12258 {0xC4, 0, 0},
12259 {0xC5, 0, 0},
12260 {0xC6, 0, 0},
12261 {0xC7, 0, 0},
12262 {0xC8, 0, 0},
12263 {0xC9, 0x1, 1},
12264 {0xCA, 0, 0},
12265 {0xCB, 0, 0},
12266 {0xCD, 0, 0},
12267 {0xCE, 0x5e, 0},
12268 {0xCF, 0xc, 0},
12269 {0xD0, 0xc, 0},
12270 {0xD1, 0xc, 0},
12271 {0xD2, 0, 0},
12272 {0xD3, 0x2b, 0},
12273 {0xD4, 0xc, 0},
12274 {0xD5, 0, 0},
12275 {0xD6, 0x70, 1},
12276 {0xDB, 0x7, 0},
12277 {0xDC, 0, 0},
12278 {0xDD, 0, 0},
12279 {0xDE, 0x88, 1},
12280 {0xDF, 0, 0},
12281 {0xE0, 0x1f, 0},
12282 {0xE1, 0x20, 1},
12283 {0xE2, 0x1, 0},
12284 {0xE3, 0x30, 0},
12285 {0xE4, 0x70, 0},
12286 {0xE5, 0, 0},
12287 {0xE6, 0, 0},
12288 {0xE7, 0x33, 0},
12289 {0xE8, 0xf, 1},
12290 {0xE9, 0xf, 1},
12291 {0xEA, 0, 0},
12292 {0xEB, 0x11, 0},
12293 {0x105, 0x3c, 0},
12294 {0x106, 0x1, 1},
12295 {0x107, 0xa, 0},
12296 {0x10A, 0, 0},
12297 {0x10B, 0x40, 0},
12298 {0x10C, 0x40, 0},
12299 {0x10D, 0x88, 0},
12300 {0x10E, 0x10, 0},
12301 {0x10F, 0xf0, 0},
12302 {0x110, 0x10, 0},
12303 {0x111, 0xf0, 0},
12304 {0x114, 0x10, 0},
12305 {0x115, 0x55, 0},
12306 {0x116, 0x3f, 1},
12307 {0x117, 0x36, 1},
12308 {0x118, 0, 0},
12309 {0x119, 0, 0},
12310 {0x11A, 0, 0},
12311 {0x11B, 0x87, 0},
12312 {0x11C, 0x11, 0},
12313 {0x11D, 0, 0},
12314 {0x11E, 0x33, 0},
12315 {0x11F, 0x88, 0},
12316 {0x126, 0x20, 1},
12317 {0x127, 0x3f, 0},
12318 {0x128, 0x44, 0},
12319 {0x129, 0x8c, 0},
12320 {0x12A, 0x6c, 0},
12321 {0x12B, 0x22, 0},
12322 {0x12C, 0xbe, 0},
12323 {0x12D, 0x55, 0},
12324 {0x12F, 0xc, 0},
12325 {0x130, 0xaa, 0},
12326 {0x131, 0x2, 0},
12327 {0x132, 0, 0},
12328 {0x133, 0x10, 0},
12329 {0x134, 0x1, 0},
12330 {0x135, 0, 0},
12331 {0x136, 0, 0},
12332 {0x137, 0x80, 0},
12333 {0x138, 0x60, 0},
12334 {0x139, 0x44, 0},
12335 {0x13A, 0x55, 0},
12336 {0x13B, 0x1, 0},
12337 {0x13C, 0x55, 0},
12338 {0x13D, 0x1, 0},
12339 {0x13E, 0x5, 0},
12340 {0x13F, 0x55, 0},
12341 {0x140, 0x55, 0},
12342 {0x148, 0, 0},
12343 {0x149, 0, 0},
12344 {0x14A, 0, 0},
12345 {0x14B, 0, 0},
12346 {0x14C, 0, 0},
12347 {0x14D, 0, 0},
12348 {0x14E, 0x1, 1},
12349 {0x14F, 0, 0},
12350 {0x150, 0, 0},
12351 {0x154, 0xc, 0},
12352 {0x155, 0xc, 0},
12353 {0x156, 0xc, 0},
12354 {0x157, 0, 0},
12355 {0x158, 0x2b, 0},
12356 {0x159, 0x84, 0},
12357 {0x15A, 0x15, 0},
12358 {0x15B, 0xf, 0},
12359 {0x15C, 0, 0},
12360 {0x15D, 0, 0},
12361 {0x15E, 0, 1},
12362 {0x15F, 0, 1},
12363 {0x160, 0, 1},
12364 {0x161, 0, 1},
12365 {0x162, 0, 1},
12366 {0x163, 0, 1},
12367 {0x164, 0, 0},
12368 {0x165, 0, 0},
12369 {0x166, 0, 0},
12370 {0x167, 0, 0},
12371 {0x168, 0, 0},
12372 {0x169, 0, 0},
12373 {0x16A, 0, 1},
12374 {0x16B, 0, 1},
12375 {0x16C, 0, 1},
12376 {0x16D, 0, 0},
12377 {0x170, 0, 0},
12378 {0x171, 0x77, 0},
12379 {0x172, 0x77, 0},
12380 {0x173, 0x77, 0},
12381 {0x174, 0x77, 0},
12382 {0x175, 0, 0},
12383 {0x176, 0x3, 0},
12384 {0x177, 0x37, 0},
12385 {0x178, 0x3, 0},
12386 {0x179, 0, 0},
12387 {0x17B, 0x21, 0},
12388 {0x17C, 0, 0},
12389 {0x17D, 0xaa, 0},
12390 {0x17E, 0, 0},
12391 {0x190, 0, 0},
12392 {0x191, 0x77, 0},
12393 {0x192, 0x77, 0},
12394 {0x193, 0x77, 0},
12395 {0x194, 0x77, 0},
12396 {0x195, 0, 0},
12397 {0x196, 0x3, 0},
12398 {0x197, 0x37, 0},
12399 {0x198, 0x3, 0},
12400 {0x199, 0, 0},
12401 {0x19B, 0x21, 0},
12402 {0x19C, 0, 0},
12403 {0x19D, 0xaa, 0},
12404 {0x19E, 0, 0},
12405 {0x1A1, 0x2, 0},
12406 {0x1A2, 0xf, 0},
12407 {0x1A3, 0xf, 0},
12408 {0x1A4, 0, 1},
12409 {0x1A5, 0, 1},
12410 {0x1A6, 0, 1},
12411 {0x1A7, 0x2, 0},
12412 {0x1A8, 0xf, 0},
12413 {0x1A9, 0xf, 0},
12414 {0x1AA, 0, 1},
12415 {0x1AB, 0, 1},
12416 {0x1AC, 0, 1},
12417 {0x1AD, 0x84, 0},
12418 {0x1AE, 0x60, 0},
12419 {0x1AF, 0x47, 0},
12420 {0x1B0, 0x47, 0},
12421 {0x1B1, 0, 0},
12422 {0x1B2, 0, 0},
12423 {0x1B3, 0, 0},
12424 {0x1B4, 0, 0},
12425 {0x1B5, 0, 0},
12426 {0x1B6, 0, 0},
12427 {0x1B7, 0xc, 1},
12428 {0x1B8, 0, 0},
12429 {0x1B9, 0, 0},
12430 {0x1BA, 0, 0},
12431 {0x1BB, 0, 0},
12432 {0x1BC, 0, 0},
12433 {0x1BD, 0, 0},
12434 {0x1BE, 0, 0},
12435 {0x1BF, 0, 0},
12436 {0x1C0, 0, 0},
12437 {0x1C1, 0x1, 1},
12438 {0x1C2, 0x80, 1},
12439 {0x1C3, 0, 0},
12440 {0x1C4, 0, 0},
12441 {0x1C5, 0, 0},
12442 {0x1C6, 0, 0},
12443 {0x1C7, 0, 0},
12444 {0x1C8, 0, 0},
12445 {0x1C9, 0, 0},
12446 {0x1CA, 0, 0},
12447 {0xFFFF, 0, 0}
12448};
12449
12450radio_20xx_regs_t regs_2057_rev7[] = {
12451 {0x00, 0, 1},
12452 {0x01, 0x57, 1},
12453 {0x02, 0x20, 1},
12454 {0x03, 0x1f, 0},
12455 {0x04, 0x4, 0},
12456 {0x05, 0x2, 0},
12457 {0x06, 0x1, 0},
12458 {0x07, 0x1, 0},
12459 {0x08, 0x1, 0},
12460 {0x09, 0x69, 0},
12461 {0x0A, 0x66, 0},
12462 {0x0B, 0x6, 0},
12463 {0x0C, 0x18, 0},
12464 {0x0D, 0x3, 0},
12465 {0x0E, 0x20, 0},
12466 {0x0F, 0x20, 0},
12467 {0x10, 0, 0},
12468 {0x11, 0x7c, 0},
12469 {0x12, 0x42, 0},
12470 {0x13, 0xbd, 0},
12471 {0x14, 0x7, 0},
12472 {0x15, 0x87, 0},
12473 {0x16, 0x8, 0},
12474 {0x17, 0x17, 0},
12475 {0x18, 0x7, 0},
12476 {0x19, 0, 0},
12477 {0x1A, 0x2, 0},
12478 {0x1B, 0x13, 0},
12479 {0x1C, 0x3e, 0},
12480 {0x1D, 0x3e, 0},
12481 {0x1E, 0x96, 0},
12482 {0x1F, 0x4, 0},
12483 {0x20, 0, 0},
12484 {0x21, 0, 0},
12485 {0x22, 0x17, 0},
12486 {0x23, 0x6, 0},
12487 {0x24, 0x1, 0},
12488 {0x25, 0x6, 0},
12489 {0x26, 0x4, 0},
12490 {0x27, 0xd, 0},
12491 {0x28, 0xd, 0},
12492 {0x29, 0x30, 0},
12493 {0x2A, 0x32, 0},
12494 {0x2B, 0x8, 0},
12495 {0x2C, 0x1c, 0},
12496 {0x2D, 0x2, 0},
12497 {0x2E, 0x4, 0},
12498 {0x2F, 0x7f, 0},
12499 {0x30, 0x27, 0},
12500 {0x31, 0, 1},
12501 {0x32, 0, 1},
12502 {0x33, 0, 1},
12503 {0x34, 0, 0},
12504 {0x35, 0x20, 0},
12505 {0x36, 0x18, 0},
12506 {0x37, 0x7, 0},
12507 {0x38, 0x66, 0},
12508 {0x39, 0x66, 0},
12509 {0x3A, 0x66, 0},
12510 {0x3B, 0x66, 0},
12511 {0x3C, 0xff, 0},
12512 {0x3D, 0xff, 0},
12513 {0x3E, 0xff, 0},
12514 {0x3F, 0xff, 0},
12515 {0x40, 0x16, 0},
12516 {0x41, 0x7, 0},
12517 {0x42, 0x19, 0},
12518 {0x43, 0x7, 0},
12519 {0x44, 0x6, 0},
12520 {0x45, 0x3, 0},
12521 {0x46, 0x1, 0},
12522 {0x47, 0x7, 0},
12523 {0x48, 0x33, 0},
12524 {0x49, 0x5, 0},
12525 {0x4A, 0x77, 0},
12526 {0x4B, 0x66, 0},
12527 {0x4C, 0x66, 0},
12528 {0x4D, 0, 0},
12529 {0x4E, 0x4, 0},
12530 {0x4F, 0xc, 0},
12531 {0x50, 0, 0},
12532 {0x51, 0x70, 1},
12533 {0x56, 0x7, 0},
12534 {0x57, 0, 0},
12535 {0x58, 0, 0},
12536 {0x59, 0x88, 1},
12537 {0x5A, 0, 0},
12538 {0x5B, 0x1f, 0},
12539 {0x5C, 0x20, 1},
12540 {0x5D, 0x1, 0},
12541 {0x5E, 0x30, 0},
12542 {0x5F, 0x70, 0},
12543 {0x60, 0, 0},
12544 {0x61, 0, 0},
12545 {0x62, 0x33, 1},
12546 {0x63, 0xf, 1},
12547 {0x64, 0x13, 1},
12548 {0x65, 0, 0},
12549 {0x66, 0xee, 1},
12550 {0x69, 0, 0},
12551 {0x6A, 0x7e, 0},
12552 {0x6B, 0x3f, 0},
12553 {0x6C, 0x7f, 0},
12554 {0x6D, 0x78, 0},
12555 {0x6E, 0x58, 1},
12556 {0x6F, 0x88, 0},
12557 {0x70, 0x8, 0},
12558 {0x71, 0xf, 0},
12559 {0x72, 0xbc, 0},
12560 {0x73, 0x8, 0},
12561 {0x74, 0x60, 0},
12562 {0x75, 0x13, 1},
12563 {0x76, 0x70, 0},
12564 {0x77, 0, 0},
12565 {0x78, 0, 0},
12566 {0x79, 0, 0},
12567 {0x7A, 0x33, 0},
12568 {0x7B, 0x13, 1},
12569 {0x7C, 0x14, 1},
12570 {0x7D, 0xee, 1},
12571 {0x80, 0x3c, 0},
12572 {0x81, 0x1, 1},
12573 {0x82, 0xa, 0},
12574 {0x83, 0x9d, 0},
12575 {0x84, 0xa, 0},
12576 {0x85, 0, 0},
12577 {0x86, 0x40, 0},
12578 {0x87, 0x40, 0},
12579 {0x88, 0x88, 0},
12580 {0x89, 0x10, 0},
12581 {0x8A, 0xf0, 0},
12582 {0x8B, 0x10, 0},
12583 {0x8C, 0xf0, 0},
12584 {0x8D, 0, 0},
12585 {0x8E, 0, 0},
12586 {0x8F, 0x10, 0},
12587 {0x90, 0x55, 0},
12588 {0x91, 0x3f, 1},
12589 {0x92, 0x36, 1},
12590 {0x93, 0, 0},
12591 {0x94, 0, 0},
12592 {0x95, 0, 0},
12593 {0x96, 0x87, 0},
12594 {0x97, 0x11, 0},
12595 {0x98, 0, 0},
12596 {0x99, 0x33, 0},
12597 {0x9A, 0x88, 0},
12598 {0x9B, 0, 0},
12599 {0x9C, 0x87, 0},
12600 {0x9D, 0x11, 0},
12601 {0x9E, 0, 0},
12602 {0x9F, 0x33, 0},
12603 {0xA0, 0x88, 0},
12604 {0xA1, 0x20, 1},
12605 {0xA2, 0x3f, 0},
12606 {0xA3, 0x44, 0},
12607 {0xA4, 0x8c, 0},
12608 {0xA5, 0x6c, 0},
12609 {0xA6, 0x22, 0},
12610 {0xA7, 0xbe, 0},
12611 {0xA8, 0x55, 0},
12612 {0xAA, 0xc, 0},
12613 {0xAB, 0xaa, 0},
12614 {0xAC, 0x2, 0},
12615 {0xAD, 0, 0},
12616 {0xAE, 0x10, 0},
12617 {0xAF, 0x1, 0},
12618 {0xB0, 0, 0},
12619 {0xB1, 0, 0},
12620 {0xB2, 0x80, 0},
12621 {0xB3, 0x60, 0},
12622 {0xB4, 0x44, 0},
12623 {0xB5, 0x55, 0},
12624 {0xB6, 0x1, 0},
12625 {0xB7, 0x55, 0},
12626 {0xB8, 0x1, 0},
12627 {0xB9, 0x5, 0},
12628 {0xBA, 0x55, 0},
12629 {0xBB, 0x55, 0},
12630 {0xC1, 0, 0},
12631 {0xC2, 0, 0},
12632 {0xC3, 0, 0},
12633 {0xC4, 0, 0},
12634 {0xC5, 0, 0},
12635 {0xC6, 0, 0},
12636 {0xC7, 0, 0},
12637 {0xC8, 0, 0},
12638 {0xC9, 0, 0},
12639 {0xCA, 0, 0},
12640 {0xCB, 0, 0},
12641 {0xCC, 0, 0},
12642 {0xCD, 0, 0},
12643 {0xCE, 0x5e, 0},
12644 {0xCF, 0xc, 0},
12645 {0xD0, 0xc, 0},
12646 {0xD1, 0xc, 0},
12647 {0xD2, 0, 0},
12648 {0xD3, 0x2b, 0},
12649 {0xD4, 0xc, 0},
12650 {0xD5, 0, 0},
12651 {0xD6, 0x70, 1},
12652 {0xDB, 0x7, 0},
12653 {0xDC, 0, 0},
12654 {0xDD, 0, 0},
12655 {0xDE, 0x88, 1},
12656 {0xDF, 0, 0},
12657 {0xE0, 0x1f, 0},
12658 {0xE1, 0x20, 1},
12659 {0xE2, 0x1, 0},
12660 {0xE3, 0x30, 0},
12661 {0xE4, 0x70, 0},
12662 {0xE5, 0, 0},
12663 {0xE6, 0, 0},
12664 {0xE7, 0x33, 0},
12665 {0xE8, 0xf, 1},
12666 {0xE9, 0x13, 1},
12667 {0xEA, 0, 0},
12668 {0xEB, 0xee, 1},
12669 {0xEE, 0, 0},
12670 {0xEF, 0x7e, 0},
12671 {0xF0, 0x3f, 0},
12672 {0xF1, 0x7f, 0},
12673 {0xF2, 0x78, 0},
12674 {0xF3, 0x58, 1},
12675 {0xF4, 0x88, 0},
12676 {0xF5, 0x8, 0},
12677 {0xF6, 0xf, 0},
12678 {0xF7, 0xbc, 0},
12679 {0xF8, 0x8, 0},
12680 {0xF9, 0x60, 0},
12681 {0xFA, 0x13, 1},
12682 {0xFB, 0x70, 0},
12683 {0xFC, 0, 0},
12684 {0xFD, 0, 0},
12685 {0xFE, 0, 0},
12686 {0xFF, 0x33, 0},
12687 {0x100, 0x13, 1},
12688 {0x101, 0x14, 1},
12689 {0x102, 0xee, 1},
12690 {0x105, 0x3c, 0},
12691 {0x106, 0x1, 1},
12692 {0x107, 0xa, 0},
12693 {0x108, 0x9d, 0},
12694 {0x109, 0xa, 0},
12695 {0x10A, 0, 0},
12696 {0x10B, 0x40, 0},
12697 {0x10C, 0x40, 0},
12698 {0x10D, 0x88, 0},
12699 {0x10E, 0x10, 0},
12700 {0x10F, 0xf0, 0},
12701 {0x110, 0x10, 0},
12702 {0x111, 0xf0, 0},
12703 {0x112, 0, 0},
12704 {0x113, 0, 0},
12705 {0x114, 0x10, 0},
12706 {0x115, 0x55, 0},
12707 {0x116, 0x3f, 1},
12708 {0x117, 0x36, 1},
12709 {0x118, 0, 0},
12710 {0x119, 0, 0},
12711 {0x11A, 0, 0},
12712 {0x11B, 0x87, 0},
12713 {0x11C, 0x11, 0},
12714 {0x11D, 0, 0},
12715 {0x11E, 0x33, 0},
12716 {0x11F, 0x88, 0},
12717 {0x120, 0, 0},
12718 {0x121, 0x87, 0},
12719 {0x122, 0x11, 0},
12720 {0x123, 0, 0},
12721 {0x124, 0x33, 0},
12722 {0x125, 0x88, 0},
12723 {0x126, 0x20, 1},
12724 {0x127, 0x3f, 0},
12725 {0x128, 0x44, 0},
12726 {0x129, 0x8c, 0},
12727 {0x12A, 0x6c, 0},
12728 {0x12B, 0x22, 0},
12729 {0x12C, 0xbe, 0},
12730 {0x12D, 0x55, 0},
12731 {0x12F, 0xc, 0},
12732 {0x130, 0xaa, 0},
12733 {0x131, 0x2, 0},
12734 {0x132, 0, 0},
12735 {0x133, 0x10, 0},
12736 {0x134, 0x1, 0},
12737 {0x135, 0, 0},
12738 {0x136, 0, 0},
12739 {0x137, 0x80, 0},
12740 {0x138, 0x60, 0},
12741 {0x139, 0x44, 0},
12742 {0x13A, 0x55, 0},
12743 {0x13B, 0x1, 0},
12744 {0x13C, 0x55, 0},
12745 {0x13D, 0x1, 0},
12746 {0x13E, 0x5, 0},
12747 {0x13F, 0x55, 0},
12748 {0x140, 0x55, 0},
12749 {0x146, 0, 0},
12750 {0x147, 0, 0},
12751 {0x148, 0, 0},
12752 {0x149, 0, 0},
12753 {0x14A, 0, 0},
12754 {0x14B, 0, 0},
12755 {0x14C, 0, 0},
12756 {0x14D, 0, 0},
12757 {0x14E, 0, 0},
12758 {0x14F, 0, 0},
12759 {0x150, 0, 0},
12760 {0x151, 0, 0},
12761 {0x154, 0xc, 0},
12762 {0x155, 0xc, 0},
12763 {0x156, 0xc, 0},
12764 {0x157, 0, 0},
12765 {0x158, 0x2b, 0},
12766 {0x159, 0x84, 0},
12767 {0x15A, 0x15, 0},
12768 {0x15B, 0xf, 0},
12769 {0x15C, 0, 0},
12770 {0x15D, 0, 0},
12771 {0x15E, 0, 1},
12772 {0x15F, 0, 1},
12773 {0x160, 0, 1},
12774 {0x161, 0, 1},
12775 {0x162, 0, 1},
12776 {0x163, 0, 1},
12777 {0x164, 0, 0},
12778 {0x165, 0, 0},
12779 {0x166, 0, 0},
12780 {0x167, 0, 0},
12781 {0x168, 0, 0},
12782 {0x169, 0, 0},
12783 {0x16A, 0, 1},
12784 {0x16B, 0, 1},
12785 {0x16C, 0, 1},
12786 {0x16D, 0, 0},
12787 {0x170, 0, 0},
12788 {0x171, 0x77, 0},
12789 {0x172, 0x77, 0},
12790 {0x173, 0x77, 0},
12791 {0x174, 0x77, 0},
12792 {0x175, 0, 0},
12793 {0x176, 0x3, 0},
12794 {0x177, 0x37, 0},
12795 {0x178, 0x3, 0},
12796 {0x179, 0, 0},
12797 {0x17A, 0x21, 0},
12798 {0x17B, 0x21, 0},
12799 {0x17C, 0, 0},
12800 {0x17D, 0xaa, 0},
12801 {0x17E, 0, 0},
12802 {0x17F, 0xaa, 0},
12803 {0x180, 0, 0},
12804 {0x190, 0, 0},
12805 {0x191, 0x77, 0},
12806 {0x192, 0x77, 0},
12807 {0x193, 0x77, 0},
12808 {0x194, 0x77, 0},
12809 {0x195, 0, 0},
12810 {0x196, 0x3, 0},
12811 {0x197, 0x37, 0},
12812 {0x198, 0x3, 0},
12813 {0x199, 0, 0},
12814 {0x19A, 0x21, 0},
12815 {0x19B, 0x21, 0},
12816 {0x19C, 0, 0},
12817 {0x19D, 0xaa, 0},
12818 {0x19E, 0, 0},
12819 {0x19F, 0xaa, 0},
12820 {0x1A0, 0, 0},
12821 {0x1A1, 0x2, 0},
12822 {0x1A2, 0xf, 0},
12823 {0x1A3, 0xf, 0},
12824 {0x1A4, 0, 1},
12825 {0x1A5, 0, 1},
12826 {0x1A6, 0, 1},
12827 {0x1A7, 0x2, 0},
12828 {0x1A8, 0xf, 0},
12829 {0x1A9, 0xf, 0},
12830 {0x1AA, 0, 1},
12831 {0x1AB, 0, 1},
12832 {0x1AC, 0, 1},
12833 {0x1AD, 0x84, 0},
12834 {0x1AE, 0x60, 0},
12835 {0x1AF, 0x47, 0},
12836 {0x1B0, 0x47, 0},
12837 {0x1B1, 0, 0},
12838 {0x1B2, 0, 0},
12839 {0x1B3, 0, 0},
12840 {0x1B4, 0, 0},
12841 {0x1B5, 0, 0},
12842 {0x1B6, 0, 0},
12843 {0x1B7, 0x5, 1},
12844 {0x1B8, 0, 0},
12845 {0x1B9, 0, 0},
12846 {0x1BA, 0, 0},
12847 {0x1BB, 0, 0},
12848 {0x1BC, 0, 0},
12849 {0x1BD, 0, 0},
12850 {0x1BE, 0, 0},
12851 {0x1BF, 0, 0},
12852 {0x1C0, 0, 0},
12853 {0x1C1, 0, 0},
12854 {0x1C2, 0xa0, 1},
12855 {0x1C3, 0, 0},
12856 {0x1C4, 0, 0},
12857 {0x1C5, 0, 0},
12858 {0x1C6, 0, 0},
12859 {0x1C7, 0, 0},
12860 {0x1C8, 0, 0},
12861 {0x1C9, 0, 0},
12862 {0x1CA, 0, 0},
12863 {0xFFFF, 0, 0}
12864};
12865
12866radio_20xx_regs_t regs_2057_rev8[] = {
12867 {0x00, 0x8, 1},
12868 {0x01, 0x57, 1},
12869 {0x02, 0x20, 1},
12870 {0x03, 0x1f, 0},
12871 {0x04, 0x4, 0},
12872 {0x05, 0x2, 0},
12873 {0x06, 0x1, 0},
12874 {0x07, 0x1, 0},
12875 {0x08, 0x1, 0},
12876 {0x09, 0x69, 0},
12877 {0x0A, 0x66, 0},
12878 {0x0B, 0x6, 0},
12879 {0x0C, 0x18, 0},
12880 {0x0D, 0x3, 0},
12881 {0x0E, 0x20, 0},
12882 {0x0F, 0x20, 0},
12883 {0x10, 0, 0},
12884 {0x11, 0x7c, 0},
12885 {0x12, 0x42, 0},
12886 {0x13, 0xbd, 0},
12887 {0x14, 0x7, 0},
12888 {0x15, 0x87, 0},
12889 {0x16, 0x8, 0},
12890 {0x17, 0x17, 0},
12891 {0x18, 0x7, 0},
12892 {0x19, 0, 0},
12893 {0x1A, 0x2, 0},
12894 {0x1B, 0x13, 0},
12895 {0x1C, 0x3e, 0},
12896 {0x1D, 0x3e, 0},
12897 {0x1E, 0x96, 0},
12898 {0x1F, 0x4, 0},
12899 {0x20, 0, 0},
12900 {0x21, 0, 0},
12901 {0x22, 0x17, 0},
12902 {0x23, 0x6, 0},
12903 {0x24, 0x1, 0},
12904 {0x25, 0x6, 0},
12905 {0x26, 0x4, 0},
12906 {0x27, 0xd, 0},
12907 {0x28, 0xd, 0},
12908 {0x29, 0x30, 0},
12909 {0x2A, 0x32, 0},
12910 {0x2B, 0x8, 0},
12911 {0x2C, 0x1c, 0},
12912 {0x2D, 0x2, 0},
12913 {0x2E, 0x4, 0},
12914 {0x2F, 0x7f, 0},
12915 {0x30, 0x27, 0},
12916 {0x31, 0, 1},
12917 {0x32, 0, 1},
12918 {0x33, 0, 1},
12919 {0x34, 0, 0},
12920 {0x35, 0x20, 0},
12921 {0x36, 0x18, 0},
12922 {0x37, 0x7, 0},
12923 {0x38, 0x66, 0},
12924 {0x39, 0x66, 0},
12925 {0x3A, 0x66, 0},
12926 {0x3B, 0x66, 0},
12927 {0x3C, 0xff, 0},
12928 {0x3D, 0xff, 0},
12929 {0x3E, 0xff, 0},
12930 {0x3F, 0xff, 0},
12931 {0x40, 0x16, 0},
12932 {0x41, 0x7, 0},
12933 {0x42, 0x19, 0},
12934 {0x43, 0x7, 0},
12935 {0x44, 0x6, 0},
12936 {0x45, 0x3, 0},
12937 {0x46, 0x1, 0},
12938 {0x47, 0x7, 0},
12939 {0x48, 0x33, 0},
12940 {0x49, 0x5, 0},
12941 {0x4A, 0x77, 0},
12942 {0x4B, 0x66, 0},
12943 {0x4C, 0x66, 0},
12944 {0x4D, 0, 0},
12945 {0x4E, 0x4, 0},
12946 {0x4F, 0xc, 0},
12947 {0x50, 0, 0},
12948 {0x51, 0x70, 1},
12949 {0x56, 0x7, 0},
12950 {0x57, 0, 0},
12951 {0x58, 0, 0},
12952 {0x59, 0x88, 1},
12953 {0x5A, 0, 0},
12954 {0x5B, 0x1f, 0},
12955 {0x5C, 0x20, 1},
12956 {0x5D, 0x1, 0},
12957 {0x5E, 0x30, 0},
12958 {0x5F, 0x70, 0},
12959 {0x60, 0, 0},
12960 {0x61, 0, 0},
12961 {0x62, 0x33, 1},
12962 {0x63, 0xf, 1},
12963 {0x64, 0xf, 1},
12964 {0x65, 0, 0},
12965 {0x66, 0x11, 0},
12966 {0x69, 0, 0},
12967 {0x6A, 0x7e, 0},
12968 {0x6B, 0x3f, 0},
12969 {0x6C, 0x7f, 0},
12970 {0x6D, 0x78, 0},
12971 {0x6E, 0x58, 1},
12972 {0x6F, 0x88, 0},
12973 {0x70, 0x8, 0},
12974 {0x71, 0xf, 0},
12975 {0x72, 0xbc, 0},
12976 {0x73, 0x8, 0},
12977 {0x74, 0x60, 0},
12978 {0x75, 0x13, 1},
12979 {0x76, 0x70, 0},
12980 {0x77, 0, 0},
12981 {0x78, 0, 0},
12982 {0x79, 0, 0},
12983 {0x7A, 0x33, 0},
12984 {0x7B, 0x13, 1},
12985 {0x7C, 0xf, 1},
12986 {0x7D, 0xee, 1},
12987 {0x80, 0x3c, 0},
12988 {0x81, 0x1, 1},
12989 {0x82, 0xa, 0},
12990 {0x83, 0x9d, 0},
12991 {0x84, 0xa, 0},
12992 {0x85, 0, 0},
12993 {0x86, 0x40, 0},
12994 {0x87, 0x40, 0},
12995 {0x88, 0x88, 0},
12996 {0x89, 0x10, 0},
12997 {0x8A, 0xf0, 0},
12998 {0x8B, 0x10, 0},
12999 {0x8C, 0xf0, 0},
13000 {0x8D, 0, 0},
13001 {0x8E, 0, 0},
13002 {0x8F, 0x10, 0},
13003 {0x90, 0x55, 0},
13004 {0x91, 0x3f, 1},
13005 {0x92, 0x36, 1},
13006 {0x93, 0, 0},
13007 {0x94, 0, 0},
13008 {0x95, 0, 0},
13009 {0x96, 0x87, 0},
13010 {0x97, 0x11, 0},
13011 {0x98, 0, 0},
13012 {0x99, 0x33, 0},
13013 {0x9A, 0x88, 0},
13014 {0x9B, 0, 0},
13015 {0x9C, 0x87, 0},
13016 {0x9D, 0x11, 0},
13017 {0x9E, 0, 0},
13018 {0x9F, 0x33, 0},
13019 {0xA0, 0x88, 0},
13020 {0xA1, 0x20, 1},
13021 {0xA2, 0x3f, 0},
13022 {0xA3, 0x44, 0},
13023 {0xA4, 0x8c, 0},
13024 {0xA5, 0x6c, 0},
13025 {0xA6, 0x22, 0},
13026 {0xA7, 0xbe, 0},
13027 {0xA8, 0x55, 0},
13028 {0xAA, 0xc, 0},
13029 {0xAB, 0xaa, 0},
13030 {0xAC, 0x2, 0},
13031 {0xAD, 0, 0},
13032 {0xAE, 0x10, 0},
13033 {0xAF, 0x1, 0},
13034 {0xB0, 0, 0},
13035 {0xB1, 0, 0},
13036 {0xB2, 0x80, 0},
13037 {0xB3, 0x60, 0},
13038 {0xB4, 0x44, 0},
13039 {0xB5, 0x55, 0},
13040 {0xB6, 0x1, 0},
13041 {0xB7, 0x55, 0},
13042 {0xB8, 0x1, 0},
13043 {0xB9, 0x5, 0},
13044 {0xBA, 0x55, 0},
13045 {0xBB, 0x55, 0},
13046 {0xC1, 0, 0},
13047 {0xC2, 0, 0},
13048 {0xC3, 0, 0},
13049 {0xC4, 0, 0},
13050 {0xC5, 0, 0},
13051 {0xC6, 0, 0},
13052 {0xC7, 0, 0},
13053 {0xC8, 0, 0},
13054 {0xC9, 0x1, 1},
13055 {0xCA, 0, 0},
13056 {0xCB, 0, 0},
13057 {0xCC, 0, 0},
13058 {0xCD, 0, 0},
13059 {0xCE, 0x5e, 0},
13060 {0xCF, 0xc, 0},
13061 {0xD0, 0xc, 0},
13062 {0xD1, 0xc, 0},
13063 {0xD2, 0, 0},
13064 {0xD3, 0x2b, 0},
13065 {0xD4, 0xc, 0},
13066 {0xD5, 0, 0},
13067 {0xD6, 0x70, 1},
13068 {0xDB, 0x7, 0},
13069 {0xDC, 0, 0},
13070 {0xDD, 0, 0},
13071 {0xDE, 0x88, 1},
13072 {0xDF, 0, 0},
13073 {0xE0, 0x1f, 0},
13074 {0xE1, 0x20, 1},
13075 {0xE2, 0x1, 0},
13076 {0xE3, 0x30, 0},
13077 {0xE4, 0x70, 0},
13078 {0xE5, 0, 0},
13079 {0xE6, 0, 0},
13080 {0xE7, 0x33, 0},
13081 {0xE8, 0xf, 1},
13082 {0xE9, 0xf, 1},
13083 {0xEA, 0, 0},
13084 {0xEB, 0x11, 0},
13085 {0xEE, 0, 0},
13086 {0xEF, 0x7e, 0},
13087 {0xF0, 0x3f, 0},
13088 {0xF1, 0x7f, 0},
13089 {0xF2, 0x78, 0},
13090 {0xF3, 0x58, 1},
13091 {0xF4, 0x88, 0},
13092 {0xF5, 0x8, 0},
13093 {0xF6, 0xf, 0},
13094 {0xF7, 0xbc, 0},
13095 {0xF8, 0x8, 0},
13096 {0xF9, 0x60, 0},
13097 {0xFA, 0x13, 1},
13098 {0xFB, 0x70, 0},
13099 {0xFC, 0, 0},
13100 {0xFD, 0, 0},
13101 {0xFE, 0, 0},
13102 {0xFF, 0x33, 0},
13103 {0x100, 0x13, 1},
13104 {0x101, 0xf, 1},
13105 {0x102, 0xee, 1},
13106 {0x105, 0x3c, 0},
13107 {0x106, 0x1, 1},
13108 {0x107, 0xa, 0},
13109 {0x108, 0x9d, 0},
13110 {0x109, 0xa, 0},
13111 {0x10A, 0, 0},
13112 {0x10B, 0x40, 0},
13113 {0x10C, 0x40, 0},
13114 {0x10D, 0x88, 0},
13115 {0x10E, 0x10, 0},
13116 {0x10F, 0xf0, 0},
13117 {0x110, 0x10, 0},
13118 {0x111, 0xf0, 0},
13119 {0x112, 0, 0},
13120 {0x113, 0, 0},
13121 {0x114, 0x10, 0},
13122 {0x115, 0x55, 0},
13123 {0x116, 0x3f, 1},
13124 {0x117, 0x36, 1},
13125 {0x118, 0, 0},
13126 {0x119, 0, 0},
13127 {0x11A, 0, 0},
13128 {0x11B, 0x87, 0},
13129 {0x11C, 0x11, 0},
13130 {0x11D, 0, 0},
13131 {0x11E, 0x33, 0},
13132 {0x11F, 0x88, 0},
13133 {0x120, 0, 0},
13134 {0x121, 0x87, 0},
13135 {0x122, 0x11, 0},
13136 {0x123, 0, 0},
13137 {0x124, 0x33, 0},
13138 {0x125, 0x88, 0},
13139 {0x126, 0x20, 1},
13140 {0x127, 0x3f, 0},
13141 {0x128, 0x44, 0},
13142 {0x129, 0x8c, 0},
13143 {0x12A, 0x6c, 0},
13144 {0x12B, 0x22, 0},
13145 {0x12C, 0xbe, 0},
13146 {0x12D, 0x55, 0},
13147 {0x12F, 0xc, 0},
13148 {0x130, 0xaa, 0},
13149 {0x131, 0x2, 0},
13150 {0x132, 0, 0},
13151 {0x133, 0x10, 0},
13152 {0x134, 0x1, 0},
13153 {0x135, 0, 0},
13154 {0x136, 0, 0},
13155 {0x137, 0x80, 0},
13156 {0x138, 0x60, 0},
13157 {0x139, 0x44, 0},
13158 {0x13A, 0x55, 0},
13159 {0x13B, 0x1, 0},
13160 {0x13C, 0x55, 0},
13161 {0x13D, 0x1, 0},
13162 {0x13E, 0x5, 0},
13163 {0x13F, 0x55, 0},
13164 {0x140, 0x55, 0},
13165 {0x146, 0, 0},
13166 {0x147, 0, 0},
13167 {0x148, 0, 0},
13168 {0x149, 0, 0},
13169 {0x14A, 0, 0},
13170 {0x14B, 0, 0},
13171 {0x14C, 0, 0},
13172 {0x14D, 0, 0},
13173 {0x14E, 0x1, 1},
13174 {0x14F, 0, 0},
13175 {0x150, 0, 0},
13176 {0x151, 0, 0},
13177 {0x154, 0xc, 0},
13178 {0x155, 0xc, 0},
13179 {0x156, 0xc, 0},
13180 {0x157, 0, 0},
13181 {0x158, 0x2b, 0},
13182 {0x159, 0x84, 0},
13183 {0x15A, 0x15, 0},
13184 {0x15B, 0xf, 0},
13185 {0x15C, 0, 0},
13186 {0x15D, 0, 0},
13187 {0x15E, 0, 1},
13188 {0x15F, 0, 1},
13189 {0x160, 0, 1},
13190 {0x161, 0, 1},
13191 {0x162, 0, 1},
13192 {0x163, 0, 1},
13193 {0x164, 0, 0},
13194 {0x165, 0, 0},
13195 {0x166, 0, 0},
13196 {0x167, 0, 0},
13197 {0x168, 0, 0},
13198 {0x169, 0, 0},
13199 {0x16A, 0, 1},
13200 {0x16B, 0, 1},
13201 {0x16C, 0, 1},
13202 {0x16D, 0, 0},
13203 {0x170, 0, 0},
13204 {0x171, 0x77, 0},
13205 {0x172, 0x77, 0},
13206 {0x173, 0x77, 0},
13207 {0x174, 0x77, 0},
13208 {0x175, 0, 0},
13209 {0x176, 0x3, 0},
13210 {0x177, 0x37, 0},
13211 {0x178, 0x3, 0},
13212 {0x179, 0, 0},
13213 {0x17A, 0x21, 0},
13214 {0x17B, 0x21, 0},
13215 {0x17C, 0, 0},
13216 {0x17D, 0xaa, 0},
13217 {0x17E, 0, 0},
13218 {0x17F, 0xaa, 0},
13219 {0x180, 0, 0},
13220 {0x190, 0, 0},
13221 {0x191, 0x77, 0},
13222 {0x192, 0x77, 0},
13223 {0x193, 0x77, 0},
13224 {0x194, 0x77, 0},
13225 {0x195, 0, 0},
13226 {0x196, 0x3, 0},
13227 {0x197, 0x37, 0},
13228 {0x198, 0x3, 0},
13229 {0x199, 0, 0},
13230 {0x19A, 0x21, 0},
13231 {0x19B, 0x21, 0},
13232 {0x19C, 0, 0},
13233 {0x19D, 0xaa, 0},
13234 {0x19E, 0, 0},
13235 {0x19F, 0xaa, 0},
13236 {0x1A0, 0, 0},
13237 {0x1A1, 0x2, 0},
13238 {0x1A2, 0xf, 0},
13239 {0x1A3, 0xf, 0},
13240 {0x1A4, 0, 1},
13241 {0x1A5, 0, 1},
13242 {0x1A6, 0, 1},
13243 {0x1A7, 0x2, 0},
13244 {0x1A8, 0xf, 0},
13245 {0x1A9, 0xf, 0},
13246 {0x1AA, 0, 1},
13247 {0x1AB, 0, 1},
13248 {0x1AC, 0, 1},
13249 {0x1AD, 0x84, 0},
13250 {0x1AE, 0x60, 0},
13251 {0x1AF, 0x47, 0},
13252 {0x1B0, 0x47, 0},
13253 {0x1B1, 0, 0},
13254 {0x1B2, 0, 0},
13255 {0x1B3, 0, 0},
13256 {0x1B4, 0, 0},
13257 {0x1B5, 0, 0},
13258 {0x1B6, 0, 0},
13259 {0x1B7, 0x5, 1},
13260 {0x1B8, 0, 0},
13261 {0x1B9, 0, 0},
13262 {0x1BA, 0, 0},
13263 {0x1BB, 0, 0},
13264 {0x1BC, 0, 0},
13265 {0x1BD, 0, 0},
13266 {0x1BE, 0, 0},
13267 {0x1BF, 0, 0},
13268 {0x1C0, 0, 0},
13269 {0x1C1, 0, 0},
13270 {0x1C2, 0xa0, 1},
13271 {0x1C3, 0, 0},
13272 {0x1C4, 0, 0},
13273 {0x1C5, 0, 0},
13274 {0x1C6, 0, 0},
13275 {0x1C7, 0, 0},
13276 {0x1C8, 0, 0},
13277 {0x1C9, 0, 0},
13278 {0x1CA, 0, 0},
13279 {0xFFFF, 0, 0}
13280};
13281
e59fe083 13282static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
a9533e7e 13283
3e26416e
GKH
13284static s32 nphy_lnagain_est0[] = { -315, 40370 };
13285static s32 nphy_lnagain_est1[] = { -224, 23242 };
a9533e7e 13286
7d4df48e 13287static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
a9533e7e
HP
13288 {
13289 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13290 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13291 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13292 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13293 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13294 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13295 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13296 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13297 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13298 },
13299 {
13300 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13301 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13302 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13303 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13304 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13305 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13306 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13307 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13308 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13309 }
13310};
13311
66cbd3ab 13312static const u32 nphy_tpc_txgain[] = {
a9533e7e
HP
13313 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13314 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13315 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13316 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13317 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13318 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13319 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13320 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13321 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13322 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13323 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13324 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13325 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13326 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13327 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13328 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13329 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13330 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13331 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13332 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13333 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13334 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13335 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13336 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13337 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13338 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13339 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13340 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13341 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13342 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13343 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13344 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13345};
13346
7d4df48e 13347static const u16 nphy_tpc_loscale[] = {
a9533e7e
HP
13348 256, 256, 271, 271, 287, 256, 256, 271,
13349 271, 287, 287, 304, 304, 256, 256, 271,
13350 271, 287, 287, 304, 304, 322, 322, 341,
13351 341, 362, 362, 383, 383, 256, 256, 271,
13352 271, 287, 287, 304, 304, 322, 322, 256,
13353 256, 271, 271, 287, 287, 304, 304, 322,
13354 322, 341, 341, 362, 362, 256, 256, 271,
13355 271, 287, 287, 304, 304, 322, 322, 256,
13356 256, 271, 271, 287, 287, 304, 304, 322,
13357 322, 341, 341, 362, 362, 256, 256, 271,
13358 271, 287, 287, 304, 304, 322, 322, 341,
13359 341, 362, 362, 383, 383, 406, 406, 430,
13360 430, 455, 455, 482, 482, 511, 511, 541,
13361 541, 573, 573, 607, 607, 643, 643, 681,
13362 681, 722, 722, 764, 764, 810, 810, 858,
13363 858, 908, 908, 962, 962, 1019, 1019, 256
13364};
13365
66cbd3ab 13366static u32 nphy_tpc_txgain_ipa[] = {
a9533e7e
HP
13367 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13368 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13369 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13370 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13371 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13372 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13373 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13374 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13375 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13376 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13377 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13378 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13379 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13380 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13381 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13382 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13383 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13384 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13385 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13386 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13387 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13388 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13389 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13390 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13391 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13392 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13393 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13394 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13395 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13396 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13397 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13398 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13399};
13400
66cbd3ab 13401static u32 nphy_tpc_txgain_ipa_rev5[] = {
a9533e7e
HP
13402 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13403 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13404 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13405 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13406 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13407 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13408 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13409 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13410 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13411 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13412 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13413 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13414 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13415 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13416 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13417 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13418 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13419 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13420 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13421 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13422 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13423 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13424 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13425 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13426 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13427 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13428 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13429 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13430 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13431 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13432 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13433 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13434};
13435
66cbd3ab 13436static u32 nphy_tpc_txgain_ipa_rev6[] = {
a9533e7e
HP
13437 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13438 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13439 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13440 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13441 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13442 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13443 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13444 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13445 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13446 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13447 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13448 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13449 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13450 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13451 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13452 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13453 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13454 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13455 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13456 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13457 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13458 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13459 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13460 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13461 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13462 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13463 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13464 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13465 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13466 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13467 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13468 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13469};
13470
66cbd3ab 13471static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
a9533e7e
HP
13472 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13473 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13474 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13475 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13476 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13477 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13478 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13479 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13480 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13481 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13482 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13483 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13484 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13485 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13486 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13487 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13488 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13489 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13490 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13491 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13492 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13493 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13494 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13495 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13496 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13497 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13498 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13499 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13500 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13501 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13502 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13503 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13504};
13505
66cbd3ab 13506static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
a9533e7e
HP
13507 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13508 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13509 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13510 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13511 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13512 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13513 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13514 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13515 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13516 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13517 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13518 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13519 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13520 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13521 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13522 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13523 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13524 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13525 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13526 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13527 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13528 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13529 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13530 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13531 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13532 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13533 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13534 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13535 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13536 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13537 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13538 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13539};
13540
66cbd3ab 13541static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
a9533e7e
HP
13542 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13543 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13544 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13545 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13546 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13547 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13548 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13549 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13550 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13551 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13552 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13553 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13554 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13555 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13556 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13557 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13558 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13559 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13560 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13561 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13562 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13563 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13564 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13565 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13566 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13567 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13568 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13569 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13570 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13571 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13572 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13573 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13574};
13575
66cbd3ab 13576static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
a9533e7e
HP
13577 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13578 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13579 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13580 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13581 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13582 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13583 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13584 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13585 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13586 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13587 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13588 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13589 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13590 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13591 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13592 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13593 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13594 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13595 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
13596 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13597 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13598 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13599 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13600 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13601 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13602 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13603 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13604 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13605 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13606 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13607 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13608 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13609};
13610
66cbd3ab 13611static u32 nphy_tpc_txgain_ipa_5g[] = {
a9533e7e
HP
13612 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13613 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13614 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13615 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13616 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13617 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13618 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13619 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13620 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13621 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13622 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13623 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13624 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13625 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13626 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13627 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13628 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13629 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13630 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13631 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13632 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13633 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13634 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13635 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13636 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13637 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13638 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13639 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13640 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13641 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13642 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13643 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13644};
13645
66cbd3ab 13646static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
a9533e7e
HP
13647 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13648 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13649 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13650 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13651 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13652 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13653 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13654 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13655 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13656 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13657 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13658 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13659 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13660 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13661 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13662 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13663 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13664 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13665 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13666 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13667 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13668 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13669 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13670 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13671 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13672 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13673 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13674 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13675 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13676 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13677 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13678 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13679};
13680
66cbd3ab 13681static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
a9533e7e
HP
13682 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13683 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13684 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13685 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13686 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13687 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13688 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13689 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13690 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13691 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13692 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13693 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13694 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13695 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13696 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13697 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13698 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13699 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13700 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13701 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13702 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13703 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13704 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13705 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13706 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13707 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13708 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13709 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13710 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13711 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13712 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13713 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13714};
13715
562c8850 13716static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
a9533e7e
HP
13717 -114, -108, -98, -91, -84, -78, -70, -62,
13718 -54, -46, -39, -31, -23, -15, -8, 0
13719};
13720
562c8850 13721static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
a9533e7e
HP
13722 -100, -95, -89, -83, -77, -70, -63, -56,
13723 -48, -41, -33, -25, -19, -12, -6, 0
13724};
13725
e59fe083 13726static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
a9533e7e
HP
13727 -159, -113, -86, -72, -62, -54, -48, -43,
13728 -39, -35, -31, -28, -25, -23, -20, -18,
13729 -17, -15, -13, -11, -10, -8, -7, -6,
13730 -5, -4, -3, -3, -2, -1, -1, 0
13731};
13732
e59fe083 13733static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
a9533e7e
HP
13734 -109, -109, -82, -68, -58, -50, -44, -39,
13735 -35, -31, -28, -26, -23, -21, -19, -17,
13736 -16, -14, -13, -11, -10, -9, -8, -7,
13737 -5, -5, -4, -3, -2, -1, -1, 0
13738};
13739
e59fe083 13740static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
a9533e7e
HP
13741 -122, -122, -95, -80, -69, -61, -54, -49,
13742 -43, -39, -35, -32, -28, -26, -23, -21,
13743 -18, -16, -15, -13, -11, -10, -8, -7,
13744 -6, -5, -4, -3, -2, -1, -1, 0
13745};
13746
562c8850 13747static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
a9533e7e
HP
13748 -107, -101, -92, -85, -78, -71, -62, -55,
13749 -47, -39, -32, -24, -19, -12, -6, 0
13750};
13751
562c8850 13752static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
a9533e7e
HP
13753 -110, -104, -95, -88, -81, -74, -66, -58,
13754 -50, -44, -36, -28, -23, -15, -8, 0
13755};
13756
e868ab03 13757static u8 pad_gain_codes_used_2057rev5[] = {
a9533e7e
HP
13758 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13759 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13760};
13761
e868ab03 13762static u8 pad_gain_codes_used_2057rev7[] = {
a9533e7e
HP
13763 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13764 5, 4, 3, 2, 1
13765};
13766
e868ab03 13767static u8 pad_all_gain_codes_2057[] = {
a9533e7e
HP
13768 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13769 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13770 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13771 1, 0
13772};
13773
e868ab03 13774static u8 pga_all_gain_codes_2057[] = {
a9533e7e
HP
13775 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13776};
13777
66cbd3ab 13778static u32 nphy_papd_scaltbl[] = {
a9533e7e
HP
13779 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13780 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13781 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13782 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13783 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13784 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13785 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13786 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13787 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13788 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13789 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13790 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13791 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13792 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13793 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13794 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13795};
13796
66cbd3ab 13797static u32 nphy_tpc_txgain_rev3[] = {
a9533e7e
HP
13798 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13799 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13800 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13801 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13802 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13803 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13804 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13805 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13806 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13807 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13808 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13809 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13810 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13811 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13812 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13813 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13814 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13815 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13816 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13817 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13818 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13819 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13820 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13821 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13822 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13823 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13824 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13825 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13826 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13827 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13828 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13829 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13830};
13831
66cbd3ab 13832static u32 nphy_tpc_txgain_HiPwrEPA[] = {
a9533e7e
HP
13833 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13834 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13835 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13836 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13837 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13838 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13839 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13840 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13841 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13842 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13843 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13844 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13845 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13846 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13847 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13848 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13849 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13850 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13851 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13852 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13853 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13854 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13855 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13856 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13857 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13858 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13859 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13860 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13861 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13862 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13863 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13864 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13865};
13866
66cbd3ab 13867static u32 nphy_tpc_txgain_epa_2057rev3[] = {
a9533e7e
HP
13868 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13869 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13870 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13871 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13872 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13873 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13874 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13875 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13876 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13877 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13878 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13879 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13880 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13881 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13882 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13883 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13884 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13885 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13886 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13887 0x8009061d, 0x8009071d, 0x8009071d, 0x8009071d,
13888 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13889 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13890 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13891 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13892 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13893 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13894 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13895 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13896 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13897 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13898 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13899 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13900};
13901
66cbd3ab 13902static u32 nphy_tpc_txgain_epa_2057rev5[] = {
a9533e7e
HP
13903 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13904 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13905 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13906 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13907 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13908 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13909 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13910 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13911 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13912 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13913 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13914 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13915 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13916 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13917 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13918 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13919 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13920 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13921 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13922 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13923 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13924 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13925 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13926 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13927 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13928 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13929 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13930 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13931 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13932 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13933 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13934 0x10090001, 0x10090001, 0x10090001, 0x10090001
13935};
13936
66cbd3ab 13937static u32 nphy_tpc_5GHz_txgain_rev3[] = {
a9533e7e
HP
13938 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13939 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13940 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13941 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13942 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13943 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13944 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13945 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13946 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13947 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13948 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13949 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13950 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13951 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13952 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13953 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13954 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13955 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13956 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13957 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13958 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13959 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13960 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13961 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13962 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13963 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13964 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13965 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13966 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13967 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13968 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13969 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13970};
13971
66cbd3ab 13972static u32 nphy_tpc_5GHz_txgain_rev4[] = {
a9533e7e
HP
13973 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13974 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13975 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
13976 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
13977 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
13978 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
13979 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
13980 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
13981 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
13982 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
13983 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
13984 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
13985 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
13986 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
13987 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
13988 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
13989 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
13990 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
13991 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
13992 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
13993 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
13994 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
13995 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
13996 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
13997 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
13998 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
13999 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14000 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14001 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14002 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14003 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14004 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14005};
14006
66cbd3ab 14007static u32 nphy_tpc_5GHz_txgain_rev5[] = {
a9533e7e
HP
14008 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14009 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14010 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14011 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14012 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14013 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14014 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14015 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14016 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14017 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14018 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14019 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14020 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14021 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14022 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14023 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14024 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14025 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14026 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14027 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14028 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14029 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14030 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14031 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14032 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14033 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14034 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14035 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14036 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14037 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14038 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14039 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14040};
14041
66cbd3ab 14042static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
a9533e7e
HP
14043 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14044 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14045 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14046 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14047 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14048 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14049 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14050 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14051 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14052 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14053 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14054 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14055 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14056 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14057 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14058 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14059 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14060 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14061 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14062 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14063 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14064 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14065 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14066 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14067 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14068 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14069 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14070 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14071 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14072 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14073 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14074 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14075};
14076
e868ab03
GKH
14077static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14078static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14079static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
e5c4536f 14080 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a };
e868ab03 14081static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
e5c4536f 14082 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16 };
a9533e7e 14083
7cc4a4c0
JC
14084static bool wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
14085 chan_info_nphy_radio2057_t **t0,
14086 chan_info_nphy_radio205x_t **t1,
14087 chan_info_nphy_radio2057_rev5_t **t2,
14088 chan_info_nphy_2055_t **t3);
14089static void wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chans,
14090 const nphy_sfo_cfg_t *c);
14091
14092static void wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi,
7d4df48e 14093 u16 reduction_factr);
7cc4a4c0 14094static void wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *,
66cbd3ab 14095 u32 *buf);
e868ab03 14096static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr);
7cc4a4c0
JC
14097static void wlc_phy_txlpfbw_nphy(phy_info_t *pi);
14098static void wlc_phy_spurwar_nphy(phy_info_t *pi);
14099
14100static void wlc_phy_radio_preinit_2055(phy_info_t *pi);
14101static void wlc_phy_radio_init_2055(phy_info_t *pi);
14102static void wlc_phy_radio_postinit_2055(phy_info_t *pi);
14103static void wlc_phy_radio_preinit_205x(phy_info_t *pi);
14104static void wlc_phy_radio_init_2056(phy_info_t *pi);
14105static void wlc_phy_radio_postinit_2056(phy_info_t *pi);
14106static void wlc_phy_radio_init_2057(phy_info_t *pi);
14107static void wlc_phy_radio_postinit_2057(phy_info_t *pi);
14108static void wlc_phy_workarounds_nphy(phy_info_t *pi);
14109static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi);
14110static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi);
14111static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi);
14112static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi);
14113
14114static void wlc_phy_restore_rssical_nphy(phy_info_t *pi);
14115static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi);
14116static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi);
14117static int wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t tg,
e868ab03
GKH
14118 u8 type, bool d);
14119static void wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rxcore,
7d4df48e 14120 u16 *rg, u8 type);
3e26416e 14121static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble);
7cc4a4c0
JC
14122static void wlc_phy_savecal_nphy(phy_info_t *pi);
14123static void wlc_phy_restorecal_nphy(phy_info_t *pi);
14124static void wlc_phy_resetcca_nphy(phy_info_t *pi);
14125
14126static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi);
14127static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi);
14128static void wlc_phy_precal_txgain_nphy(phy_info_t *pi);
7d4df48e 14129static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core);
7cc4a4c0
JC
14130
14131static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi);
14132static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi);
14133static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi);
7d4df48e 14134static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi);
e868ab03 14135static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1);
66cbd3ab 14136static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi);
7cc4a4c0 14137
66cbd3ab
GKH
14138static void wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32,
14139 u32 e);
e868ab03 14140static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core);
7cc4a4c0 14141static void wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *,
e868ab03 14142 phy_cal_mode_t, u8);
7cc4a4c0
JC
14143static void wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi,
14144 nphy_papd_restore_state *state);
14145static void wlc_phy_papd_cal_setup_nphy(phy_info_t *pi,
e868ab03 14146 nphy_papd_restore_state *state, u8);
a9533e7e 14147
7d4df48e 14148static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals);
a9533e7e 14149
e868ab03
GKH
14150static void wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *evts,
14151 u8 *dlys, u8 len);
a9533e7e 14152
7d4df48e 14153static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset);
a9533e7e
HP
14154
14155static void
7d4df48e 14156wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
e868ab03
GKH
14157 u8 core_mask, u8 off,
14158 u8 override_id);
a9533e7e 14159
e868ab03 14160static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type);
7cc4a4c0 14161static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi);
a9533e7e 14162
7cc4a4c0 14163static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi);
e868ab03 14164static void wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max,
7d4df48e 14165 u16 *pwr_offset,
e868ab03
GKH
14166 u8 tmp_max_pwr, u8 rate_start,
14167 u8 rate_end);
a9533e7e 14168
7cc4a4c0
JC
14169static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi);
14170static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi);
14171static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi);
14172static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi);
a9533e7e 14173
7cc4a4c0 14174static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi);
e868ab03
GKH
14175static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core);
14176static void wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0,
14177 u8 idx1);
7cc4a4c0 14178static void wlc_phy_a4(phy_info_t *pi, bool full_cal);
a9533e7e 14179
7d4df48e 14180static u16 wlc_phy_radio205x_rcal(phy_info_t *pi);
a9533e7e 14181
7d4df48e 14182static u16 wlc_phy_radio2057_rccal(phy_info_t *pi);
a9533e7e 14183
66cbd3ab 14184static u16 wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz,
7d4df48e 14185 u16 max_val,
e868ab03 14186 u8 dac_test_mode);
3e26416e 14187static void wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
7d4df48e
GKH
14188 u16 num_samps);
14189static void wlc_phy_runsamples_nphy(phy_info_t *pi, u16 n, u16 lps,
14190 u16 wait, u8 iq, u8 dac_test_mode,
a9533e7e
HP
14191 bool modify_bbmult);
14192
7cc4a4c0 14193bool wlc_phy_bist_check_phy(wlc_phy_t *pih)
a9533e7e
HP
14194{
14195 phy_info_t *pi = (phy_info_t *) pih;
66cbd3ab 14196 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
a9533e7e
HP
14197
14198 if (NREV_GE(pi->pubpi.phy_rev, 16))
14199 return TRUE;
14200
14201 phybist0 = read_phy_reg(pi, 0x0e);
14202 phybist1 = read_phy_reg(pi, 0x0f);
14203 phybist2 = read_phy_reg(pi, 0xea);
14204 phybist3 = read_phy_reg(pi, 0xeb);
14205 phybist4 = read_phy_reg(pi, 0x156);
14206
14207 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14208 (phybist3 == 0) && (phybist4 == 0)) {
14209 return TRUE;
14210 }
14211
14212 return FALSE;
14213}
14214
a2627bc0
JC
14215static void WLBANDINITFN(wlc_phy_bphy_init_nphy) (phy_info_t *pi)
14216{
7d4df48e 14217 u16 addr, val;
a9533e7e
HP
14218
14219 ASSERT(ISNPHY(pi));
14220
14221 val = 0x1e1f;
14222 for (addr = (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT);
14223 addr <= (NPHY_TO_BPHY_OFF + BPHY_RSSI_LUT_END); addr++) {
14224 write_phy_reg(pi, addr, val);
14225 if (addr == (NPHY_TO_BPHY_OFF + 0x97))
14226 val = 0x3e3f;
14227 else
14228 val -= 0x0202;
14229 }
14230
14231 if (NORADIO_ENAB(pi->pubpi)) {
14232
14233 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_PHYCRSTH, 0x3206);
14234
14235 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_RSSI_TRESH, 0x281e);
14236
14237 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_LNA_GAIN_RANGE, 0x1a);
14238
14239 } else {
14240
14241 write_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_STEP, 0x668);
14242 }
14243}
14244
14245void
66cbd3ab
GKH
14246wlc_phy_table_write_nphy(phy_info_t *pi, u32 id, u32 len, u32 offset,
14247 u32 width, const void *data)
a9533e7e
HP
14248{
14249 mimophytbl_info_t tbl;
14250
14251 tbl.tbl_id = id;
14252 tbl.tbl_len = len;
14253 tbl.tbl_offset = offset;
14254 tbl.tbl_width = width;
14255 tbl.tbl_ptr = data;
14256 wlc_phy_write_table_nphy(pi, &tbl);
14257}
14258
14259void
66cbd3ab
GKH
14260wlc_phy_table_read_nphy(phy_info_t *pi, u32 id, u32 len, u32 offset,
14261 u32 width, void *data)
a9533e7e
HP
14262{
14263 mimophytbl_info_t tbl;
14264
14265 tbl.tbl_id = id;
14266 tbl.tbl_len = len;
14267 tbl.tbl_offset = offset;
14268 tbl.tbl_width = width;
14269 tbl.tbl_ptr = data;
14270 wlc_phy_read_table_nphy(pi, &tbl);
14271}
14272
a2627bc0
JC
14273static void WLBANDINITFN(wlc_phy_static_table_download_nphy) (phy_info_t *pi)
14274{
a9533e7e
HP
14275 uint idx;
14276
14277 if (NREV_GE(pi->pubpi.phy_rev, 16)) {
14278 for (idx = 0; idx < mimophytbl_info_sz_rev16; idx++)
14279 wlc_phy_write_table_nphy(pi,
14280 &mimophytbl_info_rev16[idx]);
14281 } else if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14282 for (idx = 0; idx < mimophytbl_info_sz_rev7; idx++)
14283 wlc_phy_write_table_nphy(pi,
14284 &mimophytbl_info_rev7[idx]);
14285 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14286 for (idx = 0; idx < mimophytbl_info_sz_rev3; idx++)
14287 wlc_phy_write_table_nphy(pi,
14288 &mimophytbl_info_rev3[idx]);
14289 } else {
14290 for (idx = 0; idx < mimophytbl_info_sz_rev0; idx++)
14291 wlc_phy_write_table_nphy(pi,
14292 &mimophytbl_info_rev0[idx]);
14293 }
14294}
14295
a2627bc0
JC
14296static void WLBANDINITFN(wlc_phy_tbl_init_nphy) (phy_info_t *pi)
14297{
a9533e7e 14298 uint idx = 0;
e868ab03 14299 u8 antswctrllut;
a9533e7e
HP
14300
14301 if (pi->phy_init_por)
14302 wlc_phy_static_table_download_nphy(pi);
14303
14304 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14305
14306 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14307 pi->srom_fem2g.antswctrllut : pi->srom_fem5g.antswctrllut;
14308
14309 switch (antswctrllut) {
14310 case 0:
14311
14312 break;
14313
14314 case 1:
14315
14316 if (pi->aa2g == 7) {
14317
14318 wlc_phy_table_write_nphy(pi,
14319 NPHY_TBL_ID_ANTSWCTRLLUT,
14320 2, 0x21, 8,
14321 &ant_sw_ctrl_tbl_rev8_2o3
14322 [0]);
14323 } else {
14324 wlc_phy_table_write_nphy(pi,
14325 NPHY_TBL_ID_ANTSWCTRLLUT,
14326 2, 0x21, 8,
14327 &ant_sw_ctrl_tbl_rev8
14328 [0]);
14329 }
14330 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14331 2, 0x25, 8,
14332 &ant_sw_ctrl_tbl_rev8[2]);
14333 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14334 2, 0x29, 8,
14335 &ant_sw_ctrl_tbl_rev8[4]);
14336 break;
14337
14338 case 2:
14339
14340 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14341 2, 0x1, 8,
14342 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14343 [0]);
14344 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14345 2, 0x5, 8,
14346 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14347 [2]);
14348 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14349 2, 0x9, 8,
14350 &ant_sw_ctrl_tbl_rev8_2057v7_core0
14351 [4]);
14352
14353 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14354 2, 0x21, 8,
14355 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14356 [0]);
14357 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14358 2, 0x25, 8,
14359 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14360 [2]);
14361 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
14362 2, 0x29, 8,
14363 &ant_sw_ctrl_tbl_rev8_2057v7_core1
14364 [4]);
14365 break;
14366
14367 default:
14368
14369 ASSERT(0);
14370 break;
14371 }
14372
14373 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14374 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14375
14376 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14377 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14378 pi->srom_fem2g.antswctrllut : pi->
14379 srom_fem5g.antswctrllut;
14380 switch (antswctrllut) {
14381 case 0:
14382 wlc_phy_write_table_nphy(pi,
14383 &mimophytbl_info_rev3_volatile
14384 [idx]);
14385 break;
14386 case 1:
14387 wlc_phy_write_table_nphy(pi,
14388 &mimophytbl_info_rev3_volatile1
14389 [idx]);
14390 break;
14391 case 2:
14392 wlc_phy_write_table_nphy(pi,
14393 &mimophytbl_info_rev3_volatile2
14394 [idx]);
14395 break;
14396 case 3:
14397 wlc_phy_write_table_nphy(pi,
14398 &mimophytbl_info_rev3_volatile3
14399 [idx]);
14400 break;
14401 default:
14402
14403 ASSERT(0);
14404 break;
14405 }
14406 } else {
14407 wlc_phy_write_table_nphy(pi,
14408 &mimophytbl_info_rev3_volatile
14409 [idx]);
14410 }
14411 }
14412 } else {
14413 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++) {
14414 wlc_phy_write_table_nphy(pi,
14415 &mimophytbl_info_rev0_volatile
14416 [idx]);
14417 }
14418 }
14419}
14420
14421static void
7d4df48e 14422wlc_phy_write_txmacreg_nphy(phy_info_t *pi, u16 holdoff, u16 delay)
a9533e7e
HP
14423{
14424 write_phy_reg(pi, 0x77, holdoff);
14425 write_phy_reg(pi, 0xb4, delay);
14426}
14427
e868ab03 14428void wlc_phy_nphy_tkip_rifs_war(phy_info_t *pi, u8 rifs)
a9533e7e 14429{
7d4df48e 14430 u16 holdoff, delay;
a9533e7e
HP
14431
14432 if (rifs) {
14433
14434 holdoff = 0x10;
14435 delay = 0x258;
14436 } else {
14437
14438 holdoff = 0x15;
14439 delay = 0x320;
14440 }
14441
14442 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14443
14444 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs)) {
14445 pi->sh->_rifs_phy = rifs;
14446 }
14447}
14448
7cc4a4c0 14449bool wlc_phy_attach_nphy(phy_info_t *pi)
a9533e7e
HP
14450{
14451 uint i;
14452
14453 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6)) {
14454 pi->phyhang_avoid = TRUE;
14455 }
14456
14457 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14458
14459 pi->nphy_gband_spurwar_en = TRUE;
14460
14461 if (pi->sh->boardflags2 & BFL2_SPUR_WAR) {
14462 pi->nphy_aband_spurwar_en = TRUE;
14463 }
14464 }
14465 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14466
14467 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR) {
14468 pi->nphy_gband_spurwar2_en = TRUE;
14469 }
14470 }
14471
14472 pi->n_preamble_override = AUTO;
14473 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14474 pi->n_preamble_override = WLC_N_PREAMBLE_MIXEDMODE;
14475
14476 pi->nphy_txrx_chain = AUTO;
14477 pi->phy_scraminit = AUTO;
14478
14479 pi->nphy_rxcalparams = 0x010100B5;
14480
14481 pi->nphy_perical = PHY_PERICAL_MPHASE;
14482 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14483 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14484
14485 pi->nphy_gain_boost = TRUE;
14486 pi->nphy_elna_gain_config = FALSE;
14487 pi->radio_is_on = FALSE;
14488
14489 for (i = 0; i < pi->pubpi.phy_corenum; i++) {
14490 pi->nphy_txpwrindex[i].index = AUTO;
14491 }
14492
14493 wlc_phy_txpwrctrl_config_nphy(pi);
14494 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
14495 pi->hwpwrctrl_capable = TRUE;
14496
14497 pi->pi_fptr.init = wlc_phy_init_nphy;
14498 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14499 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14500 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14501
14502 if (!wlc_phy_txpwr_srom_read_nphy(pi))
14503 return FALSE;
14504
14505 return TRUE;
14506}
14507
0d2f0724 14508static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi)
a2627bc0 14509{
a9533e7e
HP
14510
14511 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14512 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14513 pi->phy_5g_pwrgain = TRUE;
14514 return;
14515 }
14516
14517 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
14518 pi->phy_5g_pwrgain = FALSE;
14519
14520 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14521 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14522 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14523 else if ((pi->sh->sromrev >= 4)
14524 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
14525 pi->phy_5g_pwrgain = TRUE;
14526}
14527
a2627bc0
JC
14528void WLBANDINITFN(wlc_phy_init_nphy) (phy_info_t *pi)
14529{
7d4df48e
GKH
14530 u16 val;
14531 u16 clip1_ths[2];
a9533e7e 14532 nphy_txgains_t target_gain;
e868ab03 14533 u8 tx_pwr_ctrl_state;
a9533e7e
HP
14534 bool do_nphy_cal = FALSE;
14535 uint core;
14536 uint origidx, intr_val;
14537 d11regs_t *regs;
66cbd3ab 14538 u32 d11_clk_ctl_st;
a9533e7e
HP
14539
14540 core = 0;
14541
14542 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN)) {
14543 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
14544 }
14545
14546 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
14547 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
14548 (pi->sh->chippkg == BCM4718_PKG_ID))) {
14549 if ((pi->sh->boardflags & BFL_EXTLNA) &&
14550 (CHSPEC_IS2G(pi->radio_chanspec))) {
14551 si_corereg(pi->sh->sih, SI_CC_IDX,
ce0f1b8c 14552 offsetof(chipcregs_t, chipcontrol), 0x40,
a9533e7e
HP
14553 0x40);
14554 }
14555 }
14556
14557 if ((!PHY_IPA(pi)) && (CHIPID(pi->sh->chip) == BCM5357_CHIP_ID)) {
14558 si_pmu_chipcontrol(pi->sh->sih, 1, CCTRL5357_EXTPA,
14559 CCTRL5357_EXTPA);
14560 }
14561
14562 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
14563 CHSPEC_IS40(pi->radio_chanspec)) {
14564
14565 regs = (d11regs_t *) si_switch_core(pi->sh->sih, D11_CORE_ID,
14566 &origidx, &intr_val);
14567 ASSERT(regs != NULL);
14568
14569 d11_clk_ctl_st = R_REG(pi->sh->osh, &regs->clk_ctl_st);
14570 AND_REG(pi->sh->osh, &regs->clk_ctl_st,
14571 ~(CCS_FORCEHT | CCS_HTAREQ));
14572
14573 W_REG(pi->sh->osh, &regs->clk_ctl_st, d11_clk_ctl_st);
14574
14575 si_restore_core(pi->sh->sih, origidx, intr_val);
14576 }
14577
14578 pi->use_int_tx_iqlo_cal_nphy =
14579 (PHY_IPA(pi) ||
14580 (NREV_GE(pi->pubpi.phy_rev, 7) ||
14581 (NREV_GE(pi->pubpi.phy_rev, 5)
14582 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
14583
14584 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = FALSE;
14585
14586 pi->nphy_deaf_count = 0;
14587
14588 wlc_phy_tbl_init_nphy(pi);
14589
14590 pi->nphy_crsminpwr_adjusted = FALSE;
14591 pi->nphy_noisevars_adjusted = FALSE;
14592
14593 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14594 write_phy_reg(pi, 0xe7, 0);
14595 write_phy_reg(pi, 0xec, 0);
14596 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14597 write_phy_reg(pi, 0x342, 0);
14598 write_phy_reg(pi, 0x343, 0);
14599 write_phy_reg(pi, 0x346, 0);
14600 write_phy_reg(pi, 0x347, 0);
14601 }
14602 write_phy_reg(pi, 0xe5, 0);
14603 write_phy_reg(pi, 0xe6, 0);
14604 } else {
14605 write_phy_reg(pi, 0xec, 0);
14606 }
14607
14608 write_phy_reg(pi, 0x91, 0);
14609 write_phy_reg(pi, 0x92, 0);
14610 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
14611 write_phy_reg(pi, 0x93, 0);
14612 write_phy_reg(pi, 0x94, 0);
14613 }
14614
14615 and_phy_reg(pi, 0xa1, ~3);
14616
14617 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14618 write_phy_reg(pi, 0x8f, 0);
14619 write_phy_reg(pi, 0xa5, 0);
14620 } else {
14621 write_phy_reg(pi, 0xa5, 0);
14622 }
14623
14624 if (NREV_IS(pi->pubpi.phy_rev, 2))
14625 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
14626 else if (NREV_LT(pi->pubpi.phy_rev, 2))
14627 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
14628
14629 write_phy_reg(pi, 0x203, 32);
14630 write_phy_reg(pi, 0x201, 32);
14631
14632 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
14633 write_phy_reg(pi, 0x20d, 160);
14634 else
14635 write_phy_reg(pi, 0x20d, 184);
14636
14637 write_phy_reg(pi, 0x13a, 200);
14638
14639 write_phy_reg(pi, 0x70, 80);
14640
14641 write_phy_reg(pi, 0x1ff, 48);
14642
14643 if (NREV_LT(pi->pubpi.phy_rev, 8)) {
14644 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
14645 }
14646
14647 wlc_phy_stf_chain_upd_nphy(pi);
14648
14649 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
14650 write_phy_reg(pi, 0x180, 0xaa8);
14651 write_phy_reg(pi, 0x181, 0x9a4);
14652 }
14653
14654 if (PHY_IPA(pi)) {
14655 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
14656
14657 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
14658 0x29b, (0x1 << 0), (1) << 0);
14659
14660 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
14661 0x29c, (0x1ff << 7),
14662 (pi->nphy_papd_epsilon_offset[core]) << 7);
14663
14664 }
14665
14666 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
14667 } else {
14668
14669 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
14670 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
14671 }
14672 }
14673
14674 wlc_phy_workarounds_nphy(pi);
14675
14676 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14677
14678 val = read_phy_reg(pi, 0x01);
14679 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14680 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14681 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14682
14683 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
14684
14685 wlc_phy_pa_override_nphy(pi, OFF);
14686 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
14687 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14688 wlc_phy_pa_override_nphy(pi, ON);
14689
14690 wlc_phy_classifier_nphy(pi, 0, 0);
14691 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
14692
14693 if (CHSPEC_IS2G(pi->radio_chanspec))
14694 wlc_phy_bphy_init_nphy(pi);
14695
14696 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
14697 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
14698
14699 wlc_phy_txpwr_fixpower_nphy(pi);
14700
14701 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
14702
14703 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
14704
14705 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
66cbd3ab 14706 u32 *tx_pwrctrl_tbl = NULL;
7d4df48e 14707 u16 idx;
e59fe083
GKH
14708 s16 pga_gn = 0;
14709 s16 pad_gn = 0;
3e26416e 14710 s32 rfpwr_offset = 0;
a9533e7e
HP
14711
14712 if (PHY_IPA(pi)) {
14713 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14714 } else {
14715 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14716 if NREV_IS
14717 (pi->pubpi.phy_rev, 3) {
14718 tx_pwrctrl_tbl =
14719 nphy_tpc_5GHz_txgain_rev3;
14720 } else if NREV_IS
14721 (pi->pubpi.phy_rev, 4) {
14722 tx_pwrctrl_tbl =
14723 (pi->srom_fem5g.extpagain == 3) ?
14724 nphy_tpc_5GHz_txgain_HiPwrEPA :
14725 nphy_tpc_5GHz_txgain_rev4;
14726 } else {
14727 tx_pwrctrl_tbl =
14728 nphy_tpc_5GHz_txgain_rev5;
14729 }
14730
14731 } else {
14732 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14733 if (pi->pubpi.radiorev == 5) {
14734 tx_pwrctrl_tbl =
14735 nphy_tpc_txgain_epa_2057rev5;
14736 } else if (pi->pubpi.radiorev == 3) {
14737 tx_pwrctrl_tbl =
14738 nphy_tpc_txgain_epa_2057rev3;
14739 }
14740
14741 } else {
14742 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14743 (pi->srom_fem2g.extpagain == 3)) {
14744 tx_pwrctrl_tbl =
14745 nphy_tpc_txgain_HiPwrEPA;
14746 } else {
14747 tx_pwrctrl_tbl =
14748 nphy_tpc_txgain_rev3;
14749 }
14750 }
14751 }
14752 }
14753
14754 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14755 192, 32, tx_pwrctrl_tbl);
14756 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14757 192, 32, tx_pwrctrl_tbl);
14758
7d4df48e 14759 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
a9533e7e
HP
14760
14761 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14762
14763 for (idx = 0; idx < 128; idx++) {
14764 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14765 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
14766
14767 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14768 if ((pi->pubpi.radiorev == 3) ||
14769 (pi->pubpi.radiorev == 4) ||
14770 (pi->pubpi.radiorev == 6)) {
e59fe083 14771 rfpwr_offset = (s16)
a9533e7e
HP
14772 nphy_papd_padgain_dlt_2g_2057rev3n4
14773 [pad_gn];
14774 } else if (pi->pubpi.radiorev == 5) {
e59fe083 14775 rfpwr_offset = (s16)
a9533e7e
HP
14776 nphy_papd_padgain_dlt_2g_2057rev5
14777 [pad_gn];
14778 } else if ((pi->pubpi.radiorev == 7)
14779 || (pi->pubpi.radiorev ==
14780 8)) {
e59fe083 14781 rfpwr_offset = (s16)
a9533e7e
HP
14782 nphy_papd_padgain_dlt_2g_2057rev7
14783 [pad_gn];
14784 } else {
14785 ASSERT(0);
14786 }
14787
14788 } else {
14789 if ((pi->pubpi.radiorev == 3) ||
14790 (pi->pubpi.radiorev == 4) ||
14791 (pi->pubpi.radiorev == 6)) {
e59fe083 14792 rfpwr_offset = (s16)
a9533e7e
HP
14793 nphy_papd_pgagain_dlt_5g_2057
14794 [pga_gn];
14795 } else if ((pi->pubpi.radiorev == 7)
14796 || (pi->pubpi.radiorev ==
14797 8)) {
e59fe083 14798 rfpwr_offset = (s16)
a9533e7e
HP
14799 nphy_papd_pgagain_dlt_5g_2057rev7
14800 [pga_gn];
14801 } else {
14802 ASSERT(0);
14803 }
14804 }
14805 wlc_phy_table_write_nphy(pi,
14806 NPHY_TBL_ID_CORE1TXPWRCTL,
14807 1, 576 + idx, 32,
14808 &rfpwr_offset);
14809 wlc_phy_table_write_nphy(pi,
14810 NPHY_TBL_ID_CORE2TXPWRCTL,
14811 1, 576 + idx, 32,
14812 &rfpwr_offset);
14813 }
14814 } else {
14815
14816 for (idx = 0; idx < 128; idx++) {
14817 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14818 if (CHSPEC_IS2G(pi->radio_chanspec)) {
e59fe083 14819 rfpwr_offset = (s16)
a9533e7e
HP
14820 nphy_papd_pga_gain_delta_ipa_2g
14821 [pga_gn];
14822 } else {
e59fe083 14823 rfpwr_offset = (s16)
a9533e7e
HP
14824 nphy_papd_pga_gain_delta_ipa_5g
14825 [pga_gn];
14826 }
14827
14828 wlc_phy_table_write_nphy(pi,
14829 NPHY_TBL_ID_CORE1TXPWRCTL,
14830 1, 576 + idx, 32,
14831 &rfpwr_offset);
14832 wlc_phy_table_write_nphy(pi,
14833 NPHY_TBL_ID_CORE2TXPWRCTL,
14834 1, 576 + idx, 32,
14835 &rfpwr_offset);
14836 }
14837
14838 }
14839 } else {
14840
14841 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14842 192, 32, nphy_tpc_txgain);
14843 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14844 192, 32, nphy_tpc_txgain);
14845 }
14846
14847 if (pi->sh->phyrxchain != 0x3) {
14848 wlc_phy_rxcore_setstate_nphy((wlc_phy_t *) pi,
14849 pi->sh->phyrxchain);
14850 }
14851
14852 if (PHY_PERICAL_MPHASE_PENDING(pi)) {
14853 wlc_phy_cal_perical_mphase_restart(pi);
14854 }
14855
14856 if (!NORADIO_ENAB(pi->pubpi)) {
14857 bool do_rssi_cal = FALSE;
14858
14859 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14860 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14861 (pi->nphy_rssical_chanspec_2G == 0) :
14862 (pi->nphy_rssical_chanspec_5G == 0);
14863
14864 if (do_rssi_cal) {
14865 wlc_phy_rssi_cal_nphy(pi);
14866 } else {
14867 wlc_phy_restore_rssical_nphy(pi);
14868 }
14869 } else {
14870 wlc_phy_rssi_cal_nphy(pi);
14871 }
14872
14873 if (!SCAN_RM_IN_PROGRESS(pi)) {
14874 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14875 (pi->nphy_iqcal_chanspec_2G == 0) :
14876 (pi->nphy_iqcal_chanspec_5G == 0);
14877 }
14878
14879 if (!pi->do_initcal)
14880 do_nphy_cal = FALSE;
14881
14882 if (do_nphy_cal) {
14883
14884 target_gain = wlc_phy_get_tx_gain_nphy(pi);
14885
14886 if (pi->antsel_type == ANTSEL_2x3)
14887 wlc_phy_antsel_init((wlc_phy_t *) pi, TRUE);
14888
14889 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
14890 wlc_phy_rssi_cal_nphy(pi);
14891
14892 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14893 pi->nphy_cal_orig_pwr_idx[0] =
14894 pi->nphy_txpwrindex[PHY_CORE_0].
14895 index_internal;
14896 pi->nphy_cal_orig_pwr_idx[1] =
14897 pi->nphy_txpwrindex[PHY_CORE_1].
14898 index_internal;
14899
14900 wlc_phy_precal_txgain_nphy(pi);
14901 target_gain =
14902 wlc_phy_get_tx_gain_nphy(pi);
14903 }
14904
14905 if (wlc_phy_cal_txiqlo_nphy
14906 (pi, target_gain, TRUE, FALSE) == BCME_OK) {
14907 if (wlc_phy_cal_rxiq_nphy
14908 (pi, target_gain, 2,
14909 FALSE) == BCME_OK) {
14910 wlc_phy_savecal_nphy(pi);
14911
14912 }
14913 }
14914 } else if (pi->mphase_cal_phase_id ==
14915 MPHASE_CAL_STATE_IDLE) {
14916
14917 wlc_phy_cal_perical((wlc_phy_t *) pi,
14918 PHY_PERICAL_PHYINIT);
14919 }
14920 } else {
14921 wlc_phy_restorecal_nphy(pi);
14922 }
14923 }
14924
14925 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
14926
14927 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
14928
14929 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
14930
14931 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
14932
14933 write_phy_reg(pi, 0x70, 50);
14934
14935 wlc_phy_txlpfbw_nphy(pi);
14936
14937 wlc_phy_spurwar_nphy(pi);
14938
14939}
14940
3e26416e 14941static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble)
a9533e7e
HP
14942{
14943 bool gf_preamble = FALSE;
7d4df48e 14944 u16 val;
a9533e7e
HP
14945
14946 if (preamble == WLC_N_PREAMBLE_GF) {
14947 gf_preamble = TRUE;
14948 }
14949
14950 val = read_phy_reg(pi, 0xed);
14951
14952 val |= RX_GF_MM_AUTO;
14953 val &= ~RX_GF_OR_MM;
14954 if (gf_preamble)
14955 val |= RX_GF_OR_MM;
14956
14957 write_phy_reg(pi, 0xed, val);
14958}
14959
7cc4a4c0 14960static void wlc_phy_resetcca_nphy(phy_info_t *pi)
a9533e7e 14961{
7d4df48e 14962 u16 val;
a9533e7e
HP
14963
14964 ASSERT(0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
14965
14966 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14967
14968 val = read_phy_reg(pi, 0x01);
14969 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14970 OSL_DELAY(1);
14971 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14972
14973 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14974
14975 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14976}
14977
7cc4a4c0 14978void wlc_phy_pa_override_nphy(phy_info_t *pi, bool en)
a9533e7e 14979{
7d4df48e 14980 u16 rfctrlintc_override_val;
a9533e7e
HP
14981
14982 if (!en) {
14983
14984 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
14985 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
14986
14987 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14988 rfctrlintc_override_val = 0x1480;
14989 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14990 rfctrlintc_override_val =
14991 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
14992 } else {
14993 rfctrlintc_override_val =
14994 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
14995 }
14996
14997 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
14998 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
14999 } else {
15000
15001 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
15002 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
15003 }
15004
15005}
15006
7cc4a4c0 15007void wlc_phy_stf_chain_upd_nphy(phy_info_t *pi)
a9533e7e
HP
15008{
15009
7d4df48e 15010 u16 txrx_chain =
a9533e7e
HP
15011 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
15012 bool CoreActv_override = FALSE;
15013
15014 if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN0) {
15015 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
15016 CoreActv_override = TRUE;
15017
15018 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15019 and_phy_reg(pi, 0xa0, ~0x20);
15020 }
15021 } else if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN1) {
15022 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
15023 CoreActv_override = TRUE;
15024
15025 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15026 or_phy_reg(pi, 0xa0, 0x20);
15027 }
15028 }
15029
15030 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
15031
15032 if (CoreActv_override) {
15033
15034 pi->nphy_perical = PHY_PERICAL_DISABLE;
15035 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
15036 } else {
15037 pi->nphy_perical = PHY_PERICAL_MPHASE;
15038 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
15039 }
15040}
15041
e868ab03 15042void wlc_phy_rxcore_setstate_nphy(wlc_phy_t *pih, u8 rxcore_bitmask)
a9533e7e 15043{
7d4df48e
GKH
15044 u16 regval;
15045 u16 tbl_buf[16];
a9533e7e
HP
15046 uint i;
15047 phy_info_t *pi = (phy_info_t *) pih;
7d4df48e 15048 u16 tbl_opcode;
a9533e7e
HP
15049 bool suspend;
15050
15051 pi->sh->phyrxchain = rxcore_bitmask;
15052
15053 if (!pi->sh->clk)
15054 return;
15055
15056 suspend =
15057 (0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
15058 if (!suspend)
15059 wlapi_suspend_mac_and_wait(pi->sh->physhim);
15060
15061 if (pi->phyhang_avoid)
15062 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
15063
15064 regval = read_phy_reg(pi, 0xa2);
15065 regval &= ~(0xf << 4);
7d4df48e 15066 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
a9533e7e
HP
15067 write_phy_reg(pi, 0xa2, regval);
15068
15069 if ((rxcore_bitmask & 0x3) != 0x3) {
15070
15071 write_phy_reg(pi, 0x20e, 1);
15072
15073 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15074 if (pi->rx2tx_biasentry == -1) {
15075 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
8d3d6a69 15076 ARRAY_SIZE(tbl_buf), 80,
a9533e7e
HP
15077 16, tbl_buf);
15078
8d3d6a69 15079 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
a9533e7e
HP
15080 if (tbl_buf[i] ==
15081 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15082
e868ab03 15083 pi->rx2tx_biasentry = (u8) i;
a9533e7e
HP
15084 tbl_opcode =
15085 NPHY_REV3_RFSEQ_CMD_NOP;
15086 wlc_phy_table_write_nphy(pi,
15087 NPHY_TBL_ID_RFSEQ,
15088 1, i,
15089 16,
15090 &tbl_opcode);
15091 break;
15092 } else if (tbl_buf[i] ==
15093 NPHY_REV3_RFSEQ_CMD_END) {
15094 break;
15095 }
15096 }
15097 }
15098 }
15099 } else {
15100
15101 write_phy_reg(pi, 0x20e, 30);
15102
15103 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15104 if (pi->rx2tx_biasentry != -1) {
15105 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
15106 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15107 1, pi->rx2tx_biasentry,
15108 16, &tbl_opcode);
15109 pi->rx2tx_biasentry = -1;
15110 }
15111 }
15112 }
15113
15114 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
15115
15116 if (pi->phyhang_avoid)
15117 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
15118
15119 if (!suspend)
15120 wlapi_enable_mac(pi->sh->physhim);
15121}
15122
e868ab03 15123u8 wlc_phy_rxcore_getstate_nphy(wlc_phy_t *pih)
a9533e7e 15124{
7d4df48e 15125 u16 regval, rxen_bits;
a9533e7e
HP
15126 phy_info_t *pi = (phy_info_t *) pih;
15127
15128 regval = read_phy_reg(pi, 0xa2);
15129 rxen_bits = (regval >> 4) & 0xf;
15130
e868ab03 15131 return (u8) rxen_bits;
a9533e7e
HP
15132}
15133
7cc4a4c0 15134bool wlc_phy_n_txpower_ipa_ison(phy_info_t *pi)
a9533e7e
HP
15135{
15136 return PHY_IPA(pi);
15137}
15138
7cc4a4c0 15139static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi)
a9533e7e 15140{
e868ab03 15141 u8 idx, idx2, i, delta_ind;
a9533e7e
HP
15142
15143 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++) {
15144 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
15145 }
15146
15147 for (i = 0; i < 4; i++) {
15148 idx2 = 0;
15149
15150 delta_ind = 0;
15151
15152 switch (i) {
15153 case 0:
15154
15155 if (CHSPEC_IS40(pi->radio_chanspec)
15156 && NPHY_IS_SROM_REINTERPRET) {
15157 idx = TXP_FIRST_MCS_40_SISO;
15158 } else {
15159 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15160 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15161 delta_ind = 1;
15162 }
15163 break;
15164
15165 case 1:
15166
15167 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15168 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15169 break;
15170
15171 case 2:
15172
15173 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15174 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15175 break;
15176
15177 case 3:
15178
15179 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15180 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15181 break;
15182 }
15183
15184 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15185 pi->tx_power_offset[idx];
15186 idx = idx + delta_ind;
15187 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15188 pi->tx_power_offset[idx];
15189 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15190 pi->tx_power_offset[idx];
15191 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15192 pi->tx_power_offset[idx++];
15193
15194 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15195 pi->tx_power_offset[idx++];
15196 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15197 pi->tx_power_offset[idx];
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
15203 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15204 pi->tx_power_offset[idx++];
15205 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15206 pi->tx_power_offset[idx];
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
15212 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15213 pi->tx_power_offset[idx];
15214 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15215 pi->tx_power_offset[idx++];
15216 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15217 pi->tx_power_offset[idx];
15218 idx = idx + 1 - delta_ind;
15219 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15220 pi->tx_power_offset[idx];
15221
15222 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15223 pi->tx_power_offset[idx];
15224 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15225 pi->tx_power_offset[idx];
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 }
15231}
15232
7cc4a4c0 15233void wlc_phy_cal_init_nphy(phy_info_t *pi)
a9533e7e
HP
15234{
15235}
15236
e868ab03 15237static void wlc_phy_war_force_trsw_to_R_cliplo_nphy(phy_info_t *pi, u8 core)
a9533e7e
HP
15238{
15239 if (core == PHY_CORE_0) {
15240 write_phy_reg(pi, 0x38, 0x4);
15241 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15242 write_phy_reg(pi, 0x37, 0x0060);
15243 } else {
15244 write_phy_reg(pi, 0x37, 0x1080);
15245 }
15246 } else if (core == PHY_CORE_1) {
15247 write_phy_reg(pi, 0x2ae, 0x4);
15248 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15249 write_phy_reg(pi, 0x2ad, 0x0060);
15250 } else {
15251 write_phy_reg(pi, 0x2ad, 0x1080);
15252 }
15253 }
15254}
15255
e868ab03 15256static void wlc_phy_war_txchain_upd_nphy(phy_info_t *pi, u8 txchain)
a9533e7e 15257{
e868ab03 15258 u8 txchain0, txchain1;
a9533e7e
HP
15259
15260 txchain0 = txchain & 0x1;
15261 txchain1 = (txchain & 0x2) >> 1;
15262 if (!txchain0) {
15263 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15264 }
15265
15266 if (!txchain1) {
15267 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15268 }
15269}
15270
7cc4a4c0 15271static void wlc_phy_workarounds_nphy(phy_info_t *pi)
a9533e7e 15272{
e868ab03 15273 u8 rfseq_rx2tx_events[] = {
a9533e7e
HP
15274 NPHY_RFSEQ_CMD_NOP,
15275 NPHY_RFSEQ_CMD_RXG_FBW,
15276 NPHY_RFSEQ_CMD_TR_SWITCH,
15277 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15278 NPHY_RFSEQ_CMD_RXPD_TXPD,
15279 NPHY_RFSEQ_CMD_TX_GAIN,
15280 NPHY_RFSEQ_CMD_EXT_PA
15281 };
e868ab03
GKH
15282 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
15283 u8 rfseq_tx2rx_events[] = {
a9533e7e
HP
15284 NPHY_RFSEQ_CMD_NOP,
15285 NPHY_RFSEQ_CMD_EXT_PA,
15286 NPHY_RFSEQ_CMD_TX_GAIN,
15287 NPHY_RFSEQ_CMD_RXPD_TXPD,
15288 NPHY_RFSEQ_CMD_TR_SWITCH,
15289 NPHY_RFSEQ_CMD_RXG_FBW,
15290 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15291 };
e868ab03
GKH
15292 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
15293 u8 rfseq_tx2rx_events_rev3[] = {
a9533e7e
HP
15294 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15295 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15296 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15297 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15298 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15299 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15300 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15301 NPHY_REV3_RFSEQ_CMD_END
15302 };
e868ab03
GKH
15303 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15304 u8 rfseq_rx2tx_events_rev3[] = {
a9533e7e
HP
15305 NPHY_REV3_RFSEQ_CMD_NOP,
15306 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15307 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15308 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15309 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15310 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15311 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15312 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15313 NPHY_REV3_RFSEQ_CMD_END
15314 };
e868ab03 15315 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
a9533e7e 15316
e868ab03 15317 u8 rfseq_rx2tx_events_rev3_ipa[] = {
a9533e7e
HP
15318 NPHY_REV3_RFSEQ_CMD_NOP,
15319 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15320 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15321 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15322 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15323 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15324 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS,
15325 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15326 NPHY_REV3_RFSEQ_CMD_END
15327 };
e868ab03 15328 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
7d4df48e 15329 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
a9533e7e 15330
e59fe083
GKH
15331 s16 alpha0, alpha1, alpha2;
15332 s16 beta0, beta1, beta2;
66cbd3ab 15333 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
a9533e7e 15334 stbc_data_weights;
e868ab03 15335 u8 chan_freq_range = 0;
7d4df48e
GKH
15336 u16 dac_control = 0x0002;
15337 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
15338 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15339 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15340 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15341 u16 *aux_adc_vmid;
15342 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
15343 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
15344 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
15345 u16 *aux_adc_gain;
15346 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15347 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
3e26416e
GKH
15348 s32 min_nvar_val = 0x18d;
15349 s32 min_nvar_offset_6mbps = 20;
e868ab03
GKH
15350 u8 pdetrange;
15351 u8 triso;
7d4df48e
GKH
15352 u16 regval;
15353 u16 afectrl_adc_ctrl1_rev7 = 0x20;
15354 u16 afectrl_adc_ctrl2_rev7 = 0x0;
15355 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
15356 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
15357 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
15358 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
15359 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15360 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15361 u16 ipalvlshift_3p3_war_en = 0;
15362 u16 rccal_bcap_val, rccal_scap_val;
15363 u16 rccal_tx20_11b_bcap = 0;
15364 u16 rccal_tx20_11b_scap = 0;
15365 u16 rccal_tx20_11n_bcap = 0;
15366 u16 rccal_tx20_11n_scap = 0;
15367 u16 rccal_tx40_11n_bcap = 0;
15368 u16 rccal_tx40_11n_scap = 0;
15369 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
15370 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
15371 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
15372 u16 tx_lpf_bw_ofdm_20mhz = 0;
15373 u16 tx_lpf_bw_ofdm_40mhz = 0;
15374 u16 tx_lpf_bw_11b = 0;
15375 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
15376 u16 txgm_idac_bleed = 0;
a9533e7e 15377 bool rccal_ovrd = FALSE;
7d4df48e 15378 u16 freq;
a9533e7e
HP
15379 int coreNum;
15380
15381 if (CHSPEC_IS5G(pi->radio_chanspec)) {
15382 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15383 } else {
15384 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
15385 }
15386
15387 if (pi->phyhang_avoid)
15388 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
15389
15390 if (!ISSIM_ENAB(pi->sh->sih)) {
15391 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
15392 }
15393
15394 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15395
15396 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
15397 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
15398
15399 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
15400 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
15401 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
15402 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
15403 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
15404 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
15405 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
15406 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
15407 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
15408 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
15409 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
15410 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
15411 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
15412 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
15413 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
15414 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
15415 }
15416
15417 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
15418 write_phy_reg(pi, 0x23f, 0x1b0);
15419 write_phy_reg(pi, 0x240, 0x1b0);
15420 }
15421
15422 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
15423 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
15424 }
15425
15426 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15427 &dac_control);
15428 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15429 &dac_control);
15430
15431 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15432 1, 0, 32, &leg_data_weights);
15433 leg_data_weights = leg_data_weights & 0xffffff;
15434 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15435 1, 0, 32, &leg_data_weights);
15436
15437 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15438 2, 0x15e, 16,
15439 rfseq_rx2tx_dacbufpu_rev7);
15440 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15441 rfseq_rx2tx_dacbufpu_rev7);
15442
15443 if (PHY_IPA(pi)) {
15444 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15445 rfseq_rx2tx_events_rev3_ipa,
15446 rfseq_rx2tx_dlys_rev3_ipa,
15447 sizeof
15448 (rfseq_rx2tx_events_rev3_ipa) /
15449 sizeof
15450 (rfseq_rx2tx_events_rev3_ipa
15451 [0]));
15452 }
15453
15454 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
15455 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
15456
15457 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
15458 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
15459 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
15460
15461 if (PHY_IPA(pi)) {
15462
15463 if (((pi->pubpi.radiorev == 5)
15464 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15465 || (pi->pubpi.radiorev == 7)
15466 || (pi->pubpi.radiorev == 8)) {
15467
15468 rccal_bcap_val =
15469 read_radio_reg(pi,
15470 RADIO_2057_RCCAL_BCAP_VAL);
15471 rccal_scap_val =
15472 read_radio_reg(pi,
15473 RADIO_2057_RCCAL_SCAP_VAL);
15474
15475 rccal_tx20_11b_bcap = rccal_bcap_val;
15476 rccal_tx20_11b_scap = rccal_scap_val;
15477
15478 if ((pi->pubpi.radiorev == 5) &&
15479 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
15480
15481 rccal_tx20_11n_bcap = rccal_bcap_val;
15482 rccal_tx20_11n_scap = rccal_scap_val;
15483 rccal_tx40_11n_bcap = 0xc;
15484 rccal_tx40_11n_scap = 0xc;
15485
15486 rccal_ovrd = TRUE;
15487
15488 } else if ((pi->pubpi.radiorev == 7)
15489 || (pi->pubpi.radiorev == 8)) {
15490
15491 tx_lpf_bw_ofdm_20mhz = 4;
15492 tx_lpf_bw_11b = 1;
15493
15494 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15495 rccal_tx20_11n_bcap = 0xc;
15496 rccal_tx20_11n_scap = 0xc;
15497 rccal_tx40_11n_bcap = 0xa;
15498 rccal_tx40_11n_scap = 0xa;
15499 } else {
15500 rccal_tx20_11n_bcap = 0x14;
15501 rccal_tx20_11n_scap = 0x14;
15502 rccal_tx40_11n_bcap = 0xf;
15503 rccal_tx40_11n_scap = 0xf;
15504 }
15505
15506 rccal_ovrd = TRUE;
15507 }
15508 }
15509
15510 } else {
15511
15512 if (pi->pubpi.radiorev == 5) {
15513
15514 tx_lpf_bw_ofdm_20mhz = 1;
15515 tx_lpf_bw_ofdm_40mhz = 3;
15516
15517 rccal_bcap_val =
15518 read_radio_reg(pi,
15519 RADIO_2057_RCCAL_BCAP_VAL);
15520 rccal_scap_val =
15521 read_radio_reg(pi,
15522 RADIO_2057_RCCAL_SCAP_VAL);
15523
15524 rccal_tx20_11b_bcap = rccal_bcap_val;
15525 rccal_tx20_11b_scap = rccal_scap_val;
15526
15527 rccal_tx20_11n_bcap = 0x13;
15528 rccal_tx20_11n_scap = 0x11;
15529 rccal_tx40_11n_bcap = 0x13;
15530 rccal_tx40_11n_scap = 0x11;
15531
15532 rccal_ovrd = TRUE;
15533 }
15534 }
15535
15536 if (rccal_ovrd) {
15537
15538 rx2tx_lpf_rc_lut_tx20_11b = (rccal_tx20_11b_bcap << 8) |
15539 (rccal_tx20_11b_scap << 3) | tx_lpf_bw_11b;
15540 rx2tx_lpf_rc_lut_tx20_11n = (rccal_tx20_11n_bcap << 8) |
15541 (rccal_tx20_11n_scap << 3) | tx_lpf_bw_ofdm_20mhz;
15542 rx2tx_lpf_rc_lut_tx40_11n = (rccal_tx40_11n_bcap << 8) |
15543 (rccal_tx40_11n_scap << 3) | tx_lpf_bw_ofdm_40mhz;
15544
15545 for (coreNum = 0; coreNum <= 1; coreNum++) {
15546 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15547 1,
15548 0x152 + coreNum * 0x10,
15549 16,
15550 &rx2tx_lpf_rc_lut_tx20_11b);
15551 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15552 1,
15553 0x153 + coreNum * 0x10,
15554 16,
15555 &rx2tx_lpf_rc_lut_tx20_11n);
15556 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15557 1,
15558 0x154 + coreNum * 0x10,
15559 16,
15560 &rx2tx_lpf_rc_lut_tx20_11n);
15561 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15562 1,
15563 0x155 + coreNum * 0x10,
15564 16,
15565 &rx2tx_lpf_rc_lut_tx40_11n);
15566 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15567 1,
15568 0x156 + coreNum * 0x10,
15569 16,
15570 &rx2tx_lpf_rc_lut_tx40_11n);
15571 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15572 1,
15573 0x157 + coreNum * 0x10,
15574 16,
15575 &rx2tx_lpf_rc_lut_tx40_11n);
15576 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15577 1,
15578 0x158 + coreNum * 0x10,
15579 16,
15580 &rx2tx_lpf_rc_lut_tx40_11n);
15581 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15582 1,
15583 0x159 + coreNum * 0x10,
15584 16,
15585 &rx2tx_lpf_rc_lut_tx40_11n);
15586 }
15587
15588 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
15589 1, 0x3, 0,
15590 NPHY_REV7_RFCTRLOVERRIDE_ID2);
15591 }
15592
15593 if (!NORADIO_ENAB(pi->pubpi)) {
15594 write_phy_reg(pi, 0x32f, 0x3);
15595 }
15596
15597 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
15598 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
15599 1, 0x3, 0,
15600 NPHY_REV7_RFCTRLOVERRIDE_ID0);
15601 }
15602
15603 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
15604 (pi->pubpi.radiorev == 6)) {
15605 if ((pi->sh->sromrev >= 8)
15606 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
15607 ipalvlshift_3p3_war_en = 1;
15608
15609 if (ipalvlshift_3p3_war_en) {
15610 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
15611 0x5);
15612 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15613 0x30);
15614 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15615 or_radio_reg(pi,
15616 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15617 0x1);
15618 or_radio_reg(pi,
15619 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15620 0x1);
15621
15622 ipa2g_mainbias = 0x1f;
15623
15624 ipa2g_casconv = 0x6f;
15625
15626 ipa2g_biasfilt = 0xaa;
15627 } else {
15628
15629 ipa2g_mainbias = 0x2b;
15630
15631 ipa2g_casconv = 0x7f;
15632
15633 ipa2g_biasfilt = 0xee;
15634 }
15635
15636 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15637 for (coreNum = 0; coreNum <= 1; coreNum++) {
15638 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15639 coreNum, IPA2G_IMAIN,
15640 ipa2g_mainbias);
15641 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15642 coreNum, IPA2G_CASCONV,
15643 ipa2g_casconv);
15644 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15645 coreNum,
15646 IPA2G_BIAS_FILTER,
15647 ipa2g_biasfilt);
15648 }
15649 }
15650 }
15651
15652 if (PHY_IPA(pi)) {
15653 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15654 if ((pi->pubpi.radiorev == 3)
15655 || (pi->pubpi.radiorev == 4)
15656 || (pi->pubpi.radiorev == 6)) {
15657
15658 txgm_idac_bleed = 0x7f;
15659 }
15660
15661 for (coreNum = 0; coreNum <= 1; coreNum++) {
15662 if (txgm_idac_bleed != 0)
15663 WRITE_RADIO_REG4(pi, RADIO_2057,
15664 CORE, coreNum,
15665 TXGM_IDAC_BLEED,
15666 txgm_idac_bleed);
15667 }
15668
15669 if (pi->pubpi.radiorev == 5) {
15670
15671 for (coreNum = 0; coreNum <= 1;
15672 coreNum++) {
15673 WRITE_RADIO_REG4(pi, RADIO_2057,
15674 CORE, coreNum,
15675 IPA2G_CASCONV,
15676 0x13);
15677 WRITE_RADIO_REG4(pi, RADIO_2057,
15678 CORE, coreNum,
15679 IPA2G_IMAIN,
15680 0x1f);
15681 WRITE_RADIO_REG4(pi, RADIO_2057,
15682 CORE, coreNum,
15683 IPA2G_BIAS_FILTER,
15684 0xee);
15685 WRITE_RADIO_REG4(pi, RADIO_2057,
15686 CORE, coreNum,
15687 PAD2G_IDACS,
15688 0x8a);
15689 WRITE_RADIO_REG4(pi, RADIO_2057,
15690 CORE, coreNum,
15691 PAD_BIAS_FILTER_BWS,
15692 0x3e);
15693 }
15694
15695 } else if ((pi->pubpi.radiorev == 7)
15696 || (pi->pubpi.radiorev == 8)) {
15697
15698 if (CHSPEC_IS40(pi->radio_chanspec) ==
15699 0) {
15700 WRITE_RADIO_REG4(pi, RADIO_2057,
15701 CORE, 0,
15702 IPA2G_IMAIN,
15703 0x14);
15704 WRITE_RADIO_REG4(pi, RADIO_2057,
15705 CORE, 1,
15706 IPA2G_IMAIN,
15707 0x12);
15708 } else {
15709 WRITE_RADIO_REG4(pi, RADIO_2057,
15710 CORE, 0,
15711 IPA2G_IMAIN,
15712 0x16);
15713 WRITE_RADIO_REG4(pi, RADIO_2057,
15714 CORE, 1,
15715 IPA2G_IMAIN,
15716 0x16);
15717 }
15718 }
15719
15720 } else {
15721 freq =
15722 CHAN5G_FREQ(CHSPEC_CHANNEL
15723 (pi->radio_chanspec));
15724 if (((freq >= 5180) && (freq <= 5230))
15725 || ((freq >= 5745) && (freq <= 5805))) {
15726 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15727 0, IPA5G_BIAS_FILTER,
15728 0xff);
15729 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15730 1, IPA5G_BIAS_FILTER,
15731 0xff);
15732 }
15733 }
15734 } else {
15735
15736 if (pi->pubpi.radiorev != 5) {
15737 for (coreNum = 0; coreNum <= 1; coreNum++) {
15738 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15739 coreNum,
15740 TXMIX2G_TUNE_BOOST_PU,
15741 0x61);
15742 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15743 coreNum,
15744 TXGM_IDAC_BLEED, 0x70);
15745 }
15746 }
15747 }
15748
15749 if (pi->pubpi.radiorev == 4) {
15750 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15751 0x05, 16,
15752 &afectrl_adc_ctrl1_rev7);
15753 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15754 0x15, 16,
15755 &afectrl_adc_ctrl1_rev7);
15756
15757 for (coreNum = 0; coreNum <= 1; coreNum++) {
15758 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15759 AFE_VCM_CAL_MASTER, 0x0);
15760 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15761 AFE_SET_VCM_I, 0x3f);
15762 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15763 AFE_SET_VCM_Q, 0x3f);
15764 }
15765 } else {
15766 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
15767 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
15768 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
15769 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
15770
15771 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
15772 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
15773 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
15774 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
15775
15776 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15777 0x05, 16,
15778 &afectrl_adc_ctrl2_rev7);
15779 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15780 0x15, 16,
15781 &afectrl_adc_ctrl2_rev7);
15782
15783 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
15784 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
15785 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
15786 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
15787 }
15788
15789 write_phy_reg(pi, 0x6a, 0x2);
15790
15791 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
15792 &min_nvar_offset_6mbps);
15793
15794 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
15795 &rfseq_pktgn_lpf_hpc_rev7);
15796
15797 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
15798 &rfseq_pktgn_lpf_h_hpc_rev7);
15799
15800 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
15801 &rfseq_htpktgn_lpf_hpc_rev7);
15802
15803 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
15804 &rfseq_cckpktgn_lpf_hpc_rev7);
15805
15806 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
15807 &rfseq_tx2rx_lpf_h_hpc_rev7);
15808
15809 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
15810 &rfseq_rx2tx_lpf_h_hpc_rev7);
15811
15812 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15813 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15814 32, &min_nvar_val);
15815 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15816 127, 32, &min_nvar_val);
15817 } else {
15818 min_nvar_val = noise_var_tbl_rev7[3];
15819 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15820 32, &min_nvar_val);
15821
15822 min_nvar_val = noise_var_tbl_rev7[127];
15823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15824 127, 32, &min_nvar_val);
15825 }
15826
15827 wlc_phy_workarounds_nphy_gainctrl(pi);
15828
15829 pdetrange =
15830 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15831 pdetrange : pi->srom_fem2g.pdetrange;
15832
15833 if (pdetrange == 0) {
15834 chan_freq_range =
15835 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15836 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15837 aux_adc_vmid_rev7_core0[3] = 0x70;
15838 aux_adc_vmid_rev7_core1[3] = 0x70;
15839 aux_adc_gain_rev7[3] = 2;
15840 } else {
15841 aux_adc_vmid_rev7_core0[3] = 0x80;
15842 aux_adc_vmid_rev7_core1[3] = 0x80;
15843 aux_adc_gain_rev7[3] = 3;
15844 }
15845 } else if (pdetrange == 1) {
15846 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15847 aux_adc_vmid_rev7_core0[3] = 0x7c;
15848 aux_adc_vmid_rev7_core1[3] = 0x7c;
15849 aux_adc_gain_rev7[3] = 2;
15850 } else {
15851 aux_adc_vmid_rev7_core0[3] = 0x8c;
15852 aux_adc_vmid_rev7_core1[3] = 0x8c;
15853 aux_adc_gain_rev7[3] = 1;
15854 }
15855 } else if (pdetrange == 2) {
15856 if (pi->pubpi.radioid == BCM2057_ID) {
15857 if ((pi->pubpi.radiorev == 5)
15858 || (pi->pubpi.radiorev == 7)
15859 || (pi->pubpi.radiorev == 8)) {
15860 if (chan_freq_range ==
15861 WL_CHAN_FREQ_RANGE_2G) {
15862 aux_adc_vmid_rev7_core0[3] =
15863 0x8c;
15864 aux_adc_vmid_rev7_core1[3] =
15865 0x8c;
15866 aux_adc_gain_rev7[3] = 0;
15867 } else {
15868 aux_adc_vmid_rev7_core0[3] =
15869 0x96;
15870 aux_adc_vmid_rev7_core1[3] =
15871 0x96;
15872 aux_adc_gain_rev7[3] = 0;
15873 }
15874 }
15875 }
15876
15877 } else if (pdetrange == 3) {
15878 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
15879 aux_adc_vmid_rev7_core0[3] = 0x89;
15880 aux_adc_vmid_rev7_core1[3] = 0x89;
15881 aux_adc_gain_rev7[3] = 0;
15882 }
15883
15884 } else if (pdetrange == 5) {
15885
15886 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15887 aux_adc_vmid_rev7_core0[3] = 0x80;
15888 aux_adc_vmid_rev7_core1[3] = 0x80;
15889 aux_adc_gain_rev7[3] = 3;
15890 } else {
15891 aux_adc_vmid_rev7_core0[3] = 0x70;
15892 aux_adc_vmid_rev7_core1[3] = 0x70;
15893 aux_adc_gain_rev7[3] = 2;
15894 }
15895 }
15896
15897 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
15898 &aux_adc_vmid_rev7_core0);
15899 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
15900 &aux_adc_vmid_rev7_core1);
15901 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
15902 &aux_adc_gain_rev7);
15903 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
15904 &aux_adc_gain_rev7);
15905
15906 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15907
15908 write_phy_reg(pi, 0x23f, 0x1f8);
15909 write_phy_reg(pi, 0x240, 0x1f8);
15910
15911 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15912 1, 0, 32, &leg_data_weights);
15913 leg_data_weights = leg_data_weights & 0xffffff;
15914 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15915 1, 0, 32, &leg_data_weights);
15916
15917 alpha0 = 293;
15918 alpha1 = 435;
15919 alpha2 = 261;
15920 beta0 = 366;
15921 beta1 = 205;
15922 beta2 = 32;
15923 write_phy_reg(pi, 0x145, alpha0);
15924 write_phy_reg(pi, 0x146, alpha1);
15925 write_phy_reg(pi, 0x147, alpha2);
15926 write_phy_reg(pi, 0x148, beta0);
15927 write_phy_reg(pi, 0x149, beta1);
15928 write_phy_reg(pi, 0x14a, beta2);
15929
15930 write_phy_reg(pi, 0x38, 0xC);
15931 write_phy_reg(pi, 0x2ae, 0xC);
15932
15933 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
15934 rfseq_tx2rx_events_rev3,
15935 rfseq_tx2rx_dlys_rev3,
15936 sizeof(rfseq_tx2rx_events_rev3) /
15937 sizeof(rfseq_tx2rx_events_rev3[0]));
15938
15939 if (PHY_IPA(pi)) {
15940 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15941 rfseq_rx2tx_events_rev3_ipa,
15942 rfseq_rx2tx_dlys_rev3_ipa,
15943 sizeof
15944 (rfseq_rx2tx_events_rev3_ipa) /
15945 sizeof
15946 (rfseq_rx2tx_events_rev3_ipa
15947 [0]));
15948 }
15949
15950 if ((pi->sh->hw_phyrxchain != 0x3) &&
15951 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15952
15953 if (PHY_IPA(pi)) {
15954 rfseq_rx2tx_dlys_rev3[5] = 59;
15955 rfseq_rx2tx_dlys_rev3[6] = 1;
15956 rfseq_rx2tx_events_rev3[7] =
15957 NPHY_REV3_RFSEQ_CMD_END;
15958 }
15959
15960 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15961 rfseq_rx2tx_events_rev3,
15962 rfseq_rx2tx_dlys_rev3,
15963 sizeof(rfseq_rx2tx_events_rev3) /
15964 sizeof(rfseq_rx2tx_events_rev3
15965 [0]));
15966 }
15967
15968 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15969 write_phy_reg(pi, 0x6a, 0x2);
15970 } else {
15971 write_phy_reg(pi, 0x6a, 0x9c40);
15972 }
15973
15974 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
15975
15976 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15977 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15978 32, &min_nvar_val);
15979 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15980 127, 32, &min_nvar_val);
15981 } else {
15982 min_nvar_val = noise_var_tbl_rev3[3];
15983 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15984 32, &min_nvar_val);
15985
15986 min_nvar_val = noise_var_tbl_rev3[127];
15987 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15988 127, 32, &min_nvar_val);
15989 }
15990
15991 wlc_phy_workarounds_nphy_gainctrl(pi);
15992
15993 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15994 &dac_control);
15995 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15996 &dac_control);
15997
15998 pdetrange =
15999 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16000 pdetrange : pi->srom_fem2g.pdetrange;
16001
16002 if (pdetrange == 0) {
16003 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
16004 aux_adc_vmid = aux_adc_vmid_rev4;
16005 aux_adc_gain = aux_adc_gain_rev4;
16006 } else {
16007 aux_adc_vmid = aux_adc_vmid_rev3;
16008 aux_adc_gain = aux_adc_gain_rev3;
16009 }
16010 chan_freq_range =
16011 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16012 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16013 switch (chan_freq_range) {
16014 case WL_CHAN_FREQ_RANGE_5GL:
16015 aux_adc_vmid[3] = 0x89;
16016 aux_adc_gain[3] = 0;
16017 break;
16018 case WL_CHAN_FREQ_RANGE_5GM:
16019 aux_adc_vmid[3] = 0x89;
16020 aux_adc_gain[3] = 0;
16021 break;
16022 case WL_CHAN_FREQ_RANGE_5GH:
16023 aux_adc_vmid[3] = 0x89;
16024 aux_adc_gain[3] = 0;
16025 break;
16026 default:
16027 break;
16028 }
16029 }
16030 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16031 0x08, 16, aux_adc_vmid);
16032 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16033 0x18, 16, aux_adc_vmid);
16034 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16035 0x0c, 16, aux_adc_gain);
16036 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16037 0x1c, 16, aux_adc_gain);
16038 } else if (pdetrange == 1) {
16039 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16040 0x08, 16, sk_adc_vmid);
16041 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16042 0x18, 16, sk_adc_vmid);
16043 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16044 0x0c, 16, sk_adc_gain);
16045 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16046 0x1c, 16, sk_adc_gain);
16047 } else if (pdetrange == 2) {
16048
7d4df48e
GKH
16049 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16050 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
a9533e7e
HP
16051
16052 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16053 chan_freq_range =
16054 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16055 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16056 bcm_adc_vmid[3] = 0x8e;
16057 bcm_adc_gain[3] = 0x03;
16058 } else {
16059 bcm_adc_vmid[3] = 0x94;
16060 bcm_adc_gain[3] = 0x03;
16061 }
16062 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16063 bcm_adc_vmid[3] = 0x84;
16064 bcm_adc_gain[3] = 0x02;
16065 }
16066
16067 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16068 0x08, 16, bcm_adc_vmid);
16069 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16070 0x18, 16, bcm_adc_vmid);
16071 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16072 0x0c, 16, bcm_adc_gain);
16073 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16074 0x1c, 16, bcm_adc_gain);
16075 } else if (pdetrange == 3) {
16076 chan_freq_range =
16077 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16078 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16079 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16080
7d4df48e 16081 u16 auxadc_vmid[] = {
e5c4536f 16082 0xa2, 0xb4, 0xb4, 0x270 };
7d4df48e 16083 u16 auxadc_gain[] = {
e5c4536f 16084 0x02, 0x02, 0x02, 0x00 };
a9533e7e
HP
16085
16086 wlc_phy_table_write_nphy(pi,
16087 NPHY_TBL_ID_AFECTRL, 4,
16088 0x08, 16, auxadc_vmid);
16089 wlc_phy_table_write_nphy(pi,
16090 NPHY_TBL_ID_AFECTRL, 4,
16091 0x18, 16, auxadc_vmid);
16092 wlc_phy_table_write_nphy(pi,
16093 NPHY_TBL_ID_AFECTRL, 4,
16094 0x0c, 16, auxadc_gain);
16095 wlc_phy_table_write_nphy(pi,
16096 NPHY_TBL_ID_AFECTRL, 4,
16097 0x1c, 16, auxadc_gain);
16098 }
16099 } else if ((pdetrange == 4) || (pdetrange == 5)) {
7d4df48e
GKH
16100 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16101 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16102 u16 Vmid[2], Av[2];
a9533e7e
HP
16103
16104 chan_freq_range =
16105 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16106 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16107 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16108 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16109 Av[0] = (pdetrange == 4) ? 2 : 0;
16110 Av[1] = (pdetrange == 4) ? 2 : 0;
16111 } else {
16112 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16113 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16114 Av[0] = (pdetrange == 4) ? 2 : 0;
16115 Av[1] = (pdetrange == 4) ? 2 : 0;
16116 }
16117
16118 bcm_adc_vmid[3] = Vmid[0];
16119 bcm_adc_gain[3] = Av[0];
16120 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16121 0x08, 16, bcm_adc_vmid);
16122 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16123 0x0c, 16, bcm_adc_gain);
16124
16125 bcm_adc_vmid[3] = Vmid[1];
16126 bcm_adc_gain[3] = Av[1];
16127 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16128 0x18, 16, bcm_adc_vmid);
16129 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16130 0x1c, 16, bcm_adc_gain);
16131 } else {
16132 ASSERT(0);
16133 }
16134
16135 write_radio_reg(pi,
16136 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16137 0x0);
16138 write_radio_reg(pi,
16139 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16140 0x0);
16141
16142 write_radio_reg(pi,
16143 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16144 0x6);
16145 write_radio_reg(pi,
16146 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16147 0x6);
16148
16149 write_radio_reg(pi,
16150 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16151 0x7);
16152 write_radio_reg(pi,
16153 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16154 0x7);
16155
16156 write_radio_reg(pi,
16157 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16158 0x88);
16159 write_radio_reg(pi,
16160 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16161 0x88);
16162
16163 write_radio_reg(pi,
16164 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16165 0x0);
16166 write_radio_reg(pi,
16167 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16168 0x0);
16169
16170 write_radio_reg(pi,
16171 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16172 0x0);
16173 write_radio_reg(pi,
16174 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16175 0x0);
16176
16177 triso =
16178 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16179 triso : pi->srom_fem2g.triso;
16180 if (triso == 7) {
16181 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16182 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16183 }
16184
16185 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16186
16187 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16188 (CHSPEC_IS5G(pi->radio_chanspec))) ||
16189 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16190 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16191 (CHSPEC_IS2G(pi->radio_chanspec)))) {
16192 nss1_data_weights = 0x00088888;
16193 ht_data_weights = 0x00088888;
16194 stbc_data_weights = 0x00088888;
16195 } else {
16196 nss1_data_weights = 0x88888888;
16197 ht_data_weights = 0x88888888;
16198 stbc_data_weights = 0x88888888;
16199 }
16200 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16201 1, 1, 32, &nss1_data_weights);
16202 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16203 1, 2, 32, &ht_data_weights);
16204 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16205 1, 3, 32, &stbc_data_weights);
16206
16207 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16208 if (CHSPEC_IS5G(pi->radio_chanspec)) {
16209 write_radio_reg(pi,
16210 RADIO_2056_TX_GMBB_IDAC |
16211 RADIO_2056_TX0, 0x70);
16212 write_radio_reg(pi,
16213 RADIO_2056_TX_GMBB_IDAC |
16214 RADIO_2056_TX1, 0x70);
16215 }
16216 }
16217
16218 if (!pi->edcrs_threshold_lock) {
16219 write_phy_reg(pi, 0x224, 0x3eb);
16220 write_phy_reg(pi, 0x225, 0x3eb);
16221 write_phy_reg(pi, 0x226, 0x341);
16222 write_phy_reg(pi, 0x227, 0x341);
16223 write_phy_reg(pi, 0x228, 0x42b);
16224 write_phy_reg(pi, 0x229, 0x42b);
16225 write_phy_reg(pi, 0x22a, 0x381);
16226 write_phy_reg(pi, 0x22b, 0x381);
16227 write_phy_reg(pi, 0x22c, 0x42b);
16228 write_phy_reg(pi, 0x22d, 0x42b);
16229 write_phy_reg(pi, 0x22e, 0x381);
16230 write_phy_reg(pi, 0x22f, 0x381);
16231 }
16232
16233 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16234
16235 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK) {
16236 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16237 MHF4_BPHY_TXCORE0,
16238 MHF4_BPHY_TXCORE0, WLC_BAND_ALL);
16239 }
16240 }
16241 } else {
16242
16243 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16244 (pi->sh->boardtype == 0x8b)) {
16245 uint i;
e868ab03 16246 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
8d3d6a69 16247 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
a9533e7e
HP
16248 rfseq_rx2tx_dlys[i] = war_dlys[i];
16249 }
16250
16251 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16252 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16253 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16254 } else {
16255 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16256 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16257 }
16258
16259 regval = 0x000a;
16260 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16261 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16262
16263 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16264 regval = 0xcdaa;
16265 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16266 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16267 }
16268
16269 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16270 regval = 0x0000;
16271 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16272 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16273
16274 regval = 0x7aab;
16275 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16276 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16277
16278 regval = 0x0800;
16279 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16280 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
16281 }
16282
16283 write_phy_reg(pi, 0xf8, 0x02d8);
16284 write_phy_reg(pi, 0xf9, 0x0301);
16285 write_phy_reg(pi, 0xfa, 0x02d8);
16286 write_phy_reg(pi, 0xfb, 0x0301);
16287
16288 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16289 rfseq_rx2tx_dlys,
16290 sizeof(rfseq_rx2tx_events) /
16291 sizeof(rfseq_rx2tx_events[0]));
16292
16293 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16294 rfseq_tx2rx_dlys,
16295 sizeof(rfseq_tx2rx_events) /
16296 sizeof(rfseq_tx2rx_events[0]));
16297
16298 wlc_phy_workarounds_nphy_gainctrl(pi);
16299
16300 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16301
16302 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16303 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16304 MHF3_NPHY_MLADV_WAR,
16305 MHF3_NPHY_MLADV_WAR,
16306 WLC_BAND_ALL);
16307
16308 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16309 write_phy_reg(pi, 0x1e3, 0x0);
16310 write_phy_reg(pi, 0x1e4, 0x0);
16311 }
16312
16313 if (NREV_LT(pi->pubpi.phy_rev, 2))
16314 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
16315
16316 alpha0 = 293;
16317 alpha1 = 435;
16318 alpha2 = 261;
16319 beta0 = 366;
16320 beta1 = 205;
16321 beta2 = 32;
16322 write_phy_reg(pi, 0x145, alpha0);
16323 write_phy_reg(pi, 0x146, alpha1);
16324 write_phy_reg(pi, 0x147, alpha2);
16325 write_phy_reg(pi, 0x148, beta0);
16326 write_phy_reg(pi, 0x149, beta1);
16327 write_phy_reg(pi, 0x14a, beta2);
16328
16329 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16330 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
16331
16332 write_phy_reg(pi, 0x192, 0xb5);
16333 write_phy_reg(pi, 0x193, 0xa4);
16334 write_phy_reg(pi, 0x194, 0x0);
16335 }
16336
16337 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16338 mod_phy_reg(pi, 0x221,
16339 NPHY_FORCESIG_DECODEGATEDCLKS,
16340 NPHY_FORCESIG_DECODEGATEDCLKS);
16341 }
16342 }
16343
16344 if (pi->phyhang_avoid)
16345 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
16346}
16347
7cc4a4c0 16348static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi)
a9533e7e 16349{
7d4df48e 16350 u16 w1th, hpf_code, currband;
a9533e7e 16351 int ctr;
e868ab03 16352 u8 rfseq_updategainu_events[] = {
a9533e7e
HP
16353 NPHY_RFSEQ_CMD_RX_GAIN,
16354 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16355 NPHY_RFSEQ_CMD_SET_HPF_BW
16356 };
e868ab03 16357 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
562c8850
GKH
16358 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
16359 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
16360 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
16361 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
16362 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
16363 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
16364 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
16365 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
16366 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
16367 s8 *lna1_gain_db = NULL;
16368 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
16369 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
16370 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
16371 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
16372 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
16373 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
16374 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
16375 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
16376 s8 *lna2_gain_db = NULL;
16377 s8 tiaG_gain_db[] = {
e5c4536f 16378 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
562c8850 16379 s8 tiaA_gain_db[] = {
e5c4536f 16380 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
562c8850 16381 s8 tiaA_gain_db_rev4[] = {
e5c4536f 16382 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850 16383 s8 tiaA_gain_db_rev5[] = {
e5c4536f 16384 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850 16385 s8 tiaA_gain_db_rev6[] = {
e5c4536f 16386 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850
GKH
16387 s8 *tia_gain_db;
16388 s8 tiaG_gainbits[] = {
e5c4536f 16389 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
562c8850 16390 s8 tiaA_gainbits[] = {
e5c4536f 16391 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
562c8850 16392 s8 tiaA_gainbits_rev4[] = {
e5c4536f 16393 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850 16394 s8 tiaA_gainbits_rev5[] = {
e5c4536f 16395 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850 16396 s8 tiaA_gainbits_rev6[] = {
e5c4536f 16397 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850
GKH
16398 s8 *tia_gainbits;
16399 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16400 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
7d4df48e
GKH
16401 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16402 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16403 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
16404 u16 rfseqG_init_gain_rev5_elna[] = {
e5c4536f 16405 0x013f, 0x013f, 0x013f, 0x013f };
7d4df48e
GKH
16406 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
16407 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
16408 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
16409 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16410 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
16411 u16 rfseqA_init_gain_rev4_elna[] = {
e5c4536f 16412 0x314f, 0x314f, 0x314f, 0x314f };
7d4df48e
GKH
16413 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16414 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
16415 u16 *rfseq_init_gain;
16416 u16 initG_gaincode = 0x627e;
16417 u16 initG_gaincode_rev4 = 0x527e;
16418 u16 initG_gaincode_rev5 = 0x427e;
16419 u16 initG_gaincode_rev5_elna = 0x027e;
16420 u16 initG_gaincode_rev6 = 0x527e;
16421 u16 initG_gaincode_rev6_224B0 = 0x427e;
16422 u16 initG_gaincode_rev6_elna = 0x127e;
16423 u16 initA_gaincode = 0x52de;
16424 u16 initA_gaincode_rev4 = 0x629e;
16425 u16 initA_gaincode_rev4_elna = 0x329e;
16426 u16 initA_gaincode_rev5 = 0x729e;
16427 u16 initA_gaincode_rev6 = 0x729e;
16428 u16 init_gaincode;
16429 u16 clip1hiG_gaincode = 0x107e;
16430 u16 clip1hiG_gaincode_rev4 = 0x007e;
16431 u16 clip1hiG_gaincode_rev5 = 0x1076;
16432 u16 clip1hiG_gaincode_rev6 = 0x007e;
16433 u16 clip1hiA_gaincode = 0x00de;
16434 u16 clip1hiA_gaincode_rev4 = 0x029e;
16435 u16 clip1hiA_gaincode_rev5 = 0x029e;
16436 u16 clip1hiA_gaincode_rev6 = 0x029e;
16437 u16 clip1hi_gaincode;
16438 u16 clip1mdG_gaincode = 0x0066;
16439 u16 clip1mdA_gaincode = 0x00ca;
16440 u16 clip1mdA_gaincode_rev4 = 0x1084;
16441 u16 clip1mdA_gaincode_rev5 = 0x2084;
16442 u16 clip1mdA_gaincode_rev6 = 0x2084;
16443 u16 clip1md_gaincode = 0;
16444 u16 clip1loG_gaincode = 0x0074;
16445 u16 clip1loG_gaincode_rev5[] = {
a9533e7e
HP
16446 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16447 };
7d4df48e 16448 u16 clip1loG_gaincode_rev6[] = {
a9533e7e
HP
16449 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16450 };
7d4df48e
GKH
16451 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
16452 u16 clip1loA_gaincode = 0x00cc;
16453 u16 clip1loA_gaincode_rev4 = 0x0086;
16454 u16 clip1loA_gaincode_rev5 = 0x2086;
16455 u16 clip1loA_gaincode_rev6 = 0x2086;
16456 u16 clip1lo_gaincode;
e868ab03
GKH
16457 u8 crsminG_th = 0x18;
16458 u8 crsminG_th_rev5 = 0x18;
16459 u8 crsminG_th_rev6 = 0x18;
16460 u8 crsminA_th = 0x1e;
16461 u8 crsminA_th_rev4 = 0x24;
16462 u8 crsminA_th_rev5 = 0x24;
16463 u8 crsminA_th_rev6 = 0x24;
16464 u8 crsmin_th;
16465 u8 crsminlG_th = 0x18;
16466 u8 crsminlG_th_rev5 = 0x18;
16467 u8 crsminlG_th_rev6 = 0x18;
16468 u8 crsminlA_th = 0x1e;
16469 u8 crsminlA_th_rev4 = 0x24;
16470 u8 crsminlA_th_rev5 = 0x24;
16471 u8 crsminlA_th_rev6 = 0x24;
16472 u8 crsminl_th = 0;
16473 u8 crsminuG_th = 0x18;
16474 u8 crsminuG_th_rev5 = 0x18;
16475 u8 crsminuG_th_rev6 = 0x18;
16476 u8 crsminuA_th = 0x1e;
16477 u8 crsminuA_th_rev4 = 0x24;
16478 u8 crsminuA_th_rev5 = 0x24;
16479 u8 crsminuA_th_rev6 = 0x24;
16480 u8 crsminuA_th_rev6_224B0 = 0x2d;
16481 u8 crsminu_th;
7d4df48e
GKH
16482 u16 nbclipG_th = 0x20d;
16483 u16 nbclipG_th_rev4 = 0x1a1;
16484 u16 nbclipG_th_rev5 = 0x1d0;
16485 u16 nbclipG_th_rev6 = 0x1d0;
16486 u16 nbclipA_th = 0x1a1;
16487 u16 nbclipA_th_rev4 = 0x107;
16488 u16 nbclipA_th_rev5 = 0x0a9;
16489 u16 nbclipA_th_rev6 = 0x0f0;
16490 u16 nbclip_th = 0;
e868ab03
GKH
16491 u8 w1clipG_th = 5;
16492 u8 w1clipG_th_rev5 = 9;
16493 u8 w1clipG_th_rev6 = 5;
16494 u8 w1clipA_th = 25, w1clip_th;
16495 u8 rssi_gain_default = 0x50;
16496 u8 rssiG_gain_rev6_224B0 = 0x50;
16497 u8 rssiA_gain_rev5 = 0x90;
16498 u8 rssiA_gain_rev6 = 0x90;
16499 u8 rssi_gain;
7d4df48e 16500 u16 regval[21];
e868ab03 16501 u8 triso;
a9533e7e
HP
16502
16503 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
16504 pi->srom_fem2g.triso;
16505
16506 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16507 if (pi->pubpi.radiorev == 5) {
16508
16509 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
16510 } else if (pi->pubpi.radiorev == 7) {
16511 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16512
16513 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
16514 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
16515
16516 } else if ((pi->pubpi.radiorev == 3)
16517 || (pi->pubpi.radiorev == 8)) {
16518 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16519
16520 if (pi->pubpi.radiorev == 8) {
16521 mod_phy_reg(pi, 0x283,
16522 (0xff << 0), (0x44 << 0));
16523 mod_phy_reg(pi, 0x280,
16524 (0xff << 0), (0x44 << 0));
16525 }
16526 } else {
16527 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16528 }
16529 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16530
16531 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
16532
16533 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16534 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16535
16536 currband =
16537 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
16538 if (currband == 0) {
16539 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16540 if (pi->pubpi.radiorev == 11) {
16541 lna1_gain_db = lna1G_gain_db_rev6_224B0;
16542 lna2_gain_db = lna2G_gain_db_rev6_224B0;
16543 rfseq_init_gain =
16544 rfseqG_init_gain_rev6_224B0;
16545 init_gaincode =
16546 initG_gaincode_rev6_224B0;
16547 clip1hi_gaincode =
16548 clip1hiG_gaincode_rev6;
16549 clip1lo_gaincode =
16550 clip1loG_gaincode_rev6_224B0;
16551 nbclip_th = nbclipG_th_rev6;
16552 w1clip_th = w1clipG_th_rev6;
16553 crsmin_th = crsminG_th_rev6;
16554 crsminl_th = crsminlG_th_rev6;
16555 crsminu_th = crsminuG_th_rev6;
16556 rssi_gain = rssiG_gain_rev6_224B0;
16557 } else {
16558 lna1_gain_db = lna1G_gain_db_rev6;
16559 lna2_gain_db = lna2G_gain_db_rev6;
16560 if (pi->sh->boardflags & BFL_EXTLNA) {
16561
16562 rfseq_init_gain =
16563 rfseqG_init_gain_rev6_elna;
16564 init_gaincode =
16565 initG_gaincode_rev6_elna;
16566 } else {
16567 rfseq_init_gain =
16568 rfseqG_init_gain_rev6;
16569 init_gaincode =
16570 initG_gaincode_rev6;
16571 }
16572 clip1hi_gaincode =
16573 clip1hiG_gaincode_rev6;
16574 switch (triso) {
16575 case 0:
16576 clip1lo_gaincode =
16577 clip1loG_gaincode_rev6[0];
16578 break;
16579 case 1:
16580 clip1lo_gaincode =
16581 clip1loG_gaincode_rev6[1];
16582 break;
16583 case 2:
16584 clip1lo_gaincode =
16585 clip1loG_gaincode_rev6[2];
16586 break;
16587 case 3:
16588 default:
16589
16590 clip1lo_gaincode =
16591 clip1loG_gaincode_rev6[3];
16592 break;
16593 case 4:
16594 clip1lo_gaincode =
16595 clip1loG_gaincode_rev6[4];
16596 break;
16597 case 5:
16598 clip1lo_gaincode =
16599 clip1loG_gaincode_rev6[5];
16600 break;
16601 case 6:
16602 clip1lo_gaincode =
16603 clip1loG_gaincode_rev6[6];
16604 break;
16605 case 7:
16606 clip1lo_gaincode =
16607 clip1loG_gaincode_rev6[7];
16608 break;
16609 }
16610 nbclip_th = nbclipG_th_rev6;
16611 w1clip_th = w1clipG_th_rev6;
16612 crsmin_th = crsminG_th_rev6;
16613 crsminl_th = crsminlG_th_rev6;
16614 crsminu_th = crsminuG_th_rev6;
16615 rssi_gain = rssi_gain_default;
16616 }
16617 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16618 lna1_gain_db = lna1G_gain_db_rev5;
16619 lna2_gain_db = lna2G_gain_db_rev5;
16620 if (pi->sh->boardflags & BFL_EXTLNA) {
16621
16622 rfseq_init_gain =
16623 rfseqG_init_gain_rev5_elna;
16624 init_gaincode =
16625 initG_gaincode_rev5_elna;
16626 } else {
16627 rfseq_init_gain = rfseqG_init_gain_rev5;
16628 init_gaincode = initG_gaincode_rev5;
16629 }
16630 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16631 switch (triso) {
16632 case 0:
16633 clip1lo_gaincode =
16634 clip1loG_gaincode_rev5[0];
16635 break;
16636 case 1:
16637 clip1lo_gaincode =
16638 clip1loG_gaincode_rev5[1];
16639 break;
16640 case 2:
16641 clip1lo_gaincode =
16642 clip1loG_gaincode_rev5[2];
16643 break;
16644 case 3:
16645
16646 clip1lo_gaincode =
16647 clip1loG_gaincode_rev5[3];
16648 break;
16649 case 4:
16650 clip1lo_gaincode =
16651 clip1loG_gaincode_rev5[4];
16652 break;
16653 case 5:
16654 clip1lo_gaincode =
16655 clip1loG_gaincode_rev5[5];
16656 break;
16657 case 6:
16658 clip1lo_gaincode =
16659 clip1loG_gaincode_rev5[6];
16660 break;
16661 case 7:
16662 clip1lo_gaincode =
16663 clip1loG_gaincode_rev5[7];
16664 break;
16665 default:
16666 clip1lo_gaincode =
16667 clip1loG_gaincode_rev5[3];
16668 break;
16669 }
16670 nbclip_th = nbclipG_th_rev5;
16671 w1clip_th = w1clipG_th_rev5;
16672 crsmin_th = crsminG_th_rev5;
16673 crsminl_th = crsminlG_th_rev5;
16674 crsminu_th = crsminuG_th_rev5;
16675 rssi_gain = rssi_gain_default;
16676 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16677 lna1_gain_db = lna1G_gain_db_rev4;
16678 lna2_gain_db = lna2G_gain_db;
16679 rfseq_init_gain = rfseqG_init_gain_rev4;
16680 init_gaincode = initG_gaincode_rev4;
16681 clip1hi_gaincode = clip1hiG_gaincode_rev4;
16682 clip1lo_gaincode = clip1loG_gaincode;
16683 nbclip_th = nbclipG_th_rev4;
16684 w1clip_th = w1clipG_th;
16685 crsmin_th = crsminG_th;
16686 crsminl_th = crsminlG_th;
16687 crsminu_th = crsminuG_th;
16688 rssi_gain = rssi_gain_default;
16689 } else {
16690 lna1_gain_db = lna1G_gain_db;
16691 lna2_gain_db = lna2G_gain_db;
16692 rfseq_init_gain = rfseqG_init_gain;
16693 init_gaincode = initG_gaincode;
16694 clip1hi_gaincode = clip1hiG_gaincode;
16695 clip1lo_gaincode = clip1loG_gaincode;
16696 nbclip_th = nbclipG_th;
16697 w1clip_th = w1clipG_th;
16698 crsmin_th = crsminG_th;
16699 crsminl_th = crsminlG_th;
16700 crsminu_th = crsminuG_th;
16701 rssi_gain = rssi_gain_default;
16702 }
16703 tia_gain_db = tiaG_gain_db;
16704 tia_gainbits = tiaG_gainbits;
16705 clip1md_gaincode = clip1mdG_gaincode;
16706 } else {
16707 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16708 lna1_gain_db = lna1A_gain_db_rev6;
16709 lna2_gain_db = lna2A_gain_db_rev6;
16710 tia_gain_db = tiaA_gain_db_rev6;
16711 tia_gainbits = tiaA_gainbits_rev6;
16712 rfseq_init_gain = rfseqA_init_gain_rev6;
16713 init_gaincode = initA_gaincode_rev6;
16714 clip1hi_gaincode = clip1hiA_gaincode_rev6;
16715 clip1md_gaincode = clip1mdA_gaincode_rev6;
16716 clip1lo_gaincode = clip1loA_gaincode_rev6;
16717 crsmin_th = crsminA_th_rev6;
16718 crsminl_th = crsminlA_th_rev6;
16719 if ((pi->pubpi.radiorev == 11) &&
16720 (CHSPEC_IS40(pi->radio_chanspec) == 0)) {
16721 crsminu_th = crsminuA_th_rev6_224B0;
16722 } else {
16723 crsminu_th = crsminuA_th_rev6;
16724 }
16725 nbclip_th = nbclipA_th_rev6;
16726 rssi_gain = rssiA_gain_rev6;
16727 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16728 lna1_gain_db = lna1A_gain_db_rev5;
16729 lna2_gain_db = lna2A_gain_db_rev5;
16730 tia_gain_db = tiaA_gain_db_rev5;
16731 tia_gainbits = tiaA_gainbits_rev5;
16732 rfseq_init_gain = rfseqA_init_gain_rev5;
16733 init_gaincode = initA_gaincode_rev5;
16734 clip1hi_gaincode = clip1hiA_gaincode_rev5;
16735 clip1md_gaincode = clip1mdA_gaincode_rev5;
16736 clip1lo_gaincode = clip1loA_gaincode_rev5;
16737 crsmin_th = crsminA_th_rev5;
16738 crsminl_th = crsminlA_th_rev5;
16739 crsminu_th = crsminuA_th_rev5;
16740 nbclip_th = nbclipA_th_rev5;
16741 rssi_gain = rssiA_gain_rev5;
16742 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16743 lna1_gain_db = lna1A_gain_db_rev4;
16744 lna2_gain_db = lna2A_gain_db_rev4;
16745 tia_gain_db = tiaA_gain_db_rev4;
16746 tia_gainbits = tiaA_gainbits_rev4;
16747 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
16748
16749 rfseq_init_gain =
16750 rfseqA_init_gain_rev4_elna;
16751 init_gaincode =
16752 initA_gaincode_rev4_elna;
16753 } else {
16754 rfseq_init_gain = rfseqA_init_gain_rev4;
16755 init_gaincode = initA_gaincode_rev4;
16756 }
16757 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16758 clip1md_gaincode = clip1mdA_gaincode_rev4;
16759 clip1lo_gaincode = clip1loA_gaincode_rev4;
16760 crsmin_th = crsminA_th_rev4;
16761 crsminl_th = crsminlA_th_rev4;
16762 crsminu_th = crsminuA_th_rev4;
16763 nbclip_th = nbclipA_th_rev4;
16764 rssi_gain = rssi_gain_default;
16765 } else {
16766 lna1_gain_db = lna1A_gain_db;
16767 lna2_gain_db = lna2A_gain_db;
16768 tia_gain_db = tiaA_gain_db;
16769 tia_gainbits = tiaA_gainbits;
16770 rfseq_init_gain = rfseqA_init_gain;
16771 init_gaincode = initA_gaincode;
16772 clip1hi_gaincode = clip1hiA_gaincode;
16773 clip1md_gaincode = clip1mdA_gaincode;
16774 clip1lo_gaincode = clip1loA_gaincode;
16775 crsmin_th = crsminA_th;
16776 crsminl_th = crsminlA_th;
16777 crsminu_th = crsminuA_th;
16778 nbclip_th = nbclipA_th;
16779 rssi_gain = rssi_gain_default;
16780 }
16781 w1clip_th = w1clipA_th;
16782 }
16783
16784 write_radio_reg(pi,
16785 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16786 RADIO_2056_RX0), 0x17);
16787 write_radio_reg(pi,
16788 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16789 RADIO_2056_RX1), 0x17);
16790
16791 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16792 0xf0);
16793 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16794 0xf0);
16795
16796 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16797 0x0);
16798 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16799 0x0);
16800
16801 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16802 rssi_gain);
16803 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16804 rssi_gain);
16805
16806 write_radio_reg(pi,
16807 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16808 RADIO_2056_RX0), 0x17);
16809 write_radio_reg(pi,
16810 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16811 RADIO_2056_RX1), 0x17);
16812
16813 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16814 0xFF);
16815 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16816 0xFF);
16817
16818 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16819 8, lna1_gain_db);
16820 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16821 8, lna1_gain_db);
16822
16823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16824 8, lna2_gain_db);
16825 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16826 8, lna2_gain_db);
16827
16828 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16829 8, tia_gain_db);
16830 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16831 8, tia_gain_db);
16832
16833 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16834 8, tia_gainbits);
16835 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16836 8, tia_gainbits);
16837
16838 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16839 8, &lpf_gain_db);
16840 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16841 8, &lpf_gain_db);
16842 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16843 8, &lpf_gainbits);
16844 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16845 8, &lpf_gainbits);
16846
16847 write_phy_reg(pi, 0x20, init_gaincode);
16848 write_phy_reg(pi, 0x2a7, init_gaincode);
16849
16850 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16851 pi->pubpi.phy_corenum, 0x106, 16,
16852 rfseq_init_gain);
16853
16854 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16855 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16856
16857 write_phy_reg(pi, 0x24, clip1md_gaincode);
16858 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16859
16860 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16861 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16862
16863 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16864 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16865 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16866
16867 write_phy_reg(pi, 0x2b, nbclip_th);
16868 write_phy_reg(pi, 0x41, nbclip_th);
16869
16870 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16871 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16872
16873 write_phy_reg(pi, 0x150, 0x809c);
16874
16875 } else {
16876
16877 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16878 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16879
16880 write_phy_reg(pi, 0x2b, 0x84);
16881 write_phy_reg(pi, 0x41, 0x84);
16882
16883 if (CHSPEC_IS20(pi->radio_chanspec)) {
16884 write_phy_reg(pi, 0x6b, 0x2b);
16885 write_phy_reg(pi, 0x6c, 0x2b);
16886 write_phy_reg(pi, 0x6d, 0x9);
16887 write_phy_reg(pi, 0x6e, 0x9);
16888 }
16889
16890 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16891 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16892 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16893
16894 if (CHSPEC_IS20(pi->radio_chanspec)) {
16895 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16896 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16897
16898 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16899 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16900 }
16901
16902 write_phy_reg(pi, 0x150, 0x809c);
16903
16904 if (pi->nphy_gain_boost)
16905 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16906 (CHSPEC_IS40(pi->radio_chanspec)))
16907 hpf_code = 4;
16908 else
16909 hpf_code = 5;
16910 else if (CHSPEC_IS40(pi->radio_chanspec))
16911 hpf_code = 6;
16912 else
16913 hpf_code = 7;
16914
16915 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16916 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16917
16918 for (ctr = 0; ctr < 4; ctr++) {
16919 regval[ctr] = (hpf_code << 8) | 0x7c;
16920 }
16921 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16922
16923 wlc_phy_adjust_lnagaintbl_nphy(pi);
16924
16925 if (pi->nphy_elna_gain_config) {
16926 regval[0] = 0;
16927 regval[1] = 1;
16928 regval[2] = 1;
16929 regval[3] = 1;
16930 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16931 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16932
16933 for (ctr = 0; ctr < 4; ctr++) {
16934 regval[ctr] = (hpf_code << 8) | 0x74;
16935 }
16936 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16937 }
16938
16939 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16940 for (ctr = 0; ctr < 21; ctr++) {
16941 regval[ctr] = 3 * ctr;
16942 }
16943 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16944 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16945
16946 for (ctr = 0; ctr < 21; ctr++) {
7d4df48e 16947 regval[ctr] = (u16) ctr;
a9533e7e
HP
16948 }
16949 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16950 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16951 }
16952
16953 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16954 rfseq_updategainu_events,
16955 rfseq_updategainu_dlys,
16956 sizeof(rfseq_updategainu_events) /
16957 sizeof(rfseq_updategainu_events[0]));
16958
16959 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16960
16961 if (CHSPEC_IS2G(pi->radio_chanspec))
16962 mod_phy_reg(pi,
16963 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16964 0x7f, 0x4);
16965 }
16966}
16967
7cc4a4c0 16968static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi)
a9533e7e 16969{
562c8850
GKH
16970 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
16971 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
16972 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
16973 s8 tia_gainbits[] = {
e5c4536f 16974 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
a9533e7e
HP
16975
16976 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16977 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16978
16979 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
16980
16981 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
16982 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
16983
16984 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
16985 lna1_gain_db);
16986 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16987 lna1_gain_db);
16988
16989 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16990 lna2_gain_db);
16991 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16992 lna2_gain_db);
16993
16994 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16995 tia_gain_db);
16996 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
16997 tia_gain_db);
16998
16999 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17000 tia_gainbits);
17001 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17002 tia_gainbits);
17003
17004 write_phy_reg(pi, 0x37, 0x74);
17005 write_phy_reg(pi, 0x2ad, 0x74);
17006 write_phy_reg(pi, 0x38, 0x18);
17007 write_phy_reg(pi, 0x2ae, 0x18);
17008
17009 write_phy_reg(pi, 0x2b, 0xe8);
17010 write_phy_reg(pi, 0x41, 0xe8);
17011
17012 if (CHSPEC_IS20(pi->radio_chanspec)) {
17013
17014 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
17015 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
17016 } else {
17017
17018 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
17019 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
17020 }
17021}
17022
7cc4a4c0 17023static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi)
a9533e7e 17024{
7d4df48e 17025 u16 currband;
562c8850
GKH
17026 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
17027 s8 *lna1_gain_db = NULL;
17028 s8 *lna1_gain_db_2 = NULL;
17029 s8 *lna2_gain_db = NULL;
17030 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17031 s8 *tia_gain_db;
17032 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17033 s8 *tia_gainbits;
7d4df48e
GKH
17034 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17035 u16 *rfseq_init_gain;
17036 u16 init_gaincode;
17037 u16 clip1hi_gaincode;
17038 u16 clip1md_gaincode = 0;
17039 u16 clip1md_gaincode_B;
17040 u16 clip1lo_gaincode;
17041 u16 clip1lo_gaincode_B;
e868ab03
GKH
17042 u8 crsminl_th = 0;
17043 u8 crsminu_th;
7d4df48e 17044 u16 nbclip_th = 0;
e868ab03 17045 u8 w1clip_th;
7d4df48e 17046 u16 freq;
562c8850 17047 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
e868ab03 17048 u8 chg_nbclip_th = 0;
a9533e7e
HP
17049
17050 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
17051 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
17052
17053 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
17054 if (currband == 0) {
17055
17056 lna1_gain_db = lna1G_gain_db_rev7;
17057
17058 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17059 lna1_gain_db);
17060 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17061 lna1_gain_db);
17062
17063 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
17064
17065 if (CHSPEC_IS40(pi->radio_chanspec)) {
17066 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
17067 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
17068 }
17069
17070 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
17071
17072 if (CHSPEC_IS20(pi->radio_chanspec)) {
17073 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
17074 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
17075 }
17076 } else {
17077
17078 init_gaincode = 0x9e;
17079 clip1hi_gaincode = 0x9e;
17080 clip1md_gaincode_B = 0x24;
17081 clip1lo_gaincode = 0x8a;
17082 clip1lo_gaincode_B = 8;
17083 rfseq_init_gain = rfseqA_init_gain_rev7;
17084
17085 tia_gain_db = tiaA_gain_db_rev7;
17086 tia_gainbits = tiaA_gainbits_rev7;
17087
17088 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
17089 if (CHSPEC_IS20(pi->radio_chanspec)) {
17090
17091 w1clip_th = 25;
17092 clip1md_gaincode = 0x82;
17093
17094 if ((freq <= 5080) || (freq == 5825)) {
17095
562c8850
GKH
17096 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
17097 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17098 11, 17, 22, 25 };
562c8850 17099 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
a9533e7e
HP
17100
17101 crsminu_th = 0x3e;
17102 lna1_gain_db = lna1A_gain_db_rev7;
17103 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17104 lna2_gain_db = lna2A_gain_db_rev7;
17105 } else if ((freq >= 5500) && (freq <= 5700)) {
17106
562c8850
GKH
17107 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
17108 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17109 12, 18, 22, 26 };
562c8850 17110 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
a9533e7e
HP
17111
17112 crsminu_th = 0x45;
17113 clip1md_gaincode_B = 0x14;
17114 nbclip_th = 0xff;
17115 chg_nbclip_th = 1;
17116 lna1_gain_db = lna1A_gain_db_rev7;
17117 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17118 lna2_gain_db = lna2A_gain_db_rev7;
17119 } else {
17120
562c8850
GKH
17121 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
17122 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17123 12, 18, 22, 26 };
562c8850 17124 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
a9533e7e
HP
17125
17126 crsminu_th = 0x41;
17127 lna1_gain_db = lna1A_gain_db_rev7;
17128 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17129 lna2_gain_db = lna2A_gain_db_rev7;
17130 }
17131
17132 if (freq <= 4920) {
17133 nvar_baseline_offset0 = 5;
17134 nvar_baseline_offset1 = 5;
17135 } else if ((freq > 4920) && (freq <= 5320)) {
17136 nvar_baseline_offset0 = 3;
17137 nvar_baseline_offset1 = 5;
17138 } else if ((freq > 5320) && (freq <= 5700)) {
17139 nvar_baseline_offset0 = 3;
17140 nvar_baseline_offset1 = 2;
17141 } else {
17142 nvar_baseline_offset0 = 4;
17143 nvar_baseline_offset1 = 0;
17144 }
17145 } else {
17146
17147 crsminu_th = 0x3a;
17148 crsminl_th = 0x3a;
17149 w1clip_th = 20;
17150
17151 if ((freq >= 4920) && (freq <= 5320)) {
17152 nvar_baseline_offset0 = 4;
17153 nvar_baseline_offset1 = 5;
17154 } else if ((freq > 5320) && (freq <= 5550)) {
17155 nvar_baseline_offset0 = 4;
17156 nvar_baseline_offset1 = 2;
17157 } else {
17158 nvar_baseline_offset0 = 5;
17159 nvar_baseline_offset1 = 3;
17160 }
17161 }
17162
17163 write_phy_reg(pi, 0x20, init_gaincode);
17164 write_phy_reg(pi, 0x2a7, init_gaincode);
17165
17166 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
17167 pi->pubpi.phy_corenum, 0x106, 16,
17168 rfseq_init_gain);
17169
17170 write_phy_reg(pi, 0x22, clip1hi_gaincode);
17171 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
17172
17173 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
17174 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
17175
17176 write_phy_reg(pi, 0x37, clip1lo_gaincode);
17177 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
17178 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
17179 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
17180
17181 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
17182 tia_gain_db);
17183 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17184 tia_gain_db);
17185
17186 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17187 tia_gainbits);
17188 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17189 tia_gainbits);
17190
17191 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
17192
17193 if (chg_nbclip_th == 1) {
17194 write_phy_reg(pi, 0x2b, nbclip_th);
17195 write_phy_reg(pi, 0x41, nbclip_th);
17196 }
17197
17198 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
17199 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
17200
17201 mod_phy_reg(pi, 0x2e4,
17202 (0x3f << 0), (nvar_baseline_offset0 << 0));
17203
17204 mod_phy_reg(pi, 0x2e4,
17205 (0x3f << 6), (nvar_baseline_offset1 << 6));
17206
17207 if (CHSPEC_IS20(pi->radio_chanspec)) {
17208
17209 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17210 lna1_gain_db);
17211 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17212 lna1_gain_db_2);
17213
17214 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17215 8, lna2_gain_db);
17216 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17217 8, lna2_gain_db);
17218
17219 write_phy_reg(pi, 0x24, clip1md_gaincode);
17220 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17221 } else {
17222 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17223 }
17224
17225 }
17226
17227}
17228
7cc4a4c0 17229static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi)
a9533e7e
HP
17230{
17231 uint core;
17232 int ctr;
e59fe083 17233 s16 gain_delta[2];
e868ab03 17234 u8 curr_channel;
7d4df48e
GKH
17235 u16 minmax_gain[2];
17236 u16 regval[4];
a9533e7e
HP
17237
17238 if (pi->phyhang_avoid)
17239 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
17240
17241 if (pi->nphy_gain_boost) {
17242 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
17243
17244 gain_delta[0] = 6;
17245 gain_delta[1] = 6;
17246 } else {
17247
17248 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17249 gain_delta[0] =
e59fe083 17250 (s16)
a9533e7e
HP
17251 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17252 curr_channel) +
17253 nphy_lnagain_est0[1]), 13);
17254 gain_delta[1] =
e59fe083 17255 (s16)
a9533e7e
HP
17256 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17257 curr_channel) +
17258 nphy_lnagain_est1[1]), 13);
17259 }
17260 } else {
17261
17262 gain_delta[0] = 0;
17263 gain_delta[1] = 0;
17264 }
17265
17266 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17267 if (pi->nphy_elna_gain_config) {
17268
17269 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
17270 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
17271 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
17272 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
17273 } else {
17274 for (ctr = 0; ctr < 4; ctr++) {
17275 regval[ctr] =
17276 nphy_def_lnagains[ctr] + gain_delta[core];
17277 }
17278 }
17279 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
17280
17281 minmax_gain[core] =
7d4df48e 17282 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
a9533e7e
HP
17283 }
17284
17285 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
17286 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
17287
17288 if (pi->phyhang_avoid)
17289 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
17290}
17291
7cc4a4c0 17292void wlc_phy_switch_radio_nphy(phy_info_t *pi, bool on)
a9533e7e
HP
17293{
17294 if (on) {
17295 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17296 if (!pi->radio_is_on) {
17297 wlc_phy_radio_preinit_205x(pi);
17298 wlc_phy_radio_init_2057(pi);
17299 wlc_phy_radio_postinit_2057(pi);
17300 }
17301
17302 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17303 pi->radio_chanspec);
17304 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17305 wlc_phy_radio_preinit_205x(pi);
17306 wlc_phy_radio_init_2056(pi);
17307 wlc_phy_radio_postinit_2056(pi);
17308
17309 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17310 pi->radio_chanspec);
17311 } else {
17312 wlc_phy_radio_preinit_2055(pi);
17313 wlc_phy_radio_init_2055(pi);
17314 wlc_phy_radio_postinit_2055(pi);
17315 }
17316
17317 pi->radio_is_on = TRUE;
17318
17319 } else {
17320
17321 if (NREV_GE(pi->pubpi.phy_rev, 3)
17322 && NREV_LT(pi->pubpi.phy_rev, 7)) {
17323 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17324 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
17325
17326 write_radio_reg(pi,
17327 RADIO_2056_TX_PADA_BOOST_TUNE |
17328 RADIO_2056_TX0, 0);
17329 write_radio_reg(pi,
17330 RADIO_2056_TX_PADG_BOOST_TUNE |
17331 RADIO_2056_TX0, 0);
17332 write_radio_reg(pi,
17333 RADIO_2056_TX_PGAA_BOOST_TUNE |
17334 RADIO_2056_TX0, 0);
17335 write_radio_reg(pi,
17336 RADIO_2056_TX_PGAG_BOOST_TUNE |
17337 RADIO_2056_TX0, 0);
17338 mod_radio_reg(pi,
17339 RADIO_2056_TX_MIXA_BOOST_TUNE |
17340 RADIO_2056_TX0, 0xf0, 0);
17341 write_radio_reg(pi,
17342 RADIO_2056_TX_MIXG_BOOST_TUNE |
17343 RADIO_2056_TX0, 0);
17344
17345 write_radio_reg(pi,
17346 RADIO_2056_TX_PADA_BOOST_TUNE |
17347 RADIO_2056_TX1, 0);
17348 write_radio_reg(pi,
17349 RADIO_2056_TX_PADG_BOOST_TUNE |
17350 RADIO_2056_TX1, 0);
17351 write_radio_reg(pi,
17352 RADIO_2056_TX_PGAA_BOOST_TUNE |
17353 RADIO_2056_TX1, 0);
17354 write_radio_reg(pi,
17355 RADIO_2056_TX_PGAG_BOOST_TUNE |
17356 RADIO_2056_TX1, 0);
17357 mod_radio_reg(pi,
17358 RADIO_2056_TX_MIXA_BOOST_TUNE |
17359 RADIO_2056_TX1, 0xf0, 0);
17360 write_radio_reg(pi,
17361 RADIO_2056_TX_MIXG_BOOST_TUNE |
17362 RADIO_2056_TX1, 0);
17363
17364 pi->radio_is_on = FALSE;
17365 }
17366
17367 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
17368 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17369 pi->radio_is_on = FALSE;
17370 }
17371
17372 }
17373}
17374
7cc4a4c0 17375static void wlc_phy_radio_preinit_2055(phy_info_t *pi)
a9533e7e
HP
17376{
17377
17378 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
17379 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
17380
17381 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
17382}
17383
7cc4a4c0 17384static void wlc_phy_radio_init_2055(phy_info_t *pi)
a9533e7e
HP
17385{
17386 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
17387}
17388
7cc4a4c0 17389static void wlc_phy_radio_postinit_2055(phy_info_t *pi)
a9533e7e
HP
17390{
17391
17392 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
17393 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
17394
17395 if (((pi->sh->sromrev >= 4)
17396 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
17397 || ((pi->sh->sromrev < 4))) {
17398 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
17399 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
17400 }
17401
17402 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
17403 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
17404
17405 and_radio_reg(pi, RADIO_2055_CAL_MISC,
17406 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
17407
17408 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
17409
17410 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
17411
17412 OSL_DELAY(1000);
17413
17414 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
17415
17416 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17417 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
17418
17419 ASSERT((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17420 RADIO_2055_RCAL_DONE) == RADIO_2055_RCAL_DONE);
17421
17422 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
17423 ~(RADIO_2055_CAL_LPO_ENABLE));
17424
17425 wlc_phy_chanspec_set((wlc_phy_t *) pi, pi->radio_chanspec);
17426
17427 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
17428 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
17429
17430 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
17431 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
17432
17433 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
17434 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17435 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
17436 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17437 if (pi->nphy_gain_boost) {
17438 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17439 ~(RADIO_2055_GAINBST_DISABLE));
17440 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17441 ~(RADIO_2055_GAINBST_DISABLE));
17442 } else {
17443 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17444 RADIO_2055_GAINBST_DISABLE);
17445 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17446 RADIO_2055_GAINBST_DISABLE);
17447 }
17448
17449 OSL_DELAY(2);
17450}
17451
7cc4a4c0 17452static void wlc_phy_radio_preinit_205x(phy_info_t *pi)
a9533e7e
HP
17453{
17454
17455 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17456 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
17457
17458 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
17459 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
17460
17461}
17462
7cc4a4c0 17463static void wlc_phy_radio_init_2056(phy_info_t *pi)
a9533e7e
HP
17464{
17465 radio_regs_t *regs_SYN_2056_ptr = NULL;
17466 radio_regs_t *regs_TX_2056_ptr = NULL;
17467 radio_regs_t *regs_RX_2056_ptr = NULL;
17468
17469 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17470 regs_SYN_2056_ptr = regs_SYN_2056;
17471 regs_TX_2056_ptr = regs_TX_2056;
17472 regs_RX_2056_ptr = regs_RX_2056;
17473 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17474 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17475 regs_TX_2056_ptr = regs_TX_2056_A1;
17476 regs_RX_2056_ptr = regs_RX_2056_A1;
17477 } else {
17478 switch (pi->pubpi.radiorev) {
17479 case 5:
17480 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17481 regs_TX_2056_ptr = regs_TX_2056_rev5;
17482 regs_RX_2056_ptr = regs_RX_2056_rev5;
17483 break;
17484
17485 case 6:
17486 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17487 regs_TX_2056_ptr = regs_TX_2056_rev6;
17488 regs_RX_2056_ptr = regs_RX_2056_rev6;
17489 break;
17490
17491 case 7:
17492 case 9:
17493 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17494 regs_TX_2056_ptr = regs_TX_2056_rev7;
17495 regs_RX_2056_ptr = regs_RX_2056_rev7;
17496 break;
17497
17498 case 8:
17499 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17500 regs_TX_2056_ptr = regs_TX_2056_rev8;
17501 regs_RX_2056_ptr = regs_RX_2056_rev8;
17502 break;
17503
17504 case 11:
17505 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17506 regs_TX_2056_ptr = regs_TX_2056_rev11;
17507 regs_RX_2056_ptr = regs_RX_2056_rev11;
17508 break;
17509
17510 default:
17511 ASSERT(0);
17512 break;
17513 }
17514 }
17515
7d4df48e 17516 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
a9533e7e 17517
7d4df48e 17518 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
a9533e7e 17519
7d4df48e 17520 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
a9533e7e 17521
7d4df48e 17522 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
a9533e7e 17523
7d4df48e 17524 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
a9533e7e
HP
17525}
17526
7cc4a4c0 17527static void wlc_phy_radio_postinit_2056(phy_info_t *pi)
a9533e7e
HP
17528{
17529 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
17530
17531 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
17532 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
17533 OSL_DELAY(1000);
17534 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
17535
17536 if ((pi->sh->boardflags2 & BFL2_LEGACY)
17537 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN)) {
17538
17539 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
17540 } else {
17541
17542 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
17543 }
17544
17545 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
17546
17547 if (pi->phy_init_por) {
17548 wlc_phy_radio205x_rcal(pi);
17549 }
17550}
17551
7cc4a4c0 17552static void wlc_phy_radio_init_2057(phy_info_t *pi)
a9533e7e
HP
17553{
17554 radio_20xx_regs_t *regs_2057_ptr = NULL;
17555
17556 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17557
17558 regs_2057_ptr = regs_2057_rev4;
17559 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17560 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17561 switch (pi->pubpi.radiorev) {
17562 case 5:
17563
17564 if (pi->pubpi.radiover == 0x0) {
17565
17566 regs_2057_ptr = regs_2057_rev5;
17567
17568 } else if (pi->pubpi.radiover == 0x1) {
17569
17570 regs_2057_ptr = regs_2057_rev5v1;
17571 } else {
17572 ASSERT(0);
17573 break;
17574 }
17575
17576 case 7:
17577
17578 regs_2057_ptr = regs_2057_rev7;
17579 break;
17580
17581 case 8:
17582
17583 regs_2057_ptr = regs_2057_rev8;
17584 break;
17585
17586 default:
17587 ASSERT(0);
17588 break;
17589 }
17590 } else {
17591 ASSERT(0);
17592 }
17593
17594 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
17595}
17596
7cc4a4c0 17597static void wlc_phy_radio_postinit_2057(phy_info_t *pi)
a9533e7e
HP
17598{
17599
17600 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
17601
17602 if (CHIPID(pi->sh->chip) == !BCM6362_CHIP_ID) {
17603
17604 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x2, 0x2);
17605 }
17606
17607 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
17608 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
17609 OSL_DELAY(2000);
17610 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
17611 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
17612
17613 if (pi->phy_init_por) {
17614 wlc_phy_radio205x_rcal(pi);
17615 wlc_phy_radio2057_rccal(pi);
17616 }
17617
17618 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
17619}
17620
17621static bool
7cc4a4c0
JC
17622wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
17623 chan_info_nphy_radio2057_t **t0,
17624 chan_info_nphy_radio205x_t **t1,
17625 chan_info_nphy_radio2057_rev5_t **t2,
17626 chan_info_nphy_2055_t **t3)
a9533e7e
HP
17627{
17628 uint i;
17629 chan_info_nphy_radio2057_t *chan_info_tbl_p_0 = NULL;
17630 chan_info_nphy_radio205x_t *chan_info_tbl_p_1 = NULL;
17631 chan_info_nphy_radio2057_rev5_t *chan_info_tbl_p_2 = NULL;
66cbd3ab 17632 u32 tbl_len = 0;
a9533e7e
HP
17633
17634 int freq = 0;
17635
17636 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17637
17638 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17639
17640 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
8d3d6a69 17641 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
a9533e7e
HP
17642
17643 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17644 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17645 switch (pi->pubpi.radiorev) {
17646
17647 case 5:
17648
17649 if (pi->pubpi.radiover == 0x0) {
17650
17651 chan_info_tbl_p_2 =
17652 chan_info_nphyrev8_2057_rev5;
17653 tbl_len =
8d3d6a69 17654 ARRAY_SIZE
a9533e7e
HP
17655 (chan_info_nphyrev8_2057_rev5);
17656
17657 } else if (pi->pubpi.radiover == 0x1) {
17658
17659 chan_info_tbl_p_2 =
17660 chan_info_nphyrev9_2057_rev5v1;
17661 tbl_len =
8d3d6a69 17662 ARRAY_SIZE
a9533e7e
HP
17663 (chan_info_nphyrev9_2057_rev5v1);
17664
17665 }
17666 break;
17667
17668 case 7:
17669 chan_info_tbl_p_0 =
17670 chan_info_nphyrev8_2057_rev7;
17671 tbl_len =
8d3d6a69 17672 ARRAY_SIZE(chan_info_nphyrev8_2057_rev7);
a9533e7e
HP
17673 break;
17674
17675 case 8:
17676 chan_info_tbl_p_0 =
17677 chan_info_nphyrev8_2057_rev8;
17678 tbl_len =
8d3d6a69 17679 ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
a9533e7e
HP
17680 break;
17681
17682 default:
17683 if (NORADIO_ENAB(pi->pubpi)) {
17684 goto fail;
17685 }
17686 break;
17687 }
17688 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
17689
17690 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
8d3d6a69 17691 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
a9533e7e
HP
17692 } else {
17693 goto fail;
17694 }
17695
17696 for (i = 0; i < tbl_len; i++) {
17697 if (pi->pubpi.radiorev == 5) {
17698
17699 if (chan_info_tbl_p_2[i].chan == channel)
17700 break;
17701 } else {
17702
17703 if (chan_info_tbl_p_0[i].chan == channel)
17704 break;
17705 }
17706 }
17707
17708 if (i >= tbl_len) {
17709 ASSERT(i < tbl_len);
17710 goto fail;
17711 }
17712 if (pi->pubpi.radiorev == 5) {
17713 *t2 = &chan_info_tbl_p_2[i];
17714 freq = chan_info_tbl_p_2[i].freq;
17715 } else {
17716 *t0 = &chan_info_tbl_p_0[i];
17717 freq = chan_info_tbl_p_0[i].freq;
17718 }
17719
17720 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17721 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17722 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
8d3d6a69 17723 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
a9533e7e
HP
17724 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17725 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
8d3d6a69 17726 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
a9533e7e
HP
17727 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
17728 || NREV_IS(pi->pubpi.phy_rev, 6)) {
17729 switch (pi->pubpi.radiorev) {
17730 case 5:
17731 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
8d3d6a69 17732 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
a9533e7e
HP
17733 break;
17734 case 6:
17735 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
8d3d6a69 17736 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
a9533e7e
HP
17737 break;
17738 case 7:
17739 case 9:
17740 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17741 tbl_len =
8d3d6a69 17742 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
a9533e7e
HP
17743 break;
17744 case 8:
17745 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
8d3d6a69 17746 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
a9533e7e
HP
17747 break;
17748 case 11:
17749 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
8d3d6a69 17750 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v11);
a9533e7e
HP
17751 break;
17752 default:
17753 if (NORADIO_ENAB(pi->pubpi)) {
17754 goto fail;
17755 }
17756 break;
17757 }
17758 }
17759
17760 for (i = 0; i < tbl_len; i++) {
17761 if (chan_info_tbl_p_1[i].chan == channel)
17762 break;
17763 }
17764
17765 if (i >= tbl_len) {
17766 ASSERT(i < tbl_len);
17767 goto fail;
17768 }
17769 *t1 = &chan_info_tbl_p_1[i];
17770 freq = chan_info_tbl_p_1[i].freq;
17771
17772 } else {
8d3d6a69 17773 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
a9533e7e
HP
17774 if (chan_info_nphy_2055[i].chan == channel)
17775 break;
17776
8d3d6a69
GKH
17777 if (i >= ARRAY_SIZE(chan_info_nphy_2055)) {
17778 ASSERT(i < ARRAY_SIZE(chan_info_nphy_2055));
a9533e7e
HP
17779 goto fail;
17780 }
17781 *t3 = &chan_info_nphy_2055[i];
17782 freq = chan_info_nphy_2055[i].freq;
17783 }
17784
17785 *f = freq;
17786 return TRUE;
17787
17788 fail:
17789 *f = WL_CHAN_FREQ_RANGE_2G;
17790 return FALSE;
17791}
17792
e868ab03 17793u8 wlc_phy_get_chan_freq_range_nphy(phy_info_t *pi, uint channel)
a9533e7e
HP
17794{
17795 int freq;
17796 chan_info_nphy_radio2057_t *t0 = NULL;
17797 chan_info_nphy_radio205x_t *t1 = NULL;
17798 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
17799 chan_info_nphy_2055_t *t3 = NULL;
17800
17801 if (NORADIO_ENAB(pi->pubpi))
17802 return WL_CHAN_FREQ_RANGE_2G;
17803
17804 if (channel == 0)
17805 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17806
17807 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
17808
17809 if (CHSPEC_IS2G(pi->radio_chanspec))
17810 return WL_CHAN_FREQ_RANGE_2G;
17811
17812 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN)) {
17813 return WL_CHAN_FREQ_RANGE_5GL;
17814 } else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN)) {
17815 return WL_CHAN_FREQ_RANGE_5GM;
17816 } else {
17817 return WL_CHAN_FREQ_RANGE_5GH;
17818 }
17819}
17820
17821static void
7cc4a4c0 17822wlc_phy_chanspec_radio2055_setup(phy_info_t *pi, chan_info_nphy_2055_t *ci)
a9533e7e
HP
17823{
17824
17825 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
17826 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
17827 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
17828 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
17829
17830 WLC_PHY_WAR_PR51571(pi);
17831
17832 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
17833 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
17834 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
17835 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
17836
17837 WLC_PHY_WAR_PR51571(pi);
17838
17839 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
17840 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
17841 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
17842 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
17843
17844 WLC_PHY_WAR_PR51571(pi);
17845
17846 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
17847 ci->RF_core1_lgbuf_a_tune);
17848 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
17849 ci->RF_core1_lgbuf_g_tune);
17850 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
17851 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
17852 ci->RF_core1_tx_pga_pad_tn);
17853
17854 WLC_PHY_WAR_PR51571(pi);
17855
17856 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
17857 ci->RF_core1_tx_mx_bgtrim);
17858 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
17859 ci->RF_core2_lgbuf_a_tune);
17860 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
17861 ci->RF_core2_lgbuf_g_tune);
17862 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
17863
17864 WLC_PHY_WAR_PR51571(pi);
17865
17866 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
17867 ci->RF_core2_tx_pga_pad_tn);
17868 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
17869 ci->RF_core2_tx_mx_bgtrim);
17870
17871 OSL_DELAY(50);
17872
17873 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
17874 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
17875
17876 WLC_PHY_WAR_PR51571(pi);
17877
17878 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
17879
17880 OSL_DELAY(300);
17881}
17882
17883static void
7cc4a4c0
JC
17884wlc_phy_chanspec_radio2056_setup(phy_info_t *pi,
17885 const chan_info_nphy_radio205x_t *ci)
a9533e7e
HP
17886{
17887 radio_regs_t *regs_SYN_2056_ptr = NULL;
17888
17889 write_radio_reg(pi,
17890 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
17891 ci->RF_SYN_pll_vcocal1);
17892 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
17893 ci->RF_SYN_pll_vcocal2);
17894 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
17895 ci->RF_SYN_pll_refdiv);
17896 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
17897 ci->RF_SYN_pll_mmd2);
17898 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
17899 ci->RF_SYN_pll_mmd1);
17900 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17901 ci->RF_SYN_pll_loopfilter1);
17902 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17903 ci->RF_SYN_pll_loopfilter2);
17904 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
17905 ci->RF_SYN_pll_loopfilter3);
17906 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17907 ci->RF_SYN_pll_loopfilter4);
17908 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
17909 ci->RF_SYN_pll_loopfilter5);
17910 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
17911 ci->RF_SYN_reserved_addr27);
17912 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
17913 ci->RF_SYN_reserved_addr28);
17914 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
17915 ci->RF_SYN_reserved_addr29);
17916 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
17917 ci->RF_SYN_logen_VCOBUF1);
17918 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
17919 ci->RF_SYN_logen_MIXER2);
17920 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
17921 ci->RF_SYN_logen_BUF3);
17922 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
17923 ci->RF_SYN_logen_BUF4);
17924
17925 write_radio_reg(pi,
17926 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
17927 ci->RF_RX0_lnaa_tune);
17928 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
17929 ci->RF_RX0_lnag_tune);
17930 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
17931 ci->RF_TX0_intpaa_boost_tune);
17932 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
17933 ci->RF_TX0_intpag_boost_tune);
17934 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
17935 ci->RF_TX0_pada_boost_tune);
17936 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
17937 ci->RF_TX0_padg_boost_tune);
17938 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
17939 ci->RF_TX0_pgaa_boost_tune);
17940 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
17941 ci->RF_TX0_pgag_boost_tune);
17942 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
17943 ci->RF_TX0_mixa_boost_tune);
17944 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
17945 ci->RF_TX0_mixg_boost_tune);
17946
17947 write_radio_reg(pi,
17948 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
17949 ci->RF_RX1_lnaa_tune);
17950 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
17951 ci->RF_RX1_lnag_tune);
17952 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
17953 ci->RF_TX1_intpaa_boost_tune);
17954 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
17955 ci->RF_TX1_intpag_boost_tune);
17956 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
17957 ci->RF_TX1_pada_boost_tune);
17958 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
17959 ci->RF_TX1_padg_boost_tune);
17960 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
17961 ci->RF_TX1_pgaa_boost_tune);
17962 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
17963 ci->RF_TX1_pgag_boost_tune);
17964 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
17965 ci->RF_TX1_mixa_boost_tune);
17966 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
17967 ci->RF_TX1_mixg_boost_tune);
17968
17969 if (NREV_IS(pi->pubpi.phy_rev, 3))
17970 regs_SYN_2056_ptr = regs_SYN_2056;
17971 else if (NREV_IS(pi->pubpi.phy_rev, 4))
17972 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17973 else {
17974 switch (pi->pubpi.radiorev) {
17975 case 5:
17976 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17977 break;
17978 case 6:
17979 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17980 break;
17981 case 7:
17982 case 9:
17983 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17984 break;
17985 case 8:
17986 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17987 break;
17988 case 11:
17989 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17990 break;
17991 }
17992 }
17993 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17994 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17995 RADIO_2056_SYN,
7d4df48e 17996 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
a9533e7e
HP
17997 } else {
17998 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17999 RADIO_2056_SYN,
7d4df48e 18000 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
a9533e7e
HP
18001 }
18002
18003 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
18004 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18005 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18006 RADIO_2056_SYN, 0x1f);
18007 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18008 RADIO_2056_SYN, 0x1f);
18009
18010 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
18011 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID)) {
18012
18013 write_radio_reg(pi,
18014 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18015 RADIO_2056_SYN, 0x14);
18016 write_radio_reg(pi,
18017 RADIO_2056_SYN_PLL_CP2 |
18018 RADIO_2056_SYN, 0x00);
18019 } else {
18020 write_radio_reg(pi,
18021 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18022 RADIO_2056_SYN, 0xb);
18023 write_radio_reg(pi,
18024 RADIO_2056_SYN_PLL_CP2 |
18025 RADIO_2056_SYN, 0x14);
18026 }
18027 }
18028 }
18029
18030 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
18031 (CHSPEC_IS2G(pi->radio_chanspec))) {
18032 write_radio_reg(pi,
18033 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
18034 0x1f);
18035 write_radio_reg(pi,
18036 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
18037 0x1f);
18038 write_radio_reg(pi,
18039 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
18040 0xb);
18041 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
18042 0x20);
18043 }
18044
18045 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
18046 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18047 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18048 RADIO_2056_SYN, 0x1f);
18049 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18050 RADIO_2056_SYN, 0x1f);
18051 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
18052 RADIO_2056_SYN, 0x5);
18053 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18054 RADIO_2056_SYN, 0xc);
18055 }
18056 }
18057
18058 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
7d4df48e
GKH
18059 u16 pag_boost_tune;
18060 u16 padg_boost_tune;
18061 u16 pgag_boost_tune;
18062 u16 mixg_boost_tune;
18063 u16 bias, cascbias;
a9533e7e
HP
18064 uint core;
18065
18066 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18067
18068 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
18069
18070 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18071 PADG_IDAC, 0xcc);
18072
18073 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
18074 (CHIPID(pi->sh->chip) ==
18075 BCM47162_CHIP_ID)) {
18076 bias = 0x40;
18077 cascbias = 0x45;
18078 pag_boost_tune = 0x5;
18079 pgag_boost_tune = 0x33;
18080 padg_boost_tune = 0x77;
18081 mixg_boost_tune = 0x55;
18082 } else {
18083 bias = 0x25;
18084 cascbias = 0x20;
18085
18086 if ((CHIPID(pi->sh->chip) ==
18087 BCM43224_CHIP_ID)
18088 || (CHIPID(pi->sh->chip) ==
18089 BCM43225_CHIP_ID)
18090 || (CHIPID(pi->sh->chip) ==
18091 BCM43421_CHIP_ID)) {
18092 if (pi->sh->chippkg ==
18093 BCM43224_FAB_SMIC) {
18094 bias = 0x2a;
18095 cascbias = 0x38;
18096 }
18097 }
18098
18099 pag_boost_tune = 0x4;
18100 pgag_boost_tune = 0x03;
18101 padg_boost_tune = 0x77;
18102 mixg_boost_tune = 0x65;
18103 }
18104
18105 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18106 INTPAG_IMAIN_STAT, bias);
18107 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18108 INTPAG_IAUX_STAT, bias);
18109 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18110 INTPAG_CASCBIAS, cascbias);
18111
18112 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18113 INTPAG_BOOST_TUNE,
18114 pag_boost_tune);
18115 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18116 PGAG_BOOST_TUNE,
18117 pgag_boost_tune);
18118 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18119 PADG_BOOST_TUNE,
18120 padg_boost_tune);
18121 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18122 MIXG_BOOST_TUNE,
18123 mixg_boost_tune);
18124 } else {
18125
18126 bias = IS40MHZ(pi) ? 0x40 : 0x20;
18127
18128 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18129 INTPAG_IMAIN_STAT, bias);
18130 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18131 INTPAG_IAUX_STAT, bias);
18132 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18133 INTPAG_CASCBIAS, 0x30);
18134 }
18135 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
18136 0xee);
18137 }
18138 }
18139
18140 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
18141 && CHSPEC_IS5G(pi->radio_chanspec)) {
7d4df48e
GKH
18142 u16 paa_boost_tune;
18143 u16 pada_boost_tune;
18144 u16 pgaa_boost_tune;
18145 u16 mixa_boost_tune;
18146 u16 freq, pabias, cascbias;
a9533e7e
HP
18147 uint core;
18148
18149 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18150
18151 if (freq < 5150) {
18152
18153 paa_boost_tune = 0xa;
18154 pada_boost_tune = 0x77;
18155 pgaa_boost_tune = 0xf;
18156 mixa_boost_tune = 0xf;
18157 } else if (freq < 5340) {
18158
18159 paa_boost_tune = 0x8;
18160 pada_boost_tune = 0x77;
18161 pgaa_boost_tune = 0xfb;
18162 mixa_boost_tune = 0xf;
18163 } else if (freq < 5650) {
18164
18165 paa_boost_tune = 0x0;
18166 pada_boost_tune = 0x77;
18167 pgaa_boost_tune = 0xb;
18168 mixa_boost_tune = 0xf;
18169 } else {
18170
18171 paa_boost_tune = 0x0;
18172 pada_boost_tune = 0x77;
18173 if (freq != 5825) {
18174 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18175 } else {
18176 pgaa_boost_tune = 6;
18177 }
18178 mixa_boost_tune = 0xf;
18179 }
18180
18181 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18182 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18183 INTPAA_BOOST_TUNE, paa_boost_tune);
18184 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18185 PADA_BOOST_TUNE, pada_boost_tune);
18186 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18187 PGAA_BOOST_TUNE, pgaa_boost_tune);
18188 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18189 MIXA_BOOST_TUNE, mixa_boost_tune);
18190
18191 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18192 TXSPARE1, 0x30);
18193 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18194 PA_SPARE2, 0xee);
18195
18196 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18197 PADA_CASCBIAS, 0x3);
18198
18199 cascbias = 0x30;
18200
18201 if ((CHIPID(pi->sh->chip) == BCM43224_CHIP_ID) ||
18202 (CHIPID(pi->sh->chip) == BCM43225_CHIP_ID) ||
18203 (CHIPID(pi->sh->chip) == BCM43421_CHIP_ID)) {
18204 if (pi->sh->chippkg == BCM43224_FAB_SMIC) {
18205 cascbias = 0x35;
18206 }
18207 }
18208
18209 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
18210
18211 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18212 INTPAA_IAUX_STAT, pabias);
18213 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18214 INTPAA_IMAIN_STAT, pabias);
18215 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18216 INTPAA_CASCBIAS, cascbias);
18217 }
18218 }
18219
18220 OSL_DELAY(50);
18221
18222 wlc_phy_radio205x_vcocal_nphy(pi);
18223}
18224
7cc4a4c0 18225void wlc_phy_radio205x_vcocal_nphy(phy_info_t *pi)
a9533e7e
HP
18226{
18227 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18228 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
18229 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
18230 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
18231 (1 << 2));
18232 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
18233 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18234 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
18235 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18236 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
18237 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18238 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
18239 }
18240
18241 OSL_DELAY(300);
18242}
18243
18244#define MAX_205x_RCAL_WAITLOOPS 10000
18245
7d4df48e 18246static u16 wlc_phy_radio205x_rcal(phy_info_t *pi)
a9533e7e 18247{
7d4df48e 18248 u16 rcal_reg = 0;
a9533e7e
HP
18249 int i;
18250
18251 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18252
18253 if (pi->pubpi.radiorev == 5) {
18254
18255 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18256
18257 OSL_DELAY(10);
18258
18259 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18260 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18261 0x1);
18262 }
18263 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18264
18265 OSL_DELAY(10);
18266
18267 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
18268
18269 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18270 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
18271 if (rcal_reg & 0x1) {
18272 break;
18273 }
18274 OSL_DELAY(100);
18275 }
18276
18277 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18278
18279 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
18280
18281 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
18282
18283 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
18284 if (pi->pubpi.radiorev == 5) {
18285
18286 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
18287 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18288 0x0);
18289 }
18290
18291 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18292
18293 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18294 rcal_reg);
18295 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18296 rcal_reg << 2);
18297 }
18298
18299 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
7d4df48e 18300 u16 savereg;
a9533e7e
HP
18301
18302 savereg =
18303 read_radio_reg(pi,
18304 RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN);
18305 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18306 savereg | 0x7);
18307 OSL_DELAY(10);
18308
18309 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18310 0x1);
18311 OSL_DELAY(10);
18312
18313 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18314 0x9);
18315
18316 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18317 rcal_reg = read_radio_reg(pi,
18318 RADIO_2056_SYN_RCAL_CODE_OUT |
18319 RADIO_2056_SYN);
18320 if (rcal_reg & 0x80) {
18321 break;
18322 }
18323 OSL_DELAY(100);
18324 }
18325
18326 ASSERT(i < MAX_205x_RCAL_WAITLOOPS);
18327
18328 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18329 0x1);
18330
18331 rcal_reg =
18332 read_radio_reg(pi,
18333 RADIO_2056_SYN_RCAL_CODE_OUT |
18334 RADIO_2056_SYN);
18335
18336 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18337 0x0);
18338
18339 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18340 savereg);
18341
90ea2296 18342 return rcal_reg & 0x1f;
a9533e7e 18343 }
90ea2296 18344 return rcal_reg & 0x3e;
a9533e7e
HP
18345}
18346
18347static void
7cc4a4c0
JC
18348wlc_phy_chanspec_radio2057_setup(phy_info_t *pi,
18349 const chan_info_nphy_radio2057_t *ci,
18350 const chan_info_nphy_radio2057_rev5_t *ci2)
a9533e7e
HP
18351{
18352 int coreNum;
7d4df48e
GKH
18353 u16 txmix2g_tune_boost_pu = 0;
18354 u16 pad2g_tune_pus = 0;
a9533e7e
HP
18355
18356 if (pi->pubpi.radiorev == 5) {
18357
18358 write_radio_reg(pi,
18359 RADIO_2057_VCOCAL_COUNTVAL0,
18360 ci2->RF_vcocal_countval0);
18361 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18362 ci2->RF_vcocal_countval1);
18363 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18364 ci2->RF_rfpll_refmaster_sparextalsize);
18365 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18366 ci2->RF_rfpll_loopfilter_r1);
18367 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18368 ci2->RF_rfpll_loopfilter_c2);
18369 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18370 ci2->RF_rfpll_loopfilter_c1);
18371 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
18372 ci2->RF_cp_kpd_idac);
18373 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
18374 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
18375 write_radio_reg(pi,
18376 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
18377 write_radio_reg(pi,
18378 RADIO_2057_LOGEN_MX2G_TUNE,
18379 ci2->RF_logen_mx2g_tune);
18380 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18381 ci2->RF_logen_indbuf2g_tune);
18382
18383 write_radio_reg(pi,
18384 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18385 ci2->RF_txmix2g_tune_boost_pu_core0);
18386 write_radio_reg(pi,
18387 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18388 ci2->RF_pad2g_tune_pus_core0);
18389 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18390 ci2->RF_lna2g_tune_core0);
18391
18392 write_radio_reg(pi,
18393 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18394 ci2->RF_txmix2g_tune_boost_pu_core1);
18395 write_radio_reg(pi,
18396 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18397 ci2->RF_pad2g_tune_pus_core1);
18398 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18399 ci2->RF_lna2g_tune_core1);
18400
18401 } else {
18402
18403 write_radio_reg(pi,
18404 RADIO_2057_VCOCAL_COUNTVAL0,
18405 ci->RF_vcocal_countval0);
18406 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18407 ci->RF_vcocal_countval1);
18408 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18409 ci->RF_rfpll_refmaster_sparextalsize);
18410 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18411 ci->RF_rfpll_loopfilter_r1);
18412 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18413 ci->RF_rfpll_loopfilter_c2);
18414 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18415 ci->RF_rfpll_loopfilter_c1);
18416 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
18417 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
18418 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
18419 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
18420 write_radio_reg(pi,
18421 RADIO_2057_LOGEN_MX2G_TUNE,
18422 ci->RF_logen_mx2g_tune);
18423 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
18424 ci->RF_logen_mx5g_tune);
18425 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18426 ci->RF_logen_indbuf2g_tune);
18427 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
18428 ci->RF_logen_indbuf5g_tune);
18429
18430 write_radio_reg(pi,
18431 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18432 ci->RF_txmix2g_tune_boost_pu_core0);
18433 write_radio_reg(pi,
18434 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18435 ci->RF_pad2g_tune_pus_core0);
18436 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
18437 ci->RF_pga_boost_tune_core0);
18438 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
18439 ci->RF_txmix5g_boost_tune_core0);
18440 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
18441 ci->RF_pad5g_tune_misc_pus_core0);
18442 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18443 ci->RF_lna2g_tune_core0);
18444 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
18445 ci->RF_lna5g_tune_core0);
18446
18447 write_radio_reg(pi,
18448 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18449 ci->RF_txmix2g_tune_boost_pu_core1);
18450 write_radio_reg(pi,
18451 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18452 ci->RF_pad2g_tune_pus_core1);
18453 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
18454 ci->RF_pga_boost_tune_core1);
18455 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
18456 ci->RF_txmix5g_boost_tune_core1);
18457 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
18458 ci->RF_pad5g_tune_misc_pus_core1);
18459 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18460 ci->RF_lna2g_tune_core1);
18461 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
18462 ci->RF_lna5g_tune_core1);
18463 }
18464
18465 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18466
18467 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18468 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18469 0x3f);
18470 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18471 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18472 0x8);
18473 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18474 0x8);
18475 } else {
18476 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18477 0x1f);
18478 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18479 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18480 0x8);
18481 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18482 0x8);
18483 }
18484 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
18485 (pi->pubpi.radiorev == 8)) {
18486
18487 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18488 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18489 0x1b);
18490 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18491 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18492 0xa);
18493 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18494 0xa);
18495 } else {
18496 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18497 0x1f);
18498 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18499 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18500 0x8);
18501 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18502 0x8);
18503 }
18504
18505 }
18506
18507 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18508 if (PHY_IPA(pi)) {
18509 if (pi->pubpi.radiorev == 3) {
18510 txmix2g_tune_boost_pu = 0x6b;
18511 }
18512
18513 if (pi->pubpi.radiorev == 5)
18514 pad2g_tune_pus = 0x73;
18515
18516 } else {
18517 if (pi->pubpi.radiorev != 5) {
18518 pad2g_tune_pus = 0x3;
18519
18520 txmix2g_tune_boost_pu = 0x61;
18521 }
18522 }
18523
18524 for (coreNum = 0; coreNum <= 1; coreNum++) {
18525
18526 if (txmix2g_tune_boost_pu != 0)
18527 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18528 TXMIX2G_TUNE_BOOST_PU,
18529 txmix2g_tune_boost_pu);
18530
18531 if (pad2g_tune_pus != 0)
18532 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18533 PAD2G_TUNE_PUS,
18534 pad2g_tune_pus);
18535 }
18536 }
18537
18538 OSL_DELAY(50);
18539
18540 wlc_phy_radio205x_vcocal_nphy(pi);
18541}
18542
7d4df48e 18543static u16 wlc_phy_radio2057_rccal(phy_info_t *pi)
a9533e7e 18544{
7d4df48e 18545 u16 rccal_valid;
a9533e7e
HP
18546 int i;
18547 bool chip43226_6362A0;
18548
18549 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18550 || (pi->pubpi.radiorev == 4)
18551 || (pi->pubpi.radiorev == 6));
18552
18553 rccal_valid = 0;
18554 if (chip43226_6362A0) {
18555 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18556 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18557 } else {
18558 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
18559
18560 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
18561 }
18562 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18563 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18564
18565 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18566 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18567 if (rccal_valid & 0x2) {
18568 break;
18569 }
18570 OSL_DELAY(500);
18571 }
18572
18573 ASSERT(rccal_valid & 0x2);
18574
18575 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18576
18577 rccal_valid = 0;
18578 if (chip43226_6362A0) {
18579 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18580 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18581 } else {
18582 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
18583
18584 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
18585 }
18586 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18587 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18588
18589 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18590 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18591 if (rccal_valid & 0x2) {
18592 break;
18593 }
18594 OSL_DELAY(500);
18595 }
18596
18597 ASSERT(rccal_valid & 0x2);
18598
18599 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18600
18601 rccal_valid = 0;
18602 if (chip43226_6362A0) {
18603 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
18604
18605 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
18606 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18607 } else {
18608 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
18609 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18610 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
18611 }
18612 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18613
18614 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18615 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18616 if (rccal_valid & 0x2) {
18617 break;
18618 }
18619 OSL_DELAY(500);
18620 }
18621
18622 ASSERT(rccal_valid & 0x2);
18623
18624 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18625
90ea2296 18626 return rccal_valid;
a9533e7e
HP
18627}
18628
18629static void
7d4df48e 18630wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi, u16 reduction_factr)
a9533e7e
HP
18631{
18632 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18633 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18634 CHSPEC_IS40(pi->radio_chanspec)) {
18635 if (!pi->nphy_anarxlpf_adjusted) {
18636 write_radio_reg(pi,
18637 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18638 RADIO_2056_RX0),
18639 ((pi->nphy_rccal_value +
18640 reduction_factr) | 0x80));
18641
18642 pi->nphy_anarxlpf_adjusted = TRUE;
18643 }
18644 } else {
18645 if (pi->nphy_anarxlpf_adjusted) {
18646 write_radio_reg(pi,
18647 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18648 RADIO_2056_RX0),
18649 (pi->nphy_rccal_value | 0x80));
18650
18651 pi->nphy_anarxlpf_adjusted = FALSE;
18652 }
18653 }
18654 }
18655}
18656
18657static void
7cc4a4c0 18658wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *tone_id_buf,
66cbd3ab 18659 u32 *noise_var_buf)
a9533e7e
HP
18660{
18661 int i;
66cbd3ab 18662 u32 offset;
a9533e7e
HP
18663 int tone_id;
18664 int tbllen =
18665 CHSPEC_IS40(pi->
18666 radio_chanspec) ? NPHY_NOISEVAR_TBLLEN40 :
18667 NPHY_NOISEVAR_TBLLEN20;
18668
18669 if (pi->nphy_noisevars_adjusted) {
18670 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18671 tone_id = pi->nphy_saved_noisevars.tone_id[i];
18672 offset = (tone_id >= 0) ?
18673 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18674 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18675 offset, 32,
18676 (void *)&pi->
18677 nphy_saved_noisevars.
18678 min_noise_vars[i]);
18679 }
18680
18681 pi->nphy_saved_noisevars.bufcount = 0;
18682 pi->nphy_noisevars_adjusted = FALSE;
18683 }
18684
18685 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18686 pi->nphy_saved_noisevars.bufcount = 0;
18687
18688 for (i = 0; i < ntones; i++) {
18689 tone_id = tone_id_buf[i];
18690 offset = (tone_id >= 0) ?
18691 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18692 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18693 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18694 offset, 32,
18695 &pi->nphy_saved_noisevars.
18696 min_noise_vars[i]);
18697 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18698 offset, 32,
18699 (void *)&noise_var_buf[i]);
18700 pi->nphy_saved_noisevars.bufcount++;
18701 }
18702
18703 pi->nphy_noisevars_adjusted = TRUE;
18704 }
18705}
18706
e868ab03 18707static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr)
a9533e7e 18708{
7d4df48e 18709 u16 regval;
a9533e7e
HP
18710
18711 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18712 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18713 CHSPEC_IS40(pi->radio_chanspec)) {
18714 if (!pi->nphy_crsminpwr_adjusted) {
18715 regval = read_phy_reg(pi, 0x27d);
18716 pi->nphy_crsminpwr[0] = regval & 0xff;
18717 regval &= 0xff00;
7d4df48e 18718 regval |= (u16) minpwr;
a9533e7e
HP
18719 write_phy_reg(pi, 0x27d, regval);
18720
18721 regval = read_phy_reg(pi, 0x280);
18722 pi->nphy_crsminpwr[1] = regval & 0xff;
18723 regval &= 0xff00;
7d4df48e 18724 regval |= (u16) minpwr;
a9533e7e
HP
18725 write_phy_reg(pi, 0x280, regval);
18726
18727 regval = read_phy_reg(pi, 0x283);
18728 pi->nphy_crsminpwr[2] = regval & 0xff;
18729 regval &= 0xff00;
7d4df48e 18730 regval |= (u16) minpwr;
a9533e7e
HP
18731 write_phy_reg(pi, 0x283, regval);
18732
18733 pi->nphy_crsminpwr_adjusted = TRUE;
18734 }
18735 } else {
18736 if (pi->nphy_crsminpwr_adjusted) {
18737 regval = read_phy_reg(pi, 0x27d);
18738 regval &= 0xff00;
18739 regval |= pi->nphy_crsminpwr[0];
18740 write_phy_reg(pi, 0x27d, regval);
18741
18742 regval = read_phy_reg(pi, 0x280);
18743 regval &= 0xff00;
18744 regval |= pi->nphy_crsminpwr[1];
18745 write_phy_reg(pi, 0x280, regval);
18746
18747 regval = read_phy_reg(pi, 0x283);
18748 regval &= 0xff00;
18749 regval |= pi->nphy_crsminpwr[2];
18750 write_phy_reg(pi, 0x283, regval);
18751
18752 pi->nphy_crsminpwr_adjusted = FALSE;
18753 }
18754 }
18755 }
18756}
18757
7cc4a4c0 18758static void wlc_phy_txlpfbw_nphy(phy_info_t *pi)
a9533e7e 18759{
e868ab03 18760 u8 tx_lpf_bw = 0;
a9533e7e
HP
18761
18762 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18763 if (CHSPEC_IS40(pi->radio_chanspec)) {
18764 tx_lpf_bw = 3;
18765 } else {
18766 tx_lpf_bw = 1;
18767 }
18768
18769 if (PHY_IPA(pi)) {
18770 if (CHSPEC_IS40(pi->radio_chanspec)) {
18771 tx_lpf_bw = 5;
18772 } else {
18773 tx_lpf_bw = 4;
18774 }
18775 }
18776 write_phy_reg(pi, 0xe8,
18777 (tx_lpf_bw << 0) |
18778 (tx_lpf_bw << 3) |
18779 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18780
18781 if (PHY_IPA(pi)) {
18782
18783 if (CHSPEC_IS40(pi->radio_chanspec)) {
18784 tx_lpf_bw = 4;
18785 } else {
18786 tx_lpf_bw = 1;
18787 }
18788
18789 write_phy_reg(pi, 0xe9,
18790 (tx_lpf_bw << 0) |
18791 (tx_lpf_bw << 3) |
18792 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18793 }
18794 }
18795}
18796
7cc4a4c0 18797static void wlc_phy_spurwar_nphy(phy_info_t *pi)
a9533e7e 18798{
7d4df48e 18799 u16 cur_channel = 0;
a9533e7e 18800 int nphy_adj_tone_id_buf[] = { 57, 58 };
66cbd3ab 18801 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
a9533e7e
HP
18802 bool isAdjustNoiseVar = FALSE;
18803 uint numTonesAdjust = 0;
66cbd3ab 18804 u32 tempval = 0;
a9533e7e
HP
18805
18806 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18807 if (pi->phyhang_avoid)
18808 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
18809
18810 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
18811
18812 if (pi->nphy_gband_spurwar_en) {
18813
18814 wlc_phy_adjust_rx_analpfbw_nphy(pi,
18815 NPHY_ANARXLPFBW_REDUCTIONFACT);
18816
18817 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18818 if ((cur_channel == 11)
18819 && CHSPEC_IS40(pi->radio_chanspec)) {
18820
18821 wlc_phy_adjust_min_noisevar_nphy(pi, 2,
18822 nphy_adj_tone_id_buf,
18823 nphy_adj_noise_var_buf);
18824 } else {
18825
18826 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18827 NULL,
18828 NULL);
18829 }
18830 }
18831 wlc_phy_adjust_crsminpwr_nphy(pi,
18832 NPHY_ADJUSTED_MINCRSPOWER);
18833 }
18834
18835 if ((pi->nphy_gband_spurwar2_en)
18836 && CHSPEC_IS2G(pi->radio_chanspec)) {
18837
18838 if (CHSPEC_IS40(pi->radio_chanspec)) {
18839 switch (cur_channel) {
18840 case 3:
18841 nphy_adj_tone_id_buf[0] = 57;
18842 nphy_adj_tone_id_buf[1] = 58;
18843 nphy_adj_noise_var_buf[0] = 0x22f;
18844 nphy_adj_noise_var_buf[1] = 0x25f;
18845 isAdjustNoiseVar = TRUE;
18846 break;
18847 case 4:
18848 nphy_adj_tone_id_buf[0] = 41;
18849 nphy_adj_tone_id_buf[1] = 42;
18850 nphy_adj_noise_var_buf[0] = 0x22f;
18851 nphy_adj_noise_var_buf[1] = 0x25f;
18852 isAdjustNoiseVar = TRUE;
18853 break;
18854 case 5:
18855 nphy_adj_tone_id_buf[0] = 25;
18856 nphy_adj_tone_id_buf[1] = 26;
18857 nphy_adj_noise_var_buf[0] = 0x24f;
18858 nphy_adj_noise_var_buf[1] = 0x25f;
18859 isAdjustNoiseVar = TRUE;
18860 break;
18861 case 6:
18862 nphy_adj_tone_id_buf[0] = 9;
18863 nphy_adj_tone_id_buf[1] = 10;
18864 nphy_adj_noise_var_buf[0] = 0x22f;
18865 nphy_adj_noise_var_buf[1] = 0x24f;
18866 isAdjustNoiseVar = TRUE;
18867 break;
18868 case 7:
18869 nphy_adj_tone_id_buf[0] = 121;
18870 nphy_adj_tone_id_buf[1] = 122;
18871 nphy_adj_noise_var_buf[0] = 0x18f;
18872 nphy_adj_noise_var_buf[1] = 0x24f;
18873 isAdjustNoiseVar = TRUE;
18874 break;
18875 case 8:
18876 nphy_adj_tone_id_buf[0] = 105;
18877 nphy_adj_tone_id_buf[1] = 106;
18878 nphy_adj_noise_var_buf[0] = 0x22f;
18879 nphy_adj_noise_var_buf[1] = 0x25f;
18880 isAdjustNoiseVar = TRUE;
18881 break;
18882 case 9:
18883 nphy_adj_tone_id_buf[0] = 89;
18884 nphy_adj_tone_id_buf[1] = 90;
18885 nphy_adj_noise_var_buf[0] = 0x22f;
18886 nphy_adj_noise_var_buf[1] = 0x24f;
18887 isAdjustNoiseVar = TRUE;
18888 break;
18889 case 10:
18890 nphy_adj_tone_id_buf[0] = 73;
18891 nphy_adj_tone_id_buf[1] = 74;
18892 nphy_adj_noise_var_buf[0] = 0x22f;
18893 nphy_adj_noise_var_buf[1] = 0x24f;
18894 isAdjustNoiseVar = TRUE;
18895 break;
18896 default:
18897 isAdjustNoiseVar = FALSE;
18898 break;
18899 }
18900 }
18901
18902 if (isAdjustNoiseVar) {
18903 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
18904 sizeof(nphy_adj_tone_id_buf[0]);
18905
18906 wlc_phy_adjust_min_noisevar_nphy(pi,
18907 numTonesAdjust,
18908 nphy_adj_tone_id_buf,
18909 nphy_adj_noise_var_buf);
18910
18911 tempval = 0;
18912
18913 } else {
18914
18915 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18916 NULL);
18917 }
18918 }
18919
18920 if ((pi->nphy_aband_spurwar_en) &&
18921 (CHSPEC_IS5G(pi->radio_chanspec))) {
18922 switch (cur_channel) {
18923 case 54:
18924 nphy_adj_tone_id_buf[0] = 32;
18925 nphy_adj_noise_var_buf[0] = 0x25f;
18926 break;
18927 case 38:
18928 case 102:
18929 case 118:
18930 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) &&
18931 (pi->sh->chippkg == BCM4717_PKG_ID)) {
18932 nphy_adj_tone_id_buf[0] = 32;
18933 nphy_adj_noise_var_buf[0] = 0x21f;
18934 } else {
18935 nphy_adj_tone_id_buf[0] = 0;
18936 nphy_adj_noise_var_buf[0] = 0x0;
18937 }
18938 break;
18939 case 134:
18940 nphy_adj_tone_id_buf[0] = 32;
18941 nphy_adj_noise_var_buf[0] = 0x21f;
18942 break;
18943 case 151:
18944 nphy_adj_tone_id_buf[0] = 16;
18945 nphy_adj_noise_var_buf[0] = 0x23f;
18946 break;
18947 case 153:
18948 case 161:
18949 nphy_adj_tone_id_buf[0] = 48;
18950 nphy_adj_noise_var_buf[0] = 0x23f;
18951 break;
18952 default:
18953 nphy_adj_tone_id_buf[0] = 0;
18954 nphy_adj_noise_var_buf[0] = 0x0;
18955 break;
18956 }
18957
18958 if (nphy_adj_tone_id_buf[0]
18959 && nphy_adj_noise_var_buf[0]) {
18960 wlc_phy_adjust_min_noisevar_nphy(pi, 1,
18961 nphy_adj_tone_id_buf,
18962 nphy_adj_noise_var_buf);
18963 } else {
18964 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18965 NULL);
18966 }
18967 }
18968
18969 if (pi->phyhang_avoid)
18970 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
18971 }
18972}
18973
18974static void
7cc4a4c0
JC
18975wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chanspec,
18976 const nphy_sfo_cfg_t *ci)
a9533e7e 18977{
7d4df48e 18978 u16 val;
a9533e7e
HP
18979
18980 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
18981 if (CHSPEC_IS5G(chanspec) && !val) {
18982
18983 val = R_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param);
18984 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param,
18985 (val | MAC_PHY_FORCE_CLK));
18986
18987 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18988 (BBCFG_RESETCCA | BBCFG_RESETRX));
18989
18990 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param, val);
18991
18992 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
18993 } else if (!CHSPEC_IS5G(chanspec) && val) {
18994
18995 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
18996
18997 val = R_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param);
18998 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param,
18999 (val | MAC_PHY_FORCE_CLK));
19000
19001 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
7d4df48e 19002 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
a9533e7e
HP
19003
19004 W_REG(pi->sh->osh, &pi->regs->psm_phy_hdr_param, val);
19005 }
19006
19007 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
19008 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
19009 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
19010
19011 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
19012 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
19013 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
19014
19015 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
19016 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
19017
19018 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
19019 } else {
19020 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
19021 NPHY_ClassifierCtrl_ofdm_en);
19022
19023 if (CHSPEC_IS2G(chanspec))
19024 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
19025 }
19026
19027 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
19028 wlc_phy_txpwr_fixpower_nphy(pi);
19029 }
19030
19031 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
19032
19033 wlc_phy_adjust_lnagaintbl_nphy(pi);
19034 }
19035
19036 wlc_phy_txlpfbw_nphy(pi);
19037
19038 if (NREV_GE(pi->pubpi.phy_rev, 3)
19039 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
e868ab03 19040 u8 spuravoid = 0;
a9533e7e
HP
19041
19042 val = CHSPEC_CHANNEL(chanspec);
19043 if (!CHSPEC_IS40(pi->radio_chanspec)) {
19044 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19045 if ((val == 13) || (val == 14) || (val == 153)) {
19046 spuravoid = 1;
19047 }
19048 } else {
19049
19050 if (((val >= 5) && (val <= 8)) || (val == 13)
19051 || (val == 14)) {
19052 spuravoid = 1;
19053 }
19054 }
19055 } else {
19056 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19057 if (val == 54) {
19058 spuravoid = 1;
19059 }
19060 } else {
19061
19062 if (pi->nphy_aband_spurwar_en &&
19063 ((val == 38) || (val == 102)
19064 || (val == 118))) {
19065 if ((CHIPID(pi->sh->chip) ==
19066 BCM4716_CHIP_ID)
19067 && (pi->sh->chippkg ==
19068 BCM4717_PKG_ID)) {
19069 spuravoid = 0;
19070 } else {
19071 spuravoid = 1;
19072 }
19073 }
19074 }
19075 }
19076
19077 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
19078 spuravoid = 1;
19079
19080 if ((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
19081 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID)) {
19082 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
19083 } else {
19084 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, FALSE);
19085 si_pmu_spuravoid(pi->sh->sih, pi->sh->osh, spuravoid);
19086 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, TRUE);
19087 }
19088
19089 if ((CHIPID(pi->sh->chip) == BCM43224_CHIP_ID) ||
19090 (CHIPID(pi->sh->chip) == BCM43225_CHIP_ID) ||
19091 (CHIPID(pi->sh->chip) == BCM43421_CHIP_ID)) {
19092
19093 if (spuravoid == 1) {
19094
19095 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_l,
19096 0x5341);
19097 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_h,
19098 0x8);
19099 } else {
19100
19101 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_l,
19102 0x8889);
19103 W_REG(pi->sh->osh, &pi->regs->tsf_clk_frac_h,
19104 0x8);
19105 }
19106 }
19107
19108 if (!((CHIPID(pi->sh->chip) == BCM4716_CHIP_ID) ||
19109 (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID))) {
19110 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
19111 }
19112
19113 mod_phy_reg(pi, 0x01, (0x1 << 15),
19114 ((spuravoid > 0) ? (0x1 << 15) : 0));
19115
19116 wlc_phy_resetcca_nphy(pi);
19117
19118 pi->phy_isspuravoid = (spuravoid > 0);
19119 }
19120
19121 if (NREV_LT(pi->pubpi.phy_rev, 7))
19122 write_phy_reg(pi, 0x17e, 0x3830);
19123
19124 wlc_phy_spurwar_nphy(pi);
19125}
19126
7cc4a4c0 19127void wlc_phy_chanspec_set_nphy(phy_info_t *pi, chanspec_t chanspec)
a9533e7e
HP
19128{
19129 int freq;
19130 chan_info_nphy_radio2057_t *t0 = NULL;
19131 chan_info_nphy_radio205x_t *t1 = NULL;
19132 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
19133 chan_info_nphy_2055_t *t3 = NULL;
19134
19135 if (NORADIO_ENAB(pi->pubpi)) {
19136 return;
19137 }
19138
19139 if (!wlc_phy_chan2freq_nphy
19140 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19141 return;
19142
19143 wlc_phy_chanspec_radio_set((wlc_phy_t *) pi, chanspec);
19144
19145 if (CHSPEC_BW(chanspec) != pi->bw)
19146 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
19147
19148 if (CHSPEC_IS40(chanspec)) {
19149 if (CHSPEC_SB_UPPER(chanspec)) {
19150 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
19151 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19152 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
19153 }
19154 } else {
19155 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
19156 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19157 and_phy_reg(pi, 0x310,
19158 (~PRIM_SEL_UP20 & 0xffff));
19159 }
19160 }
19161 }
19162
19163 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19164 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19165
19166 if ((pi->pubpi.radiorev <= 4)
19167 || (pi->pubpi.radiorev == 6)) {
19168 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
19169 0x2,
19170 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19171 : 0));
19172 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19173 0x2,
19174 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19175 : 0));
19176 }
19177
19178 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
19179 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19180 (pi->pubpi.radiorev ==
19181 5) ? (const nphy_sfo_cfg_t
19182 *)&(t2->
19183 PHY_BW1a)
19184 : (const nphy_sfo_cfg_t *)
19185 &(t0->PHY_BW1a));
19186
19187 } else {
19188
19189 mod_radio_reg(pi,
19190 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19191 0x4,
19192 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
19193 wlc_phy_chanspec_radio2056_setup(pi, t1);
19194
19195 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19196 (const nphy_sfo_cfg_t *)
19197 &(t1->PHY_BW1a));
19198 }
19199
19200 } else {
19201
19202 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19203 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19204 : (0x05 << 4)));
19205
19206 wlc_phy_chanspec_radio2055_setup(pi, t3);
19207 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19208 (const nphy_sfo_cfg_t *)&(t3->
19209 PHY_BW1a));
19210 }
19211
19212}
19213
7cc4a4c0 19214static void wlc_phy_savecal_nphy(phy_info_t *pi)
a9533e7e
HP
19215{
19216 void *tbl_ptr;
19217 int coreNum;
7d4df48e 19218 u16 *txcal_radio_regs = NULL;
a9533e7e
HP
19219
19220 if (pi->phyhang_avoid)
19221 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
19222
19223 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19224
19225 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19226 &pi->calibration_cache.
19227 rxcal_coeffs_2G);
19228
19229 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19230 txcal_radio_regs =
19231 pi->calibration_cache.txcal_radio_regs_2G;
19232 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19233
19234 pi->calibration_cache.txcal_radio_regs_2G[0] =
19235 read_radio_reg(pi,
19236 RADIO_2056_TX_LOFT_FINE_I |
19237 RADIO_2056_TX0);
19238 pi->calibration_cache.txcal_radio_regs_2G[1] =
19239 read_radio_reg(pi,
19240 RADIO_2056_TX_LOFT_FINE_Q |
19241 RADIO_2056_TX0);
19242 pi->calibration_cache.txcal_radio_regs_2G[2] =
19243 read_radio_reg(pi,
19244 RADIO_2056_TX_LOFT_FINE_I |
19245 RADIO_2056_TX1);
19246 pi->calibration_cache.txcal_radio_regs_2G[3] =
19247 read_radio_reg(pi,
19248 RADIO_2056_TX_LOFT_FINE_Q |
19249 RADIO_2056_TX1);
19250
19251 pi->calibration_cache.txcal_radio_regs_2G[4] =
19252 read_radio_reg(pi,
19253 RADIO_2056_TX_LOFT_COARSE_I |
19254 RADIO_2056_TX0);
19255 pi->calibration_cache.txcal_radio_regs_2G[5] =
19256 read_radio_reg(pi,
19257 RADIO_2056_TX_LOFT_COARSE_Q |
19258 RADIO_2056_TX0);
19259 pi->calibration_cache.txcal_radio_regs_2G[6] =
19260 read_radio_reg(pi,
19261 RADIO_2056_TX_LOFT_COARSE_I |
19262 RADIO_2056_TX1);
19263 pi->calibration_cache.txcal_radio_regs_2G[7] =
19264 read_radio_reg(pi,
19265 RADIO_2056_TX_LOFT_COARSE_Q |
19266 RADIO_2056_TX1);
19267 } else {
19268 pi->calibration_cache.txcal_radio_regs_2G[0] =
19269 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19270 pi->calibration_cache.txcal_radio_regs_2G[1] =
19271 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19272 pi->calibration_cache.txcal_radio_regs_2G[2] =
19273 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19274 pi->calibration_cache.txcal_radio_regs_2G[3] =
19275 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19276 }
19277
19278 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
19279 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19280 } else {
19281
19282 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19283 &pi->calibration_cache.
19284 rxcal_coeffs_5G);
19285
19286 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19287 txcal_radio_regs =
19288 pi->calibration_cache.txcal_radio_regs_5G;
19289 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19290
19291 pi->calibration_cache.txcal_radio_regs_5G[0] =
19292 read_radio_reg(pi,
19293 RADIO_2056_TX_LOFT_FINE_I |
19294 RADIO_2056_TX0);
19295 pi->calibration_cache.txcal_radio_regs_5G[1] =
19296 read_radio_reg(pi,
19297 RADIO_2056_TX_LOFT_FINE_Q |
19298 RADIO_2056_TX0);
19299 pi->calibration_cache.txcal_radio_regs_5G[2] =
19300 read_radio_reg(pi,
19301 RADIO_2056_TX_LOFT_FINE_I |
19302 RADIO_2056_TX1);
19303 pi->calibration_cache.txcal_radio_regs_5G[3] =
19304 read_radio_reg(pi,
19305 RADIO_2056_TX_LOFT_FINE_Q |
19306 RADIO_2056_TX1);
19307
19308 pi->calibration_cache.txcal_radio_regs_5G[4] =
19309 read_radio_reg(pi,
19310 RADIO_2056_TX_LOFT_COARSE_I |
19311 RADIO_2056_TX0);
19312 pi->calibration_cache.txcal_radio_regs_5G[5] =
19313 read_radio_reg(pi,
19314 RADIO_2056_TX_LOFT_COARSE_Q |
19315 RADIO_2056_TX0);
19316 pi->calibration_cache.txcal_radio_regs_5G[6] =
19317 read_radio_reg(pi,
19318 RADIO_2056_TX_LOFT_COARSE_I |
19319 RADIO_2056_TX1);
19320 pi->calibration_cache.txcal_radio_regs_5G[7] =
19321 read_radio_reg(pi,
19322 RADIO_2056_TX_LOFT_COARSE_Q |
19323 RADIO_2056_TX1);
19324 } else {
19325 pi->calibration_cache.txcal_radio_regs_5G[0] =
19326 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19327 pi->calibration_cache.txcal_radio_regs_5G[1] =
19328 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19329 pi->calibration_cache.txcal_radio_regs_5G[2] =
19330 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19331 pi->calibration_cache.txcal_radio_regs_5G[3] =
19332 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19333 }
19334
19335 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
19336 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19337 }
19338 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19339 for (coreNum = 0; coreNum <= 1; coreNum++) {
19340
19341 txcal_radio_regs[2 * coreNum] =
19342 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19343 LOFT_FINE_I);
19344 txcal_radio_regs[2 * coreNum + 1] =
19345 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19346 LOFT_FINE_Q);
19347
19348 txcal_radio_regs[2 * coreNum + 4] =
19349 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19350 LOFT_COARSE_I);
19351 txcal_radio_regs[2 * coreNum + 5] =
19352 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19353 LOFT_COARSE_Q);
19354 }
19355 }
19356
19357 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
19358
19359 if (pi->phyhang_avoid)
19360 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
19361}
19362
7cc4a4c0 19363static void wlc_phy_restorecal_nphy(phy_info_t *pi)
a9533e7e 19364{
7d4df48e
GKH
19365 u16 *loft_comp;
19366 u16 txcal_coeffs_bphy[4];
19367 u16 *tbl_ptr;
a9533e7e 19368 int coreNum;
7d4df48e 19369 u16 *txcal_radio_regs = NULL;
a9533e7e
HP
19370
19371 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19372 if (pi->nphy_iqcal_chanspec_2G == 0)
19373 return;
19374
19375 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19376 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19377 } else {
19378 if (pi->nphy_iqcal_chanspec_5G == 0)
19379 return;
19380
19381 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19382 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
19383 }
19384
19385 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16,
19386 (void *)tbl_ptr);
19387
19388 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19389 txcal_coeffs_bphy[0] = tbl_ptr[0];
19390 txcal_coeffs_bphy[1] = tbl_ptr[1];
19391 txcal_coeffs_bphy[2] = tbl_ptr[2];
19392 txcal_coeffs_bphy[3] = tbl_ptr[3];
19393 } else {
19394 txcal_coeffs_bphy[0] = 0;
19395 txcal_coeffs_bphy[1] = 0;
19396 txcal_coeffs_bphy[2] = 0;
19397 txcal_coeffs_bphy[3] = 0;
19398 }
19399
19400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
19401 txcal_coeffs_bphy);
19402
19403 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
19404
19405 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
19406
19407 if (NREV_LT(pi->pubpi.phy_rev, 2))
19408 wlc_phy_tx_iq_war_nphy(pi);
19409
19410 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19411 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19412 txcal_radio_regs =
19413 pi->calibration_cache.txcal_radio_regs_2G;
19414 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19415
19416 write_radio_reg(pi,
19417 RADIO_2056_TX_LOFT_FINE_I |
19418 RADIO_2056_TX0,
19419 pi->calibration_cache.
19420 txcal_radio_regs_2G[0]);
19421 write_radio_reg(pi,
19422 RADIO_2056_TX_LOFT_FINE_Q |
19423 RADIO_2056_TX0,
19424 pi->calibration_cache.
19425 txcal_radio_regs_2G[1]);
19426 write_radio_reg(pi,
19427 RADIO_2056_TX_LOFT_FINE_I |
19428 RADIO_2056_TX1,
19429 pi->calibration_cache.
19430 txcal_radio_regs_2G[2]);
19431 write_radio_reg(pi,
19432 RADIO_2056_TX_LOFT_FINE_Q |
19433 RADIO_2056_TX1,
19434 pi->calibration_cache.
19435 txcal_radio_regs_2G[3]);
19436
19437 write_radio_reg(pi,
19438 RADIO_2056_TX_LOFT_COARSE_I |
19439 RADIO_2056_TX0,
19440 pi->calibration_cache.
19441 txcal_radio_regs_2G[4]);
19442 write_radio_reg(pi,
19443 RADIO_2056_TX_LOFT_COARSE_Q |
19444 RADIO_2056_TX0,
19445 pi->calibration_cache.
19446 txcal_radio_regs_2G[5]);
19447 write_radio_reg(pi,
19448 RADIO_2056_TX_LOFT_COARSE_I |
19449 RADIO_2056_TX1,
19450 pi->calibration_cache.
19451 txcal_radio_regs_2G[6]);
19452 write_radio_reg(pi,
19453 RADIO_2056_TX_LOFT_COARSE_Q |
19454 RADIO_2056_TX1,
19455 pi->calibration_cache.
19456 txcal_radio_regs_2G[7]);
19457 } else {
19458 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19459 pi->calibration_cache.
19460 txcal_radio_regs_2G[0]);
19461 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19462 pi->calibration_cache.
19463 txcal_radio_regs_2G[1]);
19464 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19465 pi->calibration_cache.
19466 txcal_radio_regs_2G[2]);
19467 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19468 pi->calibration_cache.
19469 txcal_radio_regs_2G[3]);
19470 }
19471
19472 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19473 &pi->calibration_cache.
19474 rxcal_coeffs_2G);
19475 } else {
19476 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19477 txcal_radio_regs =
19478 pi->calibration_cache.txcal_radio_regs_5G;
19479 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19480
19481 write_radio_reg(pi,
19482 RADIO_2056_TX_LOFT_FINE_I |
19483 RADIO_2056_TX0,
19484 pi->calibration_cache.
19485 txcal_radio_regs_5G[0]);
19486 write_radio_reg(pi,
19487 RADIO_2056_TX_LOFT_FINE_Q |
19488 RADIO_2056_TX0,
19489 pi->calibration_cache.
19490 txcal_radio_regs_5G[1]);
19491 write_radio_reg(pi,
19492 RADIO_2056_TX_LOFT_FINE_I |
19493 RADIO_2056_TX1,
19494 pi->calibration_cache.
19495 txcal_radio_regs_5G[2]);
19496 write_radio_reg(pi,
19497 RADIO_2056_TX_LOFT_FINE_Q |
19498 RADIO_2056_TX1,
19499 pi->calibration_cache.
19500 txcal_radio_regs_5G[3]);
19501
19502 write_radio_reg(pi,
19503 RADIO_2056_TX_LOFT_COARSE_I |
19504 RADIO_2056_TX0,
19505 pi->calibration_cache.
19506 txcal_radio_regs_5G[4]);
19507 write_radio_reg(pi,
19508 RADIO_2056_TX_LOFT_COARSE_Q |
19509 RADIO_2056_TX0,
19510 pi->calibration_cache.
19511 txcal_radio_regs_5G[5]);
19512 write_radio_reg(pi,
19513 RADIO_2056_TX_LOFT_COARSE_I |
19514 RADIO_2056_TX1,
19515 pi->calibration_cache.
19516 txcal_radio_regs_5G[6]);
19517 write_radio_reg(pi,
19518 RADIO_2056_TX_LOFT_COARSE_Q |
19519 RADIO_2056_TX1,
19520 pi->calibration_cache.
19521 txcal_radio_regs_5G[7]);
19522 } else {
19523 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19524 pi->calibration_cache.
19525 txcal_radio_regs_5G[0]);
19526 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19527 pi->calibration_cache.
19528 txcal_radio_regs_5G[1]);
19529 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19530 pi->calibration_cache.
19531 txcal_radio_regs_5G[2]);
19532 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19533 pi->calibration_cache.
19534 txcal_radio_regs_5G[3]);
19535 }
19536
19537 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19538 &pi->calibration_cache.
19539 rxcal_coeffs_5G);
19540 }
19541
19542 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19543 for (coreNum = 0; coreNum <= 1; coreNum++) {
19544
19545 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19546 LOFT_FINE_I,
19547 txcal_radio_regs[2 * coreNum]);
19548 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19549 LOFT_FINE_Q,
19550 txcal_radio_regs[2 * coreNum + 1]);
19551
19552 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19553 LOFT_COARSE_I,
19554 txcal_radio_regs[2 * coreNum + 4]);
19555 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19556 LOFT_COARSE_Q,
19557 txcal_radio_regs[2 * coreNum + 5]);
19558 }
19559 }
19560}
19561
7cc4a4c0 19562void wlc_phy_antsel_init(wlc_phy_t *ppi, bool lut_init)
a9533e7e
HP
19563{
19564 phy_info_t *pi = (phy_info_t *) ppi;
7d4df48e 19565 u16 mask = 0xfc00;
66cbd3ab 19566 u32 mc = 0;
a9533e7e
HP
19567
19568 if (NREV_GE(pi->pubpi.phy_rev, 7))
19569 return;
19570
19571 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
7d4df48e 19572 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
a9533e7e
HP
19573
19574 if (lut_init == FALSE)
19575 return;
19576
19577 if (pi->srom_fem2g.antswctrllut == 0) {
19578 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19579 1, 0x02, 16, &v0);
19580 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19581 1, 0x03, 16, &v1);
19582 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19583 1, 0x08, 16, &v2);
19584 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19585 1, 0x0C, 16, &v3);
19586 } else {
19587 ASSERT(0);
19588 }
19589
19590 if (pi->srom_fem5g.antswctrllut == 0) {
19591 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19592 1, 0x12, 16, &v0);
19593 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19594 1, 0x13, 16, &v1);
19595 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19596 1, 0x18, 16, &v2);
19597 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19598 1, 0x1C, 16, &v3);
19599 } else {
19600 ASSERT(0);
19601 }
19602 } else {
19603
19604 write_phy_reg(pi, 0xc8, 0x0);
19605 write_phy_reg(pi, 0xc9, 0x0);
19606
19607 si_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
19608
19609 mc = R_REG(pi->sh->osh, &pi->regs->maccontrol);
19610 mc &= ~MCTL_GPOUT_SEL_MASK;
19611 W_REG(pi->sh->osh, &pi->regs->maccontrol, mc);
19612
19613 OR_REG(pi->sh->osh, &pi->regs->psm_gpio_oe, mask);
19614
19615 AND_REG(pi->sh->osh, &pi->regs->psm_gpio_out, ~mask);
19616
19617 if (lut_init) {
19618 write_phy_reg(pi, 0xf8, 0x02d8);
19619 write_phy_reg(pi, 0xf9, 0x0301);
19620 write_phy_reg(pi, 0xfa, 0x02d8);
19621 write_phy_reg(pi, 0xfb, 0x0301);
19622 }
19623 }
19624}
19625
7d4df48e 19626u16 wlc_phy_classifier_nphy(phy_info_t *pi, u16 mask, u16 val)
a9533e7e 19627{
7d4df48e 19628 u16 curr_ctl, new_ctl;
a9533e7e
HP
19629 bool suspended = FALSE;
19630
19631 if (D11REV_IS(pi->sh->corerev, 16)) {
19632 suspended =
19633 (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC) ?
19634 FALSE : TRUE;
19635 if (!suspended)
19636 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19637 }
19638
19639 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
19640
19641 new_ctl = (curr_ctl & (~mask)) | (val & mask);
19642
19643 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
19644
19645 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
19646 wlapi_enable_mac(pi->sh->physhim);
19647
19648 return new_ctl;
19649}
19650
7d4df48e 19651static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals)
a9533e7e
HP
19652{
19653
19654 if (write == 0) {
19655 vals[0] = read_phy_reg(pi, 0x2c);
19656 vals[1] = read_phy_reg(pi, 0x42);
19657 } else {
19658 write_phy_reg(pi, 0x2c, vals[0]);
19659 write_phy_reg(pi, 0x42, vals[1]);
19660 }
19661}
19662
e868ab03 19663void wlc_phy_force_rfseq_nphy(phy_info_t *pi, u8 cmd)
a9533e7e 19664{
7d4df48e
GKH
19665 u16 trigger_mask, status_mask;
19666 u16 orig_RfseqCoreActv;
a9533e7e
HP
19667
19668 switch (cmd) {
19669 case NPHY_RFSEQ_RX2TX:
19670 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19671 status_mask = NPHY_RfseqStatus_rx2tx;
19672 break;
19673 case NPHY_RFSEQ_TX2RX:
19674 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19675 status_mask = NPHY_RfseqStatus_tx2rx;
19676 break;
19677 case NPHY_RFSEQ_RESET2RX:
19678 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19679 status_mask = NPHY_RfseqStatus_reset2rx;
19680 break;
19681 case NPHY_RFSEQ_UPDATEGAINH:
19682 trigger_mask = NPHY_RfseqTrigger_updategainh;
19683 status_mask = NPHY_RfseqStatus_updategainh;
19684 break;
19685 case NPHY_RFSEQ_UPDATEGAINL:
19686 trigger_mask = NPHY_RfseqTrigger_updategainl;
19687 status_mask = NPHY_RfseqStatus_updategainl;
19688 break;
19689 case NPHY_RFSEQ_UPDATEGAINU:
19690 trigger_mask = NPHY_RfseqTrigger_updategainu;
19691 status_mask = NPHY_RfseqStatus_updategainu;
19692 break;
19693 default:
19694 return;
19695 }
19696
19697 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
19698 or_phy_reg(pi, 0xa1,
19699 (NPHY_RfseqMode_CoreActv_override |
19700 NPHY_RfseqMode_Trigger_override));
19701 or_phy_reg(pi, 0xa3, trigger_mask);
19702 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
19703 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
19704
19705 ASSERT((read_phy_reg(pi, 0xa4) & status_mask) == 0);
19706}
19707
19708static void
e868ab03
GKH
19709wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *events, u8 *dlys,
19710 u8 len)
a9533e7e 19711{
66cbd3ab 19712 u32 t1_offset, t2_offset;
e868ab03
GKH
19713 u8 ctr;
19714 u8 end_event =
a9533e7e
HP
19715 NREV_GE(pi->pubpi.phy_rev,
19716 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
e868ab03 19717 u8 end_dly = 1;
a9533e7e
HP
19718
19719 ASSERT(len <= 16);
19720
19721 if (pi->phyhang_avoid)
19722 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
19723
19724 t1_offset = cmd << 4;
19725 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
19726 events);
19727 t2_offset = t1_offset + 0x080;
19728 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19729 dlys);
19730
19731 for (ctr = len; ctr < 16; ctr++) {
19732 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19733 t1_offset + ctr, 8, &end_event);
19734 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19735 t2_offset + ctr, 8, &end_dly);
19736 }
19737
19738 if (pi->phyhang_avoid)
19739 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
19740}
19741
7d4df48e 19742static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset)
a9533e7e 19743{
7d4df48e
GKH
19744 u16 lpf_bw_ctl_val = 0;
19745 u16 rx2tx_lpf_rc_lut_offset = 0;
a9533e7e
HP
19746
19747 if (offset == 0) {
19748 if (CHSPEC_IS40(pi->radio_chanspec)) {
19749 rx2tx_lpf_rc_lut_offset = 0x159;
19750 } else {
19751 rx2tx_lpf_rc_lut_offset = 0x154;
19752 }
19753 } else {
19754 rx2tx_lpf_rc_lut_offset = offset;
19755 }
19756 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
66cbd3ab 19757 (u32) rx2tx_lpf_rc_lut_offset, 16,
a9533e7e
HP
19758 &lpf_bw_ctl_val);
19759
19760 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19761
19762 return lpf_bw_ctl_val;
19763}
19764
19765static void
7d4df48e 19766wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
e868ab03 19767 u8 core_mask, u8 off, u8 override_id)
a9533e7e 19768{
e868ab03 19769 u8 core_num;
7d4df48e 19770 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
e868ab03 19771 u8 val_shift = 0;
a9533e7e
HP
19772
19773 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19774 en_mask = field;
19775 for (core_num = 0; core_num < 2; core_num++) {
19776 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19777
19778 switch (field) {
19779 case (0x1 << 2):
19780 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19781 val_addr = (core_num == 0) ? 0x7a :
19782 0x7d;
19783 val_mask = (0x1 << 1);
19784 val_shift = 1;
19785 break;
19786 case (0x1 << 3):
19787 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19788 val_addr = (core_num == 0) ? 0x7a :
19789 0x7d;
19790 val_mask = (0x1 << 2);
19791 val_shift = 2;
19792 break;
19793 case (0x1 << 4):
19794 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19795 val_addr = (core_num == 0) ? 0x7a :
19796 0x7d;
19797 val_mask = (0x1 << 4);
19798 val_shift = 4;
19799 break;
19800 case (0x1 << 5):
19801 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19802 val_addr = (core_num == 0) ? 0x7a :
19803 0x7d;
19804 val_mask = (0x1 << 5);
19805 val_shift = 5;
19806 break;
19807 case (0x1 << 6):
19808 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19809 val_addr = (core_num == 0) ? 0x7a :
19810 0x7d;
19811 val_mask = (0x1 << 6);
19812 val_shift = 6;
19813 break;
19814 case (0x1 << 7):
19815 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19816 val_addr = (core_num == 0) ? 0x7a :
19817 0x7d;
19818 val_mask = (0x1 << 7);
19819 val_shift = 7;
19820 break;
19821 case (0x1 << 10):
19822 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19823 val_addr = (core_num == 0) ? 0xf8 :
19824 0xfa;
19825 val_mask = (0x7 << 4);
19826 val_shift = 4;
19827 break;
19828 case (0x1 << 11):
19829 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19830 val_addr = (core_num == 0) ? 0x7b :
19831 0x7e;
19832 val_mask = (0xffff << 0);
19833 val_shift = 0;
19834 break;
19835 case (0x1 << 12):
19836 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19837 val_addr = (core_num == 0) ? 0x7c :
19838 0x7f;
19839 val_mask = (0xffff << 0);
19840 val_shift = 0;
19841 break;
19842 case (0x3 << 13):
19843 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19844 val_addr = (core_num == 0) ? 0x348 :
19845 0x349;
19846 val_mask = (0xff << 0);
19847 val_shift = 0;
19848 break;
19849 case (0x1 << 13):
19850 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19851 val_addr = (core_num == 0) ? 0x348 :
19852 0x349;
19853 val_mask = (0xf << 0);
19854 val_shift = 0;
19855 break;
19856 default:
19857 addr = 0xffff;
19858 break;
19859 }
19860 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19861
19862 switch (field) {
19863 case (0x1 << 1):
19864 en_addr = (core_num == 0) ? 0x342 :
19865 0x343;
19866 val_addr = (core_num == 0) ? 0x340 :
19867 0x341;
19868 val_mask = (0x1 << 1);
19869 val_shift = 1;
19870 break;
19871 case (0x1 << 3):
19872 en_addr = (core_num == 0) ? 0x342 :
19873 0x343;
19874 val_addr = (core_num == 0) ? 0x340 :
19875 0x341;
19876 val_mask = (0x1 << 3);
19877 val_shift = 3;
19878 break;
19879 case (0x1 << 5):
19880 en_addr = (core_num == 0) ? 0x342 :
19881 0x343;
19882 val_addr = (core_num == 0) ? 0x340 :
19883 0x341;
19884 val_mask = (0x1 << 5);
19885 val_shift = 5;
19886 break;
19887 case (0x1 << 4):
19888 en_addr = (core_num == 0) ? 0x342 :
19889 0x343;
19890 val_addr = (core_num == 0) ? 0x340 :
19891 0x341;
19892 val_mask = (0x1 << 4);
19893 val_shift = 4;
19894 break;
19895 case (0x1 << 2):
19896
19897 en_addr = (core_num == 0) ? 0x342 :
19898 0x343;
19899 val_addr = (core_num == 0) ? 0x340 :
19900 0x341;
19901 val_mask = (0x1 << 2);
19902 val_shift = 2;
19903 break;
19904 case (0x1 << 7):
19905
19906 en_addr = (core_num == 0) ? 0x342 :
19907 0x343;
19908 val_addr = (core_num == 0) ? 0x340 :
19909 0x341;
19910 val_mask = (0x7 << 8);
19911 val_shift = 8;
19912 break;
19913 case (0x1 << 11):
19914 en_addr = (core_num == 0) ? 0x342 :
19915 0x343;
19916 val_addr = (core_num == 0) ? 0x340 :
19917 0x341;
19918 val_mask = (0x1 << 14);
19919 val_shift = 14;
19920 break;
19921 case (0x1 << 10):
19922 en_addr = (core_num == 0) ? 0x342 :
19923 0x343;
19924 val_addr = (core_num == 0) ? 0x340 :
19925 0x341;
19926 val_mask = (0x1 << 13);
19927 val_shift = 13;
19928 break;
19929 case (0x1 << 9):
19930 en_addr = (core_num == 0) ? 0x342 :
19931 0x343;
19932 val_addr = (core_num == 0) ? 0x340 :
19933 0x341;
19934 val_mask = (0x1 << 12);
19935 val_shift = 12;
19936 break;
19937 case (0x1 << 8):
19938 en_addr = (core_num == 0) ? 0x342 :
19939 0x343;
19940 val_addr = (core_num == 0) ? 0x340 :
19941 0x341;
19942 val_mask = (0x1 << 11);
19943 val_shift = 11;
19944 break;
19945 case (0x1 << 6):
19946 en_addr = (core_num == 0) ? 0x342 :
19947 0x343;
19948 val_addr = (core_num == 0) ? 0x340 :
19949 0x341;
19950 val_mask = (0x1 << 6);
19951 val_shift = 6;
19952 break;
19953 case (0x1 << 0):
19954 en_addr = (core_num == 0) ? 0x342 :
19955 0x343;
19956 val_addr = (core_num == 0) ? 0x340 :
19957 0x341;
19958 val_mask = (0x1 << 0);
19959 val_shift = 0;
19960 break;
19961 default:
19962 addr = 0xffff;
19963 break;
19964 }
19965 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19966
19967 switch (field) {
19968 case (0x1 << 3):
19969 en_addr = (core_num == 0) ? 0x346 :
19970 0x347;
19971 val_addr = (core_num == 0) ? 0x344 :
19972 0x345;
19973 val_mask = (0x1 << 3);
19974 val_shift = 3;
19975 break;
19976 case (0x1 << 1):
19977 en_addr = (core_num == 0) ? 0x346 :
19978 0x347;
19979 val_addr = (core_num == 0) ? 0x344 :
19980 0x345;
19981 val_mask = (0x1 << 1);
19982 val_shift = 1;
19983 break;
19984 case (0x1 << 0):
19985 en_addr = (core_num == 0) ? 0x346 :
19986 0x347;
19987 val_addr = (core_num == 0) ? 0x344 :
19988 0x345;
19989 val_mask = (0x1 << 0);
19990 val_shift = 0;
19991 break;
19992 case (0x1 << 2):
19993 en_addr = (core_num == 0) ? 0x346 :
19994 0x347;
19995 val_addr = (core_num == 0) ? 0x344 :
19996 0x345;
19997 val_mask = (0x1 << 2);
19998 val_shift = 2;
19999 break;
20000 case (0x1 << 4):
20001 en_addr = (core_num == 0) ? 0x346 :
20002 0x347;
20003 val_addr = (core_num == 0) ? 0x344 :
20004 0x345;
20005 val_mask = (0x1 << 4);
20006 val_shift = 4;
20007 break;
20008 default:
20009 addr = 0xffff;
20010 break;
20011 }
20012 }
20013
20014 if (off) {
20015 and_phy_reg(pi, en_addr, ~en_mask);
20016 and_phy_reg(pi, val_addr, ~val_mask);
20017 } else {
20018
20019 if ((core_mask == 0)
20020 || (core_mask & (1 << core_num))) {
20021 or_phy_reg(pi, en_addr, en_mask);
20022
20023 if (addr != 0xffff) {
20024 mod_phy_reg(pi, val_addr,
20025 val_mask,
20026 (value <<
20027 val_shift));
20028 }
20029 }
20030 }
20031 }
20032 }
20033}
20034
20035static void
7d4df48e 20036wlc_phy_rfctrl_override_nphy(phy_info_t *pi, u16 field, u16 value,
e868ab03 20037 u8 core_mask, u8 off)
a9533e7e 20038{
e868ab03 20039 u8 core_num;
7d4df48e 20040 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
a9533e7e 20041 0, val_mask = 0;
e868ab03 20042 u8 shift = 0, val_shift = 0;
a9533e7e
HP
20043
20044 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
20045
20046 en_mask = field;
20047 for (core_num = 0; core_num < 2; core_num++) {
20048
20049 switch (field) {
20050 case (0x1 << 1):
20051 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20052 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20053 val_mask = (0x1 << 0);
20054 val_shift = 0;
20055 break;
20056 case (0x1 << 2):
20057 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20058 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20059 val_mask = (0x1 << 1);
20060 val_shift = 1;
20061 break;
20062 case (0x1 << 3):
20063 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20064 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20065 val_mask = (0x1 << 2);
20066 val_shift = 2;
20067 break;
20068 case (0x1 << 4):
20069 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20070 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20071 val_mask = (0x1 << 4);
20072 val_shift = 4;
20073 break;
20074 case (0x1 << 5):
20075 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20076 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20077 val_mask = (0x1 << 5);
20078 val_shift = 5;
20079 break;
20080 case (0x1 << 6):
20081 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20082 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20083 val_mask = (0x1 << 6);
20084 val_shift = 6;
20085 break;
20086 case (0x1 << 7):
20087 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20088 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20089 val_mask = (0x1 << 7);
20090 val_shift = 7;
20091 break;
20092 case (0x1 << 8):
20093 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20094 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20095 val_mask = (0x7 << 8);
20096 val_shift = 8;
20097 break;
20098 case (0x1 << 11):
20099 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20100 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20101 val_mask = (0x7 << 13);
20102 val_shift = 13;
20103 break;
20104
20105 case (0x1 << 9):
20106 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20107 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20108 val_mask = (0x7 << 0);
20109 val_shift = 0;
20110 break;
20111
20112 case (0x1 << 10):
20113 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20114 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20115 val_mask = (0x7 << 4);
20116 val_shift = 4;
20117 break;
20118
20119 case (0x1 << 12):
20120 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20121 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20122 val_mask = (0xffff << 0);
20123 val_shift = 0;
20124 break;
20125 case (0x1 << 13):
20126 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20127 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20128 val_mask = (0xffff << 0);
20129 val_shift = 0;
20130 break;
20131 case (0x1 << 14):
20132 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20133 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20134 val_mask = (0x3 << 6);
20135 val_shift = 6;
20136 break;
20137 case (0x1 << 0):
20138 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20139 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20140 val_mask = (0x1 << 15);
20141 val_shift = 15;
20142 break;
20143 default:
20144 addr = 0xffff;
20145 break;
20146 }
20147
20148 if (off) {
20149 and_phy_reg(pi, en_addr, ~en_mask);
20150 and_phy_reg(pi, val_addr, ~val_mask);
20151 } else {
20152
20153 if ((core_mask == 0)
20154 || (core_mask & (1 << core_num))) {
20155 or_phy_reg(pi, en_addr, en_mask);
20156
20157 if (addr != 0xffff) {
20158 mod_phy_reg(pi, val_addr,
20159 val_mask,
20160 (value <<
20161 val_shift));
20162 }
20163 }
20164 }
20165 }
20166 } else {
20167
20168 if (off) {
20169 and_phy_reg(pi, 0xec, ~field);
20170 value = 0x0;
20171 } else {
20172 or_phy_reg(pi, 0xec, field);
20173 }
20174
20175 for (core_num = 0; core_num < 2; core_num++) {
20176
20177 switch (field) {
20178 case (0x1 << 1):
20179 case (0x1 << 9):
20180 case (0x1 << 12):
20181 case (0x1 << 13):
20182 case (0x1 << 14):
20183 addr = 0x78;
20184
20185 core_mask = 0x1;
20186 break;
20187 case (0x1 << 2):
20188 case (0x1 << 3):
20189 case (0x1 << 4):
20190 case (0x1 << 5):
20191 case (0x1 << 6):
20192 case (0x1 << 7):
20193 case (0x1 << 8):
20194 addr = (core_num == 0) ? 0x7a : 0x7d;
20195 break;
20196 case (0x1 << 10):
20197 addr = (core_num == 0) ? 0x7b : 0x7e;
20198 break;
20199 case (0x1 << 11):
20200 addr = (core_num == 0) ? 0x7c : 0x7f;
20201 break;
20202 default:
20203 addr = 0xffff;
20204 }
20205
20206 switch (field) {
20207 case (0x1 << 1):
20208 mask = (0x7 << 3);
20209 shift = 3;
20210 break;
20211 case (0x1 << 9):
20212 mask = (0x1 << 2);
20213 shift = 2;
20214 break;
20215 case (0x1 << 12):
20216 mask = (0x1 << 8);
20217 shift = 8;
20218 break;
20219 case (0x1 << 13):
20220 mask = (0x1 << 9);
20221 shift = 9;
20222 break;
20223 case (0x1 << 14):
20224 mask = (0xf << 12);
20225 shift = 12;
20226 break;
20227 case (0x1 << 2):
20228 mask = (0x1 << 0);
20229 shift = 0;
20230 break;
20231 case (0x1 << 3):
20232 mask = (0x1 << 1);
20233 shift = 1;
20234 break;
20235 case (0x1 << 4):
20236 mask = (0x1 << 2);
20237 shift = 2;
20238 break;
20239 case (0x1 << 5):
20240 mask = (0x3 << 4);
20241 shift = 4;
20242 break;
20243 case (0x1 << 6):
20244 mask = (0x3 << 6);
20245 shift = 6;
20246 break;
20247 case (0x1 << 7):
20248 mask = (0x1 << 8);
20249 shift = 8;
20250 break;
20251 case (0x1 << 8):
20252 mask = (0x1 << 9);
20253 shift = 9;
20254 break;
20255 case (0x1 << 10):
20256 mask = 0x1fff;
20257 shift = 0x0;
20258 break;
20259 case (0x1 << 11):
20260 mask = 0x1fff;
20261 shift = 0x0;
20262 break;
20263 default:
20264 mask = 0x0;
20265 shift = 0x0;
20266 break;
20267 }
20268
20269 if ((addr != 0xffff) && (core_mask & (1 << core_num))) {
20270 mod_phy_reg(pi, addr, mask, (value << shift));
20271 }
20272 }
20273
20274 or_phy_reg(pi, 0xec, (0x1 << 0));
20275 or_phy_reg(pi, 0x78, (0x1 << 0));
20276 OSL_DELAY(1);
20277 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20278 }
20279}
20280
20281static void
7d4df48e 20282wlc_phy_rfctrl_override_1tomany_nphy(phy_info_t *pi, u16 cmd, u16 value,
e868ab03 20283 u8 core_mask, u8 off)
a9533e7e 20284{
7d4df48e
GKH
20285 u16 rfmxgain = 0, lpfgain = 0;
20286 u16 tgain = 0;
a9533e7e
HP
20287
20288 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20289
20290 switch (cmd) {
20291 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
20292 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
20293 value, core_mask, off,
20294 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20295 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), value,
20296 core_mask, off,
20297 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20298 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), value,
20299 core_mask, off,
20300 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20301 break;
20302 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
20303 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20304 value, core_mask, off,
20305 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20306 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20307 core_mask, off,
20308 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20309 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20310 core_mask, off,
20311 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20312 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20313 core_mask, off,
20314 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20315 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0,
20316 core_mask, off,
20317 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20318 break;
20319 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
20320 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20321 value, core_mask, off,
20322 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20323 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20324 core_mask, off,
20325 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20326 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20327 core_mask, off,
20328 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20329 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), value,
20330 core_mask, off,
20331 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20332 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1,
20333 core_mask, off,
20334 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20335 break;
20336 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
20337 rfmxgain = value & 0x000ff;
20338 lpfgain = value & 0x0ff00;
20339 lpfgain = lpfgain >> 8;
20340
20341 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
20342 rfmxgain, core_mask,
20343 off,
20344 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20345 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x3 << 13),
20346 lpfgain, core_mask,
20347 off,
20348 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20349 break;
20350 case NPHY_REV7_RfctrlOverride_cmd_txgain:
20351 tgain = value & 0x7fff;
20352 lpfgain = value & 0x8000;
20353 lpfgain = lpfgain >> 14;
20354
20355 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
20356 tgain, core_mask, off,
20357 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20358 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 13),
20359 lpfgain, core_mask,
20360 off,
20361 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20362 break;
20363 }
20364 }
20365}
20366
20367static void
7d4df48e 20368wlc_phy_scale_offset_rssi_nphy(phy_info_t *pi, u16 scale, s8 offset,
e868ab03 20369 u8 coresel, u8 rail, u8 rssi_type)
a9533e7e 20370{
7d4df48e 20371 u16 valuetostuff;
a9533e7e
HP
20372
20373 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
20374 NPHY_RSSICAL_MAXREAD : offset;
20375 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
20376 -NPHY_RSSICAL_MAXREAD - 1 : offset;
20377
20378 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
20379
20380 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20381 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20382 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20383 write_phy_reg(pi, 0x1a6, valuetostuff);
20384 }
20385 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20386 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20387 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20388 write_phy_reg(pi, 0x1ac, valuetostuff);
20389 }
20390 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20391 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20392 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20393 write_phy_reg(pi, 0x1b2, valuetostuff);
20394 }
20395 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20396 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20397 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20398 write_phy_reg(pi, 0x1b8, valuetostuff);
20399 }
20400
20401 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20402 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20403 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20404 write_phy_reg(pi, 0x1a4, valuetostuff);
20405 }
20406 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20407 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20408 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20409 write_phy_reg(pi, 0x1aa, valuetostuff);
20410 }
20411 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20412 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20413 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20414 write_phy_reg(pi, 0x1b0, valuetostuff);
20415 }
20416 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20417 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20418 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20419 write_phy_reg(pi, 0x1b6, valuetostuff);
20420 }
20421
20422 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20423 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20424 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20425 write_phy_reg(pi, 0x1a5, valuetostuff);
20426 }
20427 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20428 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20429 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20430 write_phy_reg(pi, 0x1ab, valuetostuff);
20431 }
20432 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20433 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20434 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20435 write_phy_reg(pi, 0x1b1, valuetostuff);
20436 }
20437 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20438 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20439 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20440 write_phy_reg(pi, 0x1b7, valuetostuff);
20441 }
20442
20443 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20444 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20445 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20446 write_phy_reg(pi, 0x1a7, valuetostuff);
20447 }
20448 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20449 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20450 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20451 write_phy_reg(pi, 0x1ad, valuetostuff);
20452 }
20453 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20454 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20455 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20456 write_phy_reg(pi, 0x1b3, valuetostuff);
20457 }
20458 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20459 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20460 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20461 write_phy_reg(pi, 0x1b9, valuetostuff);
20462 }
20463
20464 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20465 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20466 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20467 write_phy_reg(pi, 0x1a8, valuetostuff);
20468 }
20469 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20470 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20471 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20472 write_phy_reg(pi, 0x1ae, valuetostuff);
20473 }
20474 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20475 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20476 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20477 write_phy_reg(pi, 0x1b4, valuetostuff);
20478 }
20479 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20480 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20481 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20482 write_phy_reg(pi, 0x1ba, valuetostuff);
20483 }
20484
20485 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20486 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20487 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20488 write_phy_reg(pi, 0x1a9, valuetostuff);
20489 }
20490 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20491 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20492 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20493 write_phy_reg(pi, 0x1b5, valuetostuff);
20494 }
20495
20496 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20497 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20498 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20499 write_phy_reg(pi, 0x1af, valuetostuff);
20500 }
20501 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20502 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20503 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20504 write_phy_reg(pi, 0x1bb, valuetostuff);
20505 }
20506}
20507
e868ab03 20508void wlc_phy_rssisel_nphy(phy_info_t *pi, u8 core_code, u8 rssi_type)
a9533e7e 20509{
7d4df48e
GKH
20510 u16 mask, val;
20511 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
a9533e7e 20512 startseq;
7d4df48e 20513 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
a9533e7e 20514 rfctrlovr_trigger_val;
7d4df48e
GKH
20515 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
20516 u16 rfctrlcmd_val, rfctrlovr_val;
e868ab03 20517 u8 core;
a9533e7e
HP
20518
20519 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20520 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20521 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
20522 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
20523
20524 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
20525 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
20526
20527 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
20528 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
20529
20530 mask = (0x1 << 2) |
20531 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20532 mod_phy_reg(pi, 0xf9, mask, 0);
20533 mod_phy_reg(pi, 0xfb, mask, 0);
20534
20535 } else {
20536 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20537 if (core_code == RADIO_MIMO_CORESEL_CORE1
20538 && core == PHY_CORE_1)
20539 continue;
20540 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20541 && core == PHY_CORE_0)
20542 continue;
20543
20544 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20545 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20546
20547 if (rssi_type == NPHY_RSSI_SEL_W1 ||
20548 rssi_type == NPHY_RSSI_SEL_W2 ||
20549 rssi_type == NPHY_RSSI_SEL_NB) {
20550
20551 mod_phy_reg(pi,
20552 (core ==
20553 PHY_CORE_0) ? 0xa6 : 0xa7,
20554 (0x3 << 8), 0);
20555
20556 mask = (0x1 << 2) |
20557 (0x1 << 3) |
20558 (0x1 << 4) | (0x1 << 5);
20559 mod_phy_reg(pi,
20560 (core ==
20561 PHY_CORE_0) ? 0xf9 : 0xfb,
20562 mask, 0);
20563
20564 if (rssi_type == NPHY_RSSI_SEL_W1) {
20565 if (CHSPEC_IS5G
20566 (pi->radio_chanspec)) {
20567 mask = (0x1 << 2);
20568 val = 1 << 2;
20569 } else {
20570 mask = (0x1 << 3);
20571 val = 1 << 3;
20572 }
20573 } else if (rssi_type ==
20574 NPHY_RSSI_SEL_W2) {
20575 mask = (0x1 << 4);
20576 val = 1 << 4;
20577 } else {
20578 mask = (0x1 << 5);
20579 val = 1 << 5;
20580 }
20581 mod_phy_reg(pi,
20582 (core ==
20583 PHY_CORE_0) ? 0xf9 : 0xfb,
20584 mask, val);
20585
20586 mask = (0x1 << 5);
20587 val = 1 << 5;
20588 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20589 0xe5 : 0xe6, mask, val);
20590 } else {
20591 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20592
20593 mask = (0x3 << 8);
20594 val = 1 << 8;
20595 mod_phy_reg(pi,
20596 (core ==
20597 PHY_CORE_0) ? 0xa6
20598 : 0xa7, mask, val);
20599 mask = (0x3 << 10);
20600 val = 1 << 10;
20601 mod_phy_reg(pi,
20602 (core ==
20603 PHY_CORE_0) ? 0xa6
20604 : 0xa7, mask, val);
20605 } else if (rssi_type ==
20606 NPHY_RSSI_SEL_IQ) {
20607
20608 mask = (0x3 << 8);
20609 val = 2 << 8;
20610 mod_phy_reg(pi,
20611 (core ==
20612 PHY_CORE_0) ? 0xa6
20613 : 0xa7, mask, val);
20614 mask = (0x3 << 10);
20615 val = 2 << 10;
20616 mod_phy_reg(pi,
20617 (core ==
20618 PHY_CORE_0) ? 0xa6
20619 : 0xa7, mask, val);
20620 } else {
20621
20622 mask = (0x3 << 8);
20623 val = 3 << 8;
20624 mod_phy_reg(pi,
20625 (core ==
20626 PHY_CORE_0) ? 0xa6
20627 : 0xa7, mask, val);
20628 mask = (0x3 << 10);
20629 val = 3 << 10;
20630 mod_phy_reg(pi,
20631 (core ==
20632 PHY_CORE_0) ? 0xa6
20633 : 0xa7, mask, val);
20634
20635 if (PHY_IPA(pi)) {
20636 if (NREV_GE
20637 (pi->pubpi.phy_rev,
20638 7)) {
20639
20640 write_radio_reg
20641 (pi,
20642 ((core ==
20643 PHY_CORE_0)
20644 ?
20645 RADIO_2057_TX0_TX_SSI_MUX
20646 :
20647 RADIO_2057_TX1_TX_SSI_MUX),
20648 (CHSPEC_IS5G
20649 (pi->
20650 radio_chanspec)
20651 ? 0xc :
20652 0xe));
20653 } else {
20654 write_radio_reg
20655 (pi,
20656 RADIO_2056_TX_TX_SSI_MUX
20657 |
20658 ((core ==
20659 PHY_CORE_0)
20660 ?
20661 RADIO_2056_TX0
20662 :
20663 RADIO_2056_TX1),
20664 (CHSPEC_IS5G
20665 (pi->
20666 radio_chanspec)
20667 ? 0xc :
20668 0xe));
20669 }
20670 } else {
20671
20672 if (NREV_GE
20673 (pi->pubpi.phy_rev,
20674 7)) {
20675 write_radio_reg
20676 (pi,
20677 ((core ==
20678 PHY_CORE_0)
20679 ?
20680 RADIO_2057_TX0_TX_SSI_MUX
20681 :
20682 RADIO_2057_TX1_TX_SSI_MUX),
20683 0x11);
20684
20685 if (pi->pubpi.
20686 radioid ==
20687 BCM2057_ID)
20688 write_radio_reg
20689 (pi,
20690 RADIO_2057_IQTEST_SEL_PU,
20691 0x1);
20692
20693 } else {
20694 write_radio_reg
20695 (pi,
20696 RADIO_2056_TX_TX_SSI_MUX
20697 |
20698 ((core ==
20699 PHY_CORE_0)
20700 ?
20701 RADIO_2056_TX0
20702 :
20703 RADIO_2056_TX1),
20704 0x11);
20705 }
20706 }
20707
20708 afectrlovr_rssi_val = 1 << 9;
20709 mod_phy_reg(pi,
20710 (core ==
20711 PHY_CORE_0) ? 0x8f
20712 : 0xa5, (0x1 << 9),
20713 afectrlovr_rssi_val);
20714 }
20715 }
20716 }
20717 }
20718 } else {
20719
20720 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20721 (rssi_type == NPHY_RSSI_SEL_W2) ||
20722 (rssi_type == NPHY_RSSI_SEL_NB)) {
20723
20724 val = 0x0;
20725 } else if (rssi_type == NPHY_RSSI_SEL_TBD) {
20726
20727 val = 0x1;
20728 } else if (rssi_type == NPHY_RSSI_SEL_IQ) {
20729
20730 val = 0x2;
20731 } else {
20732
20733 val = 0x3;
20734 }
20735 mask = ((0x3 << 12) | (0x3 << 14));
20736 val = (val << 12) | (val << 14);
20737 mod_phy_reg(pi, 0xa6, mask, val);
20738 mod_phy_reg(pi, 0xa7, mask, val);
20739
20740 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20741 (rssi_type == NPHY_RSSI_SEL_W2) ||
20742 (rssi_type == NPHY_RSSI_SEL_NB)) {
20743 if (rssi_type == NPHY_RSSI_SEL_W1) {
20744 val = 0x1;
20745 }
20746 if (rssi_type == NPHY_RSSI_SEL_W2) {
20747 val = 0x2;
20748 }
20749 if (rssi_type == NPHY_RSSI_SEL_NB) {
20750 val = 0x3;
20751 }
20752 mask = (0x3 << 4);
20753 val = (val << 4);
20754 mod_phy_reg(pi, 0x7a, mask, val);
20755 mod_phy_reg(pi, 0x7d, mask, val);
20756 }
20757
20758 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20759 afectrlovr_rssi_val = 0;
20760 rfctrlcmd_rxen_val = 0;
20761 rfctrlcmd_coresel_val = 0;
20762 rfctrlovr_rssi_val = 0;
20763 rfctrlovr_rxen_val = 0;
20764 rfctrlovr_coresel_val = 0;
20765 rfctrlovr_trigger_val = 0;
20766 startseq = 0;
20767 } else {
20768 afectrlovr_rssi_val = 1;
20769 rfctrlcmd_rxen_val = 1;
20770 rfctrlcmd_coresel_val = core_code;
20771 rfctrlovr_rssi_val = 1;
20772 rfctrlovr_rxen_val = 1;
20773 rfctrlovr_coresel_val = 1;
20774 rfctrlovr_trigger_val = 1;
20775 startseq = 1;
20776 }
20777
20778 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
20779 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
20780 12) | (afectrlovr_rssi_val << 13);
20781 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
20782 afectrlovr_rssi_val);
20783
20784 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20785 (rssi_type == NPHY_RSSI_SEL_W2) ||
20786 (rssi_type == NPHY_RSSI_SEL_NB)) {
20787 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
20788 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
20789 (rfctrlcmd_coresel_val << 3);
20790
20791 rfctrlovr_mask = ((0x1 << 5) |
20792 (0x1 << 12) |
20793 (0x1 << 1) | (0x1 << 0));
20794 rfctrlovr_val = (rfctrlovr_rssi_val <<
20795 5) |
20796 (rfctrlovr_rxen_val << 12) |
20797 (rfctrlovr_coresel_val << 1) |
20798 (rfctrlovr_trigger_val << 0);
20799
20800 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
20801 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
20802
20803 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
20804 OSL_DELAY(20);
20805
20806 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
20807 }
20808 }
20809}
20810
20811int
3e26416e 20812wlc_phy_poll_rssi_nphy(phy_info_t *pi, u8 rssi_type, s32 *rssi_buf,
e868ab03 20813 u8 nsamps)
a9533e7e 20814{
e59fe083 20815 s16 rssi0, rssi1;
7d4df48e
GKH
20816 u16 afectrlCore1_save = 0;
20817 u16 afectrlCore2_save = 0;
20818 u16 afectrlOverride1_save = 0;
20819 u16 afectrlOverride2_save = 0;
20820 u16 rfctrlOverrideAux0_save = 0;
20821 u16 rfctrlOverrideAux1_save = 0;
20822 u16 rfctrlMiscReg1_save = 0;
20823 u16 rfctrlMiscReg2_save = 0;
20824 u16 rfctrlcmd_save = 0;
20825 u16 rfctrloverride_save = 0;
20826 u16 rfctrlrssiothers1_save = 0;
20827 u16 rfctrlrssiothers2_save = 0;
562c8850 20828 s8 tmp_buf[4];
e868ab03 20829 u8 ctr = 0, samp = 0;
3e26416e 20830 s32 rssi_out_val;
7d4df48e 20831 u16 gpiosel_orig;
a9533e7e
HP
20832
20833 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20834 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20835 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20836 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
20837 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
20838 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
20839 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20840 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
20841 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
20842 } else {
20843 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
20844 rfctrlcmd_save = read_phy_reg(pi, 0x78);
20845 rfctrloverride_save = read_phy_reg(pi, 0xec);
20846 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
20847 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
20848 }
20849
20850 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
20851
20852 gpiosel_orig = read_phy_reg(pi, 0xca);
20853 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20854 write_phy_reg(pi, 0xca, 5);
20855 }
20856
20857 for (ctr = 0; ctr < 4; ctr++) {
20858 rssi_buf[ctr] = 0;
20859 }
20860
20861 for (samp = 0; samp < nsamps; samp++) {
20862 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20863 rssi0 = read_phy_reg(pi, 0x1c9);
20864 rssi1 = read_phy_reg(pi, 0x1ca);
20865 } else {
20866 rssi0 = read_phy_reg(pi, 0x219);
20867 rssi1 = read_phy_reg(pi, 0x21a);
20868 }
20869
20870 ctr = 0;
562c8850
GKH
20871 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
20872 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
20873 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
20874 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
a9533e7e
HP
20875
20876 for (ctr = 0; ctr < 4; ctr++) {
20877 rssi_buf[ctr] += tmp_buf[ctr];
20878 }
20879
20880 }
20881
20882 rssi_out_val = rssi_buf[3] & 0xff;
20883 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
20884 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
20885 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
20886
20887 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20888 write_phy_reg(pi, 0xca, gpiosel_orig);
20889 }
20890
20891 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20892 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20893 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20894 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
20895 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
20896 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
20897 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20898 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
20899 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
20900 } else {
20901 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
20902 write_phy_reg(pi, 0x78, rfctrlcmd_save);
20903 write_phy_reg(pi, 0xec, rfctrloverride_save);
20904 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
20905 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
20906 }
20907
90ea2296 20908 return rssi_out_val;
a9533e7e
HP
20909}
20910
e59fe083 20911s16 wlc_phy_tempsense_nphy(phy_info_t *pi)
a9533e7e 20912{
7d4df48e
GKH
20913 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
20914 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
20915 u16 pwrdet_rxtx_core1_save;
20916 u16 pwrdet_rxtx_core2_save;
20917 u16 afectrlCore1_save;
20918 u16 afectrlCore2_save;
20919 u16 afectrlOverride_save;
20920 u16 afectrlOverride2_save;
20921 u16 pd_pll_ts_save;
20922 u16 gpioSel_save;
3e26416e
GKH
20923 s32 radio_temp[4];
20924 s32 radio_temp2[4];
7d4df48e 20925 u16 syn_tempprocsense_save;
e59fe083 20926 s16 offset = 0;
a9533e7e
HP
20927
20928 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
7d4df48e
GKH
20929 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
20930 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
20931 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
3e26416e 20932 s32 auxADC_Vl;
7d4df48e
GKH
20933 u16 RfctrlOverride5_save, RfctrlOverride6_save;
20934 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
20935 u16 RSSIMultCoef0QPowerDet_save;
20936 u16 tempsense_Rcal;
a9533e7e
HP
20937
20938 syn_tempprocsense_save =
20939 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
20940
20941 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20942 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20943 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20944 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20945 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
20946 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
20947 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
20948 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
20949 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
20950
20951 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20952 &auxADC_Vmid_save);
20953 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20954 &auxADC_Av_save);
20955 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20956 &auxADC_rssi_ctrlL_save);
20957 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20958 &auxADC_rssi_ctrlH_save);
20959
20960 write_phy_reg(pi, 0x1ae, 0x0);
20961
20962 auxADC_rssi_ctrlL = 0x0;
20963 auxADC_rssi_ctrlH = 0x20;
20964 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20965 &auxADC_rssi_ctrlL);
20966 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20967 &auxADC_rssi_ctrlH);
20968
20969 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
20970
20971 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20972 tempsense_Rcal | 0x01);
20973
20974 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
20975 1, 0, 0,
20976 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20977 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
20978 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
20979 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
20980 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
20981
20982 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
20983 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
20984 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
20985 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
20986 OSL_DELAY(5);
20987 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
20988 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
20989 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
20990 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
20991 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
20992 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
20993 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
20994 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
20995 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
20996 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
20997
20998 auxADC_Vmid = 0xA3;
20999 auxADC_Av = 0x0;
21000 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21001 &auxADC_Vmid);
21002 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21003 &auxADC_Av);
21004
21005 OSL_DELAY(3);
21006
21007 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21008 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21009 tempsense_Rcal | 0x03);
21010
21011 OSL_DELAY(5);
21012 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21013
21014 auxADC_Av = 0x7;
21015 if (radio_temp[1] + radio_temp2[1] < -30) {
21016 auxADC_Vmid = 0x45;
21017 auxADC_Vl = 263;
21018 } else if (radio_temp[1] + radio_temp2[1] < -9) {
21019 auxADC_Vmid = 0x200;
21020 auxADC_Vl = 467;
21021 } else if (radio_temp[1] + radio_temp2[1] < 11) {
21022 auxADC_Vmid = 0x266;
21023 auxADC_Vl = 634;
21024 } else {
21025 auxADC_Vmid = 0x2D5;
21026 auxADC_Vl = 816;
21027 }
21028
21029 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21030 &auxADC_Vmid);
21031 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21032 &auxADC_Av);
21033
21034 OSL_DELAY(3);
21035
21036 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21037 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21038 tempsense_Rcal | 0x01);
21039
21040 OSL_DELAY(5);
21041 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21042
21043 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21044 syn_tempprocsense_save);
21045
21046 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21047 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21048 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21049 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21050 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
21051 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
21052 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
21053 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
21054 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
21055
21056 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21057 &auxADC_Vmid_save);
21058 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21059 &auxADC_Av_save);
21060 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
21061 &auxADC_rssi_ctrlL_save);
21062 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
21063 &auxADC_rssi_ctrlH_save);
21064
21065 if (CHIPID(pi->sh->chip) == BCM5357_CHIP_ID) {
21066 radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
21067 + 88 * (auxADC_Vl) - 27111 +
21068 128) / 256;
21069 } else if (CHIPID(pi->sh->chip) == BCM43236_CHIP_ID) {
21070 radio_temp[0] = (198 * (radio_temp[1] + radio_temp2[1])
21071 + 91 * (auxADC_Vl) - 27243 +
21072 128) / 256;
21073 } else {
21074 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
21075 + 82 * (auxADC_Vl) - 28861 +
21076 128) / 256;
21077 }
21078
e59fe083 21079 offset = (s16) pi->phy_tempsense_offset;
a9533e7e
HP
21080
21081 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21082 syn_tempprocsense_save =
21083 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
21084
21085 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21086 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21087 afectrlOverride_save = read_phy_reg(pi, 0x8f);
21088 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21089 gpioSel_save = read_phy_reg(pi, 0xca);
21090
21091 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21092
21093 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21094 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21095 } else {
21096 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
21097 }
21098
21099 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21100 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21101 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
21102 } else {
21103 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21104 }
21105
21106 radio_temp[0] =
21107 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
21108
21109 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
21110 syn_tempprocsense_save);
21111
21112 write_phy_reg(pi, 0xca, gpioSel_save);
21113 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21114 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21115 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21116 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21117
e59fe083 21118 offset = (s16) pi->phy_tempsense_offset;
a9533e7e
HP
21119 } else {
21120
21121 pwrdet_rxtx_core1_save =
21122 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
21123 pwrdet_rxtx_core2_save =
21124 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
21125 core1_txrf_iqcal1_save =
21126 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
21127 core1_txrf_iqcal2_save =
21128 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
21129 core2_txrf_iqcal1_save =
21130 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
21131 core2_txrf_iqcal2_save =
21132 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
21133 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
21134
21135 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21136 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21137 afectrlOverride_save = read_phy_reg(pi, 0xa5);
21138 gpioSel_save = read_phy_reg(pi, 0xca);
21139
21140 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
21141 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
21142 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
21143 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
21144 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
21145 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
21146 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
21147
21148 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21149 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21150
21151 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21152 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21153
21154 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21155 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21156
21157 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
21158 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
21159 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
21160 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
21161
21162 radio_temp[0] =
21163 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
21164 radio_temp[3]);
21165
21166 radio_temp[0] =
21167 (radio_temp[0] + (8 * 32)) * (950 - 350) / 63 + (350 * 8);
21168
21169 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
21170
21171 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
21172 pwrdet_rxtx_core1_save);
21173 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
21174 pwrdet_rxtx_core2_save);
21175 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
21176 core1_txrf_iqcal1_save);
21177 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
21178 core2_txrf_iqcal1_save);
21179 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
21180 core1_txrf_iqcal2_save);
21181 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
21182 core2_txrf_iqcal2_save);
21183 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
21184
21185 write_phy_reg(pi, 0xca, gpioSel_save);
21186 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21187 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21188 write_phy_reg(pi, 0xa5, afectrlOverride_save);
21189 }
21190
e59fe083 21191 return (s16) radio_temp[0] + offset;
a9533e7e
HP
21192}
21193
21194static void
e868ab03 21195wlc_phy_set_rssi_2055_vcm(phy_info_t *pi, u8 rssi_type, u8 *vcm_buf)
a9533e7e 21196{
e868ab03 21197 u8 core;
a9533e7e
HP
21198
21199 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21200 if (rssi_type == NPHY_RSSI_SEL_NB) {
21201 if (core == PHY_CORE_0) {
21202 mod_radio_reg(pi,
21203 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21204 RADIO_2055_NBRSSI_VCM_I_MASK,
21205 vcm_buf[2 *
21206 core] <<
21207 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21208 mod_radio_reg(pi,
21209 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21210 RADIO_2055_NBRSSI_VCM_Q_MASK,
21211 vcm_buf[2 * core +
21212 1] <<
21213 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21214 } else {
21215 mod_radio_reg(pi,
21216 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21217 RADIO_2055_NBRSSI_VCM_I_MASK,
21218 vcm_buf[2 *
21219 core] <<
21220 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21221 mod_radio_reg(pi,
21222 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21223 RADIO_2055_NBRSSI_VCM_Q_MASK,
21224 vcm_buf[2 * core +
21225 1] <<
21226 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21227 }
21228 } else {
21229
21230 if (core == PHY_CORE_0) {
21231 mod_radio_reg(pi,
21232 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21233 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21234 vcm_buf[2 *
21235 core] <<
21236 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21237 } else {
21238 mod_radio_reg(pi,
21239 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21240 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21241 vcm_buf[2 *
21242 core] <<
21243 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21244 }
21245 }
21246 }
21247}
21248
7cc4a4c0 21249void wlc_phy_rssi_cal_nphy(phy_info_t *pi)
a9533e7e
HP
21250{
21251 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21252
21253 wlc_phy_rssi_cal_nphy_rev3(pi);
21254 } else {
21255 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
21256 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
21257 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
21258 }
21259}
21260
e868ab03 21261static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type)
a9533e7e 21262{
3e26416e 21263 s32 target_code;
7d4df48e
GKH
21264 u16 classif_state;
21265 u16 clip_state[2];
21266 u16 rssi_ctrl_state[2], pd_state[2];
21267 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
21268 u16 rfctrlintc_override_val;
21269 u16 clip_off[] = { 0xffff, 0xffff };
21270 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
e868ab03
GKH
21271 u8 vcm, min_vcm, vcm_tmp[4];
21272 u8 vcm_final[4] = { 0, 0, 0, 0 };
21273 u8 result_idx, ctr;
3e26416e 21274 s32 poll_results[4][4] = {
a9533e7e
HP
21275 {0, 0, 0, 0},
21276 {0, 0, 0, 0},
21277 {0, 0, 0, 0},
21278 {0, 0, 0, 0}
21279 };
3e26416e 21280 s32 poll_miniq[4][2] = {
a9533e7e
HP
21281 {0, 0},
21282 {0, 0},
21283 {0, 0},
21284 {0, 0}
21285 };
3e26416e
GKH
21286 s32 min_d, curr_d;
21287 s32 fine_digital_offset[4];
21288 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21289 s32 min_poll;
a9533e7e
HP
21290
21291 switch (rssi_type) {
21292 case NPHY_RSSI_SEL_NB:
21293 target_code = NPHY_RSSICAL_NB_TARGET;
21294 break;
21295 case NPHY_RSSI_SEL_W1:
21296 target_code = NPHY_RSSICAL_W1_TARGET;
21297 break;
21298 case NPHY_RSSI_SEL_W2:
21299 target_code = NPHY_RSSICAL_W2_TARGET;
21300 break;
21301 default:
21302 return;
21303 break;
21304 }
21305
21306 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21307 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21308 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21309 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21310
21311 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
21312 rfctrlintc_override_val =
21313 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
21314
21315 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
21316 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
21317 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
21318 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
21319
21320 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
21321 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
21322 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
21323 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
21324
21325 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
21326 RADIO_2055_WBRSSI_G2_PD;
21327 pd_state[0] =
21328 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21329 pd_state[1] =
21330 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
21331 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
21332 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
21333 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
21334 RADIO_2055_WBRSSI_G2_SEL;
21335 rssi_ctrl_state[0] =
21336 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
21337 rssi_ctrl_state[1] =
21338 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
21339 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21340
21341 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21342 NPHY_RAIL_I, rssi_type);
21343 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21344 NPHY_RAIL_Q, rssi_type);
21345
21346 for (vcm = 0; vcm < 4; vcm++) {
21347
21348 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
21349 if (rssi_type != NPHY_RSSI_SEL_W2) {
21350 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
21351 }
21352
21353 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
21354 NPHY_RSSICAL_NPOLL);
21355
21356 if ((rssi_type == NPHY_RSSI_SEL_W1)
21357 || (rssi_type == NPHY_RSSI_SEL_W2)) {
21358 for (ctr = 0; ctr < 2; ctr++) {
21359 poll_miniq[vcm][ctr] =
7068c2f1 21360 min(poll_results[vcm][ctr * 2 + 0],
a9533e7e
HP
21361 poll_results[vcm][ctr * 2 + 1]);
21362 }
21363 }
21364 }
21365
21366 for (result_idx = 0; result_idx < 4; result_idx++) {
21367 min_d = NPHY_RSSICAL_MAXD;
21368 min_vcm = 0;
21369 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
21370 for (vcm = 0; vcm < 4; vcm++) {
21371 curr_d = ABS(((rssi_type == NPHY_RSSI_SEL_NB) ?
21372 poll_results[vcm][result_idx] :
21373 poll_miniq[vcm][result_idx / 2]) -
21374 (target_code * NPHY_RSSICAL_NPOLL));
21375 if (curr_d < min_d) {
21376 min_d = curr_d;
21377 min_vcm = vcm;
21378 }
21379 if (poll_results[vcm][result_idx] < min_poll) {
21380 min_poll = poll_results[vcm][result_idx];
21381 }
21382 }
21383 vcm_final[result_idx] = min_vcm;
21384 poll_results_min[result_idx] = min_poll;
21385 }
21386
21387 if (rssi_type != NPHY_RSSI_SEL_W2) {
21388 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
21389 }
21390
21391 for (result_idx = 0; result_idx < 4; result_idx++) {
21392 fine_digital_offset[result_idx] =
21393 (target_code * NPHY_RSSICAL_NPOLL) -
21394 poll_results[vcm_final[result_idx]][result_idx];
21395 if (fine_digital_offset[result_idx] < 0) {
21396 fine_digital_offset[result_idx] =
21397 ABS(fine_digital_offset[result_idx]);
21398 fine_digital_offset[result_idx] +=
21399 (NPHY_RSSICAL_NPOLL / 2);
21400 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21401 fine_digital_offset[result_idx] =
21402 -fine_digital_offset[result_idx];
21403 } else {
21404 fine_digital_offset[result_idx] +=
21405 (NPHY_RSSICAL_NPOLL / 2);
21406 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21407 }
21408
21409 if (poll_results_min[result_idx] ==
21410 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21411 fine_digital_offset[result_idx] =
21412 (target_code - NPHY_RSSICAL_MAXREAD - 1);
21413 }
21414
21415 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 21416 (s8)
a9533e7e
HP
21417 fine_digital_offset[result_idx],
21418 (result_idx / 2 ==
21419 0) ? RADIO_MIMO_CORESEL_CORE1 :
21420 RADIO_MIMO_CORESEL_CORE2,
21421 (result_idx % 2 ==
21422 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21423 rssi_type);
21424 }
21425
21426 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
21427 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
21428 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL) {
21429 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21430 NPHY_RSSI_SEL_NB);
21431 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL) {
21432 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21433 NPHY_RSSI_SEL_W1);
21434 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL) {
21435 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21436 NPHY_RSSI_SEL_W2);
21437 } else {
21438 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21439 NPHY_RSSI_SEL_W2);
21440 }
21441 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL) {
21442 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21443 NPHY_RSSI_SEL_NB);
21444 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL) {
21445 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21446 NPHY_RSSI_SEL_W1);
21447 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL) {
21448 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21449 NPHY_RSSI_SEL_W2);
21450 } else {
21451 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21452 NPHY_RSSI_SEL_W2);
21453 }
21454
21455 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
21456
21457 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
21458 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
21459 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
21460 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
21461
21462 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
21463 wlc_phy_clip_det_nphy(pi, 1, clip_state);
21464
21465 wlc_phy_resetcca_nphy(pi);
21466}
21467
21468int BCMFASTPATH
7cc4a4c0 21469wlc_phy_rssi_compute_nphy(phy_info_t *pi, wlc_d11rxhdr_t *wlc_rxh)
a9533e7e
HP
21470{
21471 d11rxhdr_t *rxh = &wlc_rxh->rxhdr;
e59fe083
GKH
21472 s16 rxpwr, rxpwr0, rxpwr1;
21473 s16 phyRx0_l, phyRx2_l;
a9533e7e
HP
21474
21475 rxpwr = 0;
21476 rxpwr0 = ltoh16(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
21477 rxpwr1 = (ltoh16(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
21478
21479 if (rxpwr0 > 127)
21480 rxpwr0 -= 256;
21481 if (rxpwr1 > 127)
21482 rxpwr1 -= 256;
21483
21484 phyRx0_l = ltoh16(rxh->PhyRxStatus_0) & 0x00ff;
21485 phyRx2_l = ltoh16(rxh->PhyRxStatus_2) & 0x00ff;
21486 if (phyRx2_l > 127)
21487 phyRx2_l -= 256;
21488
21489 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21490 rxpwr0 = rxpwr1;
21491 rxpwr1 = phyRx2_l;
21492 }
21493
562c8850
GKH
21494 wlc_rxh->rxpwr[0] = (s8) rxpwr0;
21495 wlc_rxh->rxpwr[1] = (s8) rxpwr1;
a9533e7e
HP
21496 wlc_rxh->do_rssi_ma = 0;
21497
21498 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
21499 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
21500 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
21501 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
21502 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
21503 rxpwr = (rxpwr0 + rxpwr1) >> 1;
21504 else
21505 ASSERT(0);
21506
21507 return rxpwr;
21508}
21509
21510static void
7d4df48e 21511wlc_phy_rfctrlintc_override_nphy(phy_info_t *pi, u8 field, u16 value,
e868ab03 21512 u8 core_code)
a9533e7e 21513{
7d4df48e
GKH
21514 u16 mask;
21515 u16 val;
e868ab03 21516 u8 core;
a9533e7e
HP
21517
21518 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21519 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21520 if (core_code == RADIO_MIMO_CORESEL_CORE1
21521 && core == PHY_CORE_1)
21522 continue;
21523 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21524 && core == PHY_CORE_0)
21525 continue;
21526
21527 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21528
21529 mask = (0x1 << 10);
21530 val = 1 << 10;
21531 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21532 0x92, mask, val);
21533 }
21534
21535 if (field == NPHY_RfctrlIntc_override_OFF) {
21536
21537 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21538 0x92, 0);
21539
21540 wlc_phy_force_rfseq_nphy(pi,
21541 NPHY_RFSEQ_RESET2RX);
21542 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
21543
21544 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21545
21546 mask = (0x1 << 6) | (0x1 << 7);
21547
21548 val = value << 6;
21549 mod_phy_reg(pi,
21550 (core ==
21551 PHY_CORE_0) ? 0x91 : 0x92,
21552 mask, val);
21553
21554 or_phy_reg(pi,
21555 (core ==
21556 PHY_CORE_0) ? 0x91 : 0x92,
21557 (0x1 << 10));
21558
7d4df48e 21559 and_phy_reg(pi, 0x2ff, (u16)
29c4275a 21560 ~(0x3 << 14));
a9533e7e
HP
21561 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21562 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21563 } else {
21564
21565 mask = (0x1 << 6) |
21566 (0x1 << 7) |
21567 (0x1 << 8) | (0x1 << 9);
21568 val = value << 6;
21569 mod_phy_reg(pi,
21570 (core ==
21571 PHY_CORE_0) ? 0x91 : 0x92,
21572 mask, val);
21573
21574 mask = (0x1 << 0);
21575 val = 1 << 0;
21576 mod_phy_reg(pi,
21577 (core ==
21578 PHY_CORE_0) ? 0xe7 : 0xec,
21579 mask, val);
21580
21581 mask = (core == PHY_CORE_0) ? (0x1 << 0)
21582 : (0x1 << 1);
21583 val = 1 << ((core == PHY_CORE_0) ?
21584 0 : 1);
21585 mod_phy_reg(pi, 0x78, mask, val);
21586
21587 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21588 != 0), 10000);
21589 ASSERT((read_phy_reg(pi, 0x78) & val) ==
21590 0);
21591
21592 mask = (0x1 << 0);
21593 val = 0 << 0;
21594 mod_phy_reg(pi,
21595 (core ==
21596 PHY_CORE_0) ? 0xe7 : 0xec,
21597 mask, val);
21598 }
21599 } else if (field == NPHY_RfctrlIntc_override_PA) {
21600 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21601
21602 mask = (0x1 << 4) | (0x1 << 5);
21603
21604 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21605 val = value << 5;
21606 } else {
21607 val = value << 4;
21608 }
21609
21610 mod_phy_reg(pi,
21611 (core ==
21612 PHY_CORE_0) ? 0x91 : 0x92,
21613 mask, val);
21614
21615 or_phy_reg(pi,
21616 (core ==
21617 PHY_CORE_0) ? 0x91 : 0x92,
21618 (0x1 << 12));
21619 } else {
21620
21621 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21622 mask = (0x1 << 5);
21623 val = value << 5;
21624 } else {
21625 mask = (0x1 << 4);
21626 val = value << 4;
21627 }
21628 mod_phy_reg(pi,
21629 (core ==
21630 PHY_CORE_0) ? 0x91 : 0x92,
21631 mask, val);
21632 }
21633 } else if (field == NPHY_RfctrlIntc_override_EXT_LNA_PU) {
21634 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21635 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21636
21637 mask = (0x1 << 0);
21638 val = value << 0;
21639 mod_phy_reg(pi,
21640 (core ==
21641 PHY_CORE_0) ? 0x91
21642 : 0x92, mask, val);
21643
21644 mask = (0x1 << 2);
21645 mod_phy_reg(pi,
21646 (core ==
21647 PHY_CORE_0) ? 0x91
21648 : 0x92, mask, 0);
21649 } else {
21650
21651 mask = (0x1 << 2);
21652 val = value << 2;
21653 mod_phy_reg(pi,
21654 (core ==
21655 PHY_CORE_0) ? 0x91
21656 : 0x92, mask, val);
21657
21658 mask = (0x1 << 0);
21659 mod_phy_reg(pi,
21660 (core ==
21661 PHY_CORE_0) ? 0x91
21662 : 0x92, mask, 0);
21663 }
21664
21665 mask = (0x1 << 11);
21666 val = 1 << 11;
21667 mod_phy_reg(pi,
21668 (core ==
21669 PHY_CORE_0) ? 0x91 : 0x92,
21670 mask, val);
21671 } else {
21672
21673 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21674 mask = (0x1 << 0);
21675 val = value << 0;
21676 } else {
21677 mask = (0x1 << 2);
21678 val = value << 2;
21679 }
21680 mod_phy_reg(pi,
21681 (core ==
21682 PHY_CORE_0) ? 0x91 : 0x92,
21683 mask, val);
21684 }
21685 } else if (field ==
21686 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
21687 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21688 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21689
21690 mask = (0x1 << 1);
21691 val = value << 1;
21692 mod_phy_reg(pi,
21693 (core ==
21694 PHY_CORE_0) ? 0x91
21695 : 0x92, mask, val);
21696
21697 mask = (0x1 << 3);
21698 mod_phy_reg(pi,
21699 (core ==
21700 PHY_CORE_0) ? 0x91
21701 : 0x92, mask, 0);
21702 } else {
21703
21704 mask = (0x1 << 3);
21705 val = value << 3;
21706 mod_phy_reg(pi,
21707 (core ==
21708 PHY_CORE_0) ? 0x91
21709 : 0x92, mask, val);
21710
21711 mask = (0x1 << 1);
21712 mod_phy_reg(pi,
21713 (core ==
21714 PHY_CORE_0) ? 0x91
21715 : 0x92, mask, 0);
21716 }
21717
21718 mask = (0x1 << 11);
21719 val = 1 << 11;
21720 mod_phy_reg(pi,
21721 (core ==
21722 PHY_CORE_0) ? 0x91 : 0x92,
21723 mask, val);
21724 } else {
21725
21726 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21727 mask = (0x1 << 1);
21728 val = value << 1;
21729 } else {
21730 mask = (0x1 << 3);
21731 val = value << 3;
21732 }
21733 mod_phy_reg(pi,
21734 (core ==
21735 PHY_CORE_0) ? 0x91 : 0x92,
21736 mask, val);
21737 }
21738 }
21739 }
21740 } else {
21741 return;
21742 }
21743}
21744
7cc4a4c0 21745static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi)
a9533e7e 21746{
7d4df48e
GKH
21747 u16 classif_state;
21748 u16 clip_state[2];
21749 u16 clip_off[] = { 0xffff, 0xffff };
3e26416e 21750 s32 target_code;
e868ab03
GKH
21751 u8 vcm, min_vcm;
21752 u8 vcm_final = 0;
21753 u8 result_idx;
3e26416e 21754 s32 poll_results[8][4] = {
a9533e7e
HP
21755 {0, 0, 0, 0},
21756 {0, 0, 0, 0},
21757 {0, 0, 0, 0},
21758 {0, 0, 0, 0},
21759 {0, 0, 0, 0},
21760 {0, 0, 0, 0},
21761 {0, 0, 0, 0},
21762 {0, 0, 0, 0}
21763 };
3e26416e
GKH
21764 s32 poll_result_core[4] = { 0, 0, 0, 0 };
21765 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
21766 s32 fine_digital_offset[4];
21767 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21768 s32 min_poll;
e868ab03
GKH
21769 u8 vcm_level_max;
21770 u8 core;
21771 u8 wb_cnt;
21772 u8 rssi_type;
7d4df48e
GKH
21773 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
21774 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
21775 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
21776 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
21777 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
21778 u16 NPHY_RfctrlCmd_save;
21779 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
21780 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
e868ab03 21781 u8 rxcore_state;
7d4df48e
GKH
21782 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
21783 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
21784 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
21785 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
a9533e7e
HP
21786
21787 NPHY_REV7_RfctrlOverride3_save = NPHY_REV7_RfctrlOverride4_save =
21788 NPHY_REV7_RfctrlOverride5_save = NPHY_REV7_RfctrlOverride6_save =
21789 NPHY_REV7_RfctrlMiscReg3_save = NPHY_REV7_RfctrlMiscReg4_save =
21790 NPHY_REV7_RfctrlMiscReg5_save = NPHY_REV7_RfctrlMiscReg6_save = 0;
21791
21792 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21793 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21794 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21795 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21796
21797 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
21798 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
21799 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
21800 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
21801 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
21802 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
21803 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
21804 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
21805 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21806 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
21807 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
21808 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
21809 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
21810 }
21811 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21812 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21813 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
21814 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21815 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21816 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21817 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
21818 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
21819 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
21820 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
21821 }
21822 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
21823 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
21824
21825 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
21826 RADIO_MIMO_CORESEL_ALLRXTX);
21827 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
21828 RADIO_MIMO_CORESEL_ALLRXTX);
21829
21830 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21831 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21832 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
21833 0, 0, 0);
21834 } else {
21835 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
21836 }
21837
21838 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21839 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21840 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
21841 1, 0, 0);
21842 } else {
21843 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
21844 }
21845
21846 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21847 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
21848 1, 0, 0,
21849 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21850 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21851 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21852 } else {
21853 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
21854 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
21855 }
21856
21857 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21858 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21859 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
21860 0, 0, 0,
21861 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21862 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 1, 0,
21863 0,
21864 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21865 } else {
21866 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21867 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21868 }
21869
21870 } else {
21871 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21872 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
21873 0, 0, 0,
21874 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21875 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 1, 0,
21876 0,
21877 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21878 } else {
21879 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
21880 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
21881 }
21882 }
21883
21884 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
21885
21886 vcm_level_max = 8;
21887
21888 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21889
21890 if ((rxcore_state & (1 << core)) == 0)
21891 continue;
21892
21893 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21894 core ==
21895 PHY_CORE_0 ?
21896 RADIO_MIMO_CORESEL_CORE1 :
21897 RADIO_MIMO_CORESEL_CORE2,
21898 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
21899 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21900 core ==
21901 PHY_CORE_0 ?
21902 RADIO_MIMO_CORESEL_CORE1 :
21903 RADIO_MIMO_CORESEL_CORE2,
21904 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
21905
21906 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21907 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21908
21909 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21910 RADIO_2057_NB_MASTER_CORE0 :
21911 RADIO_2057_NB_MASTER_CORE1,
21912 RADIO_2057_VCM_MASK, vcm);
21913 } else {
21914
21915 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21916 ((core ==
21917 PHY_CORE_0) ? RADIO_2056_RX0 :
21918 RADIO_2056_RX1),
21919 RADIO_2056_VCM_MASK,
21920 vcm << RADIO_2056_RSSI_VCM_SHIFT);
21921 }
21922
21923 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
21924 &poll_results[vcm][0],
21925 NPHY_RSSICAL_NPOLL);
21926 }
21927
21928 for (result_idx = 0; result_idx < 4; result_idx++) {
21929 if ((core == result_idx / 2) && (result_idx % 2 == 0)) {
21930
21931 min_d = NPHY_RSSICAL_MAXD;
21932 min_vcm = 0;
21933 min_poll =
21934 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL +
21935 1;
21936 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21937 curr_d = poll_results[vcm][result_idx] *
21938 poll_results[vcm][result_idx] +
21939 poll_results[vcm][result_idx + 1] *
21940 poll_results[vcm][result_idx + 1];
21941 if (curr_d < min_d) {
21942 min_d = curr_d;
21943 min_vcm = vcm;
21944 }
21945 if (poll_results[vcm][result_idx] <
21946 min_poll) {
21947 min_poll =
21948 poll_results[vcm]
21949 [result_idx];
21950 }
21951 }
21952 vcm_final = min_vcm;
21953 poll_results_min[result_idx] = min_poll;
21954 }
21955 }
21956
21957 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21958 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21959 RADIO_2057_NB_MASTER_CORE0 :
21960 RADIO_2057_NB_MASTER_CORE1,
21961 RADIO_2057_VCM_MASK, vcm_final);
21962 } else {
21963 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21964 ((core ==
21965 PHY_CORE_0) ? RADIO_2056_RX0 :
21966 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
21967 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
21968 }
21969
21970 for (result_idx = 0; result_idx < 4; result_idx++) {
21971 if (core == result_idx / 2) {
21972 fine_digital_offset[result_idx] =
21973 (NPHY_RSSICAL_NB_TARGET *
21974 NPHY_RSSICAL_NPOLL) -
21975 poll_results[vcm_final][result_idx];
21976 if (fine_digital_offset[result_idx] < 0) {
21977 fine_digital_offset[result_idx] =
21978 ABS(fine_digital_offset
21979 [result_idx]);
21980 fine_digital_offset[result_idx] +=
21981 (NPHY_RSSICAL_NPOLL / 2);
21982 fine_digital_offset[result_idx] /=
21983 NPHY_RSSICAL_NPOLL;
21984 fine_digital_offset[result_idx] =
21985 -fine_digital_offset[result_idx];
21986 } else {
21987 fine_digital_offset[result_idx] +=
21988 (NPHY_RSSICAL_NPOLL / 2);
21989 fine_digital_offset[result_idx] /=
21990 NPHY_RSSICAL_NPOLL;
21991 }
21992
21993 if (poll_results_min[result_idx] ==
21994 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21995 fine_digital_offset[result_idx] =
21996 (NPHY_RSSICAL_NB_TARGET -
21997 NPHY_RSSICAL_MAXREAD - 1);
21998 }
21999
22000 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 22001 (s8)
a9533e7e
HP
22002 fine_digital_offset
22003 [result_idx],
22004 (result_idx /
22005 2 ==
22006 0) ?
22007 RADIO_MIMO_CORESEL_CORE1
22008 :
22009 RADIO_MIMO_CORESEL_CORE2,
22010 (result_idx %
22011 2 ==
22012 0) ? NPHY_RAIL_I
22013 : NPHY_RAIL_Q,
22014 NPHY_RSSI_SEL_NB);
22015 }
22016 }
22017
22018 }
22019
22020 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
22021
22022 if ((rxcore_state & (1 << core)) == 0)
22023 continue;
22024
22025 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
22026 if (wb_cnt == 0) {
22027 rssi_type = NPHY_RSSI_SEL_W1;
22028 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22029 } else {
22030 rssi_type = NPHY_RSSI_SEL_W2;
22031 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22032 }
22033
22034 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22035 core ==
22036 PHY_CORE_0 ?
22037 RADIO_MIMO_CORESEL_CORE1
22038 :
22039 RADIO_MIMO_CORESEL_CORE2,
22040 NPHY_RAIL_I, rssi_type);
22041 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22042 core ==
22043 PHY_CORE_0 ?
22044 RADIO_MIMO_CORESEL_CORE1
22045 :
22046 RADIO_MIMO_CORESEL_CORE2,
22047 NPHY_RAIL_Q, rssi_type);
22048
22049 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22050 NPHY_RSSICAL_NPOLL);
22051
22052 for (result_idx = 0; result_idx < 4; result_idx++) {
22053 if (core == result_idx / 2) {
22054 fine_digital_offset[result_idx] =
22055 (target_code * NPHY_RSSICAL_NPOLL) -
22056 poll_result_core[result_idx];
22057 if (fine_digital_offset[result_idx] < 0) {
22058 fine_digital_offset[result_idx]
22059 =
22060 ABS(fine_digital_offset
22061 [result_idx]);
22062 fine_digital_offset[result_idx]
22063 += (NPHY_RSSICAL_NPOLL / 2);
22064 fine_digital_offset[result_idx]
22065 /= NPHY_RSSICAL_NPOLL;
22066 fine_digital_offset[result_idx]
22067 =
22068 -fine_digital_offset
22069 [result_idx];
22070 } else {
22071 fine_digital_offset[result_idx]
22072 += (NPHY_RSSICAL_NPOLL / 2);
22073 fine_digital_offset[result_idx]
22074 /= NPHY_RSSICAL_NPOLL;
22075 }
22076
22077 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 22078 (s8)
a9533e7e
HP
22079 fine_digital_offset
22080 [core *
22081 2],
22082 (core ==
22083 PHY_CORE_0)
22084 ?
22085 RADIO_MIMO_CORESEL_CORE1
22086 :
22087 RADIO_MIMO_CORESEL_CORE2,
22088 (result_idx
22089 % 2 ==
22090 0) ?
22091 NPHY_RAIL_I
22092 :
22093 NPHY_RAIL_Q,
22094 rssi_type);
22095 }
22096 }
22097
22098 }
22099 }
22100
22101 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22102 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22103
22104 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22105
22106 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22107 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22108 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22109
22110 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22111 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22112 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22113
22114 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22115 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22116 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22117 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22118 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22119 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22120 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22121 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22122 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22123 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22124 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22125 }
22126 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22127 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22128 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22129 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22130 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22131 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22132 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22133 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22134 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22135 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22136 }
22137 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22138 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22139
22140 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22141 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22142 pi->rssical_cache.rssical_radio_regs_2G[0] =
22143 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22144 pi->rssical_cache.rssical_radio_regs_2G[1] =
22145 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22146 } else {
22147 pi->rssical_cache.rssical_radio_regs_2G[0] =
22148 read_radio_reg(pi,
22149 RADIO_2056_RX_RSSI_MISC |
22150 RADIO_2056_RX0);
22151 pi->rssical_cache.rssical_radio_regs_2G[1] =
22152 read_radio_reg(pi,
22153 RADIO_2056_RX_RSSI_MISC |
22154 RADIO_2056_RX1);
22155 }
22156
22157 pi->rssical_cache.rssical_phyregs_2G[0] =
22158 read_phy_reg(pi, 0x1a6);
22159 pi->rssical_cache.rssical_phyregs_2G[1] =
22160 read_phy_reg(pi, 0x1ac);
22161 pi->rssical_cache.rssical_phyregs_2G[2] =
22162 read_phy_reg(pi, 0x1b2);
22163 pi->rssical_cache.rssical_phyregs_2G[3] =
22164 read_phy_reg(pi, 0x1b8);
22165 pi->rssical_cache.rssical_phyregs_2G[4] =
22166 read_phy_reg(pi, 0x1a4);
22167 pi->rssical_cache.rssical_phyregs_2G[5] =
22168 read_phy_reg(pi, 0x1aa);
22169 pi->rssical_cache.rssical_phyregs_2G[6] =
22170 read_phy_reg(pi, 0x1b0);
22171 pi->rssical_cache.rssical_phyregs_2G[7] =
22172 read_phy_reg(pi, 0x1b6);
22173 pi->rssical_cache.rssical_phyregs_2G[8] =
22174 read_phy_reg(pi, 0x1a5);
22175 pi->rssical_cache.rssical_phyregs_2G[9] =
22176 read_phy_reg(pi, 0x1ab);
22177 pi->rssical_cache.rssical_phyregs_2G[10] =
22178 read_phy_reg(pi, 0x1b1);
22179 pi->rssical_cache.rssical_phyregs_2G[11] =
22180 read_phy_reg(pi, 0x1b7);
22181
22182 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22183 } else {
22184 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22185 pi->rssical_cache.rssical_radio_regs_5G[0] =
22186 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22187 pi->rssical_cache.rssical_radio_regs_5G[1] =
22188 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22189 } else {
22190 pi->rssical_cache.rssical_radio_regs_5G[0] =
22191 read_radio_reg(pi,
22192 RADIO_2056_RX_RSSI_MISC |
22193 RADIO_2056_RX0);
22194 pi->rssical_cache.rssical_radio_regs_5G[1] =
22195 read_radio_reg(pi,
22196 RADIO_2056_RX_RSSI_MISC |
22197 RADIO_2056_RX1);
22198 }
22199
22200 pi->rssical_cache.rssical_phyregs_5G[0] =
22201 read_phy_reg(pi, 0x1a6);
22202 pi->rssical_cache.rssical_phyregs_5G[1] =
22203 read_phy_reg(pi, 0x1ac);
22204 pi->rssical_cache.rssical_phyregs_5G[2] =
22205 read_phy_reg(pi, 0x1b2);
22206 pi->rssical_cache.rssical_phyregs_5G[3] =
22207 read_phy_reg(pi, 0x1b8);
22208 pi->rssical_cache.rssical_phyregs_5G[4] =
22209 read_phy_reg(pi, 0x1a4);
22210 pi->rssical_cache.rssical_phyregs_5G[5] =
22211 read_phy_reg(pi, 0x1aa);
22212 pi->rssical_cache.rssical_phyregs_5G[6] =
22213 read_phy_reg(pi, 0x1b0);
22214 pi->rssical_cache.rssical_phyregs_5G[7] =
22215 read_phy_reg(pi, 0x1b6);
22216 pi->rssical_cache.rssical_phyregs_5G[8] =
22217 read_phy_reg(pi, 0x1a5);
22218 pi->rssical_cache.rssical_phyregs_5G[9] =
22219 read_phy_reg(pi, 0x1ab);
22220 pi->rssical_cache.rssical_phyregs_5G[10] =
22221 read_phy_reg(pi, 0x1b1);
22222 pi->rssical_cache.rssical_phyregs_5G[11] =
22223 read_phy_reg(pi, 0x1b7);
22224
22225 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22226 }
22227
22228 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22229 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22230}
22231
7cc4a4c0 22232static void wlc_phy_restore_rssical_nphy(phy_info_t *pi)
a9533e7e
HP
22233{
22234 ASSERT(NREV_GE(pi->pubpi.phy_rev, 3));
22235
22236 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22237 if (pi->nphy_rssical_chanspec_2G == 0)
22238 return;
22239
22240 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22241 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22242 RADIO_2057_VCM_MASK,
22243 pi->rssical_cache.
22244 rssical_radio_regs_2G[0]);
22245 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22246 RADIO_2057_VCM_MASK,
22247 pi->rssical_cache.
22248 rssical_radio_regs_2G[1]);
22249 } else {
22250 mod_radio_reg(pi,
22251 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22252 RADIO_2056_VCM_MASK,
22253 pi->rssical_cache.
22254 rssical_radio_regs_2G[0]);
22255 mod_radio_reg(pi,
22256 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22257 RADIO_2056_VCM_MASK,
22258 pi->rssical_cache.
22259 rssical_radio_regs_2G[1]);
22260 }
22261
22262 write_phy_reg(pi, 0x1a6,
22263 pi->rssical_cache.rssical_phyregs_2G[0]);
22264 write_phy_reg(pi, 0x1ac,
22265 pi->rssical_cache.rssical_phyregs_2G[1]);
22266 write_phy_reg(pi, 0x1b2,
22267 pi->rssical_cache.rssical_phyregs_2G[2]);
22268 write_phy_reg(pi, 0x1b8,
22269 pi->rssical_cache.rssical_phyregs_2G[3]);
22270 write_phy_reg(pi, 0x1a4,
22271 pi->rssical_cache.rssical_phyregs_2G[4]);
22272 write_phy_reg(pi, 0x1aa,
22273 pi->rssical_cache.rssical_phyregs_2G[5]);
22274 write_phy_reg(pi, 0x1b0,
22275 pi->rssical_cache.rssical_phyregs_2G[6]);
22276 write_phy_reg(pi, 0x1b6,
22277 pi->rssical_cache.rssical_phyregs_2G[7]);
22278 write_phy_reg(pi, 0x1a5,
22279 pi->rssical_cache.rssical_phyregs_2G[8]);
22280 write_phy_reg(pi, 0x1ab,
22281 pi->rssical_cache.rssical_phyregs_2G[9]);
22282 write_phy_reg(pi, 0x1b1,
22283 pi->rssical_cache.rssical_phyregs_2G[10]);
22284 write_phy_reg(pi, 0x1b7,
22285 pi->rssical_cache.rssical_phyregs_2G[11]);
22286
22287 } else {
22288 if (pi->nphy_rssical_chanspec_5G == 0)
22289 return;
22290
22291 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22292 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22293 RADIO_2057_VCM_MASK,
22294 pi->rssical_cache.
22295 rssical_radio_regs_5G[0]);
22296 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22297 RADIO_2057_VCM_MASK,
22298 pi->rssical_cache.
22299 rssical_radio_regs_5G[1]);
22300 } else {
22301 mod_radio_reg(pi,
22302 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22303 RADIO_2056_VCM_MASK,
22304 pi->rssical_cache.
22305 rssical_radio_regs_5G[0]);
22306 mod_radio_reg(pi,
22307 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22308 RADIO_2056_VCM_MASK,
22309 pi->rssical_cache.
22310 rssical_radio_regs_5G[1]);
22311 }
22312
22313 write_phy_reg(pi, 0x1a6,
22314 pi->rssical_cache.rssical_phyregs_5G[0]);
22315 write_phy_reg(pi, 0x1ac,
22316 pi->rssical_cache.rssical_phyregs_5G[1]);
22317 write_phy_reg(pi, 0x1b2,
22318 pi->rssical_cache.rssical_phyregs_5G[2]);
22319 write_phy_reg(pi, 0x1b8,
22320 pi->rssical_cache.rssical_phyregs_5G[3]);
22321 write_phy_reg(pi, 0x1a4,
22322 pi->rssical_cache.rssical_phyregs_5G[4]);
22323 write_phy_reg(pi, 0x1aa,
22324 pi->rssical_cache.rssical_phyregs_5G[5]);
22325 write_phy_reg(pi, 0x1b0,
22326 pi->rssical_cache.rssical_phyregs_5G[6]);
22327 write_phy_reg(pi, 0x1b6,
22328 pi->rssical_cache.rssical_phyregs_5G[7]);
22329 write_phy_reg(pi, 0x1a5,
22330 pi->rssical_cache.rssical_phyregs_5G[8]);
22331 write_phy_reg(pi, 0x1ab,
22332 pi->rssical_cache.rssical_phyregs_5G[9]);
22333 write_phy_reg(pi, 0x1b1,
22334 pi->rssical_cache.rssical_phyregs_5G[10]);
22335 write_phy_reg(pi, 0x1b7,
22336 pi->rssical_cache.rssical_phyregs_5G[11]);
22337 }
22338}
22339
7d4df48e 22340static u16
66cbd3ab 22341wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
e868ab03 22342 u8 dac_test_mode)
a9533e7e 22343{
e868ab03 22344 u8 phy_bw, is_phybw40;
7d4df48e 22345 u16 num_samps, t, spur;
a9533e7e 22346 fixed theta = 0, rot = 0;
66cbd3ab 22347 u32 tbl_len;
3e26416e 22348 cs32 *tone_buf = NULL;
a9533e7e
HP
22349
22350 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
22351 phy_bw = (is_phybw40 == 1) ? 40 : 20;
22352 tbl_len = (phy_bw << 3);
22353
22354 if (dac_test_mode == 1) {
22355 spur = read_phy_reg(pi, 0x01);
22356 spur = (spur >> 15) & 1;
22357 phy_bw = (spur == 1) ? 82 : 80;
22358 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
22359
22360 tbl_len = (phy_bw << 1);
22361 }
22362
3e26416e 22363 tone_buf = (cs32 *) MALLOC(pi->sh->osh, sizeof(cs32) * tbl_len);
ca8c1e59 22364 if (tone_buf == NULL) {
a9533e7e
HP
22365 return 0;
22366 }
22367
7d4df48e 22368 num_samps = (u16) tbl_len;
a9533e7e
HP
22369 rot = FIXED((f_kHz * 36) / phy_bw) / 100;
22370 theta = 0;
22371
22372 for (t = 0; t < num_samps; t++) {
22373
22374 wlc_phy_cordic(theta, &tone_buf[t]);
22375
22376 theta += rot;
22377
3e26416e
GKH
22378 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
22379 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
a9533e7e
HP
22380 }
22381
22382 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
22383
22384 if (tone_buf != NULL)
3e26416e 22385 MFREE(pi->sh->osh, tone_buf, sizeof(cs32) * tbl_len);
a9533e7e
HP
22386
22387 return num_samps;
22388}
22389
22390int
66cbd3ab 22391wlc_phy_tx_tone_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
e868ab03 22392 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
a9533e7e 22393{
7d4df48e
GKH
22394 u16 num_samps;
22395 u16 loops = 0xffff;
22396 u16 wait = 0;
a9533e7e 22397
ca8c1e59
JC
22398 num_samps =
22399 wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val, dac_test_mode);
22400 if (num_samps == 0) {
a9533e7e
HP
22401 return BCME_ERROR;
22402 }
22403
22404 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22405 dac_test_mode, modify_bbmult);
22406
22407 return BCME_OK;
22408}
22409
22410static void
3e26416e 22411wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
7d4df48e 22412 u16 num_samps)
a9533e7e 22413{
7d4df48e 22414 u16 t;
66cbd3ab 22415 u32 *data_buf = NULL;
a9533e7e 22416
66cbd3ab 22417 data_buf = (u32 *) MALLOC(pi->sh->osh, sizeof(u32) * num_samps);
ca8c1e59 22418 if (data_buf == NULL) {
a9533e7e
HP
22419 return;
22420 }
22421
22422 if (pi->phyhang_avoid)
22423 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22424
22425 for (t = 0; t < num_samps; t++) {
22426 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
22427 (((unsigned int)tone_buf[t].q) & 0x3ff);
22428 }
22429 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
22430 data_buf);
22431
22432 if (data_buf != NULL)
66cbd3ab 22433 MFREE(pi->sh->osh, data_buf, sizeof(u32) * num_samps);
a9533e7e
HP
22434
22435 if (pi->phyhang_avoid)
22436 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22437}
22438
22439static void
7d4df48e
GKH
22440wlc_phy_runsamples_nphy(phy_info_t *pi, u16 num_samps, u16 loops,
22441 u16 wait, u8 iqmode, u8 dac_test_mode,
a9533e7e
HP
22442 bool modify_bbmult)
22443{
7d4df48e 22444 u16 bb_mult;
e868ab03 22445 u8 phy_bw, sample_cmd;
7d4df48e
GKH
22446 u16 orig_RfseqCoreActv;
22447 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
a9533e7e
HP
22448 lpf_bw_ctl_miscreg4;
22449
22450 if (pi->phyhang_avoid)
22451 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22452
22453 phy_bw = 20;
22454 if (CHSPEC_IS40(pi->radio_chanspec))
22455 phy_bw = 40;
22456
22457 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22458
22459 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
22460 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
22461 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
22462 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22463 (0x7 << 8);
22464 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22465 (0x7 << 8);
22466 } else {
22467 wlc_phy_rfctrl_override_nphy_rev7(pi,
22468 (0x1 << 7),
22469 wlc_phy_read_lpf_bw_ctl_nphy
22470 (pi, 0), 0, 0,
22471 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22472
22473 pi->nphy_sample_play_lpf_bw_ctl_ovr = TRUE;
22474
22475 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22476 (0x7 << 8);
22477 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22478 (0x7 << 8);
22479 }
22480 }
22481
22482 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
22483
22484 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22485 &bb_mult);
22486 pi->nphy_bb_mult_save =
22487 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
22488 }
22489
22490 if (modify_bbmult) {
22491 bb_mult = (phy_bw == 20) ? 100 : 71;
22492 bb_mult = (bb_mult << 8) + bb_mult;
22493 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22494 &bb_mult);
22495 }
22496
22497 if (pi->phyhang_avoid)
22498 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22499
22500 write_phy_reg(pi, 0xc6, num_samps - 1);
22501
22502 if (loops != 0xffff) {
22503 write_phy_reg(pi, 0xc4, loops - 1);
22504 } else {
22505 write_phy_reg(pi, 0xc4, loops);
22506 }
22507 write_phy_reg(pi, 0xc5, wait);
22508
22509 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
22510 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
22511 if (iqmode) {
22512
22513 and_phy_reg(pi, 0xc2, 0x7FFF);
22514
22515 or_phy_reg(pi, 0xc2, 0x8000);
22516 } else {
22517
22518 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
22519 write_phy_reg(pi, 0xc3, sample_cmd);
22520 }
22521
22522 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
22523
22524 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
22525}
22526
7cc4a4c0 22527void wlc_phy_stopplayback_nphy(phy_info_t *pi)
a9533e7e 22528{
7d4df48e
GKH
22529 u16 playback_status;
22530 u16 bb_mult;
a9533e7e
HP
22531
22532 if (pi->phyhang_avoid)
22533 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22534
22535 playback_status = read_phy_reg(pi, 0xc7);
22536 if (playback_status & 0x1) {
22537 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
22538 } else if (playback_status & 0x2) {
22539
22540 and_phy_reg(pi, 0xc2,
7d4df48e 22541 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
a9533e7e
HP
22542 }
22543
7d4df48e 22544 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
a9533e7e
HP
22545
22546 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
22547
22548 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
22549 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22550 &bb_mult);
22551
22552 pi->nphy_bb_mult_save = 0;
22553 }
22554
22555 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
22556 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
22557 wlc_phy_rfctrl_override_nphy_rev7(pi,
22558 (0x1 << 7),
22559 0, 0, 1,
22560 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22561 pi->nphy_sample_play_lpf_bw_ctl_ovr = FALSE;
22562 }
22563 }
22564
22565 if (pi->phyhang_avoid)
22566 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22567}
22568
7cc4a4c0 22569nphy_txgains_t wlc_phy_get_tx_gain_nphy(phy_info_t *pi)
a9533e7e 22570{
7d4df48e 22571 u16 base_idx[2], curr_gain[2];
e868ab03 22572 u8 core_no;
a9533e7e 22573 nphy_txgains_t target_gain;
66cbd3ab 22574 u32 *tx_pwrctrl_tbl = NULL;
a9533e7e
HP
22575
22576 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
22577 if (pi->phyhang_avoid)
22578 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
22579
22580 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
22581 curr_gain);
22582
22583 if (pi->phyhang_avoid)
22584 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
22585
22586 for (core_no = 0; core_no < 2; core_no++) {
22587 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22588 target_gain.ipa[core_no] =
22589 curr_gain[core_no] & 0x0007;
22590 target_gain.pad[core_no] =
22591 ((curr_gain[core_no] & 0x00F8) >> 3);
22592 target_gain.pga[core_no] =
22593 ((curr_gain[core_no] & 0x0F00) >> 8);
22594 target_gain.txgm[core_no] =
22595 ((curr_gain[core_no] & 0x7000) >> 12);
22596 target_gain.txlpf[core_no] =
22597 ((curr_gain[core_no] & 0x8000) >> 15);
22598 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22599 target_gain.ipa[core_no] =
22600 curr_gain[core_no] & 0x000F;
22601 target_gain.pad[core_no] =
22602 ((curr_gain[core_no] & 0x00F0) >> 4);
22603 target_gain.pga[core_no] =
22604 ((curr_gain[core_no] & 0x0F00) >> 8);
22605 target_gain.txgm[core_no] =
22606 ((curr_gain[core_no] & 0x7000) >> 12);
22607 } else {
22608 target_gain.ipa[core_no] =
22609 curr_gain[core_no] & 0x0003;
22610 target_gain.pad[core_no] =
22611 ((curr_gain[core_no] & 0x000C) >> 2);
22612 target_gain.pga[core_no] =
22613 ((curr_gain[core_no] & 0x0070) >> 4);
22614 target_gain.txgm[core_no] =
22615 ((curr_gain[core_no] & 0x0380) >> 7);
22616 }
22617 }
22618 } else {
22619 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
22620 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
22621 for (core_no = 0; core_no < 2; core_no++) {
22622 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22623 if (PHY_IPA(pi)) {
22624 tx_pwrctrl_tbl =
22625 wlc_phy_get_ipa_gaintbl_nphy(pi);
22626 } else {
22627 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22628 if NREV_IS
22629 (pi->pubpi.phy_rev, 3) {
22630 tx_pwrctrl_tbl =
22631 nphy_tpc_5GHz_txgain_rev3;
22632 } else if NREV_IS
22633 (pi->pubpi.phy_rev, 4) {
22634 tx_pwrctrl_tbl =
22635 (pi->srom_fem5g.
22636 extpagain ==
22637 3) ?
22638 nphy_tpc_5GHz_txgain_HiPwrEPA
22639 :
22640 nphy_tpc_5GHz_txgain_rev4;
22641 } else {
22642 tx_pwrctrl_tbl =
22643 nphy_tpc_5GHz_txgain_rev5;
22644 }
22645 } else {
22646 if (NREV_GE
22647 (pi->pubpi.phy_rev, 7)) {
22648 if (pi->pubpi.
22649 radiorev == 3) {
22650 tx_pwrctrl_tbl =
22651 nphy_tpc_txgain_epa_2057rev3;
22652 } else if (pi->pubpi.
22653 radiorev ==
22654 5) {
22655 tx_pwrctrl_tbl =
22656 nphy_tpc_txgain_epa_2057rev5;
22657 }
22658
22659 } else {
22660 if (NREV_GE
22661 (pi->pubpi.phy_rev,
22662 5)
22663 && (pi->srom_fem2g.
22664 extpagain ==
22665 3)) {
22666 tx_pwrctrl_tbl =
22667 nphy_tpc_txgain_HiPwrEPA;
22668 } else {
22669 tx_pwrctrl_tbl =
22670 nphy_tpc_txgain_rev3;
22671 }
22672 }
22673 }
22674 }
22675 if NREV_GE
22676 (pi->pubpi.phy_rev, 7) {
22677 target_gain.ipa[core_no] =
22678 (tx_pwrctrl_tbl[base_idx[core_no]]
22679 >> 16) & 0x7;
22680 target_gain.pad[core_no] =
22681 (tx_pwrctrl_tbl[base_idx[core_no]]
22682 >> 19) & 0x1f;
22683 target_gain.pga[core_no] =
22684 (tx_pwrctrl_tbl[base_idx[core_no]]
22685 >> 24) & 0xf;
22686 target_gain.txgm[core_no] =
22687 (tx_pwrctrl_tbl[base_idx[core_no]]
22688 >> 28) & 0x7;
22689 target_gain.txlpf[core_no] =
22690 (tx_pwrctrl_tbl[base_idx[core_no]]
22691 >> 31) & 0x1;
22692 } else {
22693 target_gain.ipa[core_no] =
22694 (tx_pwrctrl_tbl[base_idx[core_no]]
22695 >> 16) & 0xf;
22696 target_gain.pad[core_no] =
22697 (tx_pwrctrl_tbl[base_idx[core_no]]
22698 >> 20) & 0xf;
22699 target_gain.pga[core_no] =
22700 (tx_pwrctrl_tbl[base_idx[core_no]]
22701 >> 24) & 0xf;
22702 target_gain.txgm[core_no] =
22703 (tx_pwrctrl_tbl[base_idx[core_no]]
22704 >> 28) & 0x7;
22705 }
22706 } else {
22707 target_gain.ipa[core_no] =
22708 (nphy_tpc_txgain[base_idx[core_no]] >> 16) &
22709 0x3;
22710 target_gain.pad[core_no] =
22711 (nphy_tpc_txgain[base_idx[core_no]] >> 18) &
22712 0x3;
22713 target_gain.pga[core_no] =
22714 (nphy_tpc_txgain[base_idx[core_no]] >> 20) &
22715 0x7;
22716 target_gain.txgm[core_no] =
22717 (nphy_tpc_txgain[base_idx[core_no]] >> 23) &
22718 0x7;
22719 }
22720 }
22721 }
22722
90ea2296 22723 return target_gain;
a9533e7e
HP
22724}
22725
22726static void
7d4df48e 22727wlc_phy_iqcal_gainparams_nphy(phy_info_t *pi, u16 core_no,
a9533e7e 22728 nphy_txgains_t target_gain,
7cc4a4c0 22729 nphy_iqcal_params_t *params)
a9533e7e 22730{
e868ab03 22731 u8 k;
a9533e7e 22732 int idx;
7d4df48e 22733 u16 gain_index;
e868ab03 22734 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
a9533e7e
HP
22735
22736 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22737 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22738 params->txlpf = target_gain.txlpf[core_no];
22739 }
22740 params->txgm = target_gain.txgm[core_no];
22741 params->pga = target_gain.pga[core_no];
22742 params->pad = target_gain.pad[core_no];
22743 params->ipa = target_gain.ipa[core_no];
22744 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22745 params->cal_gain =
22746 ((params->txlpf << 15) | (params->
22747 txgm << 12) | (params->
22748 pga << 8) |
22749 (params->pad << 3) | (params->ipa));
22750 } else {
22751 params->cal_gain =
22752 ((params->txgm << 12) | (params->
22753 pga << 8) | (params->
22754 pad << 4) |
22755 (params->ipa));
22756 }
22757 params->ncorr[0] = 0x79;
22758 params->ncorr[1] = 0x79;
22759 params->ncorr[2] = 0x79;
22760 params->ncorr[3] = 0x79;
22761 params->ncorr[4] = 0x79;
22762 } else {
22763
22764 gain_index = ((target_gain.pad[core_no] << 0) |
22765 (target_gain.pga[core_no] << 4) | (target_gain.
22766 txgm[core_no]
22767 << 8));
22768
22769 idx = -1;
22770 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22771 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22772 gain_index) {
22773 idx = k;
22774 break;
22775 }
22776 }
22777
22778 ASSERT(idx != -1);
22779
22780 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
22781 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
22782 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
22783 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
22784 (params->pad << 2));
22785 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
22786 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
22787 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
22788 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
22789 }
22790}
22791
7cc4a4c0 22792static void wlc_phy_txcal_radio_setup_nphy(phy_info_t *pi)
a9533e7e 22793{
7d4df48e 22794 u16 jtag_core, core;
a9533e7e
HP
22795
22796 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22797
22798 for (core = 0; core <= 1; core++) {
22799
22800 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22801 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22802 TX_SSI_MASTER);
22803
22804 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22805 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22806 IQCAL_VCM_HG);
22807
22808 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22809 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22810 IQCAL_IDAC);
22811
22812 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22813 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM);
22814
22815 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
22816
22817 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22818 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22819 TX_SSI_MUX);
22820
22821 if (pi->pubpi.radiorev != 5)
22822 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22823 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22824 TSSIA);
22825
22826 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22827 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
22828
22829 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22830 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22831 TSSI_MISC1);
22832
22833 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22834 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22835 TX_SSI_MASTER, 0x0a);
22836 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22837 IQCAL_VCM_HG, 0x43);
22838 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22839 IQCAL_IDAC, 0x55);
22840 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22841 TSSI_VCM, 0x00);
22842 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22843 TSSIG, 0x00);
22844 if (pi->use_int_tx_iqlo_cal_nphy) {
22845 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22846 core, TX_SSI_MUX, 0x4);
22847 if (!
22848 (pi->
e5c4536f 22849 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22850
22851 WRITE_RADIO_REG3(pi, RADIO_2057,
22852 TX, core,
22853 TSSIA, 0x31);
22854 } else {
22855
22856 WRITE_RADIO_REG3(pi, RADIO_2057,
22857 TX, core,
22858 TSSIA, 0x21);
22859 }
22860 }
22861 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22862 TSSI_MISC1, 0x00);
22863 } else {
22864 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22865 TX_SSI_MASTER, 0x06);
22866 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22867 IQCAL_VCM_HG, 0x43);
22868 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22869 IQCAL_IDAC, 0x55);
22870 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22871 TSSI_VCM, 0x00);
22872
22873 if (pi->pubpi.radiorev != 5)
22874 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22875 core, TSSIA, 0x00);
22876 if (pi->use_int_tx_iqlo_cal_nphy) {
22877 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22878 core, TX_SSI_MUX,
22879 0x06);
22880 if (!
22881 (pi->
e5c4536f 22882 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22883
22884 WRITE_RADIO_REG3(pi, RADIO_2057,
22885 TX, core,
22886 TSSIG, 0x31);
22887 } else {
22888
22889 WRITE_RADIO_REG3(pi, RADIO_2057,
22890 TX, core,
22891 TSSIG, 0x21);
22892 }
22893 }
22894 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22895 TSSI_MISC1, 0x00);
22896 }
22897 }
22898 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22899
22900 for (core = 0; core <= 1; core++) {
22901 jtag_core =
22902 (core ==
22903 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22904
22905 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22906 read_radio_reg(pi,
22907 RADIO_2056_TX_TX_SSI_MASTER |
22908 jtag_core);
22909
22910 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22911 read_radio_reg(pi,
22912 RADIO_2056_TX_IQCAL_VCM_HG |
22913 jtag_core);
22914
22915 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22916 read_radio_reg(pi,
22917 RADIO_2056_TX_IQCAL_IDAC |
22918 jtag_core);
22919
22920 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22921 read_radio_reg(pi,
22922 RADIO_2056_TX_TSSI_VCM | jtag_core);
22923
22924 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22925 read_radio_reg(pi,
22926 RADIO_2056_TX_TX_AMP_DET |
22927 jtag_core);
22928
22929 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22930 read_radio_reg(pi,
22931 RADIO_2056_TX_TX_SSI_MUX |
22932 jtag_core);
22933
22934 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22935 read_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core);
22936
22937 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22938 read_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core);
22939
22940 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22941 read_radio_reg(pi,
22942 RADIO_2056_TX_TSSI_MISC1 |
22943 jtag_core);
22944
22945 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22946 read_radio_reg(pi,
22947 RADIO_2056_TX_TSSI_MISC2 |
22948 jtag_core);
22949
22950 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22951 read_radio_reg(pi,
22952 RADIO_2056_TX_TSSI_MISC3 |
22953 jtag_core);
22954
22955 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22956 write_radio_reg(pi,
22957 RADIO_2056_TX_TX_SSI_MASTER |
22958 jtag_core, 0x0a);
22959 write_radio_reg(pi,
22960 RADIO_2056_TX_IQCAL_VCM_HG |
22961 jtag_core, 0x40);
22962 write_radio_reg(pi,
22963 RADIO_2056_TX_IQCAL_IDAC |
22964 jtag_core, 0x55);
22965 write_radio_reg(pi,
22966 RADIO_2056_TX_TSSI_VCM |
22967 jtag_core, 0x00);
22968 write_radio_reg(pi,
22969 RADIO_2056_TX_TX_AMP_DET |
22970 jtag_core, 0x00);
22971
22972 if (PHY_IPA(pi)) {
22973 write_radio_reg(pi,
22974 RADIO_2056_TX_TX_SSI_MUX
22975 | jtag_core, 0x4);
22976 write_radio_reg(pi,
22977 RADIO_2056_TX_TSSIA |
22978 jtag_core, 0x1);
22979 } else {
22980 write_radio_reg(pi,
22981 RADIO_2056_TX_TX_SSI_MUX
22982 | jtag_core, 0x00);
22983 write_radio_reg(pi,
22984 RADIO_2056_TX_TSSIA |
22985 jtag_core, 0x2f);
22986 }
22987 write_radio_reg(pi,
22988 RADIO_2056_TX_TSSIG | jtag_core,
22989 0x00);
22990 write_radio_reg(pi,
22991 RADIO_2056_TX_TSSI_MISC1 |
22992 jtag_core, 0x00);
22993
22994 write_radio_reg(pi,
22995 RADIO_2056_TX_TSSI_MISC2 |
22996 jtag_core, 0x00);
22997 write_radio_reg(pi,
22998 RADIO_2056_TX_TSSI_MISC3 |
22999 jtag_core, 0x00);
23000 } else {
23001 write_radio_reg(pi,
23002 RADIO_2056_TX_TX_SSI_MASTER |
23003 jtag_core, 0x06);
23004 write_radio_reg(pi,
23005 RADIO_2056_TX_IQCAL_VCM_HG |
23006 jtag_core, 0x40);
23007 write_radio_reg(pi,
23008 RADIO_2056_TX_IQCAL_IDAC |
23009 jtag_core, 0x55);
23010 write_radio_reg(pi,
23011 RADIO_2056_TX_TSSI_VCM |
23012 jtag_core, 0x00);
23013 write_radio_reg(pi,
23014 RADIO_2056_TX_TX_AMP_DET |
23015 jtag_core, 0x00);
23016 write_radio_reg(pi,
23017 RADIO_2056_TX_TSSIA | jtag_core,
23018 0x00);
23019
23020 if (PHY_IPA(pi)) {
23021
23022 write_radio_reg(pi,
23023 RADIO_2056_TX_TX_SSI_MUX
23024 | jtag_core, 0x06);
23025 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23026
23027 write_radio_reg(pi,
23028 RADIO_2056_TX_TSSIG
23029 | jtag_core,
23030 0x11);
23031 } else {
23032
23033 write_radio_reg(pi,
23034 RADIO_2056_TX_TSSIG
23035 | jtag_core,
23036 0x1);
23037 }
23038 } else {
23039 write_radio_reg(pi,
23040 RADIO_2056_TX_TX_SSI_MUX
23041 | jtag_core, 0x00);
23042 write_radio_reg(pi,
23043 RADIO_2056_TX_TSSIG |
23044 jtag_core, 0x20);
23045 }
23046
23047 write_radio_reg(pi,
23048 RADIO_2056_TX_TSSI_MISC1 |
23049 jtag_core, 0x00);
23050 write_radio_reg(pi,
23051 RADIO_2056_TX_TSSI_MISC2 |
23052 jtag_core, 0x00);
23053 write_radio_reg(pi,
23054 RADIO_2056_TX_TSSI_MISC3 |
23055 jtag_core, 0x00);
23056 }
23057 }
23058 } else {
23059
23060 pi->tx_rx_cal_radio_saveregs[0] =
23061 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23062 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23063 pi->tx_rx_cal_radio_saveregs[1] =
23064 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23065 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23066
23067 pi->tx_rx_cal_radio_saveregs[2] =
23068 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23069 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23070 pi->tx_rx_cal_radio_saveregs[3] =
23071 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23072 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23073
23074 pi->tx_rx_cal_radio_saveregs[4] =
23075 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23076 pi->tx_rx_cal_radio_saveregs[5] =
23077 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23078
23079 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23080 0) {
23081
23082 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23083 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23084 } else {
23085
23086 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23087 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23088 }
23089
23090 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23091
23092 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23093 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23094 } else {
23095
23096 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23097 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23098 }
23099 }
23100}
23101
7cc4a4c0 23102static void wlc_phy_txcal_radio_cleanup_nphy(phy_info_t *pi)
a9533e7e 23103{
7d4df48e 23104 u16 jtag_core, core;
a9533e7e
HP
23105
23106 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23107 for (core = 0; core <= 1; core++) {
23108
23109 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23110 TX_SSI_MASTER,
23111 pi->
23112 tx_rx_cal_radio_saveregs[(core * 11) +
23113 0]);
23114
23115 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23116 pi->
23117 tx_rx_cal_radio_saveregs[(core * 11) +
23118 1]);
23119
23120 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23121 pi->
23122 tx_rx_cal_radio_saveregs[(core * 11) +
23123 2]);
23124
23125 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23126 pi->
23127 tx_rx_cal_radio_saveregs[(core * 11) +
23128 3]);
23129
23130 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23131 pi->
23132 tx_rx_cal_radio_saveregs[(core * 11) +
23133 5]);
23134
23135 if (pi->pubpi.radiorev != 5)
23136 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23137 TSSIA,
23138 pi->
23139 tx_rx_cal_radio_saveregs[(core
23140 *
23141 11) +
23142 6]);
23143
23144 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23145 pi->
23146 tx_rx_cal_radio_saveregs[(core * 11) +
23147 7]);
23148
23149 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23150 pi->
23151 tx_rx_cal_radio_saveregs[(core * 11) +
23152 8]);
23153 }
23154 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23155 for (core = 0; core <= 1; core++) {
23156 jtag_core =
23157 (core ==
23158 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23159
23160 write_radio_reg(pi,
23161 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23162 pi->
23163 tx_rx_cal_radio_saveregs[(core * 11) +
23164 0]);
23165
23166 write_radio_reg(pi,
23167 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23168 pi->
23169 tx_rx_cal_radio_saveregs[(core * 11) +
23170 1]);
23171
23172 write_radio_reg(pi,
23173 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23174 pi->
23175 tx_rx_cal_radio_saveregs[(core * 11) +
23176 2]);
23177
23178 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23179 pi->
23180 tx_rx_cal_radio_saveregs[(core * 11) +
23181 3]);
23182
23183 write_radio_reg(pi,
23184 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23185 pi->
23186 tx_rx_cal_radio_saveregs[(core * 11) +
23187 4]);
23188
23189 write_radio_reg(pi,
23190 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23191 pi->
23192 tx_rx_cal_radio_saveregs[(core * 11) +
23193 5]);
23194
23195 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23196 pi->
23197 tx_rx_cal_radio_saveregs[(core * 11) +
23198 6]);
23199
23200 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23201 pi->
23202 tx_rx_cal_radio_saveregs[(core * 11) +
23203 7]);
23204
23205 write_radio_reg(pi,
23206 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23207 pi->
23208 tx_rx_cal_radio_saveregs[(core * 11) +
23209 8]);
23210
23211 write_radio_reg(pi,
23212 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23213 pi->
23214 tx_rx_cal_radio_saveregs[(core * 11) +
23215 9]);
23216
23217 write_radio_reg(pi,
23218 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23219 pi->
23220 tx_rx_cal_radio_saveregs[(core * 11) +
23221 10]);
23222 }
23223 } else {
23224
23225 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23226 pi->tx_rx_cal_radio_saveregs[0]);
23227 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23228 pi->tx_rx_cal_radio_saveregs[1]);
23229 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23230 pi->tx_rx_cal_radio_saveregs[2]);
23231 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23232 pi->tx_rx_cal_radio_saveregs[3]);
23233 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23234 pi->tx_rx_cal_radio_saveregs[4]);
23235 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23236 pi->tx_rx_cal_radio_saveregs[5]);
23237 }
23238}
23239
7cc4a4c0 23240static void wlc_phy_txcal_physetup_nphy(phy_info_t *pi)
a9533e7e 23241{
7d4df48e 23242 u16 val, mask;
a9533e7e
HP
23243
23244 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23245 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23246 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23247
23248 mask = ((0x3 << 8) | (0x3 << 10));
23249 val = (0x2 << 8);
23250 val |= (0x2 << 10);
23251 mod_phy_reg(pi, 0xa6, mask, val);
23252 mod_phy_reg(pi, 0xa7, mask, val);
23253
23254 val = read_phy_reg(pi, 0x8f);
23255 pi->tx_rx_cal_phy_saveregs[2] = val;
23256 val |= ((0x1 << 9) | (0x1 << 10));
23257 write_phy_reg(pi, 0x8f, val);
23258
23259 val = read_phy_reg(pi, 0xa5);
23260 pi->tx_rx_cal_phy_saveregs[3] = val;
23261 val |= ((0x1 << 9) | (0x1 << 10));
23262 write_phy_reg(pi, 0xa5, val);
23263
23264 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23265 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23266
23267 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23268 &val);
23269 pi->tx_rx_cal_phy_saveregs[5] = val;
23270 val = 0;
23271 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23272 &val);
23273
23274 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23275 &val);
23276 pi->tx_rx_cal_phy_saveregs[6] = val;
23277 val = 0;
23278 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23279 &val);
23280
23281 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23282 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23283
23284 if (!(pi->use_int_tx_iqlo_cal_nphy)) {
23285
23286 wlc_phy_rfctrlintc_override_nphy(pi,
23287 NPHY_RfctrlIntc_override_PA,
23288 1,
23289 RADIO_MIMO_CORESEL_CORE1
23290 |
23291 RADIO_MIMO_CORESEL_CORE2);
23292 } else {
23293
23294 wlc_phy_rfctrlintc_override_nphy(pi,
23295 NPHY_RfctrlIntc_override_PA,
23296 0,
23297 RADIO_MIMO_CORESEL_CORE1
23298 |
23299 RADIO_MIMO_CORESEL_CORE2);
23300 }
23301
23302 wlc_phy_rfctrlintc_override_nphy(pi,
23303 NPHY_RfctrlIntc_override_TRSW,
23304 0x2, RADIO_MIMO_CORESEL_CORE1);
23305 wlc_phy_rfctrlintc_override_nphy(pi,
23306 NPHY_RfctrlIntc_override_TRSW,
23307 0x8, RADIO_MIMO_CORESEL_CORE2);
23308
23309 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23310 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23311 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23312 0x29b, (0x1 << 0), (0) << 0);
23313
23314 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23315 0x29b, (0x1 << 0), (0) << 0);
23316
23317 if (NREV_IS(pi->pubpi.phy_rev, 7)
23318 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23319 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
23320 wlc_phy_read_lpf_bw_ctl_nphy
23321 (pi, 0), 0, 0,
23322 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23323 }
23324
23325 if (pi->use_int_tx_iqlo_cal_nphy
23326 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23327
23328 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23329
23330 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23331 1 << 4);
23332
23333 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23334 mod_radio_reg(pi,
23335 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23336 1, 0);
23337 mod_radio_reg(pi,
23338 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23339 1, 0);
23340 } else {
23341 mod_radio_reg(pi,
23342 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23343 1, 0);
23344 mod_radio_reg(pi,
23345 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23346 1, 0);
23347 }
23348 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23349 wlc_phy_rfctrl_override_nphy_rev7(pi,
23350 (0x1 << 3), 0,
23351 0x3, 0,
23352 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23353 }
23354 }
23355 } else {
23356 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23357 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23358
23359 mask = ((0x3 << 12) | (0x3 << 14));
23360 val = (0x2 << 12);
23361 val |= (0x2 << 14);
23362 mod_phy_reg(pi, 0xa6, mask, val);
23363 mod_phy_reg(pi, 0xa7, mask, val);
23364
23365 val = read_phy_reg(pi, 0xa5);
23366 pi->tx_rx_cal_phy_saveregs[2] = val;
23367 val |= ((0x1 << 12) | (0x1 << 13));
23368 write_phy_reg(pi, 0xa5, val);
23369
23370 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23371 &val);
23372 pi->tx_rx_cal_phy_saveregs[3] = val;
23373 val |= 0x2000;
23374 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23375 &val);
23376
23377 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23378 &val);
23379 pi->tx_rx_cal_phy_saveregs[4] = val;
23380 val |= 0x2000;
23381 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23382 &val);
23383
23384 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23385 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23386 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23387 write_phy_reg(pi, 0x91, val);
23388 write_phy_reg(pi, 0x92, val);
23389 }
23390}
23391
7cc4a4c0 23392static void wlc_phy_txcal_phycleanup_nphy(phy_info_t *pi)
a9533e7e 23393{
7d4df48e 23394 u16 mask;
a9533e7e
HP
23395
23396 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23397 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23398 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23399 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23400 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23401 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23402
23403 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23404 &pi->tx_rx_cal_phy_saveregs[5]);
23405 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23406 &pi->tx_rx_cal_phy_saveregs[6]);
23407
23408 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23409 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23410
23411 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23412 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23413
23414 if (NREV_IS(pi->pubpi.phy_rev, 7)
23415 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23416 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
23417 1,
23418 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23419 }
23420
23421 wlc_phy_resetcca_nphy(pi);
23422
23423 if (pi->use_int_tx_iqlo_cal_nphy
23424 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23425
23426 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23427 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23428 mod_radio_reg(pi,
23429 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23430 1, 1);
23431 mod_radio_reg(pi,
23432 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23433 1, 1);
23434 } else {
23435 mod_radio_reg(pi,
23436 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23437 1, 1);
23438 mod_radio_reg(pi,
23439 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23440 1, 1);
23441 }
23442
23443 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23444 0);
23445 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23446 wlc_phy_rfctrl_override_nphy_rev7(pi,
23447 (0x1 << 3), 0,
23448 0x3, 1,
23449 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23450 }
23451 }
23452 } else {
23453 mask = ((0x3 << 12) | (0x3 << 14));
23454 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23455 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23456 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23457
23458 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23459 &pi->tx_rx_cal_phy_saveregs[3]);
23460
23461 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23462 &pi->tx_rx_cal_phy_saveregs[4]);
23463
23464 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23465 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23466 }
23467}
23468
23469#define NPHY_CAL_TSSISAMPS 64
23470#define NPHY_TEST_TONE_FREQ_40MHz 4000
23471#define NPHY_TEST_TONE_FREQ_20MHz 2500
23472
23473void
3e26416e 23474wlc_phy_est_tonepwr_nphy(phy_info_t *pi, s32 *qdBm_pwrbuf, u8 num_samps)
a9533e7e 23475{
7d4df48e 23476 u16 tssi_reg;
3e26416e
GKH
23477 s32 temp, pwrindex[2];
23478 s32 idle_tssi[2];
23479 s32 rssi_buf[4];
23480 s32 tssival[2];
e868ab03 23481 u8 tssi_type;
a9533e7e
HP
23482
23483 tssi_reg = read_phy_reg(pi, 0x1e9);
23484
3e26416e 23485 temp = (s32) (tssi_reg & 0x3f);
a9533e7e
HP
23486 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23487
3e26416e 23488 temp = (s32) ((tssi_reg >> 8) & 0x3f);
a9533e7e
HP
23489 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23490
23491 tssi_type =
23492 CHSPEC_IS5G(pi->radio_chanspec) ?
e868ab03 23493 (u8)NPHY_RSSI_SEL_TSSI_5G:(u8)NPHY_RSSI_SEL_TSSI_2G;
a9533e7e
HP
23494
23495 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23496
3e26416e
GKH
23497 tssival[0] = rssi_buf[0] / ((s32) num_samps);
23498 tssival[1] = rssi_buf[2] / ((s32) num_samps);
a9533e7e
HP
23499
23500 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23501 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23502
23503 if (pwrindex[0] < 0) {
23504 pwrindex[0] = 0;
23505 } else if (pwrindex[0] > 63) {
23506 pwrindex[0] = 63;
23507 }
23508
23509 if (pwrindex[1] < 0) {
23510 pwrindex[1] = 0;
23511 } else if (pwrindex[1] > 63) {
23512 pwrindex[1] = 63;
23513 }
23514
23515 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
66cbd3ab 23516 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
a9533e7e 23517 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
66cbd3ab 23518 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
a9533e7e
HP
23519}
23520
7cc4a4c0 23521static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi)
a9533e7e 23522{
7d4df48e 23523 u16 txcal_gain[2];
a9533e7e
HP
23524
23525 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23526 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
23527 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], TRUE);
23528 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], TRUE);
23529
23530 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23531 txcal_gain);
23532
23533 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23534 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23535 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23536 } else {
23537 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23538 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23539 }
23540
23541 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23542 txcal_gain);
23543}
23544
7cc4a4c0 23545static void wlc_phy_precal_txgain_nphy(phy_info_t *pi)
a9533e7e
HP
23546{
23547 bool save_bbmult = FALSE;
e868ab03
GKH
23548 u8 txcal_index_2057_rev5n7 = 0;
23549 u8 txcal_index_2057_rev3n4n6 = 10;
a9533e7e
HP
23550
23551 if (pi->use_int_tx_iqlo_cal_nphy) {
23552 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23553 if ((pi->pubpi.radiorev == 3) ||
23554 (pi->pubpi.radiorev == 4) ||
23555 (pi->pubpi.radiorev == 6)) {
23556
23557 pi->nphy_txcal_pwr_idx[0] =
23558 txcal_index_2057_rev3n4n6;
23559 pi->nphy_txcal_pwr_idx[1] =
23560 txcal_index_2057_rev3n4n6;
23561 wlc_phy_txpwr_index_nphy(pi, 3,
23562 txcal_index_2057_rev3n4n6,
23563 FALSE);
23564 } else {
23565
23566 pi->nphy_txcal_pwr_idx[0] =
23567 txcal_index_2057_rev5n7;
23568 pi->nphy_txcal_pwr_idx[1] =
23569 txcal_index_2057_rev5n7;
23570 wlc_phy_txpwr_index_nphy(pi, 3,
23571 txcal_index_2057_rev5n7,
23572 FALSE);
23573 }
23574 save_bbmult = TRUE;
23575
23576 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
23577 wlc_phy_cal_txgainctrl_nphy(pi, 11, FALSE);
23578 if (pi->sh->hw_phytxchain != 3) {
23579 pi->nphy_txcal_pwr_idx[1] =
23580 pi->nphy_txcal_pwr_idx[0];
23581 wlc_phy_txpwr_index_nphy(pi, 3,
23582 pi->
23583 nphy_txcal_pwr_idx[0],
23584 TRUE);
23585 save_bbmult = TRUE;
23586 }
23587
23588 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23589 if (PHY_IPA(pi)) {
23590 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23591 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23592 FALSE);
23593 } else {
23594 pi->nphy_txcal_pwr_idx[0] = 80;
23595 pi->nphy_txcal_pwr_idx[1] = 80;
23596 wlc_phy_txpwr_index_nphy(pi, 3, 80,
23597 FALSE);
23598 save_bbmult = TRUE;
23599 }
23600 } else {
23601
23602 wlc_phy_internal_cal_txgain_nphy(pi);
23603 save_bbmult = TRUE;
23604 }
23605
23606 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23607 if (PHY_IPA(pi)) {
23608 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23609 wlc_phy_cal_txgainctrl_nphy(pi, 12,
23610 FALSE);
23611 } else {
23612 wlc_phy_cal_txgainctrl_nphy(pi, 14,
23613 FALSE);
23614 }
23615 } else {
23616
23617 wlc_phy_internal_cal_txgain_nphy(pi);
23618 save_bbmult = TRUE;
23619 }
23620 }
23621
23622 } else {
23623 wlc_phy_cal_txgainctrl_nphy(pi, 10, FALSE);
23624 }
23625
23626 if (save_bbmult) {
23627 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23628 &pi->nphy_txcal_bbmult);
23629 }
23630}
23631
23632void
3e26416e 23633wlc_phy_cal_txgainctrl_nphy(phy_info_t *pi, s32 dBm_targetpower, bool debug)
a9533e7e
HP
23634{
23635 int gainctrl_loopidx;
23636 uint core;
7d4df48e 23637 u16 m0m1, curr_m0m1;
3e26416e
GKH
23638 s32 delta_power;
23639 s32 txpwrindex;
23640 s32 qdBm_power[2];
7d4df48e
GKH
23641 u16 orig_BBConfig;
23642 u16 phy_saveregs[4];
66cbd3ab 23643 u32 freq_test;
7d4df48e 23644 u16 ampl_test = 250;
a9533e7e
HP
23645 uint stepsize;
23646 bool phyhang_avoid_state = FALSE;
23647
23648 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23649
23650 stepsize = 2;
23651 } else {
23652
23653 stepsize = 1;
23654 }
23655
23656 if (CHSPEC_IS40(pi->radio_chanspec)) {
23657 freq_test = 5000;
23658 } else {
23659 freq_test = 2500;
23660 }
23661
23662 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], TRUE);
23663 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], TRUE);
23664
23665 if (pi->phyhang_avoid)
23666 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
23667
23668 phyhang_avoid_state = pi->phyhang_avoid;
23669 pi->phyhang_avoid = FALSE;
23670
23671 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23672 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23673 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23674 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23675 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23676 RADIO_MIMO_CORESEL_CORE1 |
23677 RADIO_MIMO_CORESEL_CORE2);
23678
23679 if (!debug) {
23680 wlc_phy_rfctrlintc_override_nphy(pi,
23681 NPHY_RfctrlIntc_override_TRSW,
23682 0x2, RADIO_MIMO_CORESEL_CORE1);
23683 wlc_phy_rfctrlintc_override_nphy(pi,
23684 NPHY_RfctrlIntc_override_TRSW,
23685 0x8, RADIO_MIMO_CORESEL_CORE2);
23686 } else {
23687 wlc_phy_rfctrlintc_override_nphy(pi,
23688 NPHY_RfctrlIntc_override_TRSW,
23689 0x1, RADIO_MIMO_CORESEL_CORE1);
23690 wlc_phy_rfctrlintc_override_nphy(pi,
23691 NPHY_RfctrlIntc_override_TRSW,
23692 0x7, RADIO_MIMO_CORESEL_CORE2);
23693 }
23694
23695 orig_BBConfig = read_phy_reg(pi, 0x01);
23696 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23697
23698 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23699
23700 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
3e26416e 23701 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
a9533e7e
HP
23702
23703 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23704 gainctrl_loopidx++) {
23705 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23706 FALSE);
23707
23708 if (core == PHY_CORE_0) {
23709 curr_m0m1 = m0m1 & 0xff00;
23710 } else {
23711 curr_m0m1 = m0m1 & 0x00ff;
23712 }
23713
23714 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23715 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23716
23717 OSL_DELAY(50);
23718
23719 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23720 NPHY_CAL_TSSISAMPS);
23721
23722 pi->nphy_bb_mult_save = 0;
23723 wlc_phy_stopplayback_nphy(pi);
23724
23725 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23726
23727 txpwrindex -= stepsize * delta_power;
23728 if (txpwrindex < 0) {
23729 txpwrindex = 0;
23730 } else if (txpwrindex > 127) {
23731 txpwrindex = 127;
23732 }
23733
23734 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23735 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23736 (pi->srom_fem5g.extpagain == 3)) {
23737 if (txpwrindex < 30) {
23738 txpwrindex = 30;
23739 }
23740 }
23741 } else {
23742 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23743 (pi->srom_fem2g.extpagain == 3)) {
23744 if (txpwrindex < 50) {
23745 txpwrindex = 50;
23746 }
23747 }
23748 }
23749
23750 wlc_phy_txpwr_index_nphy(pi, (1 << core),
e868ab03 23751 (u8) txpwrindex, TRUE);
a9533e7e
HP
23752 }
23753
e868ab03 23754 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
a9533e7e
HP
23755
23756 if (debug) {
7d4df48e
GKH
23757 u16 radio_gain;
23758 u16 dbg_m0m1;
a9533e7e
HP
23759
23760 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23761
23762 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
23763 FALSE);
23764
23765 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23766 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23767
23768 OSL_DELAY(100);
23769
23770 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23771 NPHY_CAL_TSSISAMPS);
23772
23773 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23774 &radio_gain);
23775
23776 OSL_DELAY(4000000);
23777 pi->nphy_bb_mult_save = 0;
23778 wlc_phy_stopplayback_nphy(pi);
23779 }
23780 }
23781
23782 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], TRUE);
23783 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], TRUE);
23784
23785 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23786
23787 write_phy_reg(pi, 0x01, orig_BBConfig);
23788
23789 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23790 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23791 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23792 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23793
23794 pi->phyhang_avoid = phyhang_avoid_state;
23795
23796 if (pi->phyhang_avoid)
23797 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
23798}
23799
7d4df48e 23800static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core)
a9533e7e
HP
23801{
23802 int index;
66cbd3ab 23803 u32 bbmult_scale;
7d4df48e
GKH
23804 u16 bbmult;
23805 u16 tblentry;
a9533e7e
HP
23806
23807 nphy_txiqcal_ladder_t ladder_lo[] = {
23808 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23809 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23810 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23811 };
23812
23813 nphy_txiqcal_ladder_t ladder_iq[] = {
23814 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23815 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23816 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23817 };
23818
23819 bbmult = (core == PHY_CORE_0) ?
23820 ((pi->nphy_txcal_bbmult >> 8) & 0xff) : (pi->
23821 nphy_txcal_bbmult & 0xff);
23822
23823 for (index = 0; index < 18; index++) {
23824 bbmult_scale = ladder_lo[index].percent * bbmult;
23825 bbmult_scale /= 100;
23826
23827 tblentry =
23828 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23829 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23830 &tblentry);
23831
23832 bbmult_scale = ladder_iq[index].percent * bbmult;
23833 bbmult_scale /= 100;
23834
23835 tblentry =
23836 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23837 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23838 16, &tblentry);
23839 }
23840}
23841
e868ab03 23842void wlc_phy_cal_perical_nphy_run(phy_info_t *pi, u8 caltype)
a9533e7e
HP
23843{
23844 nphy_txgains_t target_gain;
e868ab03 23845 u8 tx_pwr_ctrl_state;
a9533e7e
HP
23846 bool fullcal = TRUE;
23847 bool restore_tx_gain = FALSE;
23848 bool mphase;
23849
23850 if (NORADIO_ENAB(pi->pubpi)) {
23851 wlc_phy_cal_perical_mphase_reset(pi);
23852 return;
23853 }
23854
23855 if (PHY_MUTED(pi))
23856 return;
23857
23858 ASSERT(pi->nphy_perical != PHY_PERICAL_DISABLE);
23859
23860 if (caltype == PHY_PERICAL_AUTO)
23861 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23862 else if (caltype == PHY_PERICAL_PARTIAL)
23863 fullcal = FALSE;
23864
23865 if (pi->cal_type_override != PHY_PERICAL_AUTO) {
23866 fullcal =
23867 (pi->cal_type_override == PHY_PERICAL_FULL) ? TRUE : FALSE;
23868 }
23869
23870 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23871 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23872 wlc_phy_cal_perical_mphase_restart(pi);
23873 }
23874
23875 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL)) {
23876 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23877 }
23878
23879 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23880
23881 wlc_phyreg_enter((wlc_phy_t *) pi);
23882
23883 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23884 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23885 pi->nphy_cal_orig_pwr_idx[0] =
e868ab03 23886 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
a9533e7e 23887 pi->nphy_cal_orig_pwr_idx[1] =
e868ab03 23888 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
a9533e7e
HP
23889
23890 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23891 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23892 0x110, 16,
23893 pi->nphy_cal_orig_tx_gain);
23894 } else {
23895 pi->nphy_cal_orig_tx_gain[0] = 0;
23896 pi->nphy_cal_orig_tx_gain[1] = 0;
23897 }
23898 }
23899 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23900 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23901 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23902
23903 if (pi->antsel_type == ANTSEL_2x3)
23904 wlc_phy_antsel_init((wlc_phy_t *) pi, TRUE);
23905
23906 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23907 if (!mphase) {
23908
23909 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23910 wlc_phy_precal_txgain_nphy(pi);
23911 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23912 restore_tx_gain = TRUE;
23913
23914 target_gain = pi->nphy_cal_target_gain;
23915 }
23916 if (BCME_OK ==
23917 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal, mphase)) {
23918 if (PHY_IPA(pi))
23919 wlc_phy_a4(pi, TRUE);
23920
23921 wlc_phyreg_exit((wlc_phy_t *) pi);
23922 wlapi_enable_mac(pi->sh->physhim);
23923 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23924 10000);
23925 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23926 wlc_phyreg_enter((wlc_phy_t *) pi);
23927
23928 if (BCME_OK == wlc_phy_cal_rxiq_nphy(pi, target_gain,
23929 (pi->
23930 first_cal_after_assoc
23931 || (pi->
23932 cal_type_override
23933 ==
23934 PHY_PERICAL_FULL))
23935 ? 2 : 0, FALSE)) {
23936 wlc_phy_savecal_nphy(pi);
23937
23938 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23939
23940 pi->nphy_perical_last = pi->sh->now;
23941 }
23942 }
23943 if (caltype != PHY_PERICAL_AUTO) {
23944 wlc_phy_rssi_cal_nphy(pi);
23945 }
23946
23947 if (pi->first_cal_after_assoc
23948 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
23949 pi->first_cal_after_assoc = FALSE;
23950 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23951 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23952 }
23953
23954 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23955 wlc_phy_radio205x_vcocal_nphy(pi);
23956 }
23957 } else {
23958 ASSERT(pi->nphy_perical >= PHY_PERICAL_MPHASE);
23959
23960 switch (pi->mphase_cal_phase_id) {
23961 case MPHASE_CAL_STATE_INIT:
23962 pi->nphy_perical_last = pi->sh->now;
23963 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23964
23965 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23966 wlc_phy_precal_txgain_nphy(pi);
23967 }
23968 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23969 pi->mphase_cal_phase_id++;
23970 break;
23971
23972 case MPHASE_CAL_STATE_TXPHASE0:
23973 case MPHASE_CAL_STATE_TXPHASE1:
23974 case MPHASE_CAL_STATE_TXPHASE2:
23975 case MPHASE_CAL_STATE_TXPHASE3:
23976 case MPHASE_CAL_STATE_TXPHASE4:
23977 case MPHASE_CAL_STATE_TXPHASE5:
23978 if ((pi->radar_percal_mask & 0x10) != 0)
23979 pi->nphy_rxcal_active = TRUE;
23980
23981 if (wlc_phy_cal_txiqlo_nphy
23982 (pi, pi->nphy_cal_target_gain, fullcal,
23983 TRUE) != BCME_OK) {
23984
23985 wlc_phy_cal_perical_mphase_reset(pi);
23986 break;
23987 }
23988
23989 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23990 (pi->mphase_cal_phase_id ==
23991 MPHASE_CAL_STATE_TXPHASE4)) {
23992 pi->mphase_cal_phase_id += 2;
23993 } else {
23994 pi->mphase_cal_phase_id++;
23995 }
23996 break;
23997
23998 case MPHASE_CAL_STATE_PAPDCAL:
23999 if ((pi->radar_percal_mask & 0x2) != 0)
24000 pi->nphy_rxcal_active = TRUE;
24001
24002 if (PHY_IPA(pi)) {
24003 wlc_phy_a4(pi, TRUE);
24004 }
24005 pi->mphase_cal_phase_id++;
24006 break;
24007
24008 case MPHASE_CAL_STATE_RXCAL:
24009 if ((pi->radar_percal_mask & 0x1) != 0)
24010 pi->nphy_rxcal_active = TRUE;
24011 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
24012 (pi->first_cal_after_assoc ||
24013 (pi->cal_type_override ==
24014 PHY_PERICAL_FULL)) ? 2 : 0,
24015 FALSE) == BCME_OK) {
24016 wlc_phy_savecal_nphy(pi);
24017 }
24018
24019 pi->mphase_cal_phase_id++;
24020 break;
24021
24022 case MPHASE_CAL_STATE_RSSICAL:
24023 if ((pi->radar_percal_mask & 0x4) != 0)
24024 pi->nphy_rxcal_active = TRUE;
24025 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
24026 wlc_phy_rssi_cal_nphy(pi);
24027
24028 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24029 wlc_phy_radio205x_vcocal_nphy(pi);
24030 }
24031 restore_tx_gain = TRUE;
24032
24033 if (pi->first_cal_after_assoc) {
24034 pi->mphase_cal_phase_id++;
24035 } else {
24036 wlc_phy_cal_perical_mphase_reset(pi);
24037 }
24038
24039 break;
24040
24041 case MPHASE_CAL_STATE_IDLETSSI:
24042 if ((pi->radar_percal_mask & 0x8) != 0)
24043 pi->nphy_rxcal_active = TRUE;
24044
24045 if (pi->first_cal_after_assoc) {
24046 pi->first_cal_after_assoc = FALSE;
24047 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
24048 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
24049 }
24050
24051 wlc_phy_cal_perical_mphase_reset(pi);
24052 break;
24053
24054 default:
24055 ASSERT(0);
24056 wlc_phy_cal_perical_mphase_reset(pi);
24057 break;
24058 }
24059 }
24060
24061 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24062 if (restore_tx_gain) {
24063 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
24064
24065 wlc_phy_txpwr_index_nphy(pi, 1,
24066 pi->
24067 nphy_cal_orig_pwr_idx
24068 [0], FALSE);
24069 wlc_phy_txpwr_index_nphy(pi, 2,
24070 pi->
24071 nphy_cal_orig_pwr_idx
24072 [1], FALSE);
24073
24074 pi->nphy_txpwrindex[0].index = -1;
24075 pi->nphy_txpwrindex[1].index = -1;
24076 } else {
24077 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
562c8850 24078 (s8) (pi->
a9533e7e
HP
24079 nphy_txpwrindex
24080 [0].
24081 index_internal),
24082 FALSE);
24083 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
562c8850 24084 (s8) (pi->
a9533e7e
HP
24085 nphy_txpwrindex
24086 [1].
24087 index_internal),
24088 FALSE);
24089 }
24090 }
24091 }
24092
24093 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
24094 wlc_phyreg_exit((wlc_phy_t *) pi);
24095 wlapi_enable_mac(pi->sh->physhim);
24096}
24097
24098int
7cc4a4c0 24099wlc_phy_cal_txiqlo_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
24100 bool fullcal, bool mphase)
24101{
7d4df48e
GKH
24102 u16 val;
24103 u16 tbl_buf[11];
e868ab03 24104 u8 cal_cnt;
7d4df48e 24105 u16 cal_cmd;
e868ab03 24106 u8 num_cals, max_cal_cmds;
7d4df48e
GKH
24107 u16 core_no, cal_type;
24108 u16 diq_start = 0;
e868ab03 24109 u8 phy_bw;
7d4df48e
GKH
24110 u16 max_val;
24111 u16 tone_freq;
24112 u16 gain_save[2];
24113 u16 cal_gain[2];
a9533e7e 24114 nphy_iqcal_params_t cal_params[2];
66cbd3ab 24115 u32 tbl_len;
a9533e7e
HP
24116 void *tbl_ptr;
24117 bool ladder_updated[2];
e868ab03 24118 u8 mphase_cal_lastphase = 0;
a9533e7e
HP
24119 int bcmerror = BCME_OK;
24120 bool phyhang_avoid_state = FALSE;
24121
7d4df48e 24122 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
a9533e7e
HP
24123 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
24124 0x1902,
24125 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24126 0x6407
24127 };
24128
7d4df48e 24129 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
a9533e7e
HP
24130 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24131 0x3200,
24132 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24133 0x6407
24134 };
24135
7d4df48e 24136 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
a9533e7e
HP
24137 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24138 0x1202,
24139 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24140 0x4707
24141 };
24142
7d4df48e 24143 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
a9533e7e
HP
24144 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24145 0x2300,
24146 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24147 0x4707
24148 };
24149
7d4df48e 24150 u16 tbl_tx_iqlo_cal_startcoefs[] = {
a9533e7e
HP
24151 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24152 0x0000
24153 };
24154
7d4df48e 24155 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
a9533e7e
HP
24156 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
24157 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
24158 };
24159
7d4df48e 24160 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
a9533e7e
HP
24161 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
24162 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
24163 };
24164
7d4df48e 24165 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
a9533e7e
HP
24166 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24167 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24168 0x0000
24169 };
24170
7d4df48e 24171 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
a9533e7e
HP
24172 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
24173 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
24174 };
24175
7d4df48e 24176 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
a9533e7e
HP
24177 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
24178 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
24179 };
24180
24181 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
24182
24183 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24184 phyhang_avoid_state = pi->phyhang_avoid;
24185 pi->phyhang_avoid = FALSE;
24186 }
24187
24188 if (CHSPEC_IS40(pi->radio_chanspec)) {
24189 phy_bw = 40;
24190 } else {
24191 phy_bw = 20;
24192 }
24193
24194 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
24195
24196 for (core_no = 0; core_no <= 1; core_no++) {
24197 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
24198 &cal_params[core_no]);
24199 cal_gain[core_no] = cal_params[core_no].cal_gain;
24200 }
24201
24202 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
24203
24204 wlc_phy_txcal_radio_setup_nphy(pi);
24205
24206 wlc_phy_txcal_physetup_nphy(pi);
24207
24208 ladder_updated[0] = ladder_updated[1] = FALSE;
24209 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
24210 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
24211 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
24212
24213 if (phy_bw == 40) {
24214 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
8d3d6a69 24215 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
a9533e7e
HP
24216 } else {
24217 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
8d3d6a69 24218 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
a9533e7e
HP
24219 }
24220 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
24221 16, tbl_ptr);
24222
24223 if (phy_bw == 40) {
24224 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
8d3d6a69 24225 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
a9533e7e
HP
24226 } else {
24227 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
8d3d6a69 24228 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
a9533e7e
HP
24229 }
24230 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24231 16, tbl_ptr);
24232 }
24233
24234 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24235 write_phy_reg(pi, 0xc2, 0x8ad9);
24236 } else {
24237 write_phy_reg(pi, 0xc2, 0x8aa9);
24238 }
24239
24240 max_val = 250;
24241 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24242
24243 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24244 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, FALSE);
24245 bcmerror = BCME_OK;
24246 } else {
24247 bcmerror =
24248 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0, FALSE);
24249 }
24250
24251 if (bcmerror == BCME_OK) {
24252
24253 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24254 tbl_ptr = pi->mphase_txcal_bestcoeffs;
8d3d6a69 24255 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
a9533e7e
HP
24256 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24257
24258 tbl_len -= 2;
24259 }
24260 } else {
24261 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24262
24263 tbl_ptr = pi->nphy_txiqlocal_bestc;
8d3d6a69 24264 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
a9533e7e
HP
24265 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24266
24267 tbl_len -= 2;
24268 }
24269 } else {
24270
24271 fullcal = TRUE;
24272
24273 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24274 tbl_ptr =
24275 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24276 tbl_len =
8d3d6a69 24277 ARRAY_SIZE
a9533e7e
HP
24278 (tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24279 } else {
24280 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24281 tbl_len =
8d3d6a69 24282 ARRAY_SIZE
a9533e7e
HP
24283 (tbl_tx_iqlo_cal_startcoefs);
24284 }
24285 }
24286 }
24287 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24288 16, tbl_ptr);
24289
24290 if (fullcal) {
24291 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
8d3d6a69
GKH
24292 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24293 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
a9533e7e
HP
24294 } else {
24295 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
8d3d6a69
GKH
24296 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24297 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
a9533e7e
HP
24298 }
24299
24300 if (mphase) {
24301 cal_cnt = pi->mphase_txcal_cmdidx;
24302 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds) {
24303 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24304 } else {
24305 num_cals = max_cal_cmds;
24306 }
24307 } else {
24308 cal_cnt = 0;
24309 num_cals = max_cal_cmds;
24310 }
24311
24312 for (; cal_cnt < num_cals; cal_cnt++) {
24313
24314 if (fullcal) {
24315 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24316 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24317 [cal_cnt] :
24318 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24319 } else {
24320 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24321 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[cal_cnt]
24322 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24323 }
24324
24325 core_no = ((cal_cmd & 0x3000) >> 12);
24326 cal_type = ((cal_cmd & 0x0F00) >> 8);
24327
24328 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24329 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24330 PHY_IPA(pi)
24331 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24332 if (!ladder_updated[core_no]) {
24333 wlc_phy_update_txcal_ladder_nphy(pi,
24334 core_no);
24335 ladder_updated[core_no] = TRUE;
24336 }
24337 }
24338
24339 val =
24340 (cal_params[core_no].
24341 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24342 write_phy_reg(pi, 0xc1, val);
24343
24344 if ((cal_type == 1) || (cal_type == 3)
24345 || (cal_type == 4)) {
24346
24347 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24348 1, 69 + core_no, 16,
24349 tbl_buf);
24350
24351 diq_start = tbl_buf[0];
24352
24353 tbl_buf[0] = 0;
24354 wlc_phy_table_write_nphy(pi,
24355 NPHY_TBL_ID_IQLOCAL, 1,
24356 69 + core_no, 16,
24357 tbl_buf);
24358 }
24359
24360 write_phy_reg(pi, 0xc0, cal_cmd);
24361
24362 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24363 20000);
24364 ASSERT((read_phy_reg(pi, 0xc0) & 0xc000) == 0);
24365
24366 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24367 tbl_len, 96, 16, tbl_buf);
24368 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24369 tbl_len, 64, 16, tbl_buf);
24370
24371 if ((cal_type == 1) || (cal_type == 3)
24372 || (cal_type == 4)) {
24373
24374 tbl_buf[0] = diq_start;
24375
24376 }
24377
24378 }
24379
24380 if (mphase) {
24381 pi->mphase_txcal_cmdidx = num_cals;
24382 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24383 pi->mphase_txcal_cmdidx = 0;
24384 }
24385
24386 mphase_cal_lastphase =
24387 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24388 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24389
24390 if (!mphase
24391 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24392
24393 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24394 16, tbl_buf);
24395 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24396 16, tbl_buf);
24397
24398 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24399
24400 tbl_buf[0] = 0;
24401 tbl_buf[1] = 0;
24402 tbl_buf[2] = 0;
24403 tbl_buf[3] = 0;
24404
24405 }
24406 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24407 16, tbl_buf);
24408
24409 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24410 16, tbl_buf);
24411 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24412 16, tbl_buf);
24413
24414 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24415 16, tbl_buf);
24416
8d3d6a69 24417 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
a9533e7e
HP
24418 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24419
24420 tbl_len -= 2;
24421 }
24422 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24423 tbl_len, 96, 16,
24424 pi->nphy_txiqlocal_bestc);
24425
24426 pi->nphy_txiqlocal_coeffsvalid = TRUE;
24427 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24428 } else {
8d3d6a69 24429 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
a9533e7e
HP
24430 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24431
24432 tbl_len -= 2;
24433 }
24434 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24435 tbl_len, 96, 16,
24436 pi->mphase_txcal_bestcoeffs);
24437 }
24438
24439 wlc_phy_stopplayback_nphy(pi);
24440
24441 write_phy_reg(pi, 0xc2, 0x0000);
24442
24443 }
24444
24445 wlc_phy_txcal_phycleanup_nphy(pi);
24446
24447 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24448 gain_save);
24449
24450 wlc_phy_txcal_radio_cleanup_nphy(pi);
24451
24452 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24453 if (!mphase
24454 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24455 wlc_phy_tx_iq_war_nphy(pi);
24456 }
24457
24458 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24459 pi->phyhang_avoid = phyhang_avoid_state;
24460 }
24461
24462 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
24463
24464 return bcmerror;
24465}
24466
7cc4a4c0 24467static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi)
a9533e7e 24468{
7d4df48e 24469 u16 tbl_buf[7];
a9533e7e
HP
24470
24471 ASSERT(NREV_LT(pi->pubpi.phy_rev, 2));
24472
24473 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24474 (pi->nphy_txiqlocal_coeffsvalid)) {
24475 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
8d3d6a69 24476 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
a9533e7e
HP
24477
24478 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24479 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24480 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24481 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24482
24483 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24484 16, pi->nphy_txiqlocal_bestc);
24485
24486 tbl_buf[0] = 0;
24487 tbl_buf[1] = 0;
24488 tbl_buf[2] = 0;
24489 tbl_buf[3] = 0;
24490 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24491 16, tbl_buf);
24492
24493 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24494 16,
24495 &pi->nphy_txiqlocal_bestc[5]);
24496
24497 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24498 16,
24499 &pi->nphy_txiqlocal_bestc[5]);
24500 }
24501 }
24502}
24503
7cc4a4c0 24504static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi)
a9533e7e
HP
24505{
24506 nphy_iq_comp_t tx_comp;
24507
24508 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, (void *)&tx_comp);
24509
24510 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24511 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24512 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24513 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24514}
24515
24516void
e868ab03 24517wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, u8 write, nphy_iq_comp_t *pcomp)
a9533e7e
HP
24518{
24519 if (write) {
24520 write_phy_reg(pi, 0x9a, pcomp->a0);
24521 write_phy_reg(pi, 0x9b, pcomp->b0);
24522 write_phy_reg(pi, 0x9c, pcomp->a1);
24523 write_phy_reg(pi, 0x9d, pcomp->b1);
24524 } else {
24525 pcomp->a0 = read_phy_reg(pi, 0x9a);
24526 pcomp->b0 = read_phy_reg(pi, 0x9b);
24527 pcomp->a1 = read_phy_reg(pi, 0x9c);
24528 pcomp->b1 = read_phy_reg(pi, 0x9d);
24529 }
24530}
24531
24532void
7d4df48e 24533wlc_phy_rx_iq_est_nphy(phy_info_t *pi, phy_iq_est_t *est, u16 num_samps,
e868ab03 24534 u8 wait_time, u8 wait_for_crs)
a9533e7e 24535{
e868ab03 24536 u8 core;
a9533e7e
HP
24537
24538 write_phy_reg(pi, 0x12b, num_samps);
24539 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24540 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24541 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24542
24543 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24544
24545 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24546 10000);
24547 ASSERT((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0);
24548
24549 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
24550 ASSERT(pi->pubpi.phy_corenum <= PHY_CORE_MAX);
24551 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24552 est[core].i_pwr =
24553 (read_phy_reg(pi, NPHY_IqestipwrAccHi(core)) << 16)
24554 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24555 est[core].q_pwr =
24556 (read_phy_reg(pi, NPHY_IqestqpwrAccHi(core)) << 16)
24557 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24558 est[core].iq_prod =
24559 (read_phy_reg(pi, NPHY_IqestIqAccHi(core)) << 16) |
24560 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24561 }
24562 }
24563}
24564
24565#define CAL_RETRY_CNT 2
e868ab03 24566static void wlc_phy_calc_rx_iq_comp_nphy(phy_info_t *pi, u8 core_mask)
a9533e7e 24567{
e868ab03 24568 u8 curr_core;
a9533e7e
HP
24569 phy_iq_est_t est[PHY_CORE_MAX];
24570 nphy_iq_comp_t old_comp, new_comp;
3e26416e 24571 s32 iq = 0;
66cbd3ab 24572 u32 ii = 0, qq = 0;
e59fe083 24573 s16 iq_nbits, qq_nbits, brsh, arsh;
3e26416e 24574 s32 a, b, temp;
a9533e7e
HP
24575 int bcmerror = BCME_OK;
24576 uint cal_retry = 0;
24577
24578 if (core_mask == 0x0)
24579 return;
24580
24581 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24582 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24583 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24584
24585 cal_try:
24586 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24587
24588 new_comp = old_comp;
24589
24590 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24591
24592 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24593 iq = est[curr_core].iq_prod;
24594 ii = est[curr_core].i_pwr;
24595 qq = est[curr_core].q_pwr;
24596 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24597 iq = est[curr_core].iq_prod;
24598 ii = est[curr_core].i_pwr;
24599 qq = est[curr_core].q_pwr;
24600 } else {
24601 continue;
24602 }
24603
24604 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
24605 bcmerror = BCME_ERROR;
24606 break;
24607 }
24608
24609 iq_nbits = wlc_phy_nbits(iq);
24610 qq_nbits = wlc_phy_nbits(qq);
24611
24612 arsh = 10 - (30 - iq_nbits);
24613 if (arsh >= 0) {
24614 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
3e26416e 24615 temp = (s32) (ii >> arsh);
a9533e7e
HP
24616 if (temp == 0) {
24617 bcmerror = BCME_ERROR;
24618 break;
24619 }
24620 } else {
24621 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
3e26416e 24622 temp = (s32) (ii << -arsh);
a9533e7e
HP
24623 if (temp == 0) {
24624 bcmerror = BCME_ERROR;
24625 break;
24626 }
24627 }
24628
24629 a /= temp;
24630
24631 brsh = qq_nbits - 31 + 20;
24632 if (brsh >= 0) {
24633 b = (qq << (31 - qq_nbits));
3e26416e 24634 temp = (s32) (ii >> brsh);
a9533e7e
HP
24635 if (temp == 0) {
24636 bcmerror = BCME_ERROR;
24637 break;
24638 }
24639 } else {
24640 b = (qq << (31 - qq_nbits));
3e26416e 24641 temp = (s32) (ii << -brsh);
a9533e7e
HP
24642 if (temp == 0) {
24643 bcmerror = BCME_ERROR;
24644 break;
24645 }
24646 }
24647 b /= temp;
24648 b -= a * a;
3e26416e 24649 b = (s32) wlc_phy_sqrt_int((u32) b);
a9533e7e
HP
24650 b -= (1 << 10);
24651
24652 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24653 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
e59fe083
GKH
24654 new_comp.a0 = (s16) a & 0x3ff;
24655 new_comp.b0 = (s16) b & 0x3ff;
a9533e7e
HP
24656 } else {
24657
e59fe083
GKH
24658 new_comp.a0 = (s16) b & 0x3ff;
24659 new_comp.b0 = (s16) a & 0x3ff;
a9533e7e
HP
24660 }
24661 }
24662 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24663 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
e59fe083
GKH
24664 new_comp.a1 = (s16) a & 0x3ff;
24665 new_comp.b1 = (s16) b & 0x3ff;
a9533e7e
HP
24666 } else {
24667
e59fe083
GKH
24668 new_comp.a1 = (s16) b & 0x3ff;
24669 new_comp.b1 = (s16) a & 0x3ff;
a9533e7e
HP
24670 }
24671 }
24672 }
24673
24674 if (bcmerror != BCME_OK) {
24675 printk("%s: Failed, cnt = %d\n", __func__, cal_retry);
24676
24677 if (cal_retry < CAL_RETRY_CNT) {
24678 cal_retry++;
24679 goto cal_try;
24680 }
24681
24682 new_comp = old_comp;
24683 } else if (cal_retry > 0) {
24684 }
24685
24686 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24687}
24688
e868ab03 24689static void wlc_phy_rxcal_radio_setup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e 24690{
7d4df48e
GKH
24691 u16 offtune_val;
24692 u16 bias_g = 0;
24693 u16 bias_a = 0;
a9533e7e
HP
24694
24695 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24696 if (rx_core == PHY_CORE_0) {
24697 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24698 pi->tx_rx_cal_radio_saveregs[0] =
24699 read_radio_reg(pi,
24700 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24701 pi->tx_rx_cal_radio_saveregs[1] =
24702 read_radio_reg(pi,
24703 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24704
24705 write_radio_reg(pi,
24706 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24707 0x3);
24708 write_radio_reg(pi,
24709 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24710 0xaf);
24711
24712 } else {
24713 pi->tx_rx_cal_radio_saveregs[0] =
24714 read_radio_reg(pi,
24715 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24716 pi->tx_rx_cal_radio_saveregs[1] =
24717 read_radio_reg(pi,
24718 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24719
24720 write_radio_reg(pi,
24721 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24722 0x3);
24723 write_radio_reg(pi,
24724 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24725 0x7f);
24726 }
24727
24728 } else {
24729 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24730 pi->tx_rx_cal_radio_saveregs[0] =
24731 read_radio_reg(pi,
24732 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24733 pi->tx_rx_cal_radio_saveregs[1] =
24734 read_radio_reg(pi,
24735 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24736
24737 write_radio_reg(pi,
24738 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24739 0x3);
24740 write_radio_reg(pi,
24741 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24742 0xaf);
24743
24744 } else {
24745 pi->tx_rx_cal_radio_saveregs[0] =
24746 read_radio_reg(pi,
24747 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24748 pi->tx_rx_cal_radio_saveregs[1] =
24749 read_radio_reg(pi,
24750 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24751
24752 write_radio_reg(pi,
24753 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24754 0x3);
24755 write_radio_reg(pi,
24756 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24757 0x7f);
24758 }
24759 }
24760
24761 } else {
24762 if (rx_core == PHY_CORE_0) {
24763 pi->tx_rx_cal_radio_saveregs[0] =
24764 read_radio_reg(pi,
24765 RADIO_2056_TX_RXIQCAL_TXMUX |
24766 RADIO_2056_TX1);
24767 pi->tx_rx_cal_radio_saveregs[1] =
24768 read_radio_reg(pi,
24769 RADIO_2056_RX_RXIQCAL_RXMUX |
24770 RADIO_2056_RX0);
24771
24772 if (pi->pubpi.radiorev >= 5) {
24773 pi->tx_rx_cal_radio_saveregs[2] =
24774 read_radio_reg(pi,
24775 RADIO_2056_RX_RXSPARE2 |
24776 RADIO_2056_RX0);
24777 pi->tx_rx_cal_radio_saveregs[3] =
24778 read_radio_reg(pi,
24779 RADIO_2056_TX_TXSPARE2 |
24780 RADIO_2056_TX1);
24781 }
24782
24783 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24784
24785 if (pi->pubpi.radiorev >= 5) {
24786 pi->tx_rx_cal_radio_saveregs[4] =
24787 read_radio_reg(pi,
24788 RADIO_2056_RX_LNAA_MASTER
24789 | RADIO_2056_RX0);
24790
24791 write_radio_reg(pi,
24792 RADIO_2056_RX_LNAA_MASTER
24793 | RADIO_2056_RX0, 0x40);
24794
24795 write_radio_reg(pi,
24796 RADIO_2056_TX_TXSPARE2 |
24797 RADIO_2056_TX1, bias_a);
24798
24799 write_radio_reg(pi,
24800 RADIO_2056_RX_RXSPARE2 |
24801 RADIO_2056_RX0, bias_a);
24802 } else {
24803 pi->tx_rx_cal_radio_saveregs[4] =
24804 read_radio_reg(pi,
24805 RADIO_2056_RX_LNAA_TUNE
24806 | RADIO_2056_RX0);
24807
24808 offtune_val =
24809 (pi->
24810 tx_rx_cal_radio_saveregs[2] & 0xF0)
24811 >> 8;
24812 offtune_val =
24813 (offtune_val <= 0x7) ? 0xF : 0;
24814
24815 mod_radio_reg(pi,
24816 RADIO_2056_RX_LNAA_TUNE |
24817 RADIO_2056_RX0, 0xF0,
24818 (offtune_val << 8));
24819 }
24820
24821 write_radio_reg(pi,
24822 RADIO_2056_TX_RXIQCAL_TXMUX |
24823 RADIO_2056_TX1, 0x9);
24824 write_radio_reg(pi,
24825 RADIO_2056_RX_RXIQCAL_RXMUX |
24826 RADIO_2056_RX0, 0x9);
24827 } else {
24828 if (pi->pubpi.radiorev >= 5) {
24829 pi->tx_rx_cal_radio_saveregs[4] =
24830 read_radio_reg(pi,
24831 RADIO_2056_RX_LNAG_MASTER
24832 | RADIO_2056_RX0);
24833
24834 write_radio_reg(pi,
24835 RADIO_2056_RX_LNAG_MASTER
24836 | RADIO_2056_RX0, 0x40);
24837
24838 write_radio_reg(pi,
24839 RADIO_2056_TX_TXSPARE2 |
24840 RADIO_2056_TX1, bias_g);
24841
24842 write_radio_reg(pi,
24843 RADIO_2056_RX_RXSPARE2 |
24844 RADIO_2056_RX0, bias_g);
24845
24846 } else {
24847 pi->tx_rx_cal_radio_saveregs[4] =
24848 read_radio_reg(pi,
24849 RADIO_2056_RX_LNAG_TUNE
24850 | RADIO_2056_RX0);
24851
24852 offtune_val =
24853 (pi->
24854 tx_rx_cal_radio_saveregs[2] & 0xF0)
24855 >> 8;
24856 offtune_val =
24857 (offtune_val <= 0x7) ? 0xF : 0;
24858
24859 mod_radio_reg(pi,
24860 RADIO_2056_RX_LNAG_TUNE |
24861 RADIO_2056_RX0, 0xF0,
24862 (offtune_val << 8));
24863 }
24864
24865 write_radio_reg(pi,
24866 RADIO_2056_TX_RXIQCAL_TXMUX |
24867 RADIO_2056_TX1, 0x6);
24868 write_radio_reg(pi,
24869 RADIO_2056_RX_RXIQCAL_RXMUX |
24870 RADIO_2056_RX0, 0x6);
24871 }
24872
24873 } else {
24874 pi->tx_rx_cal_radio_saveregs[0] =
24875 read_radio_reg(pi,
24876 RADIO_2056_TX_RXIQCAL_TXMUX |
24877 RADIO_2056_TX0);
24878 pi->tx_rx_cal_radio_saveregs[1] =
24879 read_radio_reg(pi,
24880 RADIO_2056_RX_RXIQCAL_RXMUX |
24881 RADIO_2056_RX1);
24882
24883 if (pi->pubpi.radiorev >= 5) {
24884 pi->tx_rx_cal_radio_saveregs[2] =
24885 read_radio_reg(pi,
24886 RADIO_2056_RX_RXSPARE2 |
24887 RADIO_2056_RX1);
24888 pi->tx_rx_cal_radio_saveregs[3] =
24889 read_radio_reg(pi,
24890 RADIO_2056_TX_TXSPARE2 |
24891 RADIO_2056_TX0);
24892 }
24893
24894 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24895
24896 if (pi->pubpi.radiorev >= 5) {
24897 pi->tx_rx_cal_radio_saveregs[4] =
24898 read_radio_reg(pi,
24899 RADIO_2056_RX_LNAA_MASTER
24900 | RADIO_2056_RX1);
24901
24902 write_radio_reg(pi,
24903 RADIO_2056_RX_LNAA_MASTER
24904 | RADIO_2056_RX1, 0x40);
24905
24906 write_radio_reg(pi,
24907 RADIO_2056_TX_TXSPARE2 |
24908 RADIO_2056_TX0, bias_a);
24909
24910 write_radio_reg(pi,
24911 RADIO_2056_RX_RXSPARE2 |
24912 RADIO_2056_RX1, bias_a);
24913 } else {
24914 pi->tx_rx_cal_radio_saveregs[4] =
24915 read_radio_reg(pi,
24916 RADIO_2056_RX_LNAA_TUNE
24917 | RADIO_2056_RX1);
24918
24919 offtune_val =
24920 (pi->
24921 tx_rx_cal_radio_saveregs[2] & 0xF0)
24922 >> 8;
24923 offtune_val =
24924 (offtune_val <= 0x7) ? 0xF : 0;
24925
24926 mod_radio_reg(pi,
24927 RADIO_2056_RX_LNAA_TUNE |
24928 RADIO_2056_RX1, 0xF0,
24929 (offtune_val << 8));
24930 }
24931
24932 write_radio_reg(pi,
24933 RADIO_2056_TX_RXIQCAL_TXMUX |
24934 RADIO_2056_TX0, 0x9);
24935 write_radio_reg(pi,
24936 RADIO_2056_RX_RXIQCAL_RXMUX |
24937 RADIO_2056_RX1, 0x9);
24938 } else {
24939 if (pi->pubpi.radiorev >= 5) {
24940 pi->tx_rx_cal_radio_saveregs[4] =
24941 read_radio_reg(pi,
24942 RADIO_2056_RX_LNAG_MASTER
24943 | RADIO_2056_RX1);
24944
24945 write_radio_reg(pi,
24946 RADIO_2056_RX_LNAG_MASTER
24947 | RADIO_2056_RX1, 0x40);
24948
24949 write_radio_reg(pi,
24950 RADIO_2056_TX_TXSPARE2 |
24951 RADIO_2056_TX0, bias_g);
24952
24953 write_radio_reg(pi,
24954 RADIO_2056_RX_RXSPARE2 |
24955 RADIO_2056_RX1, bias_g);
24956 } else {
24957 pi->tx_rx_cal_radio_saveregs[4] =
24958 read_radio_reg(pi,
24959 RADIO_2056_RX_LNAG_TUNE
24960 | RADIO_2056_RX1);
24961
24962 offtune_val =
24963 (pi->
24964 tx_rx_cal_radio_saveregs[2] & 0xF0)
24965 >> 8;
24966 offtune_val =
24967 (offtune_val <= 0x7) ? 0xF : 0;
24968
24969 mod_radio_reg(pi,
24970 RADIO_2056_RX_LNAG_TUNE |
24971 RADIO_2056_RX1, 0xF0,
24972 (offtune_val << 8));
24973 }
24974
24975 write_radio_reg(pi,
24976 RADIO_2056_TX_RXIQCAL_TXMUX |
24977 RADIO_2056_TX0, 0x6);
24978 write_radio_reg(pi,
24979 RADIO_2056_RX_RXIQCAL_RXMUX |
24980 RADIO_2056_RX1, 0x6);
24981 }
24982 }
24983 }
24984}
24985
e868ab03 24986static void wlc_phy_rxcal_radio_cleanup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e
HP
24987{
24988 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24989 if (rx_core == PHY_CORE_0) {
24990 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24991 write_radio_reg(pi,
24992 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24993 pi->
24994 tx_rx_cal_radio_saveregs[0]);
24995 write_radio_reg(pi,
24996 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24997 pi->
24998 tx_rx_cal_radio_saveregs[1]);
24999
25000 } else {
25001 write_radio_reg(pi,
25002 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
25003 pi->
25004 tx_rx_cal_radio_saveregs[0]);
25005 write_radio_reg(pi,
25006 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
25007 pi->
25008 tx_rx_cal_radio_saveregs[1]);
25009 }
25010
25011 } else {
25012 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25013 write_radio_reg(pi,
25014 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
25015 pi->
25016 tx_rx_cal_radio_saveregs[0]);
25017 write_radio_reg(pi,
25018 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
25019 pi->
25020 tx_rx_cal_radio_saveregs[1]);
25021
25022 } else {
25023 write_radio_reg(pi,
25024 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
25025 pi->
25026 tx_rx_cal_radio_saveregs[0]);
25027 write_radio_reg(pi,
25028 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
25029 pi->
25030 tx_rx_cal_radio_saveregs[1]);
25031 }
25032 }
25033
25034 } else {
25035 if (rx_core == PHY_CORE_0) {
25036 write_radio_reg(pi,
25037 RADIO_2056_TX_RXIQCAL_TXMUX |
25038 RADIO_2056_TX1,
25039 pi->tx_rx_cal_radio_saveregs[0]);
25040
25041 write_radio_reg(pi,
25042 RADIO_2056_RX_RXIQCAL_RXMUX |
25043 RADIO_2056_RX0,
25044 pi->tx_rx_cal_radio_saveregs[1]);
25045
25046 if (pi->pubpi.radiorev >= 5) {
25047 write_radio_reg(pi,
25048 RADIO_2056_RX_RXSPARE2 |
25049 RADIO_2056_RX0,
25050 pi->
25051 tx_rx_cal_radio_saveregs[2]);
25052
25053 write_radio_reg(pi,
25054 RADIO_2056_TX_TXSPARE2 |
25055 RADIO_2056_TX1,
25056 pi->
25057 tx_rx_cal_radio_saveregs[3]);
25058 }
25059
25060 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25061 if (pi->pubpi.radiorev >= 5) {
25062 write_radio_reg(pi,
25063 RADIO_2056_RX_LNAA_MASTER
25064 | RADIO_2056_RX0,
25065 pi->
25066 tx_rx_cal_radio_saveregs
25067 [4]);
25068 } else {
25069 write_radio_reg(pi,
25070 RADIO_2056_RX_LNAA_TUNE
25071 | RADIO_2056_RX0,
25072 pi->
25073 tx_rx_cal_radio_saveregs
25074 [4]);
25075 }
25076 } else {
25077 if (pi->pubpi.radiorev >= 5) {
25078 write_radio_reg(pi,
25079 RADIO_2056_RX_LNAG_MASTER
25080 | RADIO_2056_RX0,
25081 pi->
25082 tx_rx_cal_radio_saveregs
25083 [4]);
25084 } else {
25085 write_radio_reg(pi,
25086 RADIO_2056_RX_LNAG_TUNE
25087 | RADIO_2056_RX0,
25088 pi->
25089 tx_rx_cal_radio_saveregs
25090 [4]);
25091 }
25092 }
25093
25094 } else {
25095 write_radio_reg(pi,
25096 RADIO_2056_TX_RXIQCAL_TXMUX |
25097 RADIO_2056_TX0,
25098 pi->tx_rx_cal_radio_saveregs[0]);
25099
25100 write_radio_reg(pi,
25101 RADIO_2056_RX_RXIQCAL_RXMUX |
25102 RADIO_2056_RX1,
25103 pi->tx_rx_cal_radio_saveregs[1]);
25104
25105 if (pi->pubpi.radiorev >= 5) {
25106 write_radio_reg(pi,
25107 RADIO_2056_RX_RXSPARE2 |
25108 RADIO_2056_RX1,
25109 pi->
25110 tx_rx_cal_radio_saveregs[2]);
25111
25112 write_radio_reg(pi,
25113 RADIO_2056_TX_TXSPARE2 |
25114 RADIO_2056_TX0,
25115 pi->
25116 tx_rx_cal_radio_saveregs[3]);
25117 }
25118
25119 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25120 if (pi->pubpi.radiorev >= 5) {
25121 write_radio_reg(pi,
25122 RADIO_2056_RX_LNAA_MASTER
25123 | RADIO_2056_RX1,
25124 pi->
25125 tx_rx_cal_radio_saveregs
25126 [4]);
25127 } else {
25128 write_radio_reg(pi,
25129 RADIO_2056_RX_LNAA_TUNE
25130 | RADIO_2056_RX1,
25131 pi->
25132 tx_rx_cal_radio_saveregs
25133 [4]);
25134 }
25135 } else {
25136 if (pi->pubpi.radiorev >= 5) {
25137 write_radio_reg(pi,
25138 RADIO_2056_RX_LNAG_MASTER
25139 | RADIO_2056_RX1,
25140 pi->
25141 tx_rx_cal_radio_saveregs
25142 [4]);
25143 } else {
25144 write_radio_reg(pi,
25145 RADIO_2056_RX_LNAG_TUNE
25146 | RADIO_2056_RX1,
25147 pi->
25148 tx_rx_cal_radio_saveregs
25149 [4]);
25150 }
25151 }
25152 }
25153 }
25154}
25155
e868ab03 25156static void wlc_phy_rxcal_physetup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e 25157{
e868ab03 25158 u8 tx_core;
7d4df48e 25159 u16 rx_antval, tx_antval;
a9533e7e
HP
25160
25161 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25162
25163 tx_core = rx_core;
25164 } else {
25165 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
25166 }
25167
25168 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
25169 pi->tx_rx_cal_phy_saveregs[1] =
25170 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
25171 pi->tx_rx_cal_phy_saveregs[2] =
25172 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
25173 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
25174 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
25175 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
25176 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
25177 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
25178 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
25179 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25180 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
25181 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
25182 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
25183 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
25184 }
25185
25186 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
25187 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
25188 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25189 0x29b, (0x1 << 0), (0) << 0);
25190
25191 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25192 0x29b, (0x1 << 0), (0) << 0);
25193
25194 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25195
25196 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25197
25198 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25199
25200 } else {
25201
25202 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25203 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25204 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25205 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25206 }
25207
25208 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25209 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25210 (0x1 << 2), (0x1 << 2));
25211 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25212 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25213 (0x1 << 0) | (0x1 << 1), 0);
25214 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25215 0x8f : 0xa5,
25216 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25217 }
25218
25219 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25220 RADIO_MIMO_CORESEL_CORE1 |
25221 RADIO_MIMO_CORESEL_CORE2);
25222
25223 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25224 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25225 0, 0, 0,
25226 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25227 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25228 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25229 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25230 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25231 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25232 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25233 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25234 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25235 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25236 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25237 if (CHSPEC_IS40(pi->radio_chanspec)) {
25238 wlc_phy_rfctrl_override_nphy_rev7(pi,
25239 (0x1 << 7),
25240 2, 0, 0,
25241 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25242 } else {
25243 wlc_phy_rfctrl_override_nphy_rev7(pi,
25244 (0x1 << 7),
25245 0, 0, 0,
25246 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25247 }
25248 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25249 0, 0, 0,
25250 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25251 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25252 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25253 } else {
25254 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25255 }
25256
25257 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25258
25259 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25260
25261 wlc_phy_rfctrlintc_override_nphy(pi,
25262 NPHY_RfctrlIntc_override_TRSW,
25263 0x1, rx_core + 1);
25264 } else {
25265
25266 if (rx_core == PHY_CORE_0) {
25267 rx_antval = 0x1;
25268 tx_antval = 0x8;
25269 } else {
25270 rx_antval = 0x4;
25271 tx_antval = 0x2;
25272 }
25273
25274 wlc_phy_rfctrlintc_override_nphy(pi,
25275 NPHY_RfctrlIntc_override_TRSW,
25276 rx_antval, rx_core + 1);
25277 wlc_phy_rfctrlintc_override_nphy(pi,
25278 NPHY_RfctrlIntc_override_TRSW,
25279 tx_antval, tx_core + 1);
25280 }
25281}
25282
e868ab03 25283static void wlc_phy_rxcal_phycleanup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e
HP
25284{
25285
25286 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25287 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25288 pi->tx_rx_cal_phy_saveregs[1]);
25289 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25290 pi->tx_rx_cal_phy_saveregs[2]);
25291 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25292 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25293
25294 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25295 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25296 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25297 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25298 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25299 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25300 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25301 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25302 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25303 }
25304
25305 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25306 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25307}
25308
25309static void
e868ab03 25310wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rx_core,
7d4df48e 25311 u16 *rxgain, u8 cal_type)
a9533e7e
HP
25312{
25313
7d4df48e 25314 u16 num_samps;
a9533e7e 25315 phy_iq_est_t est[PHY_CORE_MAX];
e868ab03 25316 u8 tx_core;
a9533e7e 25317 nphy_iq_comp_t save_comp, zero_comp;
66cbd3ab 25318 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0, thresh_pwr =
a9533e7e 25319 10000;
e59fe083 25320 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
a9533e7e 25321 bool gainctrl_done = FALSE;
e868ab03 25322 u8 mix_tia_gain = 3;
562c8850
GKH
25323 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25324 s8 curr_gaintbl_index = 3;
e868ab03 25325 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
a9533e7e 25326 nphy_ipa_txrxgain_t *nphy_rxcal_gaintbl;
7d4df48e 25327 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
e9e6727f 25328 int fine_gain_idx;
562c8850 25329 s8 txpwrindex;
7d4df48e 25330 u16 nphy_rxcal_txgain[2];
a9533e7e
HP
25331
25332 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25333
25334 tx_core = rx_core;
25335 } else {
25336 tx_core = 1 - rx_core;
25337 }
25338
25339 num_samps = 1024;
25340 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25341
25342 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25343 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25344 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25345
25346 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25347 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25348 mix_tia_gain = 3;
25349 } else if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25350 mix_tia_gain = 4;
25351 } else {
25352 mix_tia_gain = 6;
25353 }
25354 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25355 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25356 } else {
25357 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25358 }
25359 } else {
25360 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25361 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25362 } else {
25363 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25364 }
25365 }
25366
25367 do {
25368
25369 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25370 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25371 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25372 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25373 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25374 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25375 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25376
25377 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25378 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25379 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25380 ((lpf_biq1 << 12) |
25381 (lpf_biq0 << 8) |
25382 (mix_tia_gain <<
25383 4) | (lna2 << 2)
25384 | lna1), 0x3, 0);
25385 } else {
25386 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25387 ((hpvga << 12) |
25388 (lpf_biq1 << 10) |
25389 (lpf_biq0 << 8) |
25390 (mix_tia_gain << 4) |
25391 (lna2 << 2) | lna1), 0x3,
25392 0);
25393 }
25394
25395 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25396
25397 if (txpwrindex == -1) {
25398 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25399 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25400 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25401 2, 0x110, 16,
25402 nphy_rxcal_txgain);
25403 } else {
25404 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
25405 FALSE);
25406 }
25407
25408 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25409 NPHY_RXCAL_TONEFREQ_40MHz :
25410 NPHY_RXCAL_TONEFREQ_20MHz,
25411 NPHY_RXCAL_TONEAMP, 0, cal_type, FALSE);
25412
25413 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25414 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25415 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25416 curr_pwr = i_pwr + q_pwr;
25417
25418 switch (gainctrl_dirn) {
25419 case NPHY_RXCAL_GAIN_INIT:
25420 if (curr_pwr > thresh_pwr) {
25421 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25422 prev_gaintbl_index = curr_gaintbl_index;
25423 curr_gaintbl_index--;
25424 } else {
25425 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25426 prev_gaintbl_index = curr_gaintbl_index;
25427 curr_gaintbl_index++;
25428 }
25429 break;
25430
25431 case NPHY_RXCAL_GAIN_UP:
25432 if (curr_pwr > thresh_pwr) {
25433 gainctrl_done = TRUE;
25434 optim_pwr = prev_pwr;
25435 optim_gaintbl_index = prev_gaintbl_index;
25436 } else {
25437 prev_gaintbl_index = curr_gaintbl_index;
25438 curr_gaintbl_index++;
25439 }
25440 break;
25441
25442 case NPHY_RXCAL_GAIN_DOWN:
25443 if (curr_pwr > thresh_pwr) {
25444 prev_gaintbl_index = curr_gaintbl_index;
25445 curr_gaintbl_index--;
25446 } else {
25447 gainctrl_done = TRUE;
25448 optim_pwr = curr_pwr;
25449 optim_gaintbl_index = curr_gaintbl_index;
25450 }
25451 break;
25452
25453 default:
25454 ASSERT(0);
25455 }
25456
25457 if ((curr_gaintbl_index < 0) ||
25458 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
25459 gainctrl_done = TRUE;
25460 optim_pwr = curr_pwr;
25461 optim_gaintbl_index = prev_gaintbl_index;
25462 } else {
25463 prev_pwr = curr_pwr;
25464 }
25465
25466 wlc_phy_stopplayback_nphy(pi);
25467 } while (!gainctrl_done);
25468
25469 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25470 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25471 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25472 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25473 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25474 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25475
25476 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25477 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25478
25479 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25480 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25481
25482 if (fine_gain_idx + (int)lpf_biq0 > 10) {
25483 lpf_biq1 = 10 - lpf_biq0;
25484 } else {
3ea2f4d6 25485 lpf_biq1 = (u16) max(fine_gain_idx, 0);
a9533e7e
HP
25486 }
25487 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25488 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25489 ((lpf_biq1 << 12) |
25490 (lpf_biq0 << 8) |
25491 (mix_tia_gain << 4) |
25492 (lna2 << 2) | lna1), 0x3,
25493 0);
25494 } else {
3ea2f4d6 25495 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
a9533e7e
HP
25496 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25497 ((hpvga << 12) | (lpf_biq1 << 10) |
25498 (lpf_biq0 << 8) | (mix_tia_gain <<
25499 4) | (lna2 <<
25500 2) |
25501 lna1), 0x3, 0);
25502
25503 }
25504
25505 if (rxgain != NULL) {
25506 *rxgain++ = lna1;
25507 *rxgain++ = lna2;
25508 *rxgain++ = mix_tia_gain;
25509 *rxgain++ = lpf_biq0;
25510 *rxgain++ = lpf_biq1;
25511 *rxgain = hpvga;
25512 }
25513
25514 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25515}
25516
25517static void
7d4df48e 25518wlc_phy_rxcal_gainctrl_nphy(phy_info_t *pi, u8 rx_core, u16 *rxgain,
e868ab03 25519 u8 cal_type)
a9533e7e
HP
25520{
25521 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25522}
25523
e868ab03
GKH
25524static u8
25525wlc_phy_rc_sweep_nphy(phy_info_t *pi, u8 core_idx, u8 loopback_type)
a9533e7e 25526{
66cbd3ab
GKH
25527 u32 target_bws[2] = { 9500, 21000 };
25528 u32 ref_tones[2] = { 3000, 6000 };
25529 u32 target_bw, ref_tone;
a9533e7e 25530
66cbd3ab
GKH
25531 u32 target_pwr_ratios[2] = { 28606, 18468 };
25532 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
a9533e7e 25533
7d4df48e
GKH
25534 u16 start_rccal_ovr_val = 128;
25535 u16 txlpf_rccal_lpc_ovr_val = 128;
25536 u16 rxlpf_rccal_hpc_ovr_val = 159;
25537
25538 u16 orig_txlpf_rccal_lpc_ovr_val;
25539 u16 orig_rxlpf_rccal_hpc_ovr_val;
25540 u16 radio_addr_offset_rx;
25541 u16 radio_addr_offset_tx;
25542 u16 orig_dcBypass;
25543 u16 orig_RxStrnFilt40Num[6];
25544 u16 orig_RxStrnFilt40Den[4];
25545 u16 orig_rfctrloverride[2];
25546 u16 orig_rfctrlauxreg[2];
25547 u16 orig_rfctrlrssiothers;
25548 u16 tx_lpf_bw = 4;
25549
25550 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25551 u16 lpf_hpc = 7, hpvga_hpc = 7;
a9533e7e 25552
562c8850 25553 s8 rccal_stepsize;
7d4df48e 25554 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
66cbd3ab 25555 u32 ref_iq_vals = 0, target_iq_vals = 0;
7d4df48e 25556 u16 num_samps, log_num_samps = 10;
a9533e7e
HP
25557 phy_iq_est_t est[PHY_CORE_MAX];
25558
25559 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25560 return 0;
25561 }
25562
25563 num_samps = (1 << log_num_samps);
25564
25565 if (CHSPEC_IS40(pi->radio_chanspec)) {
25566 target_bw = target_bws[1];
25567 target_pwr_ratio = target_pwr_ratios[1];
25568 ref_tone = ref_tones[1];
25569 rx_lpf_bw = rx_lpf_bws[1];
25570 } else {
25571 target_bw = target_bws[0];
25572 target_pwr_ratio = target_pwr_ratios[0];
25573 ref_tone = ref_tones[0];
25574 rx_lpf_bw = rx_lpf_bws[0];
25575 }
25576
25577 if (core_idx == 0) {
25578 radio_addr_offset_rx = RADIO_2056_RX0;
25579 radio_addr_offset_tx =
25580 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25581 } else {
25582 radio_addr_offset_rx = RADIO_2056_RX1;
25583 radio_addr_offset_tx =
25584 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25585 }
25586
25587 orig_txlpf_rccal_lpc_ovr_val =
25588 read_radio_reg(pi,
25589 (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx));
25590 orig_rxlpf_rccal_hpc_ovr_val =
25591 read_radio_reg(pi,
25592 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25593 radio_addr_offset_rx));
25594
25595 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25596
25597 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25598 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25599 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25600 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25601 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25602 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25603 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25604 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25605 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25606 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25607
25608 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25609 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25610 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25611 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25612 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25613
25614 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25615 txlpf_rccal_lpc_ovr_val);
25616
25617 write_radio_reg(pi,
25618 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25619 rxlpf_rccal_hpc_ovr_val);
25620
25621 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25622
25623 write_phy_reg(pi, 0x267, 0x02d4);
25624 write_phy_reg(pi, 0x268, 0x0000);
25625 write_phy_reg(pi, 0x269, 0x0000);
25626 write_phy_reg(pi, 0x26a, 0x0000);
25627 write_phy_reg(pi, 0x26b, 0x0000);
25628 write_phy_reg(pi, 0x26c, 0x02d4);
25629 write_phy_reg(pi, 0x26d, 0x0000);
25630 write_phy_reg(pi, 0x26e, 0x0000);
25631 write_phy_reg(pi, 0x26f, 0x0000);
25632 write_phy_reg(pi, 0x270, 0x0000);
25633
25634 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25635 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25636 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25637 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25638
25639 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25640 (0x7 << 10), (tx_lpf_bw << 10));
25641 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25642 (0x7 << 0), (hpvga_hpc << 0));
25643 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25644 (0x7 << 4), (lpf_hpc << 4));
25645 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25646 (0x7 << 8), (rx_lpf_bw << 8));
25647
25648 rccal_stepsize = 16;
25649 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25650
25651 while (rccal_stepsize >= 0) {
25652 write_radio_reg(pi,
25653 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25654 radio_addr_offset_rx), rccal_val);
25655
25656 if (rccal_stepsize == 16) {
25657
25658 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
25659 0, 1, FALSE);
25660 OSL_DELAY(2);
25661
25662 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25663
25664 if (core_idx == 0) {
25665 ref_iq_vals =
e9e6727f 25666 max_t(u32, (est[0].i_pwr +
a9533e7e
HP
25667 est[0].q_pwr) >> (log_num_samps + 1),
25668 1);
25669 } else {
25670 ref_iq_vals =
e9e6727f 25671 max_t(u32, (est[1].i_pwr +
a9533e7e
HP
25672 est[1].q_pwr) >> (log_num_samps + 1),
25673 1);
25674 }
25675
25676 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
25677 0, 1, FALSE);
25678 OSL_DELAY(2);
25679 }
25680
25681 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25682
25683 if (core_idx == 0) {
25684 target_iq_vals =
25685 (est[0].i_pwr + est[0].q_pwr) >> (log_num_samps +
25686 1);
25687 } else {
25688 target_iq_vals =
25689 (est[1].i_pwr + est[1].q_pwr) >> (log_num_samps +
25690 1);
25691 }
25692 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25693
25694 if (rccal_stepsize == 0) {
25695 rccal_stepsize--;
25696 } else if (rccal_stepsize == 1) {
25697 last_rccal_val = rccal_val;
25698 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25699 last_pwr_ratio = pwr_ratio;
25700 rccal_stepsize--;
25701 } else {
25702 rccal_stepsize = (rccal_stepsize >> 1);
25703 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25704 rccal_stepsize : (-rccal_stepsize));
25705 }
25706
25707 if (rccal_stepsize == -1) {
25708 best_rccal_val =
25709 (ABS((int)last_pwr_ratio - (int)target_pwr_ratio) <
25710 ABS((int)pwr_ratio -
25711 (int)target_pwr_ratio)) ? last_rccal_val :
25712 rccal_val;
25713
25714 if (CHSPEC_IS40(pi->radio_chanspec)) {
25715 if ((best_rccal_val > 140)
25716 || (best_rccal_val < 135)) {
25717 best_rccal_val = 138;
25718 }
25719 } else {
25720 if ((best_rccal_val > 142)
25721 || (best_rccal_val < 137)) {
25722 best_rccal_val = 140;
25723 }
25724 }
25725
25726 write_radio_reg(pi,
25727 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25728 radio_addr_offset_rx), best_rccal_val);
25729 }
25730 }
25731
25732 wlc_phy_stopplayback_nphy(pi);
25733
25734 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25735 orig_txlpf_rccal_lpc_ovr_val);
25736 write_radio_reg(pi,
25737 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25738 orig_rxlpf_rccal_hpc_ovr_val);
25739
25740 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25741
25742 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25743 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25744 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25745 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25746 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25747 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25748 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25749 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25750 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25751 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25752
25753 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25754 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25755 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25756 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25757 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25758
25759 pi->nphy_anarxlpf_adjusted = FALSE;
25760
90ea2296 25761 return best_rccal_val - 0x80;
a9533e7e
HP
25762}
25763
25764#define WAIT_FOR_SCOPE 4000000
25765static int
7cc4a4c0 25766wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t target_gain,
e868ab03 25767 u8 cal_type, bool debug)
a9533e7e 25768{
7d4df48e 25769 u16 orig_BBConfig;
e868ab03
GKH
25770 u8 core_no, rx_core;
25771 u8 best_rccal[2];
7d4df48e
GKH
25772 u16 gain_save[2];
25773 u16 cal_gain[2];
a9533e7e 25774 nphy_iqcal_params_t cal_params[2];
e868ab03 25775 u8 rxcore_state;
562c8850
GKH
25776 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25777 s8 txlpf_idac;
a9533e7e
HP
25778 bool phyhang_avoid_state = FALSE;
25779 bool skip_rxiqcal = FALSE;
25780
25781 orig_BBConfig = read_phy_reg(pi, 0x01);
25782 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25783
25784 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
25785
25786 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25787 phyhang_avoid_state = pi->phyhang_avoid;
25788 pi->phyhang_avoid = FALSE;
25789 }
25790
25791 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25792
25793 for (core_no = 0; core_no <= 1; core_no++) {
25794 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25795 &cal_params[core_no]);
25796 cal_gain[core_no] = cal_params[core_no].cal_gain;
25797 }
25798
25799 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25800
25801 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
25802
25803 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25804
25805 skip_rxiqcal =
25806 ((rxcore_state & (1 << rx_core)) == 0) ? TRUE : FALSE;
25807
25808 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25809
25810 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25811
25812 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25813
25814 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25815
25816 wlc_phy_tx_tone_nphy(pi,
25817 (CHSPEC_IS40(pi->radio_chanspec)) ?
25818 NPHY_RXCAL_TONEFREQ_40MHz :
25819 NPHY_RXCAL_TONEFREQ_20MHz,
25820 NPHY_RXCAL_TONEAMP, 0, cal_type,
25821 FALSE);
25822
25823 if (debug)
25824 OSL_DELAY(WAIT_FOR_SCOPE);
25825
25826 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25827 wlc_phy_stopplayback_nphy(pi);
25828 }
25829
25830 if (((cal_type == 1) || (cal_type == 2))
25831 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25832
25833 if (rx_core == PHY_CORE_1) {
25834
25835 if (rxcore_state == 1) {
25836 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25837 *) pi, 3);
25838 }
25839
25840 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25841 1);
25842
25843 best_rccal[rx_core] =
25844 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25845 pi->nphy_rccal_value = best_rccal[rx_core];
25846
25847 if (rxcore_state == 1) {
25848 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25849 *) pi,
25850 rxcore_state);
25851 }
25852 }
25853 }
25854
25855 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25856
25857 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25858 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25859 }
25860
25861 if ((cal_type == 1) || (cal_type == 2)) {
25862
25863 best_rccal[0] = best_rccal[1];
25864 write_radio_reg(pi,
25865 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25866 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25867
25868 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25869 rxlpf_rccal_hpc =
25870 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25871 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25872
25873 if (PHY_IPA(pi)) {
25874 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25875 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25876 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25877 TXLPF_IDAC_4, txlpf_idac);
25878 }
25879
e9e6727f
GKH
25880 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31), 0);
25881 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31), 0);
a9533e7e
HP
25882
25883 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25884 ((rx_core ==
25885 PHY_CORE_0) ? RADIO_2056_RX0 :
25886 RADIO_2056_RX1)),
25887 (rxlpf_rccal_hpc | 0x80));
25888
25889 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25890 ((rx_core ==
25891 PHY_CORE_0) ? RADIO_2056_TX0 :
25892 RADIO_2056_TX1)),
25893 (txlpf_rccal_lpc | 0x80));
25894 }
25895 }
25896
25897 write_phy_reg(pi, 0x01, orig_BBConfig);
25898
25899 wlc_phy_resetcca_nphy(pi);
25900
25901 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25902 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25903 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25904 0, 0x3, 1);
25905 } else {
25906 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25907 }
25908 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25909
25910 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25911 gain_save);
25912
25913 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25914 pi->phyhang_avoid = phyhang_avoid_state;
25915 }
25916
25917 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
25918
25919 return BCME_OK;
25920}
25921
25922static int
7cc4a4c0 25923wlc_phy_cal_rxiq_nphy_rev2(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
25924 bool debug)
25925{
25926 phy_iq_est_t est[PHY_CORE_MAX];
e868ab03 25927 u8 core_num, rx_core, tx_core;
7d4df48e
GKH
25928 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
25929 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25930 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
e59fe083
GKH
25931 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25932 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
7d4df48e
GKH
25933 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25934 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25935 u16 num_samps;
66cbd3ab 25936 u32 i_pwr, q_pwr, tot_pwr[3];
e868ab03 25937 u8 gain_pass, use_hpf_num;
7d4df48e
GKH
25938 u16 mask, val1, val2;
25939 u16 core_no;
25940 u16 gain_save[2];
25941 u16 cal_gain[2];
a9533e7e 25942 nphy_iqcal_params_t cal_params[2];
e868ab03 25943 u8 phy_bw;
a9533e7e
HP
25944 int bcmerror = BCME_OK;
25945 bool first_playtone = TRUE;
25946
25947 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
25948
25949 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
25950
25951 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25952 }
25953
25954 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25955
25956 for (core_no = 0; core_no <= 1; core_no++) {
25957 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25958 &cal_params[core_no]);
25959 cal_gain[core_no] = cal_params[core_no].cal_gain;
25960 }
25961
25962 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25963
25964 num_samps = 1024;
25965 desired_log2_pwr = 13;
25966
25967 for (core_num = 0; core_num < 2; core_num++) {
25968
25969 rx_core = core_num;
25970 tx_core = 1 - core_num;
25971
25972 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25973 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25974 0xa6 : 0xa7);
25975 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25976 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25977 0x91 : 0x92);
25978 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25979 0x91 : 0x92);
25980
25981 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25982 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25983
25984 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25985 ((0x1 << 1) | (0x1 << 2)));
25986 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25987
25988 if (((pi->nphy_rxcalparams) & 0xff000000)) {
25989
25990 write_phy_reg(pi,
25991 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25992 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 :
25993 0x110));
25994 } else {
25995
25996 write_phy_reg(pi,
25997 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25998 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 :
25999 0x120));
26000 }
26001
26002 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
26003 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
26004 0x114));
26005
26006 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
26007 if (rx_core == PHY_CORE_0) {
26008 val1 = RADIO_2055_COUPLE_RX_MASK;
26009 val2 = RADIO_2055_COUPLE_TX_MASK;
26010 } else {
26011 val1 = RADIO_2055_COUPLE_TX_MASK;
26012 val2 = RADIO_2055_COUPLE_RX_MASK;
26013 }
26014
26015 if ((pi->nphy_rxcalparams & 0x10000)) {
26016 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
26017 val1);
26018 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
26019 val2);
26020 }
26021
26022 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
26023
26024 if (debug)
26025 OSL_DELAY(WAIT_FOR_SCOPE);
26026
26027 if (gain_pass < 3) {
26028 curr_lna = lna_vals[gain_pass];
26029 curr_hpf1 = hpf1_vals[gain_pass];
26030 curr_hpf2 = hpf2_vals[gain_pass];
26031 } else {
26032
26033 if (tot_pwr[1] > 10000) {
26034 curr_lna = lna_vals[2];
26035 curr_hpf1 = hpf1_vals[2];
26036 curr_hpf2 = hpf2_vals[2];
26037 use_hpf_num = 1;
26038 curr_hpf = curr_hpf1;
26039 actual_log2_pwr =
26040 wlc_phy_nbits(tot_pwr[2]);
26041 } else {
26042 if (tot_pwr[0] > 10000) {
26043 curr_lna = lna_vals[1];
26044 curr_hpf1 = hpf1_vals[1];
26045 curr_hpf2 = hpf2_vals[1];
26046 use_hpf_num = 1;
26047 curr_hpf = curr_hpf1;
26048 actual_log2_pwr =
26049 wlc_phy_nbits(tot_pwr[1]);
26050 } else {
26051 curr_lna = lna_vals[0];
26052 curr_hpf1 = hpf1_vals[0];
26053 curr_hpf2 = hpf2_vals[0];
26054 use_hpf_num = 2;
26055 curr_hpf = curr_hpf2;
26056 actual_log2_pwr =
26057 wlc_phy_nbits(tot_pwr[0]);
26058 }
26059 }
26060
26061 hpf_change = desired_log2_pwr - actual_log2_pwr;
26062 curr_hpf += hpf_change;
e9e6727f 26063 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
a9533e7e
HP
26064 if (use_hpf_num == 1) {
26065 curr_hpf1 = curr_hpf;
26066 } else {
26067 curr_hpf2 = curr_hpf;
26068 }
26069 }
26070
26071 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
26072 ((curr_hpf2 << 8) |
26073 (curr_hpf1 << 4) |
26074 (curr_lna << 2)), 0x3, 0);
26075 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26076
26077 wlc_phy_stopplayback_nphy(pi);
26078
26079 if (first_playtone) {
26080 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
7d4df48e 26081 (u16) (pi->
a9533e7e
HP
26082 nphy_rxcalparams
26083 &
26084 0xffff),
26085 0, 0, TRUE);
26086 first_playtone = FALSE;
26087 } else {
26088 phy_bw =
26089 (CHSPEC_IS40(pi->radio_chanspec)) ? 40 : 20;
26090 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
26091 0, 0, 0, TRUE);
26092 }
26093
26094 if (bcmerror == BCME_OK) {
26095 if (gain_pass < 3) {
26096
26097 wlc_phy_rx_iq_est_nphy(pi, est,
26098 num_samps, 32,
26099 0);
26100 i_pwr =
26101 (est[rx_core].i_pwr +
26102 num_samps / 2) / num_samps;
26103 q_pwr =
26104 (est[rx_core].q_pwr +
26105 num_samps / 2) / num_samps;
26106 tot_pwr[gain_pass] = i_pwr + q_pwr;
26107 } else {
26108
26109 wlc_phy_calc_rx_iq_comp_nphy(pi,
26110 (1 <<
26111 rx_core));
26112 }
26113
26114 wlc_phy_stopplayback_nphy(pi);
26115 }
26116
26117 if (bcmerror != BCME_OK)
26118 break;
26119 }
26120
26121 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
26122 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
26123
26124 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
26125 0x92, orig_RfctrlIntcTx);
26126 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
26127 0x92, orig_RfctrlIntcRx);
26128 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
26129 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
26130 0xa7, orig_AfectrlCore);
26131 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
26132
26133 if (bcmerror != BCME_OK)
26134 break;
26135 }
26136
26137 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
26138 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26139
26140 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26141 gain_save);
26142
26143 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
26144
26145 return bcmerror;
26146}
26147
26148int
7cc4a4c0 26149wlc_phy_cal_rxiq_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
e868ab03 26150 u8 cal_type, bool debug)
a9533e7e
HP
26151{
26152 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26153
26154 cal_type = 0;
26155 }
26156 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26157 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
26158 debug);
26159 } else {
26160 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
26161 }
26162}
26163
7cc4a4c0 26164static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26165{
26166 int j, type = 2;
7d4df48e 26167 u16 addr_offset = 0x2c5;
a9533e7e
HP
26168
26169 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26170 write_phy_reg(pi, addr_offset + j,
26171 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26172 }
26173}
26174
7cc4a4c0 26175static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26176{
26177 int j, type;
7d4df48e 26178 u16 addr_offset[] = { 0x186, 0x195,
a9533e7e
HP
26179 0x2c5
26180 };
26181
26182 for (type = 0; type < 3; type++) {
26183 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26184 write_phy_reg(pi, addr_offset[type] + j,
26185 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26186 }
26187 }
26188
26189 if (IS40MHZ(pi)) {
26190 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26191 write_phy_reg(pi, 0x186 + j,
26192 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26193 }
26194 } else {
26195 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26196 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26197 write_phy_reg(pi, 0x186 + j,
26198 NPHY_IPA_REV4_txdigi_filtcoeffs[5]
26199 [j]);
26200 }
26201 }
26202
26203 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
26204 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26205 write_phy_reg(pi, 0x2c5 + j,
26206 NPHY_IPA_REV4_txdigi_filtcoeffs[6]
26207 [j]);
26208 }
26209 }
26210 }
26211}
26212
7cc4a4c0 26213static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26214{
26215 int j;
26216
26217 if (IS40MHZ(pi)) {
26218 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26219 write_phy_reg(pi, 0x195 + j,
26220 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26221 }
26222 } else {
26223 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26224 write_phy_reg(pi, 0x186 + j,
26225 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26226 }
26227 }
26228}
26229
7d4df48e 26230static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi)
a9533e7e 26231{
7d4df48e 26232 u16 m0m1;
a9533e7e
HP
26233
26234 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26235
26236 return m0m1;
26237}
26238
e868ab03 26239static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1)
a9533e7e 26240{
7d4df48e 26241 u16 m0m1 = (u16) ((m0 << 8) | m1);
a9533e7e
HP
26242
26243 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26244 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26245}
26246
66cbd3ab 26247static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi)
a9533e7e 26248{
66cbd3ab 26249 u32 *tx_pwrctrl_tbl = NULL;
a9533e7e
HP
26250
26251 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26252
26253 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26254
26255 if ((pi->pubpi.radiorev == 4)
26256 || (pi->pubpi.radiorev == 6)) {
26257
26258 tx_pwrctrl_tbl =
26259 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26260 } else if (pi->pubpi.radiorev == 3) {
26261
26262 tx_pwrctrl_tbl =
26263 nphy_tpc_txgain_ipa_2g_2057rev3;
26264 } else if (pi->pubpi.radiorev == 5) {
26265
26266 tx_pwrctrl_tbl =
26267 nphy_tpc_txgain_ipa_2g_2057rev5;
26268 } else if ((pi->pubpi.radiorev == 7)
26269 || (pi->pubpi.radiorev == 8)) {
26270
26271 tx_pwrctrl_tbl =
26272 nphy_tpc_txgain_ipa_2g_2057rev7;
26273 } else {
26274 ASSERT(0);
26275 }
26276
26277 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26278
26279 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
26280 if (CHIPID(pi->sh->chip) == BCM47162_CHIP_ID) {
26281
26282 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26283 }
26284
26285 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26286
26287 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26288 } else {
26289
26290 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26291 }
26292
26293 } else {
26294
26295 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26296 if ((pi->pubpi.radiorev == 3) ||
26297 (pi->pubpi.radiorev == 4) ||
26298 (pi->pubpi.radiorev == 6)) {
26299
26300 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26301 } else if ((pi->pubpi.radiorev == 7)
26302 || (pi->pubpi.radiorev == 8)) {
26303
26304 tx_pwrctrl_tbl =
26305 nphy_tpc_txgain_ipa_5g_2057rev7;
26306 } else {
26307 ASSERT(0);
26308 }
26309
26310 } else {
26311 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26312 }
26313 }
26314
26315 return tx_pwrctrl_tbl;
26316}
26317
26318static void
7cc4a4c0 26319wlc_phy_papd_cal_setup_nphy(phy_info_t *pi, nphy_papd_restore_state *state,
e868ab03 26320 u8 core)
a9533e7e 26321{
3e26416e 26322 s32 tone_freq;
e868ab03 26323 u8 off_core;
7d4df48e 26324 u16 mixgain = 0;
a9533e7e
HP
26325
26326 off_core = core ^ 0x1;
26327 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26328
26329 if (NREV_IS(pi->pubpi.phy_rev, 7)
26330 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26331 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26332 wlc_phy_read_lpf_bw_ctl_nphy
26333 (pi, 0), 0, 0,
26334 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26335 }
26336
26337 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26338 if (pi->pubpi.radiorev == 5) {
26339 mixgain = (core == 0) ? 0x20 : 0x00;
26340
26341 } else if ((pi->pubpi.radiorev == 7)
26342 || (pi->pubpi.radiorev == 8)) {
26343
26344 mixgain = 0x00;
26345
26346 } else if ((pi->pubpi.radiorev <= 4)
26347 || (pi->pubpi.radiorev == 6)) {
26348
26349 mixgain = 0x00;
26350 } else {
26351 ASSERT(0);
26352 }
26353
26354 } else {
26355 if ((pi->pubpi.radiorev == 4) ||
26356 (pi->pubpi.radiorev == 6)) {
26357
26358 mixgain = 0x50;
26359 } else if ((pi->pubpi.radiorev == 3)
26360 || (pi->pubpi.radiorev == 7)
26361 || (pi->pubpi.radiorev == 8)) {
26362
26363 mixgain = 0x0;
26364 } else {
26365 ASSERT(0);
26366 }
26367 }
26368
26369 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26370 mixgain, (1 << core), 0,
26371 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26372
26373 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26374 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26375 1, (1 << core), 0);
26376 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26377 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26378 0, (1 << off_core), 0);
26379
26380 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26381 0, 0x3, 0,
26382 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26383 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26384 (1 << core), 0,
26385 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26386 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26387 (1 << core), 0,
26388 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26389 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26390 (1 << core), 0,
26391 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26392 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26393 (1 << core), 0,
26394 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26395 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26396 (1 << core), 0,
26397 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26398 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26399 (1 << core), 0,
26400 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26401 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26402 (1 << core), 0,
26403 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26404
26405 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26406 0, (1 << core), 0,
26407 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26408 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26409 (1 << core), 0,
26410 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26411
26412 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26413 0xa6 : 0xa7);
26414 state->afeoverride[core] =
26415 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26416 state->afectrl[off_core] =
26417 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26418 state->afeoverride[off_core] =
26419 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26420
26421 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26422 (0x1 << 2), 0);
26423 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26424 0xa5), (0x1 << 2), (0x1 << 2));
26425
26426 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26427 (0x1 << 2), (0x1 << 2));
26428 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26429 0x8f), (0x1 << 2), (0x1 << 2));
26430
26431 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26432 state->pwrup[core] =
26433 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26434 TXRXCOUPLE_2G_PWRUP);
26435 state->atten[core] =
26436 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26437 TXRXCOUPLE_2G_ATTEN);
26438 state->pwrup[off_core] =
26439 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26440 TXRXCOUPLE_2G_PWRUP);
26441 state->atten[off_core] =
26442 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26443 TXRXCOUPLE_2G_ATTEN);
26444
26445 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26446 TXRXCOUPLE_2G_PWRUP, 0xc);
26447
26448 if ((pi->pubpi.radiorev == 3) ||
26449 (pi->pubpi.radiorev == 4) ||
26450 (pi->pubpi.radiorev == 6)) {
26451
26452 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26453 TXRXCOUPLE_2G_ATTEN, 0xf0);
26454
26455 } else if (pi->pubpi.radiorev == 5) {
26456
26457 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26458 TXRXCOUPLE_2G_ATTEN,
26459 (core == 0) ? 0xf7 : 0xf2);
26460
26461 } else if ((pi->pubpi.radiorev == 7)
26462 || (pi->pubpi.radiorev == 8)) {
26463
26464 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26465 TXRXCOUPLE_2G_ATTEN, 0xf0);
26466
26467 } else {
26468 ASSERT(0);
26469 }
26470
26471 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26472 TXRXCOUPLE_2G_PWRUP, 0x0);
26473 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26474 TXRXCOUPLE_2G_ATTEN, 0xff);
26475
26476 } else {
26477 state->pwrup[core] =
26478 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26479 TXRXCOUPLE_5G_PWRUP);
26480 state->atten[core] =
26481 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26482 TXRXCOUPLE_5G_ATTEN);
26483 state->pwrup[off_core] =
26484 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26485 TXRXCOUPLE_5G_PWRUP);
26486 state->atten[off_core] =
26487 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26488 TXRXCOUPLE_5G_ATTEN);
26489
26490 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26491 TXRXCOUPLE_5G_PWRUP, 0xc);
26492
26493 if ((pi->pubpi.radiorev == 7)
26494 || (pi->pubpi.radiorev == 8)) {
26495
26496 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26497 TXRXCOUPLE_5G_ATTEN, 0xf4);
26498
26499 } else {
26500 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26501 TXRXCOUPLE_5G_ATTEN, 0xf0);
26502 }
26503
26504 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26505 TXRXCOUPLE_5G_PWRUP, 0x0);
26506 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26507 TXRXCOUPLE_5G_ATTEN, 0xff);
26508 }
26509
26510 tone_freq = 4000;
26511
26512 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, FALSE);
26513
26514 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26515 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26516
26517 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26518 0x2a4, (0x1 << 13), (1) << 13);
26519
26520 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26521 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26522
26523 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26524 0x2a4, (0x1 << 13), (0) << 13);
26525
26526 } else {
26527
26528 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26529
26530 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26531
26532 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26533
26534 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26535 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26536
26537 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26538 0xa6 : 0xa7);
26539 state->afeoverride[core] =
26540 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26541
26542 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26543 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26544 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26545 0xa5),
26546 (0x1 << 0) |
26547 (0x1 << 1) |
26548 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26549
26550 state->vga_master[core] =
26551 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26552 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26553 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26554 state->fbmix[core] =
26555 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26556 TXFBMIX_G);
26557 state->intpa_master[core] =
26558 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26559 INTPAG_MASTER);
26560
26561 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26562 0x03);
26563 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26564 INTPAG_MASTER, 0x04);
26565 } else {
26566 state->fbmix[core] =
26567 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26568 TXFBMIX_A);
26569 state->intpa_master[core] =
26570 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26571 INTPAA_MASTER);
26572
26573 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26574 0x03);
26575 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26576 INTPAA_MASTER, 0x04);
26577
26578 }
26579
26580 tone_freq = 4000;
26581
26582 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, FALSE);
26583
26584 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26585 0x29b, (0x1 << 0), (1) << 0);
26586
26587 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26588 0x29b, (0x1 << 0), (0) << 0);
26589
26590 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26591 }
26592}
26593
26594static void
7cc4a4c0 26595wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi, nphy_papd_restore_state *state)
a9533e7e 26596{
e868ab03 26597 u8 core;
a9533e7e
HP
26598
26599 wlc_phy_stopplayback_nphy(pi);
26600
26601 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26602
26603 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26604
26605 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26606 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26607 TXRXCOUPLE_2G_PWRUP, 0);
26608 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26609 TXRXCOUPLE_2G_ATTEN,
26610 state->atten[core]);
26611 } else {
26612 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26613 TXRXCOUPLE_5G_PWRUP, 0);
26614 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26615 TXRXCOUPLE_5G_ATTEN,
26616 state->atten[core]);
26617 }
26618 }
26619
26620 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
26621 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26622 1, 0x3, 0,
26623 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26624 } else {
26625 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26626 0, 0x3, 1,
26627 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26628 }
26629 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26630 0, 0x3, 1,
26631 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26632 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26633 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26634 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26635 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26636 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26637 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26638 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26639 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26640 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26641 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26642 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26643 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26644 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26645 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26646 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26647 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26648 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26649 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26650 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26651 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26652 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26653 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26654 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26655 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26656 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26657 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26658 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26659 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26660 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26661 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26662
26663 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26664
26665 write_phy_reg(pi, (core == PHY_CORE_0) ?
26666 0xa6 : 0xa7, state->afectrl[core]);
26667 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26668 0xa5, state->afeoverride[core]);
26669 }
26670
26671 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26672 (state->mm & 0xff));
26673
26674 if (NREV_IS(pi->pubpi.phy_rev, 7)
26675 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26676 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
26677 1,
26678 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26679 }
26680 } else {
26681
26682 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26683 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26684 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26685
26686 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26687 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26688
26689 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26690
26691 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26692 state->vga_master[core]);
26693 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26694 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26695 TXFBMIX_G, state->fbmix[core]);
26696 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26697 INTPAG_MASTER,
26698 state->intpa_master[core]);
26699 } else {
26700 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26701 TXFBMIX_A, state->fbmix[core]);
26702 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26703 INTPAA_MASTER,
26704 state->intpa_master[core]);
26705 }
26706
26707 write_phy_reg(pi, (core == PHY_CORE_0) ?
26708 0xa6 : 0xa7, state->afectrl[core]);
26709 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26710 0xa5, state->afeoverride[core]);
26711 }
26712
26713 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26714 (state->mm & 0xff));
26715
26716 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26717 }
26718}
26719
26720static void
66cbd3ab
GKH
26721wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32 start,
26722 u32 end)
a9533e7e 26723{
66cbd3ab 26724 u32 *buf, *src, *dst, sz;
a9533e7e
HP
26725
26726 sz = end - start + 1;
26727 ASSERT(end > start);
26728 ASSERT(end < NPHY_PAPD_EPS_TBL_SIZE);
26729
66cbd3ab 26730 buf = MALLOC(pi->sh->osh, 2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE);
ca8c1e59 26731 if (NULL == buf) {
a9533e7e
HP
26732 return;
26733 }
26734
26735 src = buf;
26736 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26737
26738 wlc_phy_table_read_nphy(pi,
26739 (core ==
26740 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26741 NPHY_TBL_ID_EPSILONTBL1),
26742 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26743
26744 do {
66cbd3ab 26745 u32 phy_a1, phy_a2;
3e26416e 26746 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
a9533e7e 26747
7068c2f1 26748 phy_a1 = end - min(end, (winsz >> 1));
e9e6727f 26749 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1, end + (winsz >> 1));
a9533e7e
HP
26750 phy_a3 = phy_a2 - phy_a1 + 1;
26751 phy_a6 = 0;
26752 phy_a7 = 0;
26753
26754 do {
26755 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26756 &phy_a5);
26757 phy_a6 += phy_a4;
26758 phy_a7 += phy_a5;
26759 } while (phy_a2-- != phy_a1);
26760
26761 phy_a6 /= phy_a3;
26762 phy_a7 /= phy_a3;
66cbd3ab 26763 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
a9533e7e
HP
26764 } while (end-- != start);
26765
26766 wlc_phy_table_write_nphy(pi,
26767 (core ==
26768 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26769 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26770
66cbd3ab 26771 MFREE(pi->sh->osh, buf, 2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE);
a9533e7e
HP
26772}
26773
26774static void
7cc4a4c0 26775wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *txgains,
e868ab03 26776 phy_cal_mode_t cal_mode, u8 core)
a9533e7e 26777{
7d4df48e
GKH
26778 u16 phy_a1, phy_a2, phy_a3;
26779 u16 phy_a4, phy_a5;
a9533e7e 26780 bool phy_a6;
e868ab03 26781 u8 phy_a7, m[2];
66cbd3ab 26782 u32 phy_a8 = 0;
a9533e7e
HP
26783 nphy_txgains_t phy_a9;
26784
26785 if (NREV_LT(pi->pubpi.phy_rev, 3))
26786 return;
26787
26788 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26789
26790 ASSERT((cal_mode == CAL_FULL) || (cal_mode == CAL_GCTRL)
26791 || (cal_mode == CAL_SOFT));
26792 phy_a6 = ((cal_mode == CAL_GCTRL)
26793 || (cal_mode == CAL_SOFT)) ? TRUE : FALSE;
26794
26795 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26796
26797 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26798
26799 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26800 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26801 (phy_a9.txgm[core] << 12) |
26802 (phy_a9.pga[core] << 8) |
26803 (txgains->gains.pad[core] << 3) |
26804 (phy_a9.ipa[core]));
26805 } else {
26806 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26807 (phy_a9.txgm[core] << 12) |
26808 (txgains->gains.pga[core] << 8) |
26809 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26810 }
26811
26812 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26813 NPHY_REV7_RfctrlOverride_cmd_txgain,
26814 phy_a5, (1 << core), 0);
26815
26816 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26817 if ((pi->pubpi.radiorev <= 4)
26818 || (pi->pubpi.radiorev == 6)) {
26819
26820 m[core] = IS40MHZ(pi) ? 60 : 79;
26821 } else {
26822
26823 m[core] = IS40MHZ(pi) ? 45 : 64;
26824 }
26825
26826 } else {
26827 m[core] = IS40MHZ(pi) ? 75 : 107;
26828 }
26829
26830 m[phy_a7] = 0;
26831 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26832
26833 phy_a2 = 63;
26834
26835 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26836 if (CHIPID(pi->sh->chip) == BCM6362_CHIP_ID) {
26837 phy_a1 = 35;
26838 phy_a3 = 35;
26839 } else if ((pi->pubpi.radiorev == 4)
26840 || (pi->pubpi.radiorev == 6)) {
26841 phy_a1 = 30;
26842 phy_a3 = 30;
26843 } else {
26844 phy_a1 = 25;
26845 phy_a3 = 25;
26846 }
26847 } else {
26848 if ((pi->pubpi.radiorev == 5)
26849 || (pi->pubpi.radiorev == 7)
26850 || (pi->pubpi.radiorev == 8)) {
26851 phy_a1 = 25;
26852 phy_a3 = 25;
26853 } else {
26854 phy_a1 = 35;
26855 phy_a3 = 35;
26856 }
26857 }
26858
26859 if (cal_mode == CAL_GCTRL) {
26860 if ((pi->pubpi.radiorev == 5)
26861 && (CHSPEC_IS2G(pi->radio_chanspec))) {
26862 phy_a1 = 55;
26863 } else if (((pi->pubpi.radiorev == 7) &&
26864 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26865 ((pi->pubpi.radiorev == 8) &&
26866 (CHSPEC_IS2G(pi->radio_chanspec)))) {
26867 phy_a1 = 60;
26868 } else {
26869 phy_a1 = 63;
26870 }
26871
26872 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26873
26874 phy_a1 = 35;
26875 phy_a3 = 35;
26876 }
26877
26878 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26879 0x29b, (0x1 << 0), (1) << 0);
26880
26881 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26882 0x29b, (0x1 << 0), (0) << 0);
26883
26884 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26885 0x2a4, (0x1 << 13), (1) << 13);
26886
26887 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26888 0x2a4, (0x1 << 13), (0) << 13);
26889
26890 write_phy_reg(pi, 0x2a1, 0x80);
26891 write_phy_reg(pi, 0x2a2, 0x100);
26892
26893 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26894 0x2a4, (0x7 << 4), (11) << 4);
26895
26896 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26897 0x2a4, (0x7 << 8), (11) << 8);
26898
26899 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26900 0x2a4, (0x7 << 0), (0x3) << 0);
26901
26902 write_phy_reg(pi, 0x2e5, 0x20);
26903
26904 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26905
26906 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26907
26908 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26909
26910 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26911 1, ((core == 0) ? 1 : 2), 0,
26912 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26913 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26914 0, ((core == 0) ? 2 : 1), 0,
26915 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26916
26917 write_phy_reg(pi, 0x2be, 1);
26918 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26919
26920 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26921 0, 0x3, 0,
26922 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26923
26924 wlc_phy_table_write_nphy(pi,
26925 (core ==
26926 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26927 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26928 32, &phy_a8);
26929
26930 if (cal_mode != CAL_GCTRL) {
26931 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26932 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26933 }
26934 }
26935
26936 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26937 NPHY_REV7_RfctrlOverride_cmd_txgain,
26938 phy_a5, (1 << core), 1);
26939
26940 } else {
26941
26942 if (txgains) {
26943 if (txgains->useindex) {
26944 phy_a4 = 15 - ((txgains->index) >> 3);
26945 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26946 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26947 phy_a5 = 0x00f7 | (phy_a4 << 8);
26948
26949 if (CHIPID(pi->sh->chip) ==
26950 BCM47162_CHIP_ID) {
26951 phy_a5 =
26952 0x10f7 | (phy_a4 <<
26953 8);
26954 }
26955 } else
26956 if (NREV_IS(pi->pubpi.phy_rev, 5))
26957 phy_a5 = 0x10f7 | (phy_a4 << 8);
26958 else
26959 phy_a5 = 0x50f7 | (phy_a4 << 8);
26960 } else {
26961 phy_a5 = 0x70f7 | (phy_a4 << 8);
26962 }
26963 wlc_phy_rfctrl_override_nphy(pi,
26964 (0x1 << 13),
26965 phy_a5,
26966 (1 << core), 0);
26967 } else {
26968 wlc_phy_rfctrl_override_nphy(pi,
26969 (0x1 << 13),
26970 0x5bf7,
26971 (1 << core), 0);
26972 }
26973 }
26974
26975 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26976 m[core] = IS40MHZ(pi) ? 45 : 64;
26977 } else {
26978 m[core] = IS40MHZ(pi) ? 75 : 107;
26979 }
26980
26981 m[phy_a7] = 0;
26982 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26983
26984 phy_a2 = 63;
26985
26986 if (cal_mode == CAL_FULL) {
26987 phy_a1 = 25;
26988 phy_a3 = 25;
26989 } else if (cal_mode == CAL_SOFT) {
26990 phy_a1 = 25;
26991 phy_a3 = 25;
26992 } else if (cal_mode == CAL_GCTRL) {
26993 phy_a1 = 63;
26994 phy_a3 = 25;
26995 } else {
26996
26997 phy_a1 = 25;
26998 phy_a3 = 25;
26999 }
27000
27001 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27002 0x29b, (0x1 << 0), (1) << 0);
27003
27004 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
27005 0x29b, (0x1 << 0), (0) << 0);
27006
27007 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27008 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27009 0x2a4, (0x1 << 13), (1) << 13);
27010
27011 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27012 0x2a4, (0x1 << 13), (0) << 13);
27013
27014 write_phy_reg(pi, 0x2a1, 0x20);
27015 write_phy_reg(pi, 0x2a2, 0x60);
27016
27017 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27018 0x2a4, (0xf << 4), (9) << 4);
27019
27020 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27021 0x2a4, (0xf << 8), (9) << 8);
27022
27023 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27024 0x2a4, (0xf << 0), (0x2) << 0);
27025
27026 write_phy_reg(pi, 0x2e5, 0x20);
27027 } else {
27028 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27029 0x2a4, (0x1 << 11), (1) << 11);
27030
27031 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
27032 0x2a4, (0x1 << 11), (0) << 11);
27033
27034 write_phy_reg(pi, 0x2a1, 0x80);
27035 write_phy_reg(pi, 0x2a2, 0x600);
27036
27037 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27038 0x2a4, (0x7 << 4), (0) << 4);
27039
27040 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27041 0x2a4, (0x7 << 8), (0) << 8);
27042
27043 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
27044 0x2a4, (0x7 << 0), (0x3) << 0);
27045
27046 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
27047
27048 }
27049
27050 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
27051
27052 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
27053
27054 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
27055
27056 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
27057
27058 write_phy_reg(pi, 0x2be, 1);
27059 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
27060
27061 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
27062
27063 wlc_phy_table_write_nphy(pi,
27064 (core ==
27065 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
27066 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
27067 32, &phy_a8);
27068
27069 if (cal_mode != CAL_GCTRL) {
27070 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
27071 }
27072 }
27073}
27074
e868ab03 27075static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core)
a9533e7e
HP
27076{
27077 int phy_a1;
27078 int phy_a2;
27079 bool phy_a3;
27080 nphy_ipa_txcalgains_t phy_a4;
27081 bool phy_a5 = FALSE;
27082 bool phy_a6 = TRUE;
3e26416e 27083 s32 phy_a7, phy_a8;
66cbd3ab 27084 u32 phy_a9;
a9533e7e
HP
27085 int phy_a10;
27086 bool phy_a11 = FALSE;
27087 int phy_a12;
e868ab03
GKH
27088 u8 phy_a13 = 0;
27089 u8 phy_a14;
27090 u8 *phy_a15 = NULL;
a9533e7e
HP
27091
27092 phy_a4.useindex = TRUE;
27093 phy_a12 = start_gain;
27094
27095 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27096
27097 phy_a2 = 20;
27098 phy_a1 = 1;
27099
27100 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27101 if (pi->pubpi.radiorev == 5) {
27102
27103 phy_a15 = pad_gain_codes_used_2057rev5;
27104 phy_a13 = sizeof(pad_gain_codes_used_2057rev5) /
27105 sizeof(pad_gain_codes_used_2057rev5[0]) - 1;
27106
27107 } else if ((pi->pubpi.radiorev == 7)
27108 || (pi->pubpi.radiorev == 8)) {
27109
27110 phy_a15 = pad_gain_codes_used_2057rev7;
27111 phy_a13 = sizeof(pad_gain_codes_used_2057rev7) /
27112 sizeof(pad_gain_codes_used_2057rev7[0]) - 1;
27113
27114 } else {
27115
27116 phy_a15 = pad_all_gain_codes_2057;
27117 phy_a13 = sizeof(pad_all_gain_codes_2057) /
27118 sizeof(pad_all_gain_codes_2057[0]) - 1;
27119 }
27120
27121 } else {
27122
27123 phy_a15 = pga_all_gain_codes_2057;
27124 phy_a13 = sizeof(pga_all_gain_codes_2057) /
27125 sizeof(pga_all_gain_codes_2057[0]) - 1;
27126 }
27127
27128 phy_a14 = 0;
27129
27130 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27131 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27132 phy_a4.gains.pad[core] =
7d4df48e 27133 (u16) phy_a15[phy_a12];
a9533e7e
HP
27134 } else {
27135 phy_a4.gains.pga[core] =
7d4df48e 27136 (u16) phy_a15[phy_a12];
a9533e7e
HP
27137 }
27138
27139 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27140
27141 wlc_phy_table_read_nphy(pi,
27142 (core ==
27143 PHY_CORE_0 ?
27144 NPHY_TBL_ID_EPSILONTBL0 :
27145 NPHY_TBL_ID_EPSILONTBL1), 1,
27146 63, 32, &phy_a9);
27147
27148 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27149
27150 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27151 (phy_a8 == 4095) || (phy_a8 == -4096));
27152
27153 if (!phy_a6 && (phy_a3 != phy_a5)) {
27154 if (!phy_a3) {
e868ab03 27155 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27156 }
27157 phy_a11 = TRUE;
27158 break;
27159 }
27160
27161 if (phy_a3)
e868ab03 27162 phy_a12 += (u8) phy_a1;
a9533e7e 27163 else
e868ab03 27164 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27165
27166 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
27167 if (phy_a12 < phy_a14) {
27168 phy_a12 = phy_a14;
27169 } else {
27170 phy_a12 = phy_a13;
27171 }
27172 phy_a11 = TRUE;
27173 break;
27174 }
27175
27176 phy_a6 = FALSE;
27177 phy_a5 = phy_a3;
27178 }
27179
27180 } else {
27181 phy_a2 = 10;
27182 phy_a1 = 8;
27183 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
e868ab03 27184 phy_a4.index = (u8) phy_a12;
a9533e7e
HP
27185 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27186
27187 wlc_phy_table_read_nphy(pi,
27188 (core ==
27189 PHY_CORE_0 ?
27190 NPHY_TBL_ID_EPSILONTBL0 :
27191 NPHY_TBL_ID_EPSILONTBL1), 1,
27192 63, 32, &phy_a9);
27193
27194 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27195
27196 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27197 (phy_a8 == 4095) || (phy_a8 == -4096));
27198
27199 if (!phy_a6 && (phy_a3 != phy_a5)) {
27200 if (!phy_a3) {
e868ab03 27201 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27202 }
27203 phy_a11 = TRUE;
27204 break;
27205 }
27206
27207 if (phy_a3)
e868ab03 27208 phy_a12 += (u8) phy_a1;
a9533e7e 27209 else
e868ab03 27210 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27211
27212 if ((phy_a12 < 0) || (phy_a12 > 127)) {
27213 if (phy_a12 < 0) {
27214 phy_a12 = 0;
27215 } else {
27216 phy_a12 = 127;
27217 }
27218 phy_a11 = TRUE;
27219 break;
27220 }
27221
27222 phy_a6 = FALSE;
27223 phy_a5 = phy_a3;
27224 }
27225
27226 }
27227
27228 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
e868ab03 27229 return (u8) phy_a15[phy_a12];
a9533e7e 27230 } else {
e868ab03 27231 return (u8) phy_a12;
a9533e7e
HP
27232 }
27233
27234}
27235
7cc4a4c0 27236static void wlc_phy_a4(phy_info_t *pi, bool full_cal)
a9533e7e
HP
27237{
27238 nphy_ipa_txcalgains_t phy_b1[2];
27239 nphy_papd_restore_state phy_b2;
27240 bool phy_b3;
e868ab03
GKH
27241 u8 phy_b4;
27242 u8 phy_b5;
e59fe083 27243 s16 phy_b6, phy_b7, phy_b8;
7d4df48e 27244 u16 phy_b9;
e59fe083 27245 s16 phy_b10, phy_b11, phy_b12;
a9533e7e
HP
27246
27247 phy_b11 = 0;
27248 phy_b12 = 0;
27249 phy_b7 = 0;
27250 phy_b8 = 0;
27251 phy_b6 = 0;
27252
27253 if (pi->nphy_papd_skip == 1)
27254 return;
27255
27256 phy_b3 =
27257 (0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
27258 if (!phy_b3) {
27259 wlapi_suspend_mac_and_wait(pi->sh->physhim);
27260 }
27261
27262 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
27263
27264 pi->nphy_force_papd_cal = FALSE;
27265
27266 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
27267 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
27268 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
27269
27270 pi->nphy_papd_last_cal = pi->sh->now;
27271 pi->nphy_papd_recal_counter++;
27272
27273 if (NORADIO_ENAB(pi->pubpi))
27274 return;
27275
27276 phy_b4 = pi->nphy_txpwrctrl;
27277 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
27278
27279 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
27280 nphy_papd_scaltbl);
27281 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27282 nphy_papd_scaltbl);
27283
27284 phy_b9 = read_phy_reg(pi, 0x01);
27285 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27286
27287 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
3e26416e 27288 s32 i, val = 0;
a9533e7e
HP
27289 for (i = 0; i < 64; i++) {
27290 wlc_phy_table_write_nphy(pi,
27291 ((phy_b5 ==
27292 PHY_CORE_0) ?
27293 NPHY_TBL_ID_EPSILONTBL0 :
27294 NPHY_TBL_ID_EPSILONTBL1), 1,
27295 i, 32, &val);
27296 }
27297 }
27298
27299 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27300
27301 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27302 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27303 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27304
27305 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27306 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27307
27308 if ((pi->pubpi.radiorev == 3)
27309 || (pi->pubpi.radiorev == 4)
27310 || (pi->pubpi.radiorev == 6)) {
27311
27312 pi->nphy_papd_cal_gain_index[phy_b5] =
27313 23;
27314
27315 } else if (pi->pubpi.radiorev == 5) {
27316
27317 pi->nphy_papd_cal_gain_index[phy_b5] =
27318 0;
27319 pi->nphy_papd_cal_gain_index[phy_b5] =
27320 wlc_phy_a3_nphy(pi,
27321 pi->
27322 nphy_papd_cal_gain_index
27323 [phy_b5], phy_b5);
27324
27325 } else if ((pi->pubpi.radiorev == 7)
27326 || (pi->pubpi.radiorev == 8)) {
27327
27328 pi->nphy_papd_cal_gain_index[phy_b5] =
27329 0;
27330 pi->nphy_papd_cal_gain_index[phy_b5] =
27331 wlc_phy_a3_nphy(pi,
27332 pi->
27333 nphy_papd_cal_gain_index
27334 [phy_b5], phy_b5);
27335
27336 } else {
27337 ASSERT(0);
27338 }
27339
27340 phy_b1[phy_b5].gains.pad[phy_b5] =
27341 pi->nphy_papd_cal_gain_index[phy_b5];
27342
27343 } else {
27344 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27345 pi->nphy_papd_cal_gain_index[phy_b5] =
27346 wlc_phy_a3_nphy(pi,
27347 pi->
27348 nphy_papd_cal_gain_index
27349 [phy_b5], phy_b5);
27350 phy_b1[phy_b5].gains.pga[phy_b5] =
27351 pi->nphy_papd_cal_gain_index[phy_b5];
27352 }
27353 } else {
27354 phy_b1[phy_b5].useindex = TRUE;
27355 phy_b1[phy_b5].index = 16;
27356 phy_b1[phy_b5].index =
27357 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index, phy_b5);
27358
27359 pi->nphy_papd_cal_gain_index[phy_b5] =
27360 15 - ((phy_b1[phy_b5].index) >> 3);
27361 }
27362
27363 switch (pi->nphy_papd_cal_type) {
27364 case 0:
27365 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27366 break;
27367 case 1:
27368 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27369 break;
27370 }
27371
27372 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27373 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27374 }
27375 }
27376
27377 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27378 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27379 }
27380
27381 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27382 int eps_offset = 0;
27383
27384 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27385 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27386 if (pi->pubpi.radiorev == 3) {
27387 eps_offset = -2;
27388 } else if (pi->pubpi.radiorev == 5) {
27389 eps_offset = 3;
27390 } else {
27391 eps_offset = -1;
27392 }
27393 } else {
27394 eps_offset = 2;
27395 }
27396
27397 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27398 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27399 phy_b10 = 0;
27400 if ((pi->pubpi.radiorev == 3) ||
27401 (pi->pubpi.radiorev == 4) ||
27402 (pi->pubpi.radiorev == 6)) {
27403 phy_b12 =
27404 -
27405 (nphy_papd_padgain_dlt_2g_2057rev3n4
27406 [phy_b8]
27407 + 1) / 2;
27408 phy_b10 = -1;
27409 } else if (pi->pubpi.radiorev == 5) {
27410 phy_b12 =
27411 -(nphy_papd_padgain_dlt_2g_2057rev5
27412 [phy_b8]
27413 + 1) / 2;
27414 } else if ((pi->pubpi.radiorev == 7) ||
27415 (pi->pubpi.radiorev == 8)) {
27416 phy_b12 =
27417 -(nphy_papd_padgain_dlt_2g_2057rev7
27418 [phy_b8]
27419 + 1) / 2;
27420 } else {
27421 ASSERT(0);
27422 }
27423 } else {
27424 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27425 if ((pi->pubpi.radiorev == 3) ||
27426 (pi->pubpi.radiorev == 4) ||
27427 (pi->pubpi.radiorev == 6)) {
27428 phy_b11 =
27429 -(nphy_papd_pgagain_dlt_5g_2057
27430 [phy_b7]
27431 + 1) / 2;
27432 } else if ((pi->pubpi.radiorev == 7)
27433 || (pi->pubpi.radiorev == 8)) {
27434 phy_b11 =
27435 -(nphy_papd_pgagain_dlt_5g_2057rev7
27436 [phy_b7]
27437 + 1) / 2;
27438 } else {
27439 ASSERT(0);
27440 }
27441
27442 phy_b10 = -9;
27443 }
27444
27445 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27446 phy_b6 =
27447 -60 + 27 + eps_offset + phy_b12 + phy_b10;
27448 } else {
27449 phy_b6 =
27450 -60 + 27 + eps_offset + phy_b11 + phy_b10;
27451 }
27452
27453 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27454 0x29c, (0x1ff << 7), (phy_b6) << 7);
27455
27456 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27457 } else {
27458 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
27459 eps_offset = 4;
27460 } else {
27461 eps_offset = 2;
27462 }
27463
27464 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27465
27466 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27467 phy_b11 =
27468 -(nphy_papd_pga_gain_delta_ipa_2g[phy_b7] +
27469 1) / 2;
27470 phy_b10 = 0;
27471 } else {
27472 phy_b11 =
27473 -(nphy_papd_pga_gain_delta_ipa_5g[phy_b7] +
27474 1) / 2;
27475 phy_b10 = -9;
27476 }
27477
27478 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27479
27480 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27481 0x29c, (0x1ff << 7), (phy_b6) << 7);
27482
27483 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27484 }
27485 }
27486
27487 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27488 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27489
27490 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27491 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27492
27493 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27494 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27495 0x2a4, (0x1 << 13), (0) << 13);
27496
27497 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27498 0x2a4, (0x1 << 13), (0) << 13);
27499
27500 } else {
27501 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27502 0x2a4, (0x1 << 11), (0) << 11);
27503
27504 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27505 0x2a4, (0x1 << 11), (0) << 11);
27506
27507 }
27508 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27509
27510 write_phy_reg(pi, 0x01, phy_b9);
27511
27512 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27513
27514 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27515 if (phy_b4 == PHY_TPC_HW_OFF) {
27516 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
562c8850 27517 (s8) (pi->nphy_txpwrindex[0].
a9533e7e
HP
27518 index_internal), FALSE);
27519 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
562c8850 27520 (s8) (pi->nphy_txpwrindex[1].
a9533e7e
HP
27521 index_internal), FALSE);
27522 }
27523
27524 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
27525
27526 if (!phy_b3) {
27527 wlapi_enable_mac(pi->sh->physhim);
27528 }
27529}
27530
7cc4a4c0 27531void wlc_phy_txpwr_fixpower_nphy(phy_info_t *pi)
a9533e7e
HP
27532{
27533 uint core;
66cbd3ab 27534 u32 txgain;
7d4df48e 27535 u16 rad_gain, dac_gain, bbmult, m1m2;
e868ab03 27536 u8 txpi[2], chan_freq_range;
3e26416e 27537 s32 rfpwr_offset;
a9533e7e
HP
27538
27539 ASSERT(pi->nphy_txpwrctrl == PHY_TPC_HW_OFF);
27540
27541 if (pi->phyhang_avoid)
27542 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
27543
27544 if (pi->sh->sromrev < 4) {
27545 txpi[0] = txpi[1] = 72;
27546 } else {
27547
27548 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27549 switch (chan_freq_range) {
27550 case WL_CHAN_FREQ_RANGE_2G:
27551 txpi[0] = pi->nphy_txpid2g[0];
27552 txpi[1] = pi->nphy_txpid2g[1];
27553 break;
27554 case WL_CHAN_FREQ_RANGE_5GL:
27555 txpi[0] = pi->nphy_txpid5gl[0];
27556 txpi[1] = pi->nphy_txpid5gl[1];
27557 break;
27558 case WL_CHAN_FREQ_RANGE_5GM:
27559 txpi[0] = pi->nphy_txpid5g[0];
27560 txpi[1] = pi->nphy_txpid5g[1];
27561 break;
27562 case WL_CHAN_FREQ_RANGE_5GH:
27563 txpi[0] = pi->nphy_txpid5gh[0];
27564 txpi[1] = pi->nphy_txpid5gh[1];
27565 break;
27566 default:
27567 txpi[0] = txpi[1] = 91;
27568 break;
27569 }
27570 }
27571
27572 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27573 txpi[0] = txpi[1] = 30;
27574 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27575 txpi[0] = txpi[1] = 40;
27576 }
27577
27578 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27579
27580 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27581 (txpi[1] < 40) || (txpi[1] > 100))
27582 txpi[0] = txpi[1] = 91;
27583 }
27584
27585 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27586 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27587 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27588 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27589
27590 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27591 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27592 if (PHY_IPA(pi)) {
66cbd3ab 27593 u32 *tx_gaintbl =
a9533e7e
HP
27594 wlc_phy_get_ipa_gaintbl_nphy(pi);
27595 txgain = tx_gaintbl[txpi[core]];
27596 } else {
27597 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27598 if NREV_IS
27599 (pi->pubpi.phy_rev, 3) {
27600 txgain =
27601 nphy_tpc_5GHz_txgain_rev3
27602 [txpi[core]];
27603 } else if NREV_IS
27604 (pi->pubpi.phy_rev, 4) {
27605 txgain =
27606 (pi->srom_fem5g.extpagain ==
27607 3) ?
27608 nphy_tpc_5GHz_txgain_HiPwrEPA
27609 [txpi[core]] :
27610 nphy_tpc_5GHz_txgain_rev4
27611 [txpi[core]];
27612 } else {
27613 txgain =
27614 nphy_tpc_5GHz_txgain_rev5
27615 [txpi[core]];
27616 }
27617 } else {
27618 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
27619 (pi->srom_fem2g.extpagain == 3)) {
27620 txgain =
27621 nphy_tpc_txgain_HiPwrEPA
27622 [txpi[core]];
27623 } else {
27624 txgain =
27625 nphy_tpc_txgain_rev3[txpi
27626 [core]];
27627 }
27628 }
27629 }
27630 } else {
27631 txgain = nphy_tpc_txgain[txpi[core]];
27632 }
27633
27634 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27635 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27636 } else {
27637 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27638 }
27639
27640 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27641 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27642 } else {
27643 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27644 }
27645 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27646
27647 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27648 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27649 0xa5), (0x1 << 8), (0x1 << 8));
27650 } else {
27651 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27652 }
27653 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27654
27655 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27656 &rad_gain);
27657
27658 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27659 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27660 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27661 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27662
27663 if (PHY_IPA(pi)) {
27664 wlc_phy_table_read_nphy(pi,
27665 (core ==
27666 PHY_CORE_0 ?
27667 NPHY_TBL_ID_CORE1TXPWRCTL :
27668 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27669 576 + txpi[core], 32,
27670 &rfpwr_offset);
27671
27672 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27673 0x29b, (0x1ff << 4),
e59fe083 27674 ((s16) rfpwr_offset) << 4);
a9533e7e
HP
27675
27676 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27677 0x29b, (0x1 << 2), (1) << 2);
27678
27679 }
27680 }
27681
7d4df48e 27682 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
a9533e7e
HP
27683
27684 if (pi->phyhang_avoid)
27685 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
27686}
27687
27688static void
7d4df48e 27689wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
e868ab03
GKH
27690 u8 tmp_max_pwr, u8 rate_start,
27691 u8 rate_end)
a9533e7e 27692{
e868ab03
GKH
27693 u8 rate;
27694 u8 word_num, nibble_num;
27695 u8 tmp_nibble;
a9533e7e
HP
27696
27697 for (rate = rate_start; rate <= rate_end; rate++) {
27698 word_num = (rate - rate_start) >> 2;
27699 nibble_num = (rate - rate_start) & 0x3;
27700 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27701
27702 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27703 }
27704}
27705
27706static void
e868ab03
GKH
27707wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27708 u8 rate_start, u8 rate_end)
a9533e7e 27709{
e868ab03 27710 u8 rate;
a9533e7e
HP
27711
27712 for (rate = rate_start; rate <= rate_end; rate++) {
27713 srom_max[rate] -= 2 * pwr_offset;
27714 }
27715}
27716
27717void
e868ab03
GKH
27718wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27719 u8 rate_mcs_end, u8 rate_ofdm_start)
a9533e7e 27720{
e868ab03 27721 u8 rate1, rate2;
a9533e7e
HP
27722
27723 rate2 = rate_ofdm_start;
27724 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27725 power[rate1] = power[rate2];
27726 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27727 }
27728 power[rate_mcs_end] = power[rate_mcs_end - 1];
27729}
27730
27731void
e868ab03
GKH
27732wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27733 u8 rate_ofdm_end, u8 rate_mcs_start)
a9533e7e 27734{
e868ab03 27735 u8 rate1, rate2;
a9533e7e
HP
27736
27737 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27738 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27739 power[rate1] = power[rate2];
27740 if (rate1 == rate_ofdm_start)
27741 power[++rate1] = power[rate2];
27742 }
27743}
27744
a2627bc0
JC
27745void BCMNMIATTACHFN(wlc_phy_txpwr_apply_nphy) (phy_info_t *pi)
27746{
a9533e7e 27747 uint rate1, rate2, band_num;
e868ab03
GKH
27748 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27749 u8 tmp_max_pwr = 0;
7d4df48e 27750 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
e868ab03 27751 u8 *tx_srom_max_rate = NULL;
a9533e7e
HP
27752
27753 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27754 switch (band_num) {
27755 case 0:
27756
7068c2f1 27757 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
a9533e7e
HP
27758 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27759
27760 pwr_offsets1[0] = pi->cck2gpo;
27761 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27762 pwr_offsets1,
27763 tmp_max_pwr,
27764 TXP_FIRST_CCK,
27765 TXP_LAST_CCK);
27766
7d4df48e 27767 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
a9533e7e 27768 pwr_offsets1[1] =
7d4df48e 27769 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
a9533e7e
HP
27770
27771 pwr_offsets2 = pi->mcs2gpo;
27772
27773 tmp_cddpo = pi->cdd2gpo;
27774 tmp_stbcpo = pi->stbc2gpo;
27775 tmp_bw40po = pi->bw402gpo;
27776
27777 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27778 break;
27779 case 1:
27780
7068c2f1 27781 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
a9533e7e
HP
27782 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27783
7d4df48e 27784 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
a9533e7e 27785 pwr_offsets1[1] =
7d4df48e 27786 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
a9533e7e
HP
27787
27788 pwr_offsets2 = pi->mcs5gpo;
27789
27790 tmp_cddpo = pi->cdd5gpo;
27791 tmp_stbcpo = pi->stbc5gpo;
27792 tmp_bw40po = pi->bw405gpo;
27793
27794 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27795 break;
27796 case 2:
27797
7068c2f1 27798 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
a9533e7e
HP
27799 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27800
7d4df48e 27801 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
a9533e7e 27802 pwr_offsets1[1] =
7d4df48e 27803 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
a9533e7e
HP
27804
27805 pwr_offsets2 = pi->mcs5glpo;
27806
27807 tmp_cddpo = pi->cdd5glpo;
27808 tmp_stbcpo = pi->stbc5glpo;
27809 tmp_bw40po = pi->bw405glpo;
27810
27811 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27812 break;
27813 case 3:
27814
7068c2f1 27815 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
a9533e7e
HP
27816 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27817
7d4df48e 27818 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
a9533e7e 27819 pwr_offsets1[1] =
7d4df48e 27820 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
a9533e7e
HP
27821
27822 pwr_offsets2 = pi->mcs5ghpo;
27823
27824 tmp_cddpo = pi->cdd5ghpo;
27825 tmp_stbcpo = pi->stbc5ghpo;
27826 tmp_bw40po = pi->bw405ghpo;
27827
27828 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27829 break;
27830 }
27831
27832 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27833 tmp_max_pwr, TXP_FIRST_OFDM,
27834 TXP_LAST_OFDM);
27835
27836 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27837 TXP_FIRST_MCS_20_SISO,
27838 TXP_LAST_MCS_20_SISO,
27839 TXP_FIRST_OFDM);
27840
27841 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27842 tmp_max_pwr,
27843 TXP_FIRST_MCS_20_CDD,
27844 TXP_LAST_MCS_20_CDD);
27845
27846 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27847
27848 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27849 TXP_FIRST_MCS_20_CDD,
27850 TXP_LAST_MCS_20_CDD);
27851 }
27852
27853 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27854 TXP_FIRST_OFDM_20_CDD,
27855 TXP_LAST_OFDM_20_CDD,
27856 TXP_FIRST_MCS_20_CDD);
27857
27858 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27859 tmp_max_pwr,
27860 TXP_FIRST_MCS_20_STBC,
27861 TXP_LAST_MCS_20_STBC);
27862
27863 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27864
27865 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27866 tmp_stbcpo,
27867 TXP_FIRST_MCS_20_STBC,
27868 TXP_LAST_MCS_20_STBC);
27869 }
27870
27871 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27872 &pwr_offsets2[2], tmp_max_pwr,
27873 TXP_FIRST_MCS_20_SDM,
27874 TXP_LAST_MCS_20_SDM);
27875
27876 if (NPHY_IS_SROM_REINTERPRET) {
27877
27878 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27879 &pwr_offsets2[4],
27880 tmp_max_pwr,
27881 TXP_FIRST_MCS_40_SISO,
27882 TXP_LAST_MCS_40_SISO);
27883
27884 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27885 TXP_FIRST_OFDM_40_SISO,
27886 TXP_LAST_OFDM_40_SISO,
27887 TXP_FIRST_MCS_40_SISO);
27888
27889 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27890 &pwr_offsets2[4],
27891 tmp_max_pwr,
27892 TXP_FIRST_MCS_40_CDD,
27893 TXP_LAST_MCS_40_CDD);
27894
27895 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27896 TXP_FIRST_MCS_40_CDD,
27897 TXP_LAST_MCS_40_CDD);
27898
27899 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27900 TXP_FIRST_OFDM_40_CDD,
27901 TXP_LAST_OFDM_40_CDD,
27902 TXP_FIRST_MCS_40_CDD);
27903
27904 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27905 &pwr_offsets2[4],
27906 tmp_max_pwr,
27907 TXP_FIRST_MCS_40_STBC,
27908 TXP_LAST_MCS_40_STBC);
27909
27910 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27911 tmp_stbcpo,
27912 TXP_FIRST_MCS_40_STBC,
27913 TXP_LAST_MCS_40_STBC);
27914
27915 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27916 &pwr_offsets2[6],
27917 tmp_max_pwr,
27918 TXP_FIRST_MCS_40_SDM,
27919 TXP_LAST_MCS_40_SDM);
27920 } else {
27921
27922 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27923 TXP_FIRST_OFDM; rate1 <= TXP_LAST_MCS_40_SDM;
27924 rate1++, rate2++)
27925 tx_srom_max_rate[rate1] =
27926 tx_srom_max_rate[rate2];
27927 }
27928
27929 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27930 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27931 tmp_bw40po,
27932 TXP_FIRST_OFDM_40_SISO,
27933 TXP_LAST_MCS_40_SDM);
27934 }
27935
27936 tx_srom_max_rate[TXP_MCS_32] =
27937 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27938 }
27939
27940 return;
27941}
27942
0d2f0724 27943static void wlc_phy_txpwr_srom_read_ppr_nphy(phy_info_t *pi)
a2627bc0 27944{
7d4df48e 27945 u16 bw40po, cddpo, stbcpo, bwduppo;
a9533e7e
HP
27946 uint band_num;
27947
27948 if (pi->sh->sromrev >= 9) {
27949
27950 return;
27951 }
27952
7d4df48e 27953 bw40po = (u16) PHY_GETINTVAR(pi, "bw40po");
a9533e7e
HP
27954 pi->bw402gpo = bw40po & 0xf;
27955 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27956 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27957 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27958
7d4df48e 27959 cddpo = (u16) PHY_GETINTVAR(pi, "cddpo");
a9533e7e
HP
27960 pi->cdd2gpo = cddpo & 0xf;
27961 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27962 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27963 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27964
7d4df48e 27965 stbcpo = (u16) PHY_GETINTVAR(pi, "stbcpo");
a9533e7e
HP
27966 pi->stbc2gpo = stbcpo & 0xf;
27967 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27968 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27969 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27970
7d4df48e 27971 bwduppo = (u16) PHY_GETINTVAR(pi, "bwduppo");
a9533e7e
HP
27972 pi->bwdup2gpo = bwduppo & 0xf;
27973 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27974 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27975 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27976
27977 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27978 switch (band_num) {
27979 case 0:
27980
27981 pi->nphy_txpid2g[PHY_CORE_0] =
e868ab03 27982 (u8) PHY_GETINTVAR(pi, "txpid2ga0");
a9533e7e 27983 pi->nphy_txpid2g[PHY_CORE_1] =
e868ab03 27984 (u8) PHY_GETINTVAR(pi, "txpid2ga1");
a9533e7e 27985 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
562c8850 27986 (s8) PHY_GETINTVAR(pi, "maxp2ga0");
a9533e7e 27987 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
562c8850 27988 (s8) PHY_GETINTVAR(pi, "maxp2ga1");
a9533e7e 27989 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
e59fe083 27990 (s16) PHY_GETINTVAR(pi, "pa2gw0a0");
a9533e7e 27991 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
e59fe083 27992 (s16) PHY_GETINTVAR(pi, "pa2gw0a1");
a9533e7e 27993 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
e59fe083 27994 (s16) PHY_GETINTVAR(pi, "pa2gw1a0");
a9533e7e 27995 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
e59fe083 27996 (s16) PHY_GETINTVAR(pi, "pa2gw1a1");
a9533e7e 27997 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
e59fe083 27998 (s16) PHY_GETINTVAR(pi, "pa2gw2a0");
a9533e7e 27999 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
e59fe083 28000 (s16) PHY_GETINTVAR(pi, "pa2gw2a1");
a9533e7e 28001 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
562c8850 28002 (s8) PHY_GETINTVAR(pi, "itt2ga0");
a9533e7e 28003 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
562c8850 28004 (s8) PHY_GETINTVAR(pi, "itt2ga1");
a9533e7e 28005
7d4df48e 28006 pi->cck2gpo = (u16) PHY_GETINTVAR(pi, "cck2gpo");
a9533e7e 28007
66cbd3ab 28008 pi->ofdm2gpo = (u32) PHY_GETINTVAR(pi, "ofdm2gpo");
a9533e7e 28009
7d4df48e
GKH
28010 pi->mcs2gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs2gpo0");
28011 pi->mcs2gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs2gpo1");
28012 pi->mcs2gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs2gpo2");
28013 pi->mcs2gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs2gpo3");
28014 pi->mcs2gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs2gpo4");
28015 pi->mcs2gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs2gpo5");
28016 pi->mcs2gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs2gpo6");
28017 pi->mcs2gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs2gpo7");
a9533e7e
HP
28018 break;
28019 case 1:
28020
28021 pi->nphy_txpid5g[PHY_CORE_0] =
e868ab03 28022 (u8) PHY_GETINTVAR(pi, "txpid5ga0");
a9533e7e 28023 pi->nphy_txpid5g[PHY_CORE_1] =
e868ab03 28024 (u8) PHY_GETINTVAR(pi, "txpid5ga1");
a9533e7e 28025 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
562c8850 28026 (s8) PHY_GETINTVAR(pi, "maxp5ga0");
a9533e7e 28027 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
562c8850 28028 (s8) PHY_GETINTVAR(pi, "maxp5ga1");
a9533e7e 28029 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
e59fe083 28030 (s16) PHY_GETINTVAR(pi, "pa5gw0a0");
a9533e7e 28031 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
e59fe083 28032 (s16) PHY_GETINTVAR(pi, "pa5gw0a1");
a9533e7e 28033 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
e59fe083 28034 (s16) PHY_GETINTVAR(pi, "pa5gw1a0");
a9533e7e 28035 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
e59fe083 28036 (s16) PHY_GETINTVAR(pi, "pa5gw1a1");
a9533e7e 28037 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
e59fe083 28038 (s16) PHY_GETINTVAR(pi, "pa5gw2a0");
a9533e7e 28039 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
e59fe083 28040 (s16) PHY_GETINTVAR(pi, "pa5gw2a1");
a9533e7e 28041 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
562c8850 28042 (s8) PHY_GETINTVAR(pi, "itt5ga0");
a9533e7e 28043 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
562c8850 28044 (s8) PHY_GETINTVAR(pi, "itt5ga1");
a9533e7e 28045
66cbd3ab 28046 pi->ofdm5gpo = (u32) PHY_GETINTVAR(pi, "ofdm5gpo");
a9533e7e 28047
7d4df48e
GKH
28048 pi->mcs5gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs5gpo0");
28049 pi->mcs5gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs5gpo1");
28050 pi->mcs5gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs5gpo2");
28051 pi->mcs5gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs5gpo3");
28052 pi->mcs5gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs5gpo4");
28053 pi->mcs5gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs5gpo5");
28054 pi->mcs5gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs5gpo6");
28055 pi->mcs5gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs5gpo7");
a9533e7e
HP
28056 break;
28057 case 2:
28058
28059 pi->nphy_txpid5gl[0] =
e868ab03 28060 (u8) PHY_GETINTVAR(pi, "txpid5gla0");
a9533e7e 28061 pi->nphy_txpid5gl[1] =
e868ab03 28062 (u8) PHY_GETINTVAR(pi, "txpid5gla1");
a9533e7e 28063 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
562c8850 28064 (s8) PHY_GETINTVAR(pi, "maxp5gla0");
a9533e7e 28065 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
562c8850 28066 (s8) PHY_GETINTVAR(pi, "maxp5gla1");
a9533e7e 28067 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
e59fe083 28068 (s16) PHY_GETINTVAR(pi, "pa5glw0a0");
a9533e7e 28069 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
e59fe083 28070 (s16) PHY_GETINTVAR(pi, "pa5glw0a1");
a9533e7e 28071 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
e59fe083 28072 (s16) PHY_GETINTVAR(pi, "pa5glw1a0");
a9533e7e 28073 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
e59fe083 28074 (s16) PHY_GETINTVAR(pi, "pa5glw1a1");
a9533e7e 28075 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
e59fe083 28076 (s16) PHY_GETINTVAR(pi, "pa5glw2a0");
a9533e7e 28077 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
e59fe083 28078 (s16) PHY_GETINTVAR(pi, "pa5glw2a1");
a9533e7e
HP
28079 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
28080 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
28081
66cbd3ab 28082 pi->ofdm5glpo = (u32) PHY_GETINTVAR(pi, "ofdm5glpo");
a9533e7e
HP
28083
28084 pi->mcs5glpo[0] =
7d4df48e 28085 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
a9533e7e 28086 pi->mcs5glpo[1] =
7d4df48e 28087 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
a9533e7e 28088 pi->mcs5glpo[2] =
7d4df48e 28089 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
a9533e7e 28090 pi->mcs5glpo[3] =
7d4df48e 28091 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
a9533e7e 28092 pi->mcs5glpo[4] =
7d4df48e 28093 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
a9533e7e 28094 pi->mcs5glpo[5] =
7d4df48e 28095 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
a9533e7e 28096 pi->mcs5glpo[6] =
7d4df48e 28097 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
a9533e7e 28098 pi->mcs5glpo[7] =
7d4df48e 28099 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
a9533e7e
HP
28100 break;
28101 case 3:
28102
28103 pi->nphy_txpid5gh[0] =
e868ab03 28104 (u8) PHY_GETINTVAR(pi, "txpid5gha0");
a9533e7e 28105 pi->nphy_txpid5gh[1] =
e868ab03 28106 (u8) PHY_GETINTVAR(pi, "txpid5gha1");
a9533e7e 28107 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
562c8850 28108 (s8) PHY_GETINTVAR(pi, "maxp5gha0");
a9533e7e 28109 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
562c8850 28110 (s8) PHY_GETINTVAR(pi, "maxp5gha1");
a9533e7e 28111 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
e59fe083 28112 (s16) PHY_GETINTVAR(pi, "pa5ghw0a0");
a9533e7e 28113 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
e59fe083 28114 (s16) PHY_GETINTVAR(pi, "pa5ghw0a1");
a9533e7e 28115 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
e59fe083 28116 (s16) PHY_GETINTVAR(pi, "pa5ghw1a0");
a9533e7e 28117 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
e59fe083 28118 (s16) PHY_GETINTVAR(pi, "pa5ghw1a1");
a9533e7e 28119 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
e59fe083 28120 (s16) PHY_GETINTVAR(pi, "pa5ghw2a0");
a9533e7e 28121 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
e59fe083 28122 (s16) PHY_GETINTVAR(pi, "pa5ghw2a1");
a9533e7e
HP
28123 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
28124 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
28125
66cbd3ab 28126 pi->ofdm5ghpo = (u32) PHY_GETINTVAR(pi, "ofdm5ghpo");
a9533e7e
HP
28127
28128 pi->mcs5ghpo[0] =
7d4df48e 28129 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
a9533e7e 28130 pi->mcs5ghpo[1] =
7d4df48e 28131 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
a9533e7e 28132 pi->mcs5ghpo[2] =
7d4df48e 28133 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
a9533e7e 28134 pi->mcs5ghpo[3] =
7d4df48e 28135 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
a9533e7e 28136 pi->mcs5ghpo[4] =
7d4df48e 28137 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
a9533e7e 28138 pi->mcs5ghpo[5] =
7d4df48e 28139 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
a9533e7e 28140 pi->mcs5ghpo[6] =
7d4df48e 28141 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
a9533e7e 28142 pi->mcs5ghpo[7] =
7d4df48e 28143 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
a9533e7e
HP
28144 break;
28145 }
28146 }
28147
28148 wlc_phy_txpwr_apply_nphy(pi);
28149}
28150
0d2f0724 28151static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi)
a2627bc0 28152{
a9533e7e 28153
e868ab03
GKH
28154 pi->antswitch = (u8) PHY_GETINTVAR(pi, "antswitch");
28155 pi->aa2g = (u8) PHY_GETINTVAR(pi, "aa2g");
28156 pi->aa5g = (u8) PHY_GETINTVAR(pi, "aa5g");
a9533e7e 28157
e868ab03
GKH
28158 pi->srom_fem2g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos2g");
28159 pi->srom_fem2g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain2g");
28160 pi->srom_fem2g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange2g");
28161 pi->srom_fem2g.triso = (u8) PHY_GETINTVAR(pi, "triso2g");
28162 pi->srom_fem2g.antswctrllut = (u8) PHY_GETINTVAR(pi, "antswctl2g");
a9533e7e 28163
e868ab03
GKH
28164 pi->srom_fem5g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos5g");
28165 pi->srom_fem5g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain5g");
28166 pi->srom_fem5g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange5g");
28167 pi->srom_fem5g.triso = (u8) PHY_GETINTVAR(pi, "triso5g");
a9533e7e
HP
28168 if (PHY_GETVAR(pi, "antswctl5g")) {
28169
28170 pi->srom_fem5g.antswctrllut =
e868ab03 28171 (u8) PHY_GETINTVAR(pi, "antswctl5g");
a9533e7e
HP
28172 } else {
28173
28174 pi->srom_fem5g.antswctrllut =
e868ab03 28175 (u8) PHY_GETINTVAR(pi, "antswctl2g");
a9533e7e
HP
28176 }
28177
28178 wlc_phy_txpower_ipa_upd(pi);
28179
e59fe083 28180 pi->phy_txcore_disable_temp = (s16) PHY_GETINTVAR(pi, "tempthresh");
a9533e7e
HP
28181 if (pi->phy_txcore_disable_temp == 0) {
28182 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
28183 }
28184
562c8850 28185 pi->phy_tempsense_offset = (s8) PHY_GETINTVAR(pi, "tempoffset");
a9533e7e
HP
28186 if (pi->phy_tempsense_offset != 0) {
28187 if (pi->phy_tempsense_offset >
28188 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET)) {
28189 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
28190 } else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
e5c4536f 28191 NPHY_SROM_MINTEMPOFFSET)) {
a9533e7e
HP
28192 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
28193 } else {
28194 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
28195 }
28196 }
28197
28198 pi->phy_txcore_enable_temp =
28199 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
28200
e868ab03 28201 pi->phycal_tempdelta = (u8) PHY_GETINTVAR(pi, "phycal_tempdelta");
a9533e7e
HP
28202 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA) {
28203 pi->phycal_tempdelta = 0;
28204 }
28205
28206 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
28207
28208 return TRUE;
28209}
28210
7cc4a4c0 28211void wlc_phy_txpower_recalc_target_nphy(phy_info_t *pi)
a9533e7e 28212{
e868ab03 28213 u8 tx_pwr_ctrl_state;
a9533e7e
HP
28214 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28215 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28216
28217 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28218
28219 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28220 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28221 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28222 OSL_DELAY(1);
28223 }
28224
28225 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28226
28227 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28228 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28229}
28230
7cc4a4c0 28231static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi)
a9533e7e 28232{
66cbd3ab 28233 u32 idx;
7d4df48e 28234 u16 iqloCalbuf[7];
66cbd3ab 28235 u32 iqcomp, locomp, curr_locomp;
562c8850
GKH
28236 s8 locomp_i, locomp_q;
28237 s8 curr_locomp_i, curr_locomp_q;
66cbd3ab
GKH
28238 u32 tbl_id, tbl_len, tbl_offset;
28239 u32 regval[128];
a9533e7e
HP
28240
28241 if (pi->phyhang_avoid)
28242 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28243
28244 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
28245
28246 tbl_len = 128;
28247 tbl_offset = 320;
28248 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28249 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28250 iqcomp =
28251 (tbl_id ==
66cbd3ab 28252 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
a9533e7e 28253 (iqloCalbuf[1] & 0x3ff)
66cbd3ab 28254 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
a9533e7e
HP
28255 (iqloCalbuf[3] & 0x3ff);
28256
28257 for (idx = 0; idx < tbl_len; idx++) {
28258 regval[idx] = iqcomp;
28259 }
28260 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28261 regval);
28262 }
28263
28264 tbl_offset = 448;
28265 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28266 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28267
28268 locomp =
66cbd3ab 28269 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
562c8850
GKH
28270 locomp_i = (s8) ((locomp >> 8) & 0xff);
28271 locomp_q = (s8) ((locomp) & 0xff);
a9533e7e
HP
28272 for (idx = 0; idx < tbl_len; idx++) {
28273 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28274 curr_locomp_i = locomp_i;
28275 curr_locomp_q = locomp_q;
28276 } else {
562c8850 28277 curr_locomp_i = (s8) ((locomp_i *
a9533e7e
HP
28278 nphy_tpc_loscale[idx] +
28279 128) >> 8);
28280 curr_locomp_q =
562c8850 28281 (s8) ((locomp_q * nphy_tpc_loscale[idx] +
a9533e7e
HP
28282 128) >> 8);
28283 }
66cbd3ab
GKH
28284 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
28285 curr_locomp |= (u32) (curr_locomp_q & 0xff);
a9533e7e
HP
28286 regval[idx] = curr_locomp;
28287 }
28288 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28289 regval);
28290 }
28291
28292 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
28293
28294 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
28295 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
28296 }
28297
28298 if (pi->phyhang_avoid)
28299 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28300}
28301
7cc4a4c0 28302static void wlc_phy_ipa_internal_tssi_setup_nphy(phy_info_t *pi)
a9533e7e 28303{
e868ab03 28304 u8 core;
a9533e7e
HP
28305
28306 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28307 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28308 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28309 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28310 TX_SSI_MASTER, 0x5);
28311 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28312 TX_SSI_MUX, 0xe);
28313
28314 if (pi->pubpi.radiorev != 5)
28315 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28316 core, TSSIA, 0);
28317
28318 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28319
28320 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28321 core, TSSIG, 0x1);
28322 } else {
28323
28324 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28325 core, TSSIG, 0x31);
28326 }
28327 } else {
28328 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28329 TX_SSI_MASTER, 0x9);
28330 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28331 TX_SSI_MUX, 0xc);
28332 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28333 TSSIG, 0);
28334
28335 if (pi->pubpi.radiorev != 5) {
28336 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28337
28338 WRITE_RADIO_REG3(pi, RADIO_2057,
28339 TX, core,
28340 TSSIA, 0x1);
28341 } else {
28342
28343 WRITE_RADIO_REG3(pi, RADIO_2057,
28344 TX, core,
28345 TSSIA, 0x31);
28346 }
28347 }
28348 }
28349 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28350 0);
28351 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28352 0);
28353 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28354 0x3);
28355 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28356 0x0);
28357 }
28358 } else {
28359 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28360 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28361 0x80);
28362 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28363 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28364
28365 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28366 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28367 0x0);
28368 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28369 0x0);
28370 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28371 0x3);
28372 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28373 0x0);
28374 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28375 0x8);
28376 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28377 0x0);
28378 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28379 0x0);
28380
28381 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28382 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28383 TX_SSI_MASTER, 0x5);
28384
28385 if (pi->pubpi.radiorev != 5)
28386 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28387 core, TSSIA, 0x0);
28388 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
28389
28390 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28391 core, TSSIG, 0x31);
28392 } else {
28393 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28394 core, TSSIG, 0x11);
28395 }
28396 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28397 TX_SSI_MUX, 0xe);
28398 } else {
28399 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28400 TX_SSI_MASTER, 0x9);
28401 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28402 TSSIA, 0x31);
28403 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28404 TSSIG, 0x0);
28405 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28406 TX_SSI_MUX, 0xc);
28407 }
28408 }
28409 }
28410}
28411
7cc4a4c0 28412static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi)
a9533e7e 28413{
3e26416e
GKH
28414 s32 rssi_buf[4];
28415 s32 int_val;
a9533e7e
HP
28416
28417 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28418
28419 return;
28420
28421 if (PHY_IPA(pi)) {
28422 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28423 }
28424
28425 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28426 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28427 0, 0x3, 0,
28428 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28429 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28430 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28431 }
28432
28433 wlc_phy_stopplayback_nphy(pi);
28434
28435 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, FALSE);
28436
28437 OSL_DELAY(20);
28438 int_val =
e868ab03 28439 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
a9533e7e
HP
28440 1);
28441 wlc_phy_stopplayback_nphy(pi);
28442 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28443
28444 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28445 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28446 0, 0x3, 1,
28447 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28448 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28449 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28450 }
28451
28452 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28453
28454 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
e868ab03 28455 (u8) ((int_val >> 24) & 0xff);
a9533e7e 28456 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
e868ab03 28457 (u8) ((int_val >> 24) & 0xff);
a9533e7e
HP
28458
28459 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
e868ab03 28460 (u8) ((int_val >> 8) & 0xff);
a9533e7e 28461 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
e868ab03 28462 (u8) ((int_val >> 8) & 0xff);
a9533e7e
HP
28463 } else {
28464 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
e868ab03 28465 (u8) ((int_val >> 24) & 0xff);
a9533e7e
HP
28466
28467 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
e868ab03 28468 (u8) ((int_val >> 8) & 0xff);
a9533e7e
HP
28469
28470 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
e868ab03 28471 (u8) ((int_val >> 16) & 0xff);
a9533e7e 28472 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
e868ab03 28473 (u8) ((int_val) & 0xff);
a9533e7e
HP
28474 }
28475
28476}
28477
7cc4a4c0 28478static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi)
a9533e7e 28479{
66cbd3ab 28480 u32 idx;
e59fe083 28481 s16 a1[2], b0[2], b1[2];
562c8850 28482 s8 target_pwr_qtrdbm[2];
3e26416e 28483 s32 num, den, pwr_est;
e868ab03
GKH
28484 u8 chan_freq_range;
28485 u8 idle_tssi[2];
66cbd3ab
GKH
28486 u32 tbl_id, tbl_len, tbl_offset;
28487 u32 regval[64];
e868ab03 28488 u8 core;
a9533e7e
HP
28489
28490 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28491 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28492 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28493 OSL_DELAY(1);
28494 }
28495
28496 if (pi->phyhang_avoid)
28497 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28498
28499 or_phy_reg(pi, 0x122, (0x1 << 0));
28500
28501 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
7d4df48e 28502 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
a9533e7e
HP
28503 } else {
28504
28505 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28506 }
28507
28508 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28509 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28510
28511 if (pi->sh->sromrev < 4) {
28512 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28513 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28514 target_pwr_qtrdbm[0] = 13 * 4;
28515 target_pwr_qtrdbm[1] = 13 * 4;
28516 a1[0] = -424;
28517 a1[1] = -424;
28518 b0[0] = 5612;
28519 b0[1] = 5612;
28520 b1[1] = -1393;
28521 b1[0] = -1393;
28522 } else {
28523
28524 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28525 switch (chan_freq_range) {
28526 case WL_CHAN_FREQ_RANGE_2G:
28527 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28528 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28529 target_pwr_qtrdbm[0] =
28530 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28531 target_pwr_qtrdbm[1] =
28532 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28533 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28534 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28535 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28536 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28537 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28538 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28539 break;
28540 case WL_CHAN_FREQ_RANGE_5GL:
28541 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28542 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28543 target_pwr_qtrdbm[0] =
28544 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28545 target_pwr_qtrdbm[1] =
28546 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28547 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28548 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28549 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28550 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28551 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28552 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28553 break;
28554 case WL_CHAN_FREQ_RANGE_5GM:
28555 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28556 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28557 target_pwr_qtrdbm[0] =
28558 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28559 target_pwr_qtrdbm[1] =
28560 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28561 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28562 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28563 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28564 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28565 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28566 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28567 break;
28568 case WL_CHAN_FREQ_RANGE_5GH:
28569 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28570 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28571 target_pwr_qtrdbm[0] =
28572 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28573 target_pwr_qtrdbm[1] =
28574 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28575 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28576 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28577 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28578 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28579 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28580 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28581 break;
28582 default:
28583 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28584 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28585 target_pwr_qtrdbm[0] = 13 * 4;
28586 target_pwr_qtrdbm[1] = 13 * 4;
28587 a1[0] = -424;
28588 a1[1] = -424;
28589 b0[0] = 5612;
28590 b0[1] = 5612;
28591 b1[1] = -1393;
28592 b1[0] = -1393;
28593 break;
28594 }
28595 }
28596
562c8850
GKH
28597 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
28598 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
a9533e7e
HP
28599
28600 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28601 if (pi->srom_fem2g.tssipos) {
28602 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28603 }
28604
28605 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28606 for (core = 0; core <= 1; core++) {
28607 if (PHY_IPA(pi)) {
28608
28609 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28610 WRITE_RADIO_REG3(pi, RADIO_2057,
28611 TX, core,
28612 TX_SSI_MUX,
28613 0xe);
28614 } else {
28615 WRITE_RADIO_REG3(pi, RADIO_2057,
28616 TX, core,
28617 TX_SSI_MUX,
28618 0xc);
28619 }
28620 } else {
28621 }
28622 }
28623 } else {
28624 if (PHY_IPA(pi)) {
28625
28626 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28627 RADIO_2056_TX0,
28628 (CHSPEC_IS5G
28629 (pi->
28630 radio_chanspec)) ? 0xc : 0xe);
28631 write_radio_reg(pi,
28632 RADIO_2056_TX_TX_SSI_MUX |
28633 RADIO_2056_TX1,
28634 (CHSPEC_IS5G
28635 (pi->
28636 radio_chanspec)) ? 0xc : 0xe);
28637 } else {
28638
28639 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28640 RADIO_2056_TX0, 0x11);
28641 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28642 RADIO_2056_TX1, 0x11);
28643 }
28644 }
28645 }
28646
28647 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28648 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
28649 (void)R_REG(pi->sh->osh, &pi->regs->maccontrol);
28650 OSL_DELAY(1);
28651 }
28652
28653 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28654 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28655 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28656 } else {
28657 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28658 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28659 }
28660
28661 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28662 mod_phy_reg(pi, 0x222, (0xff << 0),
28663 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28664 } else if (NREV_GT(pi->pubpi.phy_rev, 1)) {
28665 mod_phy_reg(pi, 0x222, (0xff << 0),
28666 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28667 }
28668
28669 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28670 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28671
28672 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28673
28674 write_phy_reg(pi, 0x1e9,
28675 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28676
28677 write_phy_reg(pi, 0x1ea,
28678 (target_pwr_qtrdbm[0] << 0) |
28679 (target_pwr_qtrdbm[1] << 8));
28680
28681 tbl_len = 64;
28682 tbl_offset = 0;
28683 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28684 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28685
28686 for (idx = 0; idx < tbl_len; idx++) {
28687 num =
28688 8 * (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28689 den = 32768 + a1[tbl_id - 26] * idx;
3ea2f4d6 28690 pwr_est = max(((4 * num + den / 2) / den), -8);
a9533e7e
HP
28691 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28692 if (idx <=
28693 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28694 pwr_est =
3ea2f4d6 28695 max(pwr_est,
a9533e7e
HP
28696 target_pwr_qtrdbm[tbl_id - 26] +
28697 1);
28698 }
66cbd3ab 28699 regval[idx] = (u32) pwr_est;
a9533e7e
HP
28700 }
28701 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28702 regval);
28703 }
28704
28705 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28706 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28707 pi->adj_pwr_tbl_nphy);
28708 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28709 pi->adj_pwr_tbl_nphy);
28710
28711 if (pi->phyhang_avoid)
28712 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28713}
28714
7cc4a4c0 28715static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi)
a9533e7e 28716{
90ea2296
JC
28717 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28718 (0x1 << 14) | (0x1 << 13));
a9533e7e
HP
28719}
28720
e868ab03 28721static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core)
a9533e7e 28722{
7d4df48e 28723 u16 tmp;
a9533e7e
HP
28724 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28725
28726 tmp = (tmp & (0x7f << 8)) >> 8;
e868ab03 28727 return (u8) tmp;
a9533e7e
HP
28728}
28729
28730static void
e868ab03 28731wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0, u8 idx1)
a9533e7e
HP
28732{
28733 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28734
28735 if (NREV_GT(pi->pubpi.phy_rev, 1))
28736 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28737}
28738
7d4df48e 28739u16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi)
a9533e7e 28740{
7d4df48e
GKH
28741 u16 tmp;
28742 u16 pwr_idx[2];
a9533e7e
HP
28743
28744 if (wlc_phy_txpwr_ison_nphy(pi)) {
28745 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28746 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28747
28748 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28749 } else {
28750 tmp =
28751 ((pi->nphy_txpwrindex[PHY_CORE_0].
28752 index_internal & 0xff) << 8) | (pi->
28753 nphy_txpwrindex
28754 [PHY_CORE_1].
28755 index_internal & 0xff);
28756 }
28757
28758 return tmp;
28759}
28760
7cc4a4c0 28761void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi)
a9533e7e
HP
28762{
28763 if (PHY_IPA(pi)
28764 && (pi->nphy_force_papd_cal
28765 || (wlc_phy_txpwr_ison_nphy(pi)
28766 &&
66cbd3ab 28767 (((u32)
a9533e7e
HP
28768 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28769 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
66cbd3ab 28770 || ((u32)
a9533e7e
HP
28771 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28772 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4))))) {
28773 wlc_phy_a4(pi, TRUE);
28774 }
28775}
28776
e868ab03 28777void wlc_phy_txpwrctrl_enable_nphy(phy_info_t *pi, u8 ctrl_type)
a9533e7e 28778{
7d4df48e 28779 u16 mask = 0, val = 0, ishw = 0;
e868ab03 28780 u8 ctr;
a9533e7e 28781 uint core;
66cbd3ab
GKH
28782 u32 tbl_offset;
28783 u32 tbl_len;
7d4df48e 28784 u16 regval[84];
a9533e7e
HP
28785
28786 if (pi->phyhang_avoid)
28787 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28788
28789 switch (ctrl_type) {
28790 case PHY_TPC_HW_OFF:
28791 case PHY_TPC_HW_ON:
28792 pi->nphy_txpwrctrl = ctrl_type;
28793 break;
28794 default:
28795 break;
28796 }
28797
28798 if (ctrl_type == PHY_TPC_HW_OFF) {
28799 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28800
28801 if (wlc_phy_txpwr_ison_nphy(pi)) {
28802 for (core = 0; core < pi->pubpi.phy_corenum;
28803 core++)
28804 pi->nphy_txpwr_idx[core] =
28805 wlc_phy_txpwr_idx_cur_get_nphy(pi,
e868ab03 28806 (u8)
a9533e7e
HP
28807 core);
28808 }
28809
28810 }
28811
28812 tbl_len = 84;
28813 tbl_offset = 64;
28814 for (ctr = 0; ctr < tbl_len; ctr++) {
28815 regval[ctr] = 0;
28816 }
28817 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28818 regval);
28819 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28820 regval);
28821
28822 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28823
28824 and_phy_reg(pi, 0x1e7,
7d4df48e 28825 (u16) (~((0x1 << 15) |
a9533e7e
HP
28826 (0x1 << 14) | (0x1 << 13))));
28827 } else {
28828 and_phy_reg(pi, 0x1e7,
7d4df48e 28829 (u16) (~((0x1 << 14) | (0x1 << 13))));
a9533e7e
HP
28830 }
28831
28832 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28833 or_phy_reg(pi, 0x8f, (0x1 << 8));
28834 or_phy_reg(pi, 0xa5, (0x1 << 8));
28835 } else {
28836 or_phy_reg(pi, 0xa5, (0x1 << 14));
28837 }
28838
28839 if (NREV_IS(pi->pubpi.phy_rev, 2))
28840 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28841 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28842 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28843
28844 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28845 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28846 MHF1_IQSWAP_WAR, WLC_BAND_ALL);
28847
28848 } else {
28849
28850 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28851 8, pi->adj_pwr_tbl_nphy);
28852 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28853 8, pi->adj_pwr_tbl_nphy);
28854
28855 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28856 mask = (0x1 << 14) | (0x1 << 13);
28857 val = (ishw << 14) | (ishw << 13);
28858
28859 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28860 mask |= (0x1 << 15);
28861 val |= (ishw << 15);
28862 }
28863
28864 mod_phy_reg(pi, 0x1e7, mask, val);
28865
28866 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28867 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28868 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28869 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28870 } else {
28871 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28872 if (NREV_GT(pi->pubpi.phy_rev, 1))
28873 mod_phy_reg(pi, 0x222,
28874 (0xff << 0), 0x64);
28875 }
28876 }
28877
28878 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28879 if ((pi->nphy_txpwr_idx[0] != 128)
28880 && (pi->nphy_txpwr_idx[1] != 128)) {
28881 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28882 pi->
28883 nphy_txpwr_idx
28884 [0],
28885 pi->
28886 nphy_txpwr_idx
28887 [1]);
28888 }
28889 }
28890
28891 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28892 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28893 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28894 } else {
28895 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28896 }
28897
28898 if (NREV_IS(pi->pubpi.phy_rev, 2))
28899 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28900 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28901 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28902
28903 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28904 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28905 0x0, WLC_BAND_ALL);
28906
28907 if (PHY_IPA(pi)) {
28908 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28909 0x29b, (0x1 << 2), (0) << 2);
28910
28911 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28912 0x29b, (0x1 << 2), (0) << 2);
28913
28914 }
28915
28916 }
28917
28918 if (pi->phyhang_avoid)
28919 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
28920}
28921
28922void
562c8850 28923wlc_phy_txpwr_index_nphy(phy_info_t *pi, u8 core_mask, s8 txpwrindex,
a9533e7e
HP
28924 bool restore_cals)
28925{
e868ab03 28926 u8 core, txpwrctl_tbl;
7d4df48e
GKH
28927 u16 tx_ind0, iq_ind0, lo_ind0;
28928 u16 m1m2;
66cbd3ab 28929 u32 txgain;
7d4df48e 28930 u16 rad_gain, dac_gain;
e868ab03 28931 u8 bbmult;
66cbd3ab 28932 u32 iqcomp;
7d4df48e 28933 u16 iqcomp_a, iqcomp_b;
66cbd3ab 28934 u32 locomp;
7d4df48e 28935 u16 tmpval;
e868ab03 28936 u8 tx_pwr_ctrl_state;
3e26416e 28937 s32 rfpwr_offset;
7d4df48e 28938 u16 regval[2];
a9533e7e
HP
28939
28940 if (pi->phyhang_avoid)
28941 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
28942
28943 tx_ind0 = 192;
28944 iq_ind0 = 320;
28945 lo_ind0 = 448;
28946
28947 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28948
28949 if ((core_mask & (1 << core)) == 0) {
28950 continue;
28951 }
28952
28953 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28954
28955 if (txpwrindex < 0) {
28956 if (pi->nphy_txpwrindex[core].index < 0) {
28957
28958 continue;
28959 }
28960
28961 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28962 mod_phy_reg(pi, 0x8f,
28963 (0x1 << 8),
28964 pi->nphy_txpwrindex[core].
28965 AfectrlOverride);
28966 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28967 pi->nphy_txpwrindex[core].
28968 AfectrlOverride);
28969 } else {
28970 mod_phy_reg(pi, 0xa5,
28971 (0x1 << 14),
28972 pi->nphy_txpwrindex[core].
28973 AfectrlOverride);
28974 }
28975
28976 write_phy_reg(pi, (core == PHY_CORE_0) ?
28977 0xaa : 0xab,
28978 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28979
28980 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28981 &pi->nphy_txpwrindex[core].
28982 rad_gain);
28983
28984 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28985 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28986 m1m2 |= ((core == PHY_CORE_0) ?
28987 (pi->nphy_txpwrindex[core].bbmult << 8) :
28988 (pi->nphy_txpwrindex[core].bbmult << 0));
28989 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28990
28991 if (restore_cals) {
28992
28993 wlc_phy_table_write_nphy(pi, 15, 2,
28994 (80 + 2 * core), 16,
28995 (void *)&pi->
28996 nphy_txpwrindex[core].
28997 iqcomp_a);
28998
28999 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29000 16,
29001 &pi->
29002 nphy_txpwrindex[core].
29003 locomp);
29004 wlc_phy_table_write_nphy(pi, 15, 1, (93 + core),
29005 16,
29006 (void *)&pi->
29007 nphy_txpwrindex[core].
29008 locomp);
29009 }
29010
29011 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
29012
29013 pi->nphy_txpwrindex[core].index_internal =
29014 pi->nphy_txpwrindex[core].index_internal_save;
29015 } else {
29016
29017 if (pi->nphy_txpwrindex[core].index < 0) {
29018
29019 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29020 mod_phy_reg(pi, 0x8f,
29021 (0x1 << 8),
29022 pi->nphy_txpwrindex[core].
29023 AfectrlOverride);
29024 mod_phy_reg(pi, 0xa5, (0x1 << 8),
29025 pi->nphy_txpwrindex[core].
29026 AfectrlOverride);
29027 } else {
29028 pi->nphy_txpwrindex[core].
29029 AfectrlOverride =
29030 read_phy_reg(pi, 0xa5);
29031 }
29032
29033 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
29034 read_phy_reg(pi,
29035 (core ==
29036 PHY_CORE_0) ? 0xaa : 0xab);
29037
29038 wlc_phy_table_read_nphy(pi, 7, 1,
29039 (0x110 + core), 16,
29040 &pi->
29041 nphy_txpwrindex[core].
29042 rad_gain);
29043
29044 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
29045 &tmpval);
29046 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
29047 tmpval &= 0xff;
29048 pi->nphy_txpwrindex[core].bbmult =
e868ab03 29049 (u8) tmpval;
a9533e7e
HP
29050
29051 wlc_phy_table_read_nphy(pi, 15, 2,
29052 (80 + 2 * core), 16,
29053 (void *)&pi->
29054 nphy_txpwrindex[core].
29055 iqcomp_a);
29056
29057 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
29058 16,
29059 (void *)&pi->
29060 nphy_txpwrindex[core].
29061 locomp);
29062
29063 pi->nphy_txpwrindex[core].index_internal_save =
29064 pi->nphy_txpwrindex[core].index_internal;
29065 }
29066
29067 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
29068 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
29069
29070 if (NREV_IS(pi->pubpi.phy_rev, 1))
29071 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
29072
29073 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29074 (tx_ind0 + txpwrindex), 32,
29075 &txgain);
29076
29077 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29078 rad_gain =
29079 (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
29080 } else {
29081 rad_gain =
29082 (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
29083 }
29084 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
29085 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
29086
29087 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29088 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
29089 0xa5), (0x1 << 8), (0x1 << 8));
29090 } else {
29091 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
29092 }
29093 write_phy_reg(pi, (core == PHY_CORE_0) ?
29094 0xaa : 0xab, dac_gain);
29095
29096 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
29097 &rad_gain);
29098
29099 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
29100 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
29101 m1m2 |=
29102 ((core ==
29103 PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
29104
29105 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
29106
29107 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29108 (iq_ind0 + txpwrindex), 32,
29109 &iqcomp);
29110 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
29111 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
29112
29113 if (restore_cals) {
7d4df48e
GKH
29114 regval[0] = (u16) iqcomp_a;
29115 regval[1] = (u16) iqcomp_b;
a9533e7e
HP
29116 wlc_phy_table_write_nphy(pi, 15, 2,
29117 (80 + 2 * core), 16,
29118 regval);
29119 }
29120
29121 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29122 (lo_ind0 + txpwrindex), 32,
29123 &locomp);
29124 if (restore_cals) {
29125 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29126 16, &locomp);
29127 }
29128
29129 if (NREV_IS(pi->pubpi.phy_rev, 1))
29130 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
29131
29132 if (PHY_IPA(pi)) {
29133 wlc_phy_table_read_nphy(pi,
29134 (core ==
29135 PHY_CORE_0 ?
29136 NPHY_TBL_ID_CORE1TXPWRCTL
29137 :
29138 NPHY_TBL_ID_CORE2TXPWRCTL),
29139 1, 576 + txpwrindex, 32,
29140 &rfpwr_offset);
29141
29142 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29143 0x29b, (0x1ff << 4),
e59fe083 29144 ((s16) rfpwr_offset) << 4);
a9533e7e
HP
29145
29146 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29147 0x29b, (0x1 << 2), (1) << 2);
29148
29149 }
29150
29151 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
29152 }
29153
29154 pi->nphy_txpwrindex[core].index = txpwrindex;
29155 }
29156
29157 if (pi->phyhang_avoid)
29158 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
29159}
29160
29161void
e868ab03
GKH
29162wlc_phy_txpower_sromlimit_get_nphy(phy_info_t *pi, uint chan, u8 *max_pwr,
29163 u8 txp_rate_idx)
a9533e7e 29164{
e868ab03 29165 u8 chan_freq_range;
a9533e7e
HP
29166
29167 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
29168 switch (chan_freq_range) {
29169 case WL_CHAN_FREQ_RANGE_2G:
29170 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29171 break;
29172 case WL_CHAN_FREQ_RANGE_5GM:
29173 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
29174 break;
29175 case WL_CHAN_FREQ_RANGE_5GL:
29176 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
29177 break;
29178 case WL_CHAN_FREQ_RANGE_5GH:
29179 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
29180 break;
29181 default:
29182 ASSERT(0);
29183 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29184 break;
29185 }
29186
29187 return;
29188}
29189
7cc4a4c0 29190void wlc_phy_stay_in_carriersearch_nphy(phy_info_t *pi, bool enable)
a9533e7e 29191{
7d4df48e 29192 u16 clip_off[] = { 0xffff, 0xffff };
a9533e7e
HP
29193
29194 ASSERT(0 == (R_REG(pi->sh->osh, &pi->regs->maccontrol) & MCTL_EN_MAC));
29195
29196 if (enable) {
29197 if (pi->nphy_deaf_count == 0) {
29198 pi->classifier_state =
29199 wlc_phy_classifier_nphy(pi, 0, 0);
29200 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
29201 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
29202 wlc_phy_clip_det_nphy(pi, 1, clip_off);
29203 }
29204
29205 pi->nphy_deaf_count++;
29206
29207 wlc_phy_resetcca_nphy(pi);
29208
29209 } else {
29210 ASSERT(pi->nphy_deaf_count > 0);
29211
29212 pi->nphy_deaf_count--;
29213
29214 if (pi->nphy_deaf_count == 0) {
29215 wlc_phy_classifier_nphy(pi, (0x7 << 0),
29216 pi->classifier_state);
29217 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
29218 }
29219 }
29220}
29221
7cc4a4c0 29222void wlc_nphy_deaf_mode(phy_info_t *pi, bool mode)
a9533e7e
HP
29223{
29224 wlapi_suspend_mac_and_wait(pi->sh->physhim);
29225
29226 if (mode) {
29227 if (pi->nphy_deaf_count == 0)
29228 wlc_phy_stay_in_carriersearch_nphy(pi, TRUE);
29229 } else {
29230 if (pi->nphy_deaf_count > 0)
29231 wlc_phy_stay_in_carriersearch_nphy(pi, FALSE);
29232 }
29233 wlapi_enable_mac(pi->sh->physhim);
29234}