staging: brcm80211: fix checkpatch errors in brcmsmac driver
[deliverable/linux.git] / drivers / staging / brcm80211 / brcmsmac / phy / 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
01d11441 17#include <linux/delay.h>
3bec7bb9
RV
18
19#include <brcm_hw_ids.h>
27302e8f 20#include <aiutils.h>
745c9e6e 21#include <chipcommon.h>
cc3cea5a 22#include <pmu.h>
3bec7bb9
RV
23#include <d11.h>
24#include <phy_shim.h>
25#include "phy_int.h"
26#include "phy_hal.h"
27#include "phy_radio.h"
28#include "phyreg_n.h"
29#include "phytbl_n.h"
a9533e7e
HP
30
31#define READ_RADIO_REG2(pi, radio_type, jspace, core, reg_name) \
32 read_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
33 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1))
34#define WRITE_RADIO_REG2(pi, radio_type, jspace, core, reg_name, value) \
35 write_radio_reg(pi, radio_type##_##jspace##_##reg_name | \
36 ((core == PHY_CORE_0) ? radio_type##_##jspace##0 : radio_type##_##jspace##1), value);
37#define WRITE_RADIO_SYN(pi, radio_type, reg_name, value) \
38 write_radio_reg(pi, radio_type##_##SYN##_##reg_name, value);
39
40#define READ_RADIO_REG3(pi, radio_type, jspace, core, reg_name) \
41 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
42 radio_type##_##jspace##1##_##reg_name));
43#define WRITE_RADIO_REG3(pi, radio_type, jspace, core, reg_name, value) \
44 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##jspace##0##_##reg_name : \
45 radio_type##_##jspace##1##_##reg_name), value);
46#define READ_RADIO_REG4(pi, radio_type, jspace, core, reg_name) \
47 read_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
48 radio_type##_##reg_name##_##jspace##1));
49#define WRITE_RADIO_REG4(pi, radio_type, jspace, core, reg_name, value) \
50 write_radio_reg(pi, ((core == PHY_CORE_0) ? radio_type##_##reg_name##_##jspace##0 : \
51 radio_type##_##reg_name##_##jspace##1), value);
52
53#define NPHY_ACI_MAX_UNDETECT_WINDOW_SZ 40
54#define NPHY_ACI_CHANNEL_DELTA 5
55#define NPHY_ACI_CHANNEL_SKIP 4
56#define NPHY_ACI_40MHZ_CHANNEL_DELTA 6
57#define NPHY_ACI_40MHZ_CHANNEL_SKIP 5
58#define NPHY_ACI_40MHZ_CHANNEL_DELTA_GE_REV3 6
59#define NPHY_ACI_40MHZ_CHANNEL_SKIP_GE_REV3 5
60#define NPHY_ACI_CHANNEL_DELTA_GE_REV3 4
61#define NPHY_ACI_CHANNEL_SKIP_GE_REV3 3
62
63#define NPHY_NOISE_NOASSOC_GLITCH_TH_UP 2
64
65#define NPHY_NOISE_NOASSOC_GLITCH_TH_DN 8
66
67#define NPHY_NOISE_ASSOC_GLITCH_TH_UP 2
68
69#define NPHY_NOISE_ASSOC_GLITCH_TH_DN 8
70
71#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_UP 2
72
73#define NPHY_NOISE_ASSOC_ACI_GLITCH_TH_DN 8
74
75#define NPHY_NOISE_NOASSOC_ENTER_TH 400
76
77#define NPHY_NOISE_ASSOC_ENTER_TH 400
78
79#define NPHY_NOISE_ASSOC_RX_GLITCH_BADPLCP_ENTER_TH 400
80
81#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX 44
82#define NPHY_NOISE_CRSMINPWR_ARRAY_MAX_INDEX_REV_7 56
83
84#define NPHY_NOISE_NOASSOC_CRSIDX_INCR 16
85
86#define NPHY_NOISE_ASSOC_CRSIDX_INCR 8
87
88#define NPHY_IS_SROM_REINTERPRET NREV_GE(pi->pubpi.phy_rev, 5)
89
90#define NPHY_RSSICAL_MAXREAD 31
91
92#define NPHY_RSSICAL_NPOLL 8
93#define NPHY_RSSICAL_MAXD (1<<20)
94#define NPHY_MIN_RXIQ_PWR 2
95
96#define NPHY_RSSICAL_W1_TARGET 25
97#define NPHY_RSSICAL_W2_TARGET NPHY_RSSICAL_W1_TARGET
98#define NPHY_RSSICAL_NB_TARGET 0
99
100#define NPHY_RSSICAL_W1_TARGET_REV3 29
101#define NPHY_RSSICAL_W2_TARGET_REV3 NPHY_RSSICAL_W1_TARGET_REV3
102
103#define NPHY_CALSANITY_RSSI_NB_MAX_POS 9
104#define NPHY_CALSANITY_RSSI_NB_MAX_NEG -9
105#define NPHY_CALSANITY_RSSI_W1_MAX_POS 12
106#define NPHY_CALSANITY_RSSI_W1_MAX_NEG (NPHY_RSSICAL_W1_TARGET - NPHY_RSSICAL_MAXREAD)
107#define NPHY_CALSANITY_RSSI_W2_MAX_POS NPHY_CALSANITY_RSSI_W1_MAX_POS
108#define NPHY_CALSANITY_RSSI_W2_MAX_NEG (NPHY_RSSICAL_W2_TARGET - NPHY_RSSICAL_MAXREAD)
562c8850 109#define NPHY_RSSI_SXT(x) ((s8) (-((x) & 0x20) + ((x) & 0x1f)))
a9533e7e
HP
110#define NPHY_RSSI_NB_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_NB_MAX_POS) || \
111 ((x) < NPHY_CALSANITY_RSSI_NB_MAX_NEG))
112#define NPHY_RSSI_W1_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W1_MAX_POS) || \
113 ((x) < NPHY_CALSANITY_RSSI_W1_MAX_NEG))
114#define NPHY_RSSI_W2_VIOL(x) (((x) > NPHY_CALSANITY_RSSI_W2_MAX_POS) || \
115 ((x) < NPHY_CALSANITY_RSSI_W2_MAX_NEG))
116
117#define NPHY_IQCAL_NUMGAINS 9
118#define NPHY_N_GCTL 0x66
119
120#define NPHY_PAPD_EPS_TBL_SIZE 64
121#define NPHY_PAPD_SCL_TBL_SIZE 64
122#define NPHY_NUM_DIG_FILT_COEFFS 15
123
124#define NPHY_PAPD_COMP_OFF 0
125#define NPHY_PAPD_COMP_ON 1
126
127#define NPHY_SROM_TEMPSHIFT 32
128#define NPHY_SROM_MAXTEMPOFFSET 16
129#define NPHY_SROM_MINTEMPOFFSET -16
130
131#define NPHY_CAL_MAXTEMPDELTA 64
132
133#define NPHY_NOISEVAR_TBLLEN40 256
134#define NPHY_NOISEVAR_TBLLEN20 128
135
136#define NPHY_ANARXLPFBW_REDUCTIONFACT 7
137
138#define NPHY_ADJUSTED_MINCRSPOWER 0x1e
139
b6fe70c3
RV
140/* 5357 Chip specific ChipControl register bits */
141#define CCTRL5357_EXTPA (1<<14) /* extPA in ChipControl 1, bit 14 */
142#define CCTRL5357_ANT_MUX_2o3 (1<<15) /* 2o3 in ChipControl 1, bit 15 */
143
a9533e7e 144typedef struct _nphy_iqcal_params {
7d4df48e
GKH
145 u16 txlpf;
146 u16 txgm;
147 u16 pga;
148 u16 pad;
149 u16 ipa;
150 u16 cal_gain;
151 u16 ncorr[5];
a9533e7e
HP
152} nphy_iqcal_params_t;
153
154typedef struct _nphy_txiqcal_ladder {
e868ab03
GKH
155 u8 percent;
156 u8 g_env;
a9533e7e
HP
157} nphy_txiqcal_ladder_t;
158
159typedef struct {
160 nphy_txgains_t gains;
161 bool useindex;
e868ab03 162 u8 index;
a9533e7e
HP
163} nphy_ipa_txcalgains_t;
164
165typedef struct nphy_papd_restore_state_t {
7d4df48e
GKH
166 u16 fbmix[2];
167 u16 vga_master[2];
168 u16 intpa_master[2];
169 u16 afectrl[2];
170 u16 afeoverride[2];
171 u16 pwrup[2];
172 u16 atten[2];
173 u16 mm;
a9533e7e
HP
174} nphy_papd_restore_state;
175
176typedef struct _nphy_ipa_txrxgain {
7d4df48e
GKH
177 u16 hpvga;
178 u16 lpf_biq1;
179 u16 lpf_biq0;
180 u16 lna2;
181 u16 lna1;
562c8850 182 s8 txpwrindex;
a9533e7e
HP
183} nphy_ipa_txrxgain_t;
184
185#define NPHY_IPA_RXCAL_MAXGAININDEX (6 - 1)
186
187nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz[] = { {0, 0, 0, 0, 0, 100},
188{0, 0, 0, 0, 0, 50},
189{0, 0, 0, 0, 0, -1},
190{0, 0, 0, 3, 0, -1},
191{0, 0, 3, 3, 0, -1},
192{0, 2, 3, 3, 0, -1}
193};
194
195nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz[] = { {0, 0, 0, 0, 0, 128},
196{0, 0, 0, 0, 0, 70},
197{0, 0, 0, 0, 0, 20},
198{0, 0, 0, 3, 0, 20},
199{0, 0, 3, 3, 0, 20},
200{0, 2, 3, 3, 0, 20}
201};
202
203nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_5GHz_rev7[] = { {0, 0, 0, 0, 0, 100},
204{0, 0, 0, 0, 0, 50},
205{0, 0, 0, 0, 0, -1},
206{0, 0, 0, 3, 0, -1},
207{0, 0, 3, 3, 0, -1},
208{0, 0, 5, 3, 0, -1}
209};
210
211nphy_ipa_txrxgain_t nphy_ipa_rxcal_gaintbl_2GHz_rev7[] = { {0, 0, 0, 0, 0, 10},
212{0, 0, 0, 1, 0, 10},
213{0, 0, 1, 2, 0, 10},
214{0, 0, 1, 3, 0, 10},
215{0, 0, 4, 3, 0, 10},
216{0, 0, 6, 3, 0, 10}
217};
218
219#define NPHY_RXCAL_TONEAMP 181
220#define NPHY_RXCAL_TONEFREQ_40MHz 4000
221#define NPHY_RXCAL_TONEFREQ_20MHz 2000
222
223enum {
224 NPHY_RXCAL_GAIN_INIT = 0,
225 NPHY_RXCAL_GAIN_UP,
226 NPHY_RXCAL_GAIN_DOWN
227};
228
229#define wlc_phy_get_papd_nphy(pi) \
230 (read_phy_reg((pi), 0x1e7) & \
231 ((0x1 << 15) | \
232 (0x1 << 14) | \
233 (0x1 << 13)))
234
235#define TXFILT_SHAPING_OFDM20 0
236#define TXFILT_SHAPING_OFDM40 1
237#define TXFILT_SHAPING_CCK 2
238#define TXFILT_DEFAULT_OFDM20 3
239#define TXFILT_DEFAULT_OFDM40 4
240
7d4df48e 241u16 NPHY_IPA_REV4_txdigi_filtcoeffs[][NPHY_NUM_DIG_FILT_COEFFS] = {
a9533e7e
HP
242 {-377, 137, -407, 208, -1527, 956, 93, 186, 93,
243 230, -44, 230, 201, -191, 201},
244 {-77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5,
245 26, 34, -32, 34},
246 {-360, 164, -376, 164, -1533, 576, 308, -314, 308,
247 121, -73, 121, 91, 124, 91},
248 {-295, 200, -363, 142, -1391, 826, 151, 301, 151,
249 151, 301, 151, 602, -752, 602},
250 {-92, 58, -96, 49, -104, 44, 17, 35, 17,
251 12, 25, 12, 13, 27, 13},
252 {-375, 136, -399, 209, -1479, 949, 130, 260, 130,
253 230, -44, 230, 201, -191, 201},
254 {0xed9, 0xc8, 0xe95, 0x8e, 0xa91, 0x33a, 0x97, 0x12d, 0x97,
255 0x97, 0x12d, 0x97, 0x25a, 0xd10, 0x25a}
256};
257
258typedef struct _chan_info_nphy_2055 {
7d4df48e
GKH
259 u16 chan;
260 u16 freq;
a9533e7e 261 uint unknown;
e868ab03
GKH
262 u8 RF_pll_ref;
263 u8 RF_rf_pll_mod1;
264 u8 RF_rf_pll_mod0;
265 u8 RF_vco_cap_tail;
266 u8 RF_vco_cal1;
267 u8 RF_vco_cal2;
268 u8 RF_pll_lf_c1;
269 u8 RF_pll_lf_r1;
270 u8 RF_pll_lf_c2;
271 u8 RF_lgbuf_cen_buf;
272 u8 RF_lgen_tune1;
273 u8 RF_lgen_tune2;
274 u8 RF_core1_lgbuf_a_tune;
275 u8 RF_core1_lgbuf_g_tune;
276 u8 RF_core1_rxrf_reg1;
277 u8 RF_core1_tx_pga_pad_tn;
278 u8 RF_core1_tx_mx_bgtrim;
279 u8 RF_core2_lgbuf_a_tune;
280 u8 RF_core2_lgbuf_g_tune;
281 u8 RF_core2_rxrf_reg1;
282 u8 RF_core2_tx_pga_pad_tn;
283 u8 RF_core2_tx_mx_bgtrim;
7d4df48e
GKH
284 u16 PHY_BW1a;
285 u16 PHY_BW2;
286 u16 PHY_BW3;
287 u16 PHY_BW4;
288 u16 PHY_BW5;
289 u16 PHY_BW6;
a9533e7e
HP
290} chan_info_nphy_2055_t;
291
292typedef struct _chan_info_nphy_radio205x {
7d4df48e
GKH
293 u16 chan;
294 u16 freq;
e868ab03
GKH
295 u8 RF_SYN_pll_vcocal1;
296 u8 RF_SYN_pll_vcocal2;
297 u8 RF_SYN_pll_refdiv;
298 u8 RF_SYN_pll_mmd2;
299 u8 RF_SYN_pll_mmd1;
300 u8 RF_SYN_pll_loopfilter1;
301 u8 RF_SYN_pll_loopfilter2;
302 u8 RF_SYN_pll_loopfilter3;
303 u8 RF_SYN_pll_loopfilter4;
304 u8 RF_SYN_pll_loopfilter5;
305 u8 RF_SYN_reserved_addr27;
306 u8 RF_SYN_reserved_addr28;
307 u8 RF_SYN_reserved_addr29;
308 u8 RF_SYN_logen_VCOBUF1;
309 u8 RF_SYN_logen_MIXER2;
310 u8 RF_SYN_logen_BUF3;
311 u8 RF_SYN_logen_BUF4;
312 u8 RF_RX0_lnaa_tune;
313 u8 RF_RX0_lnag_tune;
314 u8 RF_TX0_intpaa_boost_tune;
315 u8 RF_TX0_intpag_boost_tune;
316 u8 RF_TX0_pada_boost_tune;
317 u8 RF_TX0_padg_boost_tune;
318 u8 RF_TX0_pgaa_boost_tune;
319 u8 RF_TX0_pgag_boost_tune;
320 u8 RF_TX0_mixa_boost_tune;
321 u8 RF_TX0_mixg_boost_tune;
322 u8 RF_RX1_lnaa_tune;
323 u8 RF_RX1_lnag_tune;
324 u8 RF_TX1_intpaa_boost_tune;
325 u8 RF_TX1_intpag_boost_tune;
326 u8 RF_TX1_pada_boost_tune;
327 u8 RF_TX1_padg_boost_tune;
328 u8 RF_TX1_pgaa_boost_tune;
329 u8 RF_TX1_pgag_boost_tune;
330 u8 RF_TX1_mixa_boost_tune;
331 u8 RF_TX1_mixg_boost_tune;
7d4df48e
GKH
332 u16 PHY_BW1a;
333 u16 PHY_BW2;
334 u16 PHY_BW3;
335 u16 PHY_BW4;
336 u16 PHY_BW5;
337 u16 PHY_BW6;
a9533e7e
HP
338} chan_info_nphy_radio205x_t;
339
340typedef struct _chan_info_nphy_radio2057 {
7d4df48e
GKH
341 u16 chan;
342 u16 freq;
e868ab03
GKH
343 u8 RF_vcocal_countval0;
344 u8 RF_vcocal_countval1;
345 u8 RF_rfpll_refmaster_sparextalsize;
346 u8 RF_rfpll_loopfilter_r1;
347 u8 RF_rfpll_loopfilter_c2;
348 u8 RF_rfpll_loopfilter_c1;
349 u8 RF_cp_kpd_idac;
350 u8 RF_rfpll_mmd0;
351 u8 RF_rfpll_mmd1;
352 u8 RF_vcobuf_tune;
353 u8 RF_logen_mx2g_tune;
354 u8 RF_logen_mx5g_tune;
355 u8 RF_logen_indbuf2g_tune;
356 u8 RF_logen_indbuf5g_tune;
357 u8 RF_txmix2g_tune_boost_pu_core0;
358 u8 RF_pad2g_tune_pus_core0;
359 u8 RF_pga_boost_tune_core0;
360 u8 RF_txmix5g_boost_tune_core0;
361 u8 RF_pad5g_tune_misc_pus_core0;
362 u8 RF_lna2g_tune_core0;
363 u8 RF_lna5g_tune_core0;
364 u8 RF_txmix2g_tune_boost_pu_core1;
365 u8 RF_pad2g_tune_pus_core1;
366 u8 RF_pga_boost_tune_core1;
367 u8 RF_txmix5g_boost_tune_core1;
368 u8 RF_pad5g_tune_misc_pus_core1;
369 u8 RF_lna2g_tune_core1;
370 u8 RF_lna5g_tune_core1;
7d4df48e
GKH
371 u16 PHY_BW1a;
372 u16 PHY_BW2;
373 u16 PHY_BW3;
374 u16 PHY_BW4;
375 u16 PHY_BW5;
376 u16 PHY_BW6;
a9533e7e
HP
377} chan_info_nphy_radio2057_t;
378
379typedef struct _chan_info_nphy_radio2057_rev5 {
7d4df48e
GKH
380 u16 chan;
381 u16 freq;
e868ab03
GKH
382 u8 RF_vcocal_countval0;
383 u8 RF_vcocal_countval1;
384 u8 RF_rfpll_refmaster_sparextalsize;
385 u8 RF_rfpll_loopfilter_r1;
386 u8 RF_rfpll_loopfilter_c2;
387 u8 RF_rfpll_loopfilter_c1;
388 u8 RF_cp_kpd_idac;
389 u8 RF_rfpll_mmd0;
390 u8 RF_rfpll_mmd1;
391 u8 RF_vcobuf_tune;
392 u8 RF_logen_mx2g_tune;
393 u8 RF_logen_indbuf2g_tune;
394 u8 RF_txmix2g_tune_boost_pu_core0;
395 u8 RF_pad2g_tune_pus_core0;
396 u8 RF_lna2g_tune_core0;
397 u8 RF_txmix2g_tune_boost_pu_core1;
398 u8 RF_pad2g_tune_pus_core1;
399 u8 RF_lna2g_tune_core1;
7d4df48e
GKH
400 u16 PHY_BW1a;
401 u16 PHY_BW2;
402 u16 PHY_BW3;
403 u16 PHY_BW4;
404 u16 PHY_BW5;
405 u16 PHY_BW6;
a9533e7e
HP
406} chan_info_nphy_radio2057_rev5_t;
407
408typedef struct nphy_sfo_cfg {
7d4df48e
GKH
409 u16 PHY_BW1a;
410 u16 PHY_BW2;
411 u16 PHY_BW3;
412 u16 PHY_BW4;
413 u16 PHY_BW5;
414 u16 PHY_BW6;
a9533e7e
HP
415} nphy_sfo_cfg_t;
416
417static chan_info_nphy_2055_t chan_info_nphy_2055[] = {
418 {
419 184, 4920, 3280, 0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
420 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
421 0x0F, 0x8F, 0x7B4, 0x7B0, 0x7AC, 0x214, 0x215, 0x216},
422 {
423 186, 4930, 3287, 0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
424 0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
425 0x0F, 0x8F, 0x7B8, 0x7B4, 0x7B0, 0x213, 0x214, 0x215},
426 {
427 188, 4940, 3293, 0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
428 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
429 0x0F, 0x8F, 0x7BC, 0x7B8, 0x7B4, 0x212, 0x213, 0x214},
430 {
431 190, 4950, 3300, 0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
432 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
433 0x0F, 0x8F, 0x7C0, 0x7BC, 0x7B8, 0x211, 0x212, 0x213},
434 {
435 192, 4960, 3307, 0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
436 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
437 0x0F, 0x8F, 0x7C4, 0x7C0, 0x7BC, 0x20F, 0x211, 0x212},
438 {
439 194, 4970, 3313, 0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
440 0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
441 0x0F, 0x8F, 0x7C8, 0x7C4, 0x7C0, 0x20E, 0x20F, 0x211},
442 {
443 196, 4980, 3320, 0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
444 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
445 0x0F, 0x8F, 0x7CC, 0x7C8, 0x7C4, 0x20D, 0x20E, 0x20F},
446 {
447 198, 4990, 3327, 0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
448 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
449 0x0F, 0x8F, 0x7D0, 0x7CC, 0x7C8, 0x20C, 0x20D, 0x20E},
450 {
451 200, 5000, 3333, 0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
452 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
453 0x0F, 0x8F, 0x7D4, 0x7D0, 0x7CC, 0x20B, 0x20C, 0x20D},
454 {
455 202, 5010, 3340, 0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
456 0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
457 0x0F, 0x8F, 0x7D8, 0x7D4, 0x7D0, 0x20A, 0x20B, 0x20C},
458 {
459 204, 5020, 3347, 0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
460 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
461 0x0F, 0x8F, 0x7DC, 0x7D8, 0x7D4, 0x209, 0x20A, 0x20B},
462 {
463 206, 5030, 3353, 0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
464 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
465 0x0F, 0x8F, 0x7E0, 0x7DC, 0x7D8, 0x208, 0x209, 0x20A},
466 {
467 208, 5040, 3360, 0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
468 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
469 0x0F, 0x8F, 0x7E4, 0x7E0, 0x7DC, 0x207, 0x208, 0x209},
470 {
471 210, 5050, 3367, 0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
472 0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F, 0x8F, 0xFF, 0x00, 0x0F,
473 0x0F, 0x8F, 0x7E8, 0x7E4, 0x7E0, 0x206, 0x207, 0x208},
474 {
475 212, 5060, 3373, 0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
476 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
477 0x0F, 0x8E, 0x7EC, 0x7E8, 0x7E4, 0x205, 0x206, 0x207},
478 {
479 214, 5070, 3380, 0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
480 0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F, 0x8E, 0xFF, 0x00, 0x0E,
481 0x0F, 0x8E, 0x7F0, 0x7EC, 0x7E8, 0x204, 0x205, 0x206},
482 {
483 216, 5080, 3387, 0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
484 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
485 0x0F, 0x8D, 0x7F4, 0x7F0, 0x7EC, 0x203, 0x204, 0x205},
486 {
487 218, 5090, 3393, 0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
488 0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F, 0x8D, 0xEE, 0x00, 0x0E,
489 0x0F, 0x8D, 0x7F8, 0x7F4, 0x7F0, 0x202, 0x203, 0x204},
490 {
491 220, 5100, 3400, 0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
492 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
493 0x0F, 0x8D, 0x7FC, 0x7F8, 0x7F4, 0x201, 0x202, 0x203},
494 {
495 222, 5110, 3407, 0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
496 0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F, 0x8D, 0xEE, 0x00, 0x0D,
497 0x0F, 0x8D, 0x800, 0x7FC, 0x7F8, 0x200, 0x201, 0x202},
498 {
499 224, 5120, 3413, 0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
500 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
501 0x0F, 0x8C, 0x804, 0x800, 0x7FC, 0x1FF, 0x200, 0x201},
502 {
503 226, 5130, 3420, 0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
504 0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F, 0x8C, 0xDD, 0x00, 0x0D,
505 0x0F, 0x8C, 0x808, 0x804, 0x800, 0x1FE, 0x1FF, 0x200},
506 {
507 228, 5140, 3427, 0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
508 0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E, 0x8B, 0xDD, 0x00, 0x0C,
509 0x0E, 0x8B, 0x80C, 0x808, 0x804, 0x1FD, 0x1FE, 0x1FF},
510 {
511 32, 5160, 3440, 0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
512 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
513 0x0D, 0x8A, 0x814, 0x810, 0x80C, 0x1FB, 0x1FC, 0x1FD},
514 {
515 34, 5170, 3447, 0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
516 0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D, 0x8A, 0xCC, 0x00, 0x0B,
517 0x0D, 0x8A, 0x818, 0x814, 0x810, 0x1FA, 0x1FB, 0x1FC},
518 {
519 36, 5180, 3453, 0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
520 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
521 0x0C, 0x89, 0x81C, 0x818, 0x814, 0x1F9, 0x1FA, 0x1FB},
522 {
523 38, 5190, 3460, 0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
524 0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C, 0x89, 0xCC, 0x00, 0x0B,
525 0x0C, 0x89, 0x820, 0x81C, 0x818, 0x1F8, 0x1F9, 0x1FA},
526 {
527 40, 5200, 3467, 0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
528 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
529 0x0B, 0x89, 0x824, 0x820, 0x81C, 0x1F7, 0x1F8, 0x1F9},
530 {
531 42, 5210, 3473, 0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
532 0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B, 0x89, 0xBB, 0x00, 0x0A,
533 0x0B, 0x89, 0x828, 0x824, 0x820, 0x1F6, 0x1F7, 0x1F8},
534 {
535 44, 5220, 3480, 0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
536 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
537 0x0A, 0x88, 0x82C, 0x828, 0x824, 0x1F5, 0x1F6, 0x1F7},
538 {
539 46, 5230, 3487, 0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
540 0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A, 0x88, 0xBB, 0x00, 0x09,
541 0x0A, 0x88, 0x830, 0x82C, 0x828, 0x1F4, 0x1F5, 0x1F6},
542 {
543 48, 5240, 3493, 0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
544 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
545 0x0A, 0x87, 0x834, 0x830, 0x82C, 0x1F3, 0x1F4, 0x1F5},
546 {
547 50, 5250, 3500, 0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
548 0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A, 0x87, 0xAA, 0x00, 0x09,
549 0x0A, 0x87, 0x838, 0x834, 0x830, 0x1F2, 0x1F3, 0x1F4},
550 {
551 52, 5260, 3507, 0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
552 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
553 0x09, 0x87, 0x83C, 0x838, 0x834, 0x1F1, 0x1F2, 0x1F3},
554 {
555 54, 5270, 3513, 0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
556 0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09, 0x87, 0xAA, 0x00, 0x08,
557 0x09, 0x87, 0x840, 0x83C, 0x838, 0x1F0, 0x1F1, 0x1F2},
558 {
559 56, 5280, 3520, 0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
560 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
561 0x08, 0x86, 0x844, 0x840, 0x83C, 0x1F0, 0x1F0, 0x1F1},
562 {
563 58, 5290, 3527, 0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
564 0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08, 0x86, 0x99, 0x00, 0x08,
565 0x08, 0x86, 0x848, 0x844, 0x840, 0x1EF, 0x1F0, 0x1F0},
566 {
567 60, 5300, 3533, 0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
568 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
569 0x07, 0x85, 0x84C, 0x848, 0x844, 0x1EE, 0x1EF, 0x1F0},
570 {
571 62, 5310, 3540, 0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
572 0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07, 0x85, 0x99, 0x00, 0x08,
573 0x07, 0x85, 0x850, 0x84C, 0x848, 0x1ED, 0x1EE, 0x1EF},
574 {
575 64, 5320, 3547, 0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
576 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
577 0x07, 0x84, 0x854, 0x850, 0x84C, 0x1EC, 0x1ED, 0x1EE},
578 {
579 66, 5330, 3553, 0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
580 0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07, 0x84, 0x88, 0x00, 0x07,
581 0x07, 0x84, 0x858, 0x854, 0x850, 0x1EB, 0x1EC, 0x1ED},
582 {
583 68, 5340, 3560, 0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
584 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
585 0x06, 0x84, 0x85C, 0x858, 0x854, 0x1EA, 0x1EB, 0x1EC},
586 {
587 70, 5350, 3567, 0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
588 0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06, 0x84, 0x88, 0x00, 0x07,
589 0x06, 0x84, 0x860, 0x85C, 0x858, 0x1E9, 0x1EA, 0x1EB},
590 {
591 72, 5360, 3573, 0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
592 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
593 0x05, 0x83, 0x864, 0x860, 0x85C, 0x1E8, 0x1E9, 0x1EA},
594 {
595 74, 5370, 3580, 0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
596 0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05, 0x83, 0x77, 0x00, 0x06,
597 0x05, 0x83, 0x868, 0x864, 0x860, 0x1E7, 0x1E8, 0x1E9},
598 {
599 76, 5380, 3587, 0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
600 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
601 0x04, 0x82, 0x86C, 0x868, 0x864, 0x1E6, 0x1E7, 0x1E8},
602 {
603 78, 5390, 3593, 0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
604 0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04, 0x82, 0x77, 0x00, 0x06,
605 0x04, 0x82, 0x870, 0x86C, 0x868, 0x1E5, 0x1E6, 0x1E7},
606 {
607 80, 5400, 3600, 0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
608 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
609 0x04, 0x81, 0x874, 0x870, 0x86C, 0x1E5, 0x1E5, 0x1E6},
610 {
611 82, 5410, 3607, 0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
612 0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04, 0x81, 0x66, 0x00, 0x05,
613 0x04, 0x81, 0x878, 0x874, 0x870, 0x1E4, 0x1E5, 0x1E5},
614 {
615 84, 5420, 3613, 0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
616 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
617 0x03, 0x80, 0x87C, 0x878, 0x874, 0x1E3, 0x1E4, 0x1E5},
618 {
619 86, 5430, 3620, 0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
620 0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03, 0x80, 0x66, 0x00, 0x05,
621 0x03, 0x80, 0x880, 0x87C, 0x878, 0x1E2, 0x1E3, 0x1E4},
622 {
623 88, 5440, 3627, 0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
624 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
625 0x02, 0x80, 0x884, 0x880, 0x87C, 0x1E1, 0x1E2, 0x1E3},
626 {
627 90, 5450, 3633, 0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
628 0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02, 0x80, 0x55, 0x00, 0x04,
629 0x02, 0x80, 0x888, 0x884, 0x880, 0x1E0, 0x1E1, 0x1E2},
630 {
631 92, 5460, 3640, 0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
632 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
633 0x01, 0x80, 0x88C, 0x888, 0x884, 0x1DF, 0x1E0, 0x1E1},
634 {
635 94, 5470, 3647, 0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
636 0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01, 0x80, 0x55, 0x00, 0x04,
637 0x01, 0x80, 0x890, 0x88C, 0x888, 0x1DE, 0x1DF, 0x1E0},
638 {
639 96, 5480, 3653, 0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
640 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
641 0x00, 0x80, 0x894, 0x890, 0x88C, 0x1DD, 0x1DE, 0x1DF},
642 {
643 98, 5490, 3660, 0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
644 0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
645 0x00, 0x80, 0x898, 0x894, 0x890, 0x1DD, 0x1DD, 0x1DE},
646 {
647 100, 5500, 3667, 0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
648 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
649 0x00, 0x80, 0x89C, 0x898, 0x894, 0x1DC, 0x1DD, 0x1DD},
650 {
651 102, 5510, 3673, 0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
652 0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00, 0x80, 0x44, 0x00, 0x03,
653 0x00, 0x80, 0x8A0, 0x89C, 0x898, 0x1DB, 0x1DC, 0x1DD},
654 {
655 104, 5520, 3680, 0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
656 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
657 0x00, 0x80, 0x8A4, 0x8A0, 0x89C, 0x1DA, 0x1DB, 0x1DC},
658 {
659 106, 5530, 3687, 0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
660 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
661 0x00, 0x80, 0x8A8, 0x8A4, 0x8A0, 0x1D9, 0x1DA, 0x1DB},
662 {
663 108, 5540, 3693, 0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
664 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
665 0x00, 0x80, 0x8AC, 0x8A8, 0x8A4, 0x1D8, 0x1D9, 0x1DA},
666 {
667 110, 5550, 3700, 0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
668 0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00, 0x80, 0x33, 0x00, 0x02,
669 0x00, 0x80, 0x8B0, 0x8AC, 0x8A8, 0x1D7, 0x1D8, 0x1D9},
670 {
671 112, 5560, 3707, 0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
672 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
673 0x00, 0x80, 0x8B4, 0x8B0, 0x8AC, 0x1D7, 0x1D7, 0x1D8},
674 {
675 114, 5570, 3713, 0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
676 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
677 0x00, 0x80, 0x8B8, 0x8B4, 0x8B0, 0x1D6, 0x1D7, 0x1D7},
678 {
679 116, 5580, 3720, 0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
680 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
681 0x00, 0x80, 0x8BC, 0x8B8, 0x8B4, 0x1D5, 0x1D6, 0x1D7},
682 {
683 118, 5590, 3727, 0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
684 0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x80, 0x22, 0x00, 0x01,
685 0x00, 0x80, 0x8C0, 0x8BC, 0x8B8, 0x1D4, 0x1D5, 0x1D6},
686 {
687 120, 5600, 3733, 0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
688 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
689 0x00, 0x80, 0x8C4, 0x8C0, 0x8BC, 0x1D3, 0x1D4, 0x1D5},
690 {
691 122, 5610, 3740, 0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
692 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x80, 0x11, 0x00, 0x01,
693 0x00, 0x80, 0x8C8, 0x8C4, 0x8C0, 0x1D2, 0x1D3, 0x1D4},
694 {
695 124, 5620, 3747, 0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
696 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
697 0x00, 0x80, 0x8CC, 0x8C8, 0x8C4, 0x1D2, 0x1D2, 0x1D3},
698 {
699 126, 5630, 3753, 0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
700 0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00,
701 0x00, 0x80, 0x8D0, 0x8CC, 0x8C8, 0x1D1, 0x1D2, 0x1D2},
702 {
703 128, 5640, 3760, 0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
704 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
705 0x00, 0x80, 0x8D4, 0x8D0, 0x8CC, 0x1D0, 0x1D1, 0x1D2},
706 {
707 130, 5650, 3767, 0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
708 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
709 0x00, 0x80, 0x8D8, 0x8D4, 0x8D0, 0x1CF, 0x1D0, 0x1D1},
710 {
711 132, 5660, 3773, 0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
712 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
713 0x00, 0x80, 0x8DC, 0x8D8, 0x8D4, 0x1CE, 0x1CF, 0x1D0},
714 {
715 134, 5670, 3780, 0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
716 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
717 0x00, 0x80, 0x8E0, 0x8DC, 0x8D8, 0x1CE, 0x1CE, 0x1CF},
718 {
719 136, 5680, 3787, 0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
720 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
721 0x00, 0x80, 0x8E4, 0x8E0, 0x8DC, 0x1CD, 0x1CE, 0x1CE},
722 {
723 138, 5690, 3793, 0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
724 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
725 0x00, 0x80, 0x8E8, 0x8E4, 0x8E0, 0x1CC, 0x1CD, 0x1CE},
726 {
727 140, 5700, 3800, 0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
728 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
729 0x00, 0x80, 0x8EC, 0x8E8, 0x8E4, 0x1CB, 0x1CC, 0x1CD},
730 {
731 142, 5710, 3807, 0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
732 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
733 0x00, 0x80, 0x8F0, 0x8EC, 0x8E8, 0x1CA, 0x1CB, 0x1CC},
734 {
735 144, 5720, 3813, 0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
736 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
737 0x00, 0x80, 0x8F4, 0x8F0, 0x8EC, 0x1C9, 0x1CA, 0x1CB},
738 {
739 145, 5725, 3817, 0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
740 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
741 0x00, 0x80, 0x8F6, 0x8F2, 0x8EE, 0x1C9, 0x1CA, 0x1CB},
742 {
743 146, 5730, 3820, 0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
744 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
745 0x00, 0x80, 0x8F8, 0x8F4, 0x8F0, 0x1C9, 0x1C9, 0x1CA},
746 {
747 147, 5735, 3823, 0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
748 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
749 0x00, 0x80, 0x8FA, 0x8F6, 0x8F2, 0x1C8, 0x1C9, 0x1CA},
750 {
751 148, 5740, 3827, 0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
752 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
753 0x00, 0x80, 0x8FC, 0x8F8, 0x8F4, 0x1C8, 0x1C9, 0x1C9},
754 {
755 149, 5745, 3830, 0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
756 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
757 0x00, 0x80, 0x8FE, 0x8FA, 0x8F6, 0x1C8, 0x1C8, 0x1C9},
758 {
759 150, 5750, 3833, 0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
760 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
761 0x00, 0x80, 0x900, 0x8FC, 0x8F8, 0x1C7, 0x1C8, 0x1C9},
762 {
763 151, 5755, 3837, 0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
764 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
765 0x00, 0x80, 0x902, 0x8FE, 0x8FA, 0x1C7, 0x1C8, 0x1C8},
766 {
767 152, 5760, 3840, 0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
768 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
769 0x00, 0x80, 0x904, 0x900, 0x8FC, 0x1C6, 0x1C7, 0x1C8},
770 {
771 153, 5765, 3843, 0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
772 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
773 0x00, 0x80, 0x906, 0x902, 0x8FE, 0x1C6, 0x1C7, 0x1C8},
774 {
775 154, 5770, 3847, 0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
776 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
777 0x00, 0x80, 0x908, 0x904, 0x900, 0x1C6, 0x1C6, 0x1C7},
778 {
779 155, 5775, 3850, 0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
780 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
781 0x00, 0x80, 0x90A, 0x906, 0x902, 0x1C5, 0x1C6, 0x1C7},
782 {
783 156, 5780, 3853, 0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
784 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
785 0x00, 0x80, 0x90C, 0x908, 0x904, 0x1C5, 0x1C6, 0x1C6},
786 {
787 157, 5785, 3857, 0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
788 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
789 0x00, 0x80, 0x90E, 0x90A, 0x906, 0x1C4, 0x1C5, 0x1C6},
790 {
791 158, 5790, 3860, 0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
792 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
793 0x00, 0x80, 0x910, 0x90C, 0x908, 0x1C4, 0x1C5, 0x1C6},
794 {
795 159, 5795, 3863, 0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
796 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
797 0x00, 0x80, 0x912, 0x90E, 0x90A, 0x1C4, 0x1C4, 0x1C5},
798 {
799 160, 5800, 3867, 0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
800 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
801 0x00, 0x80, 0x914, 0x910, 0x90C, 0x1C3, 0x1C4, 0x1C5},
802 {
803 161, 5805, 3870, 0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
804 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
805 0x00, 0x80, 0x916, 0x912, 0x90E, 0x1C3, 0x1C4, 0x1C4},
806 {
807 162, 5810, 3873, 0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
808 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
809 0x00, 0x80, 0x918, 0x914, 0x910, 0x1C2, 0x1C3, 0x1C4},
810 {
811 163, 5815, 3877, 0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
812 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
813 0x00, 0x80, 0x91A, 0x916, 0x912, 0x1C2, 0x1C3, 0x1C4},
814 {
815 164, 5820, 3880, 0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
816 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
817 0x00, 0x80, 0x91C, 0x918, 0x914, 0x1C2, 0x1C2, 0x1C3},
818 {
819 165, 5825, 3883, 0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
820 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
821 0x00, 0x80, 0x91E, 0x91A, 0x916, 0x1C1, 0x1C2, 0x1C3},
822 {
823 166, 5830, 3887, 0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
824 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
825 0x00, 0x80, 0x920, 0x91C, 0x918, 0x1C1, 0x1C2, 0x1C2},
826 {
827 168, 5840, 3893, 0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
828 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
829 0x00, 0x80, 0x924, 0x920, 0x91C, 0x1C0, 0x1C1, 0x1C2},
830 {
831 170, 5850, 3900, 0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
832 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
833 0x00, 0x80, 0x928, 0x924, 0x920, 0x1BF, 0x1C0, 0x1C1},
834 {
835 172, 5860, 3907, 0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
836 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
837 0x00, 0x80, 0x92C, 0x928, 0x924, 0x1BF, 0x1BF, 0x1C0},
838 {
839 174, 5870, 3913, 0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
840 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
841 0x00, 0x80, 0x930, 0x92C, 0x928, 0x1BE, 0x1BF, 0x1BF},
842 {
843 176, 5880, 3920, 0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
844 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
845 0x00, 0x80, 0x934, 0x930, 0x92C, 0x1BD, 0x1BE, 0x1BF},
846 {
847 178, 5890, 3927, 0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
848 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
849 0x00, 0x80, 0x938, 0x934, 0x930, 0x1BC, 0x1BD, 0x1BE},
850 {
851 180, 5900, 3933, 0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
852 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
853 0x00, 0x80, 0x93C, 0x938, 0x934, 0x1BC, 0x1BC, 0x1BD},
854 {
855 182, 5910, 3940, 0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
856 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
857 0x00, 0x80, 0x940, 0x93C, 0x938, 0x1BB, 0x1BC, 0x1BC},
858 {
859 1, 2412, 3216, 0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
860 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C, 0x80, 0xFF, 0x88, 0x0D,
861 0x0C, 0x80, 0x3C9, 0x3C5, 0x3C1, 0x43A, 0x43F, 0x443},
862 {
863 2, 2417, 3223, 0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
864 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B, 0x80, 0xFF, 0x88, 0x0C,
865 0x0B, 0x80, 0x3CB, 0x3C7, 0x3C3, 0x438, 0x43D, 0x441},
866 {
867 3, 2422, 3229, 0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
868 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
869 0x0A, 0x80, 0x3CD, 0x3C9, 0x3C5, 0x436, 0x43A, 0x43F},
870 {
871 4, 2427, 3236, 0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
872 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A, 0x80, 0xFF, 0x88, 0x0C,
873 0x0A, 0x80, 0x3CF, 0x3CB, 0x3C7, 0x434, 0x438, 0x43D},
874 {
875 5, 2432, 3243, 0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
876 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09, 0x80, 0xFF, 0x88, 0x0C,
877 0x09, 0x80, 0x3D1, 0x3CD, 0x3C9, 0x431, 0x436, 0x43A},
878 {
879 6, 2437, 3249, 0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
880 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08, 0x80, 0xFF, 0x88, 0x0B,
881 0x08, 0x80, 0x3D3, 0x3CF, 0x3CB, 0x42F, 0x434, 0x438},
882 {
883 7, 2442, 3256, 0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
884 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07, 0x80, 0xFF, 0x88, 0x0A,
885 0x07, 0x80, 0x3D5, 0x3D1, 0x3CD, 0x42D, 0x431, 0x436},
886 {
887 8, 2447, 3263, 0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
888 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06, 0x80, 0xFF, 0x88, 0x0A,
889 0x06, 0x80, 0x3D7, 0x3D3, 0x3CF, 0x42B, 0x42F, 0x434},
890 {
891 9, 2452, 3269, 0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
892 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06, 0x80, 0xFF, 0x88, 0x09,
893 0x06, 0x80, 0x3D9, 0x3D5, 0x3D1, 0x429, 0x42D, 0x431},
894 {
895 10, 2457, 3276, 0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
896 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05, 0x80, 0xFF, 0x88, 0x08,
897 0x05, 0x80, 0x3DB, 0x3D7, 0x3D3, 0x427, 0x42B, 0x42F},
898 {
899 11, 2462, 3283, 0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
900 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04, 0x80, 0xFF, 0x88, 0x08,
901 0x04, 0x80, 0x3DD, 0x3D9, 0x3D5, 0x424, 0x429, 0x42D},
902 {
903 12, 2467, 3289, 0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
904 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03, 0x80, 0xFF, 0x88, 0x08,
905 0x03, 0x80, 0x3DF, 0x3DB, 0x3D7, 0x422, 0x427, 0x42B},
906 {
907 13, 2472, 3296, 0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
908 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03, 0x80, 0xFF, 0x88, 0x07,
909 0x03, 0x80, 0x3E1, 0x3DD, 0x3D9, 0x420, 0x424, 0x429},
910 {
911 14, 2484, 3312, 0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
912 0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01, 0x80, 0xFF, 0x88, 0x07,
913 0x01, 0x80, 0x3E6, 0x3E2, 0x3DE, 0x41B, 0x41F, 0x424}
914};
915
916static chan_info_nphy_radio205x_t chan_info_nphyrev3_2056[] = {
917 {
918 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
919 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
920 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
921 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
922 {
923 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
924 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
925 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
926 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
927 {
928 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
929 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
930 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
931 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
932 {
933 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
934 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
935 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
936 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
937 {
938 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
939 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
940 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
941 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
942 {
943 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
944 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
945 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
946 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
947 {
948 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
949 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
950 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
951 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
952 {
953 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
954 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x08, 0x00, 0x7f,
955 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0b,
956 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
957 {
958 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
959 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
960 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
961 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
962 {
963 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
964 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
965 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
966 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
967 {
968 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
969 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
970 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
971 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
972 {
973 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
974 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
975 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
976 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
977 {
978 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
979 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
980 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
981 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
982 {
983 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
984 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
985 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
986 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
987 {
988 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
989 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
990 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
991 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
992 {
993 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
994 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
995 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
996 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
997 {
998 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
999 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1000 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1001 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1002 {
1003 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1004 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1005 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1006 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1007 {
1008 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1009 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1010 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1011 0x00, 0xff, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1012 {
1013 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1014 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1015 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1016 0x00, 0xfc, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1017 {
1018 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1019 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1020 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1021 0x00, 0xfc, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1022 {
1023 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1024 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1025 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1026 0x00, 0xfc, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1027 {
1028 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1029 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1030 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1031 0x00, 0xfc, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1032 {
1033 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1034 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1035 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1036 0x00, 0xfc, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1037 {
1038 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1039 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x7f,
1040 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xff, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1041 0x00, 0xfc, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1042 {
1043 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1044 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1045 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1046 0x00, 0xfc, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1047 {
1048 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1049 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x07, 0x00, 0x7f,
1050 0x00, 0x0b, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0b,
1051 0x00, 0xfc, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1052 {
1053 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1054 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x06, 0x00, 0x7f,
1055 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1056 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1057 {
1058 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1059 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1060 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1061 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1062 {
1063 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1064 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1065 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1066 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1067 {
1068 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1069 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x06, 0x00, 0x7f,
1070 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1071 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1072 {
1073 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1074 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1075 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1076 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1077 {
1078 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1079 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1080 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1081 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1082 {
1083 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1084 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1085 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1086 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1087 {
1088 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1089 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x06, 0x00, 0x7f,
1090 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1091 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1092 {
1093 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1094 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1095 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1096 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1097 {
1098 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1099 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x06, 0x00, 0x7f,
1100 0x00, 0x0a, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0a,
1101 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1102 {
1103 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1104 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1105 0x00, 0x09, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1106 0x00, 0xfc, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1107 {
1108 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1109 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1110 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1111 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1112 {
1113 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1114 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x05, 0x00, 0x7f,
1115 0x00, 0x09, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1116 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1117 {
1118 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1119 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1120 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1121 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1122 {
1123 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1124 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x05, 0x00, 0x7f,
1125 0x00, 0x09, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1126 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1127 {
1128 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1129 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1130 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1131 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1132 {
1133 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1134 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1135 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1136 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1137 {
1138 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1139 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1140 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1141 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1142 {
1143 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1144 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x05, 0x00, 0x7f,
1145 0x00, 0x09, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1146 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1147 {
1148 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1149 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x05, 0x00, 0x7f,
1150 0x00, 0x09, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x05, 0x00, 0x7f, 0x00, 0x09,
1151 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1152 {
1153 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1154 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1155 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1156 0x00, 0xfa, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1157 {
1158 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1159 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x04, 0x00, 0x7f,
1160 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1161 0x00, 0xfa, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1162 {
1163 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1164 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1165 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1166 0x00, 0xfa, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1167 {
1168 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1169 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x04, 0x00, 0x7f,
1170 0x00, 0x08, 0x00, 0xfa, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1171 0x00, 0xfa, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1172 {
1173 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1174 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x04, 0x00, 0x7f,
1175 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1176 0x00, 0xfa, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1177 {
1178 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1179 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x04, 0x00, 0x7f,
1180 0x00, 0x08, 0x00, 0xfa, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1181 0x00, 0xfa, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1182 {
1183 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1184 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1185 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1186 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1187 {
1188 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1189 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x04, 0x00, 0x7f,
1190 0x00, 0x08, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1191 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1192 {
1193 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1194 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x04, 0x00, 0x7f,
1195 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1196 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1197 {
1198 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1199 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x04, 0x00, 0x7f,
1200 0x00, 0x08, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x08,
1201 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1202 {
1203 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1204 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x03, 0x00, 0x7f,
1205 0x00, 0x07, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1206 0x00, 0xf8, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1207 {
1208 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1209 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1210 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1211 0x00, 0xf8, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1212 {
1213 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1214 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x03, 0x00, 0x7f,
1215 0x00, 0x07, 0x00, 0xf8, 0x00, 0x4c, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1216 0x00, 0xf8, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1217 {
1218 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1219 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1220 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1221 0x00, 0xf8, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1222 {
1223 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1224 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1225 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1226 0x00, 0xf8, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1227 {
1228 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1229 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x03, 0x00, 0x7f,
1230 0x00, 0x07, 0x00, 0xf8, 0x00, 0x3b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1231 0x00, 0xf8, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1232 {
1233 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1234 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x03, 0x00, 0x7f,
1235 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2b, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1236 0x00, 0xf8, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1237 {
1238 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1239 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x03, 0x00, 0x7f,
1240 0x00, 0x07, 0x00, 0xf8, 0x00, 0x2a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1241 0x00, 0xf8, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1242 {
1243 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1244 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1245 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1246 0x00, 0xf8, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1247 {
1248 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1249 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1250 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1251 0x00, 0xf8, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1252 {
1253 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1254 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x03, 0x00, 0x7f,
1255 0x00, 0x07, 0x00, 0xf8, 0x00, 0x1a, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1256 0x00, 0xf8, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1257 {
1258 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1259 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1260 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1261 0x00, 0xf8, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1262 {
1263 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1264 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x03, 0x00, 0x7f,
1265 0x00, 0x07, 0x00, 0xf8, 0x00, 0x19, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1266 0x00, 0xf8, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1267 {
1268 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1269 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1270 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1271 0x00, 0xf8, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1272 {
1273 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1274 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x03, 0x00, 0x7f,
1275 0x00, 0x07, 0x00, 0xf8, 0x00, 0x09, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1276 0x00, 0xf8, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1277 {
1278 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1279 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1280 0x00, 0x07, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1281 0x00, 0xf8, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1282 {
1283 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1284 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1285 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1286 0x00, 0xf6, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1287 {
1288 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1289 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1290 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1291 0x00, 0xf6, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1292 {
1293 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1294 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x03, 0x00, 0x7f,
1295 0x00, 0x07, 0x00, 0xf6, 0x00, 0x08, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1296 0x00, 0xf6, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1297 {
1298 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1299 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x03, 0x00, 0x7f,
1300 0x00, 0x07, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x07,
1301 0x00, 0xf6, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1302 {
1303 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1304 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1305 0x00, 0x06, 0x00, 0xf6, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1306 0x00, 0xf6, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1307 {
1308 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1309 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1310 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1311 0x00, 0xf4, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1312 {
1313 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1314 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x02, 0x00, 0x7f,
1315 0x00, 0x06, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1316 0x00, 0xf4, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1317 {
1318 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1319 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1320 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1321 0x00, 0xf4, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1322 {
1323 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1324 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1325 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1326 0x00, 0xf4, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1327 {
1328 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1329 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1330 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1331 0x00, 0xf4, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1332 {
1333 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1334 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1335 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1336 0x00, 0xf4, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1337 {
1338 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1339 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1340 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1341 0x00, 0xf4, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1342 {
1343 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1344 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x02, 0x00, 0x7f,
1345 0x00, 0x06, 0x00, 0xf4, 0x00, 0x06, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1346 0x00, 0xf4, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1347 {
1348 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1349 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1350 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1351 0x00, 0xf4, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1352 {
1353 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1354 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1355 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1356 0x00, 0xf4, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1357 {
1358 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1359 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1360 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1361 0x00, 0xf4, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1362 {
1363 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1364 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1365 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1366 0x00, 0xf4, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1367 {
1368 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1369 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1370 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1371 0x00, 0xf4, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1372 {
1373 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1374 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x02, 0x00, 0x7f,
1375 0x00, 0x06, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1376 0x00, 0xf4, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
1377 {
1378 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
1379 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1380 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1381 0x00, 0xf4, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
1382 {
1383 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
1384 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1385 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1386 0x00, 0xf4, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
1387 {
1388 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
1389 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x02, 0x00, 0x7f,
1390 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x06,
1391 0x00, 0xf4, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
1392 {
1393 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
1394 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1395 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1396 0x00, 0xf4, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
1397 {
1398 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
1399 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1400 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1401 0x00, 0xf4, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
1402 {
1403 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
1404 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1405 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1406 0x00, 0xf4, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
1407 {
1408 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
1409 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x7f,
1410 0x00, 0x06, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1411 0x00, 0xf4, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
1412 {
1413 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
1414 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1415 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1416 0x00, 0xf4, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
1417 {
1418 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
1419 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1420 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1421 0x00, 0xf4, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
1422 {
1423 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
1424 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1425 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1426 0x00, 0xf4, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
1427 {
1428 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
1429 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1430 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1431 0x00, 0xf4, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
1432 {
1433 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
1434 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1435 0x00, 0x06, 0x00, 0xf4, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1436 0x00, 0xf4, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
1437 {
1438 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1439 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x00, 0x00, 0x7f,
1440 0x00, 0x06, 0x00, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1441 0x00, 0xf2, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
1442 {
1443 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1444 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1445 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1446 0x00, 0xf2, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
1447 {
1448 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1449 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1450 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1451 0x00, 0xf2, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
1452 {
1453 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1454 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x7f,
1455 0x00, 0x06, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x06,
1456 0x00, 0xf2, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
1457 {
1458 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1459 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
1460 0x00, 0x05, 0x00, 0xf2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1461 0x00, 0xf2, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
1462 {
1463 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1464 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
1465 0x00, 0x05, 0x00, 0xf2, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x05,
1466 0x00, 0xf2, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
1467 {
1468 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
1469 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1470 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1471 0x0f, 0x00, 0x0f, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
1472 {
1473 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
1474 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1475 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1476 0x0f, 0x00, 0x0f, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
1477 {
1478 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
1479 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x05, 0x00,
1480 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x05, 0x00, 0x70, 0x00,
1481 0x0f, 0x00, 0x0f, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
1482 {
1483 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
1484 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00,
1485 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x70, 0x00,
1486 0x0f, 0x00, 0x0f, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
1487 {
1488 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
1489 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00,
1490 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x70, 0x00,
1491 0x0f, 0x00, 0x0f, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
1492 {
1493 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
1494 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00,
1495 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x70, 0x00,
1496 0x0f, 0x00, 0x0f, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
1497 {
1498 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
1499 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00,
1500 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x70, 0x00,
1501 0x0f, 0x00, 0x0f, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
1502 {
1503 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
1504 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00,
1505 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x70, 0x00,
1506 0x0f, 0x00, 0x0f, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
1507 {
1508 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
1509 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00,
1510 0x70, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x70, 0x00,
1511 0x0f, 0x00, 0x0f, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
1512 {
1513 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
1514 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00,
1515 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x70, 0x00,
1516 0x0f, 0x00, 0x0d, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
1517 {
1518 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
1519 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00,
1520 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x70, 0x00,
1521 0x0f, 0x00, 0x0d, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
1522 {
1523 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
1524 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00,
1525 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x70, 0x00,
1526 0x0f, 0x00, 0x0d, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
1527 {
1528 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
1529 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00,
1530 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x70, 0x00,
1531 0x0f, 0x00, 0x0d, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
1532 {
1533 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
1534 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x05, 0x00,
1535 0x70, 0x00, 0x0f, 0x00, 0x0d, 0x00, 0xf0, 0x00, 0x05, 0x00, 0x70, 0x00,
1536 0x0f, 0x00, 0x0d, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
1537};
1538
1539static chan_info_nphy_radio205x_t chan_info_nphyrev4_2056_A1[] = {
1540 {
1541 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
1542 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1543 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1544 0x00, 0xff, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
1545 {
1546 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
1547 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1548 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1549 0x00, 0xff, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
1550 {
1551 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
1552 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1553 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1554 0x00, 0xff, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
1555 {
1556 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
1557 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1558 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1559 0x00, 0xff, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
1560 {
1561 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
1562 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1563 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1564 0x00, 0xff, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
1565 {
1566 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
1567 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1568 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1569 0x00, 0xff, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
1570 {
1571 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
1572 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1573 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1574 0x00, 0xff, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
1575 {
1576 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
1577 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x7f,
1578 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0e, 0x00, 0x7f, 0x00, 0x0f,
1579 0x00, 0xff, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
1580 {
1581 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
1582 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1583 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1584 0x00, 0xff, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
1585 {
1586 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
1587 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1588 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1589 0x00, 0xff, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
1590 {
1591 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
1592 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1593 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1594 0x00, 0xff, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
1595 {
1596 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
1597 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1598 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1599 0x00, 0xff, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
1600 {
1601 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
1602 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1603 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1604 0x00, 0xff, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
1605 {
1606 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
1607 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1608 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1609 0x00, 0xff, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
1610 {
1611 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
1612 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1613 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1614 0x00, 0xff, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
1615 {
1616 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
1617 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1618 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1619 0x00, 0xff, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
1620 {
1621 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
1622 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1623 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1624 0x00, 0xff, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
1625 {
1626 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
1627 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0d, 0x00, 0x7f,
1628 0x00, 0x0f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0d, 0x00, 0x7f, 0x00, 0x0f,
1629 0x00, 0xff, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
1630 {
1631 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
1632 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1633 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1634 0x00, 0xfe, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
1635 {
1636 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
1637 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1638 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1639 0x00, 0xfe, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
1640 {
1641 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
1642 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1643 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1644 0x00, 0xfe, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
1645 {
1646 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
1647 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1648 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1649 0x00, 0xfe, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
1650 {
1651 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
1652 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1653 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1654 0x00, 0xfe, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
1655 {
1656 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
1657 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1658 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1659 0x00, 0xfe, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
1660 {
1661 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
1662 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0c, 0x00, 0x7f,
1663 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xff, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1664 0x00, 0xfe, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
1665 {
1666 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
1667 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1668 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1669 0x00, 0xfe, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
1670 {
1671 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
1672 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0c, 0x00, 0x7f,
1673 0x00, 0x0f, 0x00, 0xfe, 0x00, 0xef, 0x00, 0x0c, 0x00, 0x7f, 0x00, 0x0f,
1674 0x00, 0xfe, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
1675 {
1676 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
1677 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xef, 0x00, 0x0a, 0x00, 0x7f,
1678 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xef, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1679 0x00, 0xfc, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
1680 {
1681 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
1682 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1683 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1684 0x00, 0xfc, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
1685 {
1686 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1687 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1688 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1689 0x00, 0xfc, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
1690 {
1691 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1692 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xdf, 0x00, 0x0a, 0x00, 0x7f,
1693 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xdf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1694 0x00, 0xfc, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
1695 {
1696 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1697 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1698 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1699 0x00, 0xfc, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
1700 {
1701 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1702 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1703 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1704 0x00, 0xfc, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
1705 {
1706 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1707 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1708 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1709 0x00, 0xfc, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
1710 {
1711 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1712 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xcf, 0x00, 0x0a, 0x00, 0x7f,
1713 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xcf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1714 0x00, 0xfc, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
1715 {
1716 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
1717 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1718 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1719 0x00, 0xfc, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
1720 {
1721 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
1722 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xbf, 0x00, 0x0a, 0x00, 0x7f,
1723 0x00, 0x0f, 0x00, 0xfc, 0x00, 0xbf, 0x00, 0x0a, 0x00, 0x7f, 0x00, 0x0f,
1724 0x00, 0xfc, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
1725 {
1726 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
1727 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1728 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1729 0x00, 0xfa, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
1730 {
1731 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
1732 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1733 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1734 0x00, 0xfa, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
1735 {
1736 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
1737 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xbf, 0x00, 0x08, 0x00, 0x7f,
1738 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xbf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1739 0x00, 0xfa, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
1740 {
1741 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
1742 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1743 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1744 0x00, 0xfa, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
1745 {
1746 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
1747 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xaf, 0x00, 0x08, 0x00, 0x7f,
1748 0x00, 0x0f, 0x00, 0xfa, 0x00, 0xaf, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1749 0x00, 0xfa, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
1750 {
1751 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
1752 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1753 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1754 0x00, 0xfa, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
1755 {
1756 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
1757 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1758 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1759 0x00, 0xfa, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
1760 {
1761 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
1762 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1763 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1764 0x00, 0xfa, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
1765 {
1766 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1767 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x9f, 0x00, 0x08, 0x00, 0x7f,
1768 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1769 0x00, 0xfa, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
1770 {
1771 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1772 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x8f, 0x00, 0x08, 0x00, 0x7f,
1773 0x00, 0x0f, 0x00, 0xfa, 0x00, 0x8f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x0f,
1774 0x00, 0xfa, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
1775 {
1776 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1777 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1778 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1779 0x00, 0xf8, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
1780 {
1781 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1782 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8f, 0x00, 0x07, 0x00, 0x7f,
1783 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1784 0x00, 0xf8, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
1785 {
1786 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1787 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1788 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1789 0x00, 0xf8, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
1790 {
1791 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1792 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x8e, 0x00, 0x07, 0x00, 0x7f,
1793 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x8e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1794 0x00, 0xf8, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
1795 {
1796 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
1797 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7e, 0x00, 0x07, 0x00, 0x7f,
1798 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1799 0x00, 0xf8, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
1800 {
1801 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
1802 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x7d, 0x00, 0x07, 0x00, 0x7f,
1803 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x7d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1804 0x00, 0xf8, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
1805 {
1806 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
1807 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1808 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1809 0x00, 0xf8, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
1810 {
1811 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
1812 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x6d, 0x00, 0x07, 0x00, 0x7f,
1813 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x6d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1814 0x00, 0xf8, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
1815 {
1816 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
1817 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5d, 0x00, 0x07, 0x00, 0x7f,
1818 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5d, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1819 0x00, 0xf8, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
1820 {
1821 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
1822 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x5c, 0x00, 0x07, 0x00, 0x7f,
1823 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x5c, 0x00, 0x07, 0x00, 0x7f, 0x00, 0x0f,
1824 0x00, 0xf8, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
1825 {
1826 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
1827 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x5c, 0x00, 0x06, 0x00, 0x7f,
1828 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x5c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1829 0x00, 0xf6, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
1830 {
1831 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
1832 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1833 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1834 0x00, 0xf6, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
1835 {
1836 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
1837 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x4c, 0x00, 0x06, 0x00, 0x7f,
1838 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1839 0x00, 0xf6, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
1840 {
1841 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
1842 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1843 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1844 0x00, 0xf6, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
1845 {
1846 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1847 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1848 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1849 0x00, 0xf6, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
1850 {
1851 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1852 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x3b, 0x00, 0x06, 0x00, 0x7f,
1853 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1854 0x00, 0xf6, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
1855 {
1856 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1857 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2b, 0x00, 0x06, 0x00, 0x7f,
1858 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1859 0x00, 0xf6, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
1860 {
1861 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1862 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x2a, 0x00, 0x06, 0x00, 0x7f,
1863 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1864 0x00, 0xf6, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
1865 {
1866 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1867 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1868 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1869 0x00, 0xf6, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
1870 {
1871 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1872 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x1a, 0x00, 0x06, 0x00, 0x7f,
1873 0x00, 0x0d, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x0d,
1874 0x00, 0xf6, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
1875 {
1876 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
1877 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x1a, 0x00, 0x04, 0x00, 0x7f,
1878 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1879 0x00, 0xf4, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
1880 {
1881 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
1882 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1883 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1884 0x00, 0xf4, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
1885 {
1886 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
1887 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x19, 0x00, 0x04, 0x00, 0x7f,
1888 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x19, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1889 0x00, 0xf4, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
1890 {
1891 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
1892 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1893 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1894 0x00, 0xf4, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
1895 {
1896 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
1897 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x09, 0x00, 0x04, 0x00, 0x7f,
1898 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x09, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1899 0x00, 0xf4, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
1900 {
1901 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
1902 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1903 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1904 0x00, 0xf4, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
1905 {
1906 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
1907 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1908 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1909 0x00, 0xf4, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
1910 {
1911 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
1912 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1913 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1914 0x00, 0xf4, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
1915 {
1916 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
1917 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x08, 0x00, 0x04, 0x00, 0x7f,
1918 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x08, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1919 0x00, 0xf4, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
1920 {
1921 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
1922 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x07, 0x00, 0x04, 0x00, 0x7f,
1923 0x00, 0x0b, 0x00, 0xf4, 0x00, 0x07, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x0b,
1924 0x00, 0xf4, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
1925 {
1926 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
1927 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1928 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1929 0x00, 0xf2, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
1930 {
1931 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
1932 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1933 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1934 0x00, 0xf2, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
1935 {
1936 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
1937 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x07, 0x00, 0x03, 0x00, 0x7f,
1938 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x07, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1939 0x00, 0xf2, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
1940 {
1941 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
1942 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1943 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1944 0x00, 0xf2, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
1945 {
1946 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
1947 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1948 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1949 0x00, 0xf2, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
1950 {
1951 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
1952 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1953 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1954 0x00, 0xf2, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
1955 {
1956 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
1957 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1958 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1959 0x00, 0xf2, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
1960 {
1961 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
1962 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1963 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1964 0x00, 0xf2, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
1965 {
1966 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
1967 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x06, 0x00, 0x03, 0x00, 0x7f,
1968 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x06, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1969 0x00, 0xf2, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
1970 {
1971 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
1972 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1973 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1974 0x00, 0xf2, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
1975 {
1976 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
1977 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1978 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1979 0x00, 0xf2, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
1980 {
1981 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
1982 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1983 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1984 0x00, 0xf2, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
1985 {
1986 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
1987 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1988 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1989 0x00, 0xf2, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
1990 {
1991 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
1992 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1993 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1994 0x00, 0xf2, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
1995 {
1996 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
1997 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x05, 0x00, 0x03, 0x00, 0x7f,
1998 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
1999 0x00, 0xf2, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2000 {
2001 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2002 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2003 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2004 0x00, 0xf2, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2005 {
2006 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2007 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2008 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2009 0x00, 0xf2, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2010 {
2011 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2012 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x04, 0x00, 0x03, 0x00, 0x7f,
2013 0x00, 0x0a, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x03, 0x00, 0x7f, 0x00, 0x0a,
2014 0x00, 0xf2, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2015 {
2016 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2017 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2018 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2019 0x00, 0xf0, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2020 {
2021 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2022 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2023 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2024 0x00, 0xf0, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2025 {
2026 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2027 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2028 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2029 0x00, 0xf0, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2030 {
2031 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2032 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x7f,
2033 0x00, 0x09, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2034 0x00, 0xf0, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2035 {
2036 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2037 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2038 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2039 0x00, 0xf0, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2040 {
2041 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2042 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2043 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2044 0x00, 0xf0, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2045 {
2046 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2047 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2048 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2049 0x00, 0xf0, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2050 {
2051 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2052 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2053 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2054 0x00, 0xf0, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2055 {
2056 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2057 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2058 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2059 0x00, 0xf0, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2060 {
2061 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2062 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x03, 0x00, 0x02, 0x00, 0x7f,
2063 0x00, 0x09, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2064 0x00, 0xf0, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2065 {
2066 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2067 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2068 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2069 0x00, 0xf0, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2070 {
2071 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2072 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2073 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2074 0x00, 0xf0, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2075 {
2076 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2077 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x02, 0x00, 0x02, 0x00, 0x7f,
2078 0x00, 0x09, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x09,
2079 0x00, 0xf0, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2080 {
2081 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2082 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f,
2083 0x00, 0x07, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2084 0x00, 0xf0, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2085 {
2086 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2087 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f,
2088 0x00, 0x07, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x07,
2089 0x00, 0xf0, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2090 {
2091 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2092 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2093 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2094 0x0f, 0x00, 0x0e, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2095 {
2096 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2097 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2098 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2099 0x0f, 0x00, 0x0e, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2100 {
2101 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2102 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xff, 0x00, 0x04, 0x00,
2103 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xff, 0x00, 0x04, 0x00, 0x70, 0x00,
2104 0x0f, 0x00, 0x0e, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2105 {
2106 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2107 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x04, 0x00,
2108 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfd, 0x00, 0x04, 0x00, 0x70, 0x00,
2109 0x0f, 0x00, 0x0e, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2110 {
2111 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2112 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x04, 0x00,
2113 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfb, 0x00, 0x04, 0x00, 0x70, 0x00,
2114 0x0f, 0x00, 0x0e, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2115 {
2116 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2117 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00,
2118 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x70, 0x00,
2119 0x0f, 0x00, 0x0e, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2120 {
2121 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2122 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x00,
2123 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf8, 0x00, 0x04, 0x00, 0x70, 0x00,
2124 0x0f, 0x00, 0x0e, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2125 {
2126 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2127 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x04, 0x00,
2128 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf7, 0x00, 0x04, 0x00, 0x70, 0x00,
2129 0x0f, 0x00, 0x0e, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2130 {
2131 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2132 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00,
2133 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x70, 0x00,
2134 0x0f, 0x00, 0x0e, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2135 {
2136 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2137 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x04, 0x00,
2138 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf5, 0x00, 0x04, 0x00, 0x70, 0x00,
2139 0x0f, 0x00, 0x0e, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2140 {
2141 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2142 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x04, 0x00,
2143 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf4, 0x00, 0x04, 0x00, 0x70, 0x00,
2144 0x0f, 0x00, 0x0e, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2145 {
2146 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2147 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x04, 0x00,
2148 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf3, 0x00, 0x04, 0x00, 0x70, 0x00,
2149 0x0f, 0x00, 0x0e, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2150 {
2151 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2152 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x04, 0x00,
2153 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf2, 0x00, 0x04, 0x00, 0x70, 0x00,
2154 0x0f, 0x00, 0x0e, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2155 {
2156 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2157 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x04, 0x00,
2158 0x70, 0x00, 0x0f, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x04, 0x00, 0x70, 0x00,
2159 0x0f, 0x00, 0x0e, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2160};
2161
2162static chan_info_nphy_radio205x_t chan_info_nphyrev5_2056v5[] = {
2163 {
2164 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2165 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2166 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
2167 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2168 {
2169 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2170 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2171 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2172 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2173 {
2174 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2175 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2176 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2177 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2178 {
2179 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2180 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
2181 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
2182 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2183 {
2184 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2185 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2186 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
2187 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2188 {
2189 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2190 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2191 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2192 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2193 {
2194 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2195 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2196 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2197 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2198 {
2199 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2200 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2201 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2202 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2203 {
2204 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2205 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2206 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2207 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2208 {
2209 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2210 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
2211 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
2212 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2213 {
2214 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2215 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2216 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
2217 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2218 {
2219 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2220 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
2221 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2222 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2223 {
2224 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2225 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2226 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2227 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2228 {
2229 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2230 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
2231 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2232 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2233 {
2234 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2235 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
2236 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
2237 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2238 {
2239 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2240 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
2241 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2242 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2243 {
2244 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2245 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2246 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2247 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2248 {
2249 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2250 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2251 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2252 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2253 {
2254 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2255 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2256 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2257 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2258 {
2259 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2260 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2261 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2262 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2263 {
2264 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2265 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
2266 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
2267 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2268 {
2269 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2270 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
2271 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
2272 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2273 {
2274 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2275 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2276 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
2277 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2278 {
2279 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2280 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
2281 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
2282 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2283 {
2284 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2285 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
2286 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2287 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2288 {
2289 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2290 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2291 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2292 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2293 {
2294 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2295 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2296 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2297 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2298 {
2299 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2300 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2301 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2302 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2303 {
2304 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2305 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2306 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2307 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2308 {
2309 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2310 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
2311 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
2312 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2313 {
2314 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2315 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xea, 0x00, 0x06, 0x00, 0x70,
2316 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
2317 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2318 {
2319 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2320 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2321 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2322 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2323 {
2324 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2325 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xe9, 0x00, 0x05, 0x00, 0x70,
2326 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2327 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2328 {
2329 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2330 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xd9, 0x00, 0x05, 0x00, 0x70,
2331 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
2332 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2333 {
2334 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2335 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xd8, 0x00, 0x04, 0x00, 0x70,
2336 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2337 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2338 {
2339 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2340 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2341 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2342 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2343 {
2344 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2345 0x03, 0x03, 0x03, 0x8f, 0x0f, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2346 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2347 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2348 {
2349 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2350 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2351 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2352 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2353 {
2354 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2355 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xc8, 0x00, 0x04, 0x00, 0x70,
2356 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2357 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2358 {
2359 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2360 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb8, 0x00, 0x04, 0x00, 0x70,
2361 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2362 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2363 {
2364 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2365 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x04, 0x00, 0x70,
2366 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
2367 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2368 {
2369 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2370 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xb7, 0x00, 0x03, 0x00, 0x70,
2371 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
2372 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2373 {
2374 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2375 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa7, 0x00, 0x03, 0x00, 0x70,
2376 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2377 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
2378 {
2379 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
2380 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2381 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2382 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
2383 {
2384 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
2385 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0xa6, 0x00, 0x03, 0x00, 0x70,
2386 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2387 0x00, 0x5b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
2388 {
2389 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2390 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x96, 0x00, 0x03, 0x00, 0x70,
2391 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2392 0x00, 0x5a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
2393 {
2394 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2395 0x03, 0x03, 0x03, 0x8f, 0x0e, 0x00, 0xff, 0x95, 0x00, 0x03, 0x00, 0x70,
2396 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2397 0x00, 0x5a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
2398 {
2399 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2400 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2401 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
2402 0x00, 0x5a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
2403 {
2404 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2405 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2406 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2407 0x00, 0x5a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
2408 {
2409 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2410 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x95, 0x00, 0x03, 0x00, 0x70,
2411 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
2412 0x00, 0x5a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
2413 {
2414 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2415 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xc8, 0x85, 0x00, 0x02, 0x00, 0x70,
2416 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2417 0x00, 0x59, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
2418 {
2419 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
2420 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2421 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2422 0x00, 0x59, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
2423 {
2424 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
2425 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2426 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
2427 0x00, 0x59, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
2428 {
2429 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
2430 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x84, 0x00, 0x02, 0x00, 0x70,
2431 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
2432 0x00, 0x69, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
2433 {
2434 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
2435 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x74, 0x00, 0x01, 0x00, 0x70,
2436 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2437 0x00, 0x69, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
2438 {
2439 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
2440 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2441 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2442 0x00, 0x68, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
2443 {
2444 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
2445 0x04, 0x04, 0x04, 0x8d, 0x0d, 0x00, 0xc8, 0x73, 0x00, 0x01, 0x00, 0x70,
2446 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2447 0x00, 0x68, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
2448 {
2449 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
2450 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2451 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2452 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
2453 {
2454 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
2455 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2456 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2457 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
2458 {
2459 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
2460 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
2461 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
2462 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
2463 {
2464 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
2465 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x63, 0x00, 0x01, 0x00, 0x70,
2466 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
2467 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
2468 {
2469 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2470 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2471 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2472 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
2473 {
2474 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2475 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2476 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2477 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
2478 {
2479 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2480 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x62, 0x00, 0x00, 0x00, 0x70,
2481 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
2482 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
2483 {
2484 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2485 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2486 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2487 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
2488 {
2489 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2490 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x52, 0x00, 0x00, 0x00, 0x70,
2491 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2492 0x00, 0x76, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
2493 {
2494 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2495 0x04, 0x04, 0x04, 0x8d, 0x0b, 0x00, 0x84, 0x51, 0x00, 0x00, 0x00, 0x70,
2496 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2497 0x00, 0x76, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
2498 {
2499 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
2500 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2501 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2502 0x00, 0x76, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
2503 {
2504 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
2505 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2506 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2507 0x00, 0x76, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
2508 {
2509 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
2510 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2511 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2512 0x00, 0x76, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
2513 {
2514 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
2515 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2516 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2517 0x00, 0x76, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
2518 {
2519 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
2520 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x51, 0x00, 0x00, 0x00, 0x70,
2521 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
2522 0x00, 0x75, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
2523 {
2524 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
2525 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2526 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2527 0x00, 0x75, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
2528 {
2529 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
2530 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x70,
2531 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2532 0x00, 0x75, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
2533 {
2534 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
2535 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2536 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2537 0x00, 0x74, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
2538 {
2539 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
2540 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2541 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2542 0x00, 0x74, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
2543 {
2544 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
2545 0x05, 0x05, 0x05, 0x8b, 0x09, 0x00, 0x70, 0x40, 0x00, 0x00, 0x00, 0x70,
2546 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2547 0x00, 0x74, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
2548 {
2549 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2550 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2551 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2552 0x00, 0x74, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
2553 {
2554 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2555 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2556 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2557 0x00, 0x74, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
2558 {
2559 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2560 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2561 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2562 0x00, 0x74, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
2563 {
2564 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
2565 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
2566 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2567 0x00, 0x74, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
2568 {
2569 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2570 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2571 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
2572 0x00, 0x84, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
2573 {
2574 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
2575 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2576 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2577 0x00, 0x83, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
2578 {
2579 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2580 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2581 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2582 0x00, 0x83, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
2583 {
2584 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
2585 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2586 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2587 0x00, 0x83, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
2588 {
2589 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2590 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2591 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2592 0x00, 0x83, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
2593 {
2594 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
2595 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x70,
2596 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2597 0x00, 0x83, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
2598 {
2599 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
2600 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2601 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2602 0x00, 0x83, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
2603 {
2604 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
2605 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2606 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2607 0x00, 0x82, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
2608 {
2609 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
2610 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2611 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2612 0x00, 0x82, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
2613 {
2614 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
2615 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x70,
2616 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2617 0x00, 0x82, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
2618 {
2619 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
2620 0x05, 0x05, 0x05, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2621 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2622 0x00, 0x82, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
2623 {
2624 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
2625 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2626 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2627 0x00, 0x82, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
2628 {
2629 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
2630 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2631 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2632 0x00, 0x82, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
2633 {
2634 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
2635 0x06, 0x06, 0x06, 0x8a, 0x06, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x70,
2636 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2637 0x00, 0x82, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
2638 {
2639 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
2640 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2641 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2642 0x00, 0x82, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
2643 {
2644 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
2645 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2646 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2647 0x00, 0x82, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
2648 {
2649 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
2650 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2651 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2652 0x00, 0x82, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
2653 {
2654 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
2655 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2656 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2657 0x00, 0x82, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
2658 {
2659 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
2660 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2661 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2662 0x00, 0x82, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
2663 {
2664 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
2665 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2666 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2667 0x00, 0x82, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
2668 {
2669 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
2670 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2671 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2672 0x00, 0x72, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
2673 {
2674 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
2675 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x70,
2676 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2677 0x00, 0x72, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
2678 {
2679 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
2680 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2681 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2682 0x00, 0x72, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
2683 {
2684 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2685 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2686 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2687 0x00, 0x72, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
2688 {
2689 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2690 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2691 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2692 0x00, 0x71, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
2693 {
2694 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2695 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2696 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2697 0x00, 0x71, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
2698 {
2699 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2700 0x06, 0x06, 0x06, 0x88, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70,
2701 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2702 0x00, 0x71, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
2703 {
2704 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2705 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2706 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2707 0x00, 0x71, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
2708 {
2709 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2710 0x06, 0x06, 0x06, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
2711 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
2712 0x00, 0x71, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
2713 {
2714 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
2715 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2716 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2717 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
2718 {
2719 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
2720 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x03, 0x00,
2721 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x03, 0x00, 0x70, 0x00,
2722 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
2723 {
2724 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
2725 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
2726 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x70, 0x00,
2727 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
2728 {
2729 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
2730 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x03, 0x00,
2731 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x03, 0x00, 0x70, 0x00,
2732 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
2733 {
2734 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
2735 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00,
2736 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x70, 0x00,
2737 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
2738 {
2739 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
2740 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x03, 0x00,
2741 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x03, 0x00, 0x70, 0x00,
2742 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
2743 {
2744 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
2745 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00,
2746 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x03, 0x00, 0x70, 0x00,
2747 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
2748 {
2749 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
2750 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00,
2751 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x02, 0x00, 0x70, 0x00,
2752 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
2753 {
2754 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
2755 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00,
2756 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x07, 0x00, 0x02, 0x00, 0x70, 0x00,
2757 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
2758 {
2759 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
2760 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x02, 0x00,
2761 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x06, 0x00, 0x02, 0x00, 0x70, 0x00,
2762 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
2763 {
2764 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
2765 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00,
2766 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x05, 0x00, 0x02, 0x00, 0x70, 0x00,
2767 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
2768 {
2769 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
2770 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
2771 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x70, 0x00,
2772 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
2773 {
2774 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
2775 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00,
2776 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x03, 0x00, 0x02, 0x00, 0x70, 0x00,
2777 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
2778 {
2779 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
2780 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
2781 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
2782 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
2783};
2784
2785static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v6[] = {
2786 {
2787 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
2788 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2789 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2790 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
2791 {
2792 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
2793 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2794 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2795 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
2796 {
2797 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
2798 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2799 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2800 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
2801 {
2802 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
2803 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2804 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2805 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
2806 {
2807 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
2808 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2809 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2810 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
2811 {
2812 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
2813 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2814 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2815 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
2816 {
2817 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
2818 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2819 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2820 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
2821 {
2822 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
2823 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2824 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2825 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
2826 {
2827 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
2828 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2829 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2830 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
2831 {
2832 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
2833 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2834 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2835 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
2836 {
2837 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
2838 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2839 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2840 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
2841 {
2842 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
2843 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2844 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2845 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
2846 {
2847 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
2848 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2849 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2850 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
2851 {
2852 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
2853 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2854 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2855 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
2856 {
2857 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
2858 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
2859 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2860 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
2861 {
2862 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
2863 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2864 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2865 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
2866 {
2867 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
2868 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2869 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2870 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
2871 {
2872 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
2873 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
2874 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
2875 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
2876 {
2877 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
2878 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
2879 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2880 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
2881 {
2882 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
2883 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2884 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2885 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
2886 {
2887 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
2888 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2889 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2890 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
2891 {
2892 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
2893 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
2894 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2895 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
2896 {
2897 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
2898 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
2899 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
2900 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
2901 {
2902 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
2903 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2904 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2905 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
2906 {
2907 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
2908 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
2909 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
2910 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
2911 {
2912 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
2913 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2914 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
2915 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
2916 {
2917 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
2918 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
2919 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
2920 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
2921 {
2922 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
2923 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2924 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2925 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
2926 {
2927 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
2928 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
2929 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2930 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
2931 {
2932 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
2933 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
2934 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2935 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
2936 {
2937 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
2938 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
2939 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2940 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
2941 {
2942 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
2943 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
2944 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2945 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
2946 {
2947 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
2948 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
2949 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
2950 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
2951 {
2952 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
2953 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2954 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
2955 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
2956 {
2957 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
2958 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
2959 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
2960 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
2961 {
2962 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
2963 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2964 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2965 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
2966 {
2967 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
2968 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2969 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2970 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
2971 {
2972 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
2973 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2974 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2975 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
2976 {
2977 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
2978 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
2979 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2980 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
2981 {
2982 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
2983 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
2984 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
2985 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
2986 {
2987 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
2988 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
2989 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2990 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
2991 {
2992 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
2993 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2994 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
2995 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
2996 {
2997 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
2998 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
2999 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
3000 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3001 {
3002 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3003 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3004 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3005 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3006 {
3007 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3008 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
3009 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3010 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3011 {
3012 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3013 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
3014 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3015 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3016 {
3017 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3018 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3019 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3020 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3021 {
3022 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3023 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
3024 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
3025 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3026 {
3027 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3028 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
3029 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3030 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3031 {
3032 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3033 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
3034 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3035 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3036 {
3037 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3038 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3039 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
3040 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3041 {
3042 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3043 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
3044 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
3045 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3046 {
3047 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3048 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3049 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3050 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3051 {
3052 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3053 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
3054 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3055 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3056 {
3057 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3058 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
3059 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
3060 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3061 {
3062 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3063 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
3064 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3065 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3066 {
3067 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3068 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
3069 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3070 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3071 {
3072 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3073 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3074 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3075 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3076 {
3077 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3078 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
3079 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3080 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3081 {
3082 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3083 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3084 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3085 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3086 {
3087 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3088 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
3089 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3090 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3091 {
3092 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3093 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
3094 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3095 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3096 {
3097 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3098 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3099 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3100 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3101 {
3102 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3103 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
3104 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3105 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3106 {
3107 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3108 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
3109 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
3110 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3111 {
3112 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3113 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
3114 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3115 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3116 {
3117 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3118 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
3119 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3120 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3121 {
3122 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3123 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3124 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3125 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3126 {
3127 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3128 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
3129 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
3130 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3131 {
3132 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3133 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3134 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3135 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3136 {
3137 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3138 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
3139 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3140 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3141 {
3142 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3143 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
3144 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3145 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3146 {
3147 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3148 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3149 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
3150 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3151 {
3152 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3153 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
3154 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3155 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3156 {
3157 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3158 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
3159 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3160 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3161 {
3162 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3163 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3164 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3165 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3166 {
3167 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3168 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3169 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3170 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3171 {
3172 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3173 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3174 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3175 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3176 {
3177 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3178 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3179 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3180 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3181 {
3182 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3183 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3184 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3185 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3186 {
3187 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3188 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
3189 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3190 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3191 {
3192 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3193 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3194 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3195 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3196 {
3197 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3198 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3199 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3200 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3201 {
3202 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3203 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3204 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3205 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3206 {
3207 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3208 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
3209 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
3210 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3211 {
3212 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3213 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
3214 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3215 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3216 {
3217 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3218 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3219 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3220 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3221 {
3222 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3223 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
3224 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3225 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3226 {
3227 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3228 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3229 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3230 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3231 {
3232 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3233 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3234 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3235 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3236 {
3237 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3238 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3239 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3240 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3241 {
3242 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3243 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
3244 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3245 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3246 {
3247 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3248 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3249 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3250 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3251 {
3252 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3253 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
3254 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3255 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3256 {
3257 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3258 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3259 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3260 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3261 {
3262 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3263 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3264 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3265 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3266 {
3267 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3268 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3269 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3270 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3271 {
3272 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3273 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3274 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3275 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3276 {
3277 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3278 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3279 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3280 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3281 {
3282 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3283 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3284 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3285 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3286 {
3287 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3288 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3289 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3290 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3291 {
3292 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3293 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3294 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
3295 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3296 {
3297 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3298 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3299 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3300 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3301 {
3302 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3303 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3304 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3305 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3306 {
3307 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3308 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3309 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3310 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3311 {
3312 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3313 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3314 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3315 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3316 {
3317 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3318 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3319 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3320 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3321 {
3322 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3323 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3324 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3325 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3326 {
3327 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3328 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3329 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3330 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3331 {
3332 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3333 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
3334 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
3335 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3336 {
3337 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3338 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3339 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3340 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3341 {
3342 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3343 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3344 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3345 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3346 {
3347 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3348 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
3349 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x67, 0x00, 0x03, 0x00, 0x70, 0x00,
3350 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3351 {
3352 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3353 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
3354 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x03, 0x00, 0x70, 0x00,
3355 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3356 {
3357 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3358 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
3359 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x56, 0x00, 0x03, 0x00, 0x70, 0x00,
3360 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3361 {
3362 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3363 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
3364 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x03, 0x00, 0x70, 0x00,
3365 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3366 {
3367 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3368 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
3369 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
3370 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3371 {
3372 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3373 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
3374 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
3375 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3376 {
3377 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
3378 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
3379 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x23, 0x00, 0x02, 0x00, 0x70, 0x00,
3380 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
3381 {
3382 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
3383 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
3384 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x12, 0x00, 0x02, 0x00, 0x70, 0x00,
3385 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
3386 {
3387 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
3388 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
3389 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x70, 0x00,
3390 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
3391 {
3392 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
3393 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3394 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3395 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
3396 {
3397 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
3398 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
3399 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x02, 0x00, 0x70, 0x00,
3400 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
3401 {
3402 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
3403 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
3404 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
3405 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
3406};
3407
3408static chan_info_nphy_radio205x_t chan_info_nphyrev5n6_2056v7[] = {
3409 {
3410 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
3411 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3412 0x00, 0x0f, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0f,
3413 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
3414 {
3415 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
3416 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3417 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3418 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
3419 {
3420 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
3421 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3422 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3423 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
3424 {
3425 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
3426 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0b, 0x00, 0x70,
3427 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0b, 0x00, 0x70, 0x00, 0x0e,
3428 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
3429 {
3430 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
3431 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3432 0x00, 0x0e, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0e,
3433 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
3434 {
3435 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
3436 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3437 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3438 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
3439 {
3440 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
3441 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3442 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3443 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
3444 {
3445 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
3446 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3447 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3448 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
3449 {
3450 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
3451 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3452 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3453 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
3454 {
3455 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
3456 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x0a, 0x00, 0x70,
3457 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x0d,
3458 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
3459 {
3460 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
3461 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3462 0x00, 0x0d, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0d,
3463 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
3464 {
3465 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
3466 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x70,
3467 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xff, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3468 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
3469 {
3470 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
3471 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3472 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3473 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
3474 {
3475 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
3476 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x70,
3477 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3478 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
3479 {
3480 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
3481 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x70,
3482 0x00, 0x0c, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x70, 0x00, 0x0c,
3483 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
3484 {
3485 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
3486 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x70,
3487 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3488 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
3489 {
3490 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
3491 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3492 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3493 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
3494 {
3495 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
3496 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3497 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3498 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
3499 {
3500 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
3501 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3502 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3503 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
3504 {
3505 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
3506 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3507 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3508 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
3509 {
3510 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
3511 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x70,
3512 0x00, 0x0b, 0x00, 0x9f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0b,
3513 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
3514 {
3515 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
3516 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x70,
3517 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x70, 0x00, 0x0a,
3518 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
3519 {
3520 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
3521 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3522 0x00, 0x0a, 0x00, 0x9f, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x0a,
3523 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
3524 {
3525 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
3526 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x07, 0x00, 0x70,
3527 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x07, 0x00, 0x70, 0x00, 0x09,
3528 0x00, 0x6e, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
3529 {
3530 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
3531 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x06, 0x00, 0x70,
3532 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfb, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3533 0x00, 0x6e, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
3534 {
3535 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
3536 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3537 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3538 0x00, 0x6e, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
3539 {
3540 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
3541 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3542 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3543 0x00, 0x6e, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
3544 {
3545 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
3546 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3547 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3548 0x00, 0x6e, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
3549 {
3550 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
3551 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x06, 0x00, 0x70,
3552 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3553 0x00, 0x6e, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
3554 {
3555 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3556 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xfa, 0x00, 0x06, 0x00, 0x70,
3557 0x00, 0x09, 0x00, 0x9e, 0x00, 0xfa, 0x00, 0x06, 0x00, 0x70, 0x00, 0x09,
3558 0x00, 0x6e, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
3559 {
3560 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3561 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xea, 0x00, 0x06, 0x00, 0x70,
3562 0x00, 0x08, 0x00, 0x9e, 0x00, 0xea, 0x00, 0x06, 0x00, 0x70, 0x00, 0x08,
3563 0x00, 0x6e, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
3564 {
3565 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3566 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xe9, 0x00, 0x05, 0x00, 0x70,
3567 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3568 0x00, 0x6d, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
3569 {
3570 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3571 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xe9, 0x00, 0x05, 0x00, 0x70,
3572 0x00, 0x08, 0x00, 0x9d, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3573 0x00, 0x6d, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
3574 {
3575 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3576 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xd9, 0x00, 0x05, 0x00, 0x70,
3577 0x00, 0x08, 0x00, 0x9d, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x70, 0x00, 0x08,
3578 0x00, 0x6d, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
3579 {
3580 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3581 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xd8, 0x00, 0x04, 0x00, 0x70,
3582 0x00, 0x07, 0x00, 0x9c, 0x00, 0xd8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3583 0x00, 0x6c, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
3584 {
3585 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
3586 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3587 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3588 0x00, 0x6c, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
3589 {
3590 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
3591 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3592 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3593 0x00, 0x6c, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
3594 {
3595 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
3596 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3597 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3598 0x00, 0x6c, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
3599 {
3600 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
3601 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xc8, 0x00, 0x04, 0x00, 0x70,
3602 0x00, 0x07, 0x00, 0x9c, 0x00, 0xc8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3603 0x00, 0x6c, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
3604 {
3605 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
3606 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb8, 0x00, 0x04, 0x00, 0x70,
3607 0x00, 0x07, 0x00, 0x9c, 0x00, 0xb8, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3608 0x00, 0x6c, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
3609 {
3610 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
3611 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xb7, 0x00, 0x04, 0x00, 0x70,
3612 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x04, 0x00, 0x70, 0x00, 0x07,
3613 0x00, 0x6b, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
3614 {
3615 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
3616 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xb7, 0x00, 0x03, 0x00, 0x70,
3617 0x00, 0x07, 0x00, 0x9b, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x07,
3618 0x00, 0x6b, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
3619 {
3620 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
3621 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa7, 0x00, 0x03, 0x00, 0x70,
3622 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3623 0x00, 0x6b, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
3624 {
3625 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
3626 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3627 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3628 0x00, 0x6b, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
3629 {
3630 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
3631 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0xa6, 0x00, 0x03, 0x00, 0x70,
3632 0x00, 0x06, 0x00, 0x9b, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3633 0x00, 0x7b, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
3634 {
3635 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3636 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x96, 0x00, 0x03, 0x00, 0x70,
3637 0x00, 0x06, 0x00, 0x9a, 0x00, 0x96, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3638 0x00, 0x7a, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
3639 {
3640 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3641 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3642 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3643 0x00, 0x7a, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
3644 {
3645 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3646 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x70,
3647 0x00, 0x06, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x06,
3648 0x00, 0x7a, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
3649 {
3650 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3651 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x95, 0x00, 0x03, 0x00, 0x70,
3652 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3653 0x00, 0x7a, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
3654 {
3655 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3656 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x95, 0x00, 0x03, 0x00, 0x70,
3657 0x00, 0x05, 0x00, 0x9a, 0x00, 0x95, 0x00, 0x03, 0x00, 0x70, 0x00, 0x05,
3658 0x00, 0x7a, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
3659 {
3660 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3661 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x85, 0x00, 0x02, 0x00, 0x70,
3662 0x00, 0x05, 0x00, 0x99, 0x00, 0x85, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3663 0x00, 0x79, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
3664 {
3665 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
3666 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x70,
3667 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3668 0x00, 0x79, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
3669 {
3670 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
3671 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3672 0x00, 0x05, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x05,
3673 0x00, 0x79, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
3674 {
3675 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
3676 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x02, 0x00, 0x70,
3677 0x00, 0x04, 0x00, 0x99, 0x00, 0x84, 0x00, 0x02, 0x00, 0x70, 0x00, 0x04,
3678 0x00, 0x79, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
3679 {
3680 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
3681 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x74, 0x00, 0x01, 0x00, 0x70,
3682 0x00, 0x04, 0x00, 0x99, 0x00, 0x74, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3683 0x00, 0x79, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
3684 {
3685 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
3686 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x01, 0x00, 0x70,
3687 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3688 0x00, 0x78, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
3689 {
3690 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
3691 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x01, 0x00, 0x70,
3692 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3693 0x00, 0x78, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
3694 {
3695 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
3696 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3697 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3698 0x00, 0x78, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
3699 {
3700 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
3701 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x01, 0x00, 0x70,
3702 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3703 0x00, 0x78, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
3704 {
3705 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
3706 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x01, 0x00, 0x70,
3707 0x00, 0x04, 0x00, 0x98, 0x00, 0x73, 0x00, 0x01, 0x00, 0x70, 0x00, 0x04,
3708 0x00, 0x78, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
3709 {
3710 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
3711 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x63, 0x00, 0x01, 0x00, 0x70,
3712 0x00, 0x03, 0x00, 0x98, 0x00, 0x63, 0x00, 0x01, 0x00, 0x70, 0x00, 0x03,
3713 0x00, 0x78, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
3714 {
3715 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3716 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x62, 0x00, 0x00, 0x00, 0x70,
3717 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3718 0x00, 0x77, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
3719 {
3720 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3721 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3722 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3723 0x00, 0x77, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
3724 {
3725 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3726 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x70,
3727 0x00, 0x03, 0x00, 0x97, 0x00, 0x62, 0x00, 0x00, 0x00, 0x70, 0x00, 0x03,
3728 0x00, 0x77, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
3729 {
3730 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3731 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x52, 0x00, 0x00, 0x00, 0x70,
3732 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3733 0x00, 0x76, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
3734 {
3735 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3736 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x52, 0x00, 0x00, 0x00, 0x70,
3737 0x00, 0x02, 0x00, 0x96, 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3738 0x00, 0x86, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
3739 {
3740 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3741 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3742 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3743 0x00, 0x86, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
3744 {
3745 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
3746 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3747 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3748 0x00, 0x86, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
3749 {
3750 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
3751 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3752 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3753 0x00, 0x86, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
3754 {
3755 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
3756 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3757 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3758 0x00, 0x86, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
3759 {
3760 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
3761 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x70,
3762 0x00, 0x02, 0x00, 0x96, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3763 0x00, 0x86, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
3764 {
3765 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
3766 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x51, 0x00, 0x00, 0x00, 0x70,
3767 0x00, 0x02, 0x00, 0x95, 0x00, 0x51, 0x00, 0x00, 0x00, 0x70, 0x00, 0x02,
3768 0x00, 0x85, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
3769 {
3770 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
3771 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3772 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3773 0x00, 0x85, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
3774 {
3775 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
3776 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x70,
3777 0x00, 0x01, 0x00, 0x95, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3778 0x00, 0x85, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
3779 {
3780 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
3781 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x70,
3782 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3783 0x00, 0x84, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
3784 {
3785 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
3786 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3787 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3788 0x00, 0x84, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
3789 {
3790 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
3791 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3792 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3793 0x00, 0x94, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
3794 {
3795 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3796 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3797 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3798 0x00, 0x94, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
3799 {
3800 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3801 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3802 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3803 0x00, 0x94, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
3804 {
3805 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3806 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3807 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3808 0x00, 0x94, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
3809 {
3810 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
3811 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x40, 0x00, 0x00, 0x00, 0x70,
3812 0x00, 0x01, 0x00, 0x94, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3813 0x00, 0x94, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
3814 {
3815 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3816 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3817 0x00, 0x01, 0x00, 0x94, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01,
3818 0x00, 0x94, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
3819 {
3820 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
3821 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3822 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3823 0x00, 0x93, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
3824 {
3825 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3826 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3827 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3828 0x00, 0x93, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
3829 {
3830 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
3831 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3832 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3833 0x00, 0x93, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
3834 {
3835 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3836 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x70,
3837 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3838 0x00, 0x93, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
3839 {
3840 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
3841 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, 0x70,
3842 0x00, 0x00, 0x00, 0x93, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3843 0x00, 0x93, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
3844 {
3845 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
3846 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3847 0x00, 0x00, 0x00, 0x93, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3848 0x00, 0x93, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
3849 {
3850 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
3851 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3852 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3853 0x00, 0x92, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
3854 {
3855 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
3856 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3857 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3858 0x00, 0x92, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
3859 {
3860 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
3861 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x70,
3862 0x00, 0x00, 0x00, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3863 0x00, 0x92, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
3864 {
3865 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
3866 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x70,
3867 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3868 0x00, 0x92, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
3869 {
3870 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
3871 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3872 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3873 0x00, 0x92, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
3874 {
3875 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
3876 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3877 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3878 0x00, 0x92, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
3879 {
3880 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
3881 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3882 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3883 0x00, 0x92, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
3884 {
3885 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
3886 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3887 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3888 0x00, 0x92, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
3889 {
3890 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
3891 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3892 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3893 0x00, 0x92, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
3894 {
3895 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
3896 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3897 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3898 0x00, 0x92, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
3899 {
3900 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
3901 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3902 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3903 0x00, 0x92, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
3904 {
3905 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
3906 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3907 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3908 0x00, 0x92, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
3909 {
3910 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
3911 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3912 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3913 0x00, 0x92, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
3914 {
3915 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
3916 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3917 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3918 0x00, 0x92, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
3919 {
3920 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
3921 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70,
3922 0x00, 0x00, 0x00, 0x92, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3923 0x00, 0x92, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
3924 {
3925 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
3926 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3927 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3928 0x00, 0x92, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
3929 {
3930 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
3931 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3932 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3933 0x00, 0x92, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
3934 {
3935 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
3936 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3937 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3938 0x00, 0x91, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
3939 {
3940 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
3941 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3942 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3943 0x00, 0x91, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
3944 {
3945 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
3946 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3947 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3948 0x00, 0x91, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
3949 {
3950 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
3951 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3952 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3953 0x00, 0x91, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
3954 {
3955 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
3956 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
3957 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
3958 0x00, 0x91, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
3959 {
3960 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
3961 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3962 0x70, 0x00, 0x0f, 0x00, 0x0b, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3963 0x0f, 0x00, 0x0b, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
3964 {
3965 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
3966 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3967 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3968 0x0f, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
3969 {
3970 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
3971 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x89, 0x00, 0x03, 0x00,
3972 0x70, 0x00, 0x0f, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
3973 0x0f, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
3974 {
3975 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
3976 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
3977 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
3978 0x0e, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
3979 {
3980 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
3981 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x03, 0x00,
3982 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
3983 0x0e, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
3984 {
3985 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
3986 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x76, 0x00, 0x03, 0x00,
3987 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
3988 0x0e, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
3989 {
3990 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
3991 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x03, 0x00,
3992 0x70, 0x00, 0x0e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x03, 0x00, 0x70, 0x00,
3993 0x0e, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
3994 {
3995 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
3996 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x55, 0x00, 0x02, 0x00,
3997 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
3998 0x0e, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
3999 {
4000 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4001 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4002 0x70, 0x00, 0x0e, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4003 0x0e, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4004 {
4005 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4006 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4007 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4008 0x0d, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4009 {
4010 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4011 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
4012 0x70, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4013 0x0d, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4014 {
4015 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4016 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x02, 0x00,
4017 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4018 0x0d, 0x00, 0x08, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4019 {
4020 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4021 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
4022 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4023 0x0d, 0x00, 0x08, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4024 {
4025 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4026 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4027 0x70, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4028 0x0d, 0x00, 0x08, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4029};
4030
4031static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v8[] = {
4032 {
4033 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x04, 0x0c, 0x01,
4034 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4035 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4036 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4037 {
4038 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x04, 0x0c, 0x01,
4039 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4040 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4041 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4042 {
4043 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x04, 0x0c, 0x01,
4044 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4045 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4046 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4047 {
4048 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x04, 0x0c, 0x01,
4049 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4050 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4051 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4052 {
4053 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x04, 0x0c, 0x01,
4054 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4055 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4056 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4057 {
4058 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x04, 0x0c, 0x01,
4059 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4060 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4061 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4062 {
4063 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x04, 0x0c, 0x01,
4064 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4065 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4066 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4067 {
4068 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x04, 0x0c, 0x01,
4069 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4070 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4071 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4072 {
4073 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x04, 0x0c, 0x01,
4074 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4075 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4076 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4077 {
4078 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x04, 0x0c, 0x01,
4079 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4080 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4081 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4082 {
4083 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x04, 0x0c, 0x01,
4084 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4085 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4086 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4087 {
4088 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x04, 0x0c, 0x01,
4089 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4090 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4091 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4092 {
4093 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x04, 0x0c, 0x01,
4094 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4095 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4096 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4097 {
4098 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x04, 0x0c, 0x01,
4099 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4100 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4101 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4102 {
4103 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x04, 0x0c, 0x01,
4104 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4105 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4106 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4107 {
4108 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x04, 0x0c, 0x01,
4109 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4110 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4111 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4112 {
4113 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x04, 0x0c, 0x01,
4114 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4115 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4116 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4117 {
4118 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x04, 0x0c, 0x01,
4119 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4120 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4121 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4122 {
4123 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x04, 0x0c, 0x01,
4124 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4125 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4126 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4127 {
4128 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x04, 0x0c, 0x01,
4129 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4130 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4131 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4132 {
4133 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x04, 0x0c, 0x01,
4134 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4135 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4136 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4137 {
4138 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x04, 0x0c, 0x01,
4139 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4140 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4141 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4142 {
4143 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x04, 0x0c, 0x01,
4144 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4145 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4146 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4147 {
4148 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x04, 0x0c, 0x01,
4149 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4150 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4151 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4152 {
4153 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x04, 0x0c, 0x01,
4154 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4155 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4156 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4157 {
4158 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x04, 0x0c, 0x01,
4159 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4160 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4161 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4162 {
4163 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x04, 0x0c, 0x01,
4164 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4165 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4166 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4167 {
4168 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x04, 0x0c, 0x01,
4169 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4170 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4171 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4172 {
4173 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x04, 0x0c, 0x01,
4174 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4175 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4176 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4177 {
4178 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4179 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4180 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4181 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4182 {
4183 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4184 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4185 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4186 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4187 {
4188 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4189 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4190 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4191 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4192 {
4193 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4194 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4195 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4196 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4197 {
4198 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4199 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4200 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4201 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4202 {
4203 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4204 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4205 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4206 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4207 {
4208 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x04, 0x0c, 0x01,
4209 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4210 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4211 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4212 {
4213 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x04, 0x0c, 0x01,
4214 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4215 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4216 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4217 {
4218 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x04, 0x0c, 0x01,
4219 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4220 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4221 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4222 {
4223 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x04, 0x0c, 0x01,
4224 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4225 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4226 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4227 {
4228 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x04, 0x0c, 0x01,
4229 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4230 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4231 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4232 {
4233 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x04, 0x0c, 0x01,
4234 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4235 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4236 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4237 {
4238 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x04, 0x0c, 0x01,
4239 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4240 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4241 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4242 {
4243 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x04, 0x0c, 0x01,
4244 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4245 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4246 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4247 {
4248 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x04, 0x0c, 0x01,
4249 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4250 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4251 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4252 {
4253 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x04, 0x0c, 0x01,
4254 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4255 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4256 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4257 {
4258 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4259 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4260 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4261 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4262 {
4263 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4264 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4265 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4266 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4267 {
4268 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4269 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4270 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4271 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4272 {
4273 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4274 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4275 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4276 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4277 {
4278 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4279 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4280 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4281 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4282 {
4283 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4284 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4285 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4286 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4287 {
4288 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x04, 0x0c, 0x01,
4289 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4290 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4291 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4292 {
4293 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x04, 0x0c, 0x01,
4294 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4295 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4296 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4297 {
4298 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x04, 0x0c, 0x01,
4299 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4300 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4301 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4302 {
4303 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x04, 0x0c, 0x01,
4304 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4305 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4306 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4307 {
4308 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x04, 0x0c, 0x01,
4309 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4310 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4311 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4312 {
4313 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x04, 0x0c, 0x01,
4314 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4315 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4316 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4317 {
4318 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x04, 0x0c, 0x01,
4319 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4320 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4321 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4322 {
4323 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x04, 0x0c, 0x01,
4324 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4325 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4326 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4327 {
4328 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x04, 0x0c, 0x01,
4329 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4330 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4331 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4332 {
4333 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x04, 0x0c, 0x01,
4334 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4335 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4336 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4337 {
4338 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4339 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4340 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4341 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4342 {
4343 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4344 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4345 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4346 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4347 {
4348 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4349 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4350 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4351 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4352 {
4353 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4354 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4355 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4356 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4357 {
4358 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4359 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4360 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4361 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4362 {
4363 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4364 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4365 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4366 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4367 {
4368 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x04, 0x0c, 0x01,
4369 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4370 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4371 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4372 {
4373 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x04, 0x0c, 0x01,
4374 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4375 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4376 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
4377 {
4378 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x04, 0x0c, 0x01,
4379 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4380 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4381 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
4382 {
4383 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x04, 0x0c, 0x01,
4384 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
4385 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4386 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
4387 {
4388 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x04, 0x0c, 0x01,
4389 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
4390 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4391 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
4392 {
4393 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x04, 0x0c, 0x01,
4394 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4395 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
4396 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
4397 {
4398 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x04, 0x0c, 0x01,
4399 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
4400 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4401 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
4402 {
4403 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x04, 0x0c, 0x01,
4404 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
4405 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4406 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
4407 {
4408 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x04, 0x0c, 0x01,
4409 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4410 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4411 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
4412 {
4413 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x04, 0x0c, 0x01,
4414 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4415 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4416 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
4417 {
4418 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4419 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4420 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4421 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
4422 {
4423 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4424 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4425 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4426 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
4427 {
4428 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4429 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4430 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4431 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
4432 {
4433 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x07, 0x07, 0x04, 0x10, 0x01,
4434 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
4435 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4436 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
4437 {
4438 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4439 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4440 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4441 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
4442 {
4443 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x07, 0x07, 0x04, 0x10, 0x01,
4444 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4445 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4446 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
4447 {
4448 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4449 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4450 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4451 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
4452 {
4453 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x07, 0x07, 0x04, 0x10, 0x01,
4454 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
4455 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
4456 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
4457 {
4458 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4459 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
4460 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4461 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
4462 {
4463 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x07, 0x07, 0x04, 0x10, 0x01,
4464 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4465 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4466 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
4467 {
4468 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x04, 0x0c, 0x01,
4469 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
4470 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4471 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
4472 {
4473 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x07, 0x07, 0x04, 0x10, 0x01,
4474 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4475 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4476 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
4477 {
4478 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x04, 0x0c, 0x01,
4479 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4480 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4481 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
4482 {
4483 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x07, 0x07, 0x04, 0x10, 0x01,
4484 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4485 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4486 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
4487 {
4488 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x04, 0x0c, 0x01,
4489 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
4490 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4491 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
4492 {
4493 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x07, 0x07, 0x04, 0x10, 0x01,
4494 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4495 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4496 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
4497 {
4498 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x04, 0x0c, 0x01,
4499 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
4500 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4501 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
4502 {
4503 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x07, 0x07, 0x04, 0x10, 0x01,
4504 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4505 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4506 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
4507 {
4508 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x04, 0x0c, 0x01,
4509 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4510 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4511 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
4512 {
4513 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x07, 0x07, 0x04, 0x10, 0x01,
4514 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4515 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4516 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
4517 {
4518 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x04, 0x0c, 0x01,
4519 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4520 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4521 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
4522 {
4523 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x07, 0x07, 0x04, 0x10, 0x01,
4524 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4525 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4526 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
4527 {
4528 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x04, 0x0c, 0x01,
4529 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4530 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4531 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
4532 {
4533 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x07, 0x07, 0x04, 0x10, 0x01,
4534 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4535 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4536 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
4537 {
4538 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x04, 0x0c, 0x01,
4539 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4540 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
4541 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
4542 {
4543 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x04, 0x0c, 0x01,
4544 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4545 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4546 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
4547 {
4548 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x04, 0x0c, 0x01,
4549 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4550 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4551 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
4552 {
4553 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x04, 0x0c, 0x01,
4554 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4555 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4556 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
4557 {
4558 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x04, 0x0c, 0x01,
4559 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4560 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4561 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
4562 {
4563 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x04, 0x0c, 0x01,
4564 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4565 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4566 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
4567 {
4568 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x04, 0x0c, 0x01,
4569 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4570 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4571 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
4572 {
4573 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x04, 0x0c, 0x01,
4574 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4575 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4576 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
4577 {
4578 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x04, 0x0c, 0x01,
4579 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
4580 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
4581 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
4582 {
4583 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x08, 0x08, 0x04, 0x16, 0x01,
4584 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4585 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4586 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
4587 {
4588 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x08, 0x08, 0x04, 0x16, 0x01,
4589 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
4590 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4591 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
4592 {
4593 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x08, 0x08, 0x04, 0x16, 0x01,
4594 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
4595 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
4596 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
4597 {
4598 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x08, 0x08, 0x04, 0x16, 0x01,
4599 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
4600 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
4601 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
4602 {
4603 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x08, 0x08, 0x04, 0x16, 0x01,
4604 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
4605 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
4606 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
4607 {
4608 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x08, 0x08, 0x04, 0x16, 0x01,
4609 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
4610 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
4611 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
4612 {
4613 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x08, 0x08, 0x04, 0x16, 0x01,
4614 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
4615 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
4616 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
4617 {
4618 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x08, 0x08, 0x04, 0x16, 0x01,
4619 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
4620 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
4621 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
4622 {
4623 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x08, 0x08, 0x04, 0x16, 0x01,
4624 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
4625 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
4626 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
4627 {
4628 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x08, 0x08, 0x04, 0x16, 0x01,
4629 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
4630 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
4631 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
4632 {
4633 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x08, 0x08, 0x04, 0x16, 0x01,
4634 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
4635 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
4636 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
4637 {
4638 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x08, 0x08, 0x04, 0x16, 0x01,
4639 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4640 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
4641 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
4642 {
4643 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x08, 0x08, 0x04, 0x16, 0x01,
4644 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
4645 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
4646 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
4647 {
4648 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x08, 0x08, 0x04, 0x16, 0x01,
4649 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
4650 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
4651 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
4652};
4653
4654static chan_info_nphy_radio205x_t chan_info_nphyrev6_2056v11[] = {
4655 {
4656 184, 4920, 0xff, 0x01, 0x01, 0x01, 0xec, 0x05, 0x05, 0x02, 0x0c, 0x01,
4657 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4658 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4659 0x00, 0x6f, 0x00, 0x07b4, 0x07b0, 0x07ac, 0x0214, 0x0215, 0x0216},
4660 {
4661 186, 4930, 0xff, 0x01, 0x01, 0x01, 0xed, 0x05, 0x05, 0x02, 0x0c, 0x01,
4662 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4663 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4664 0x00, 0x6f, 0x00, 0x07b8, 0x07b4, 0x07b0, 0x0213, 0x0214, 0x0215},
4665 {
4666 188, 4940, 0xff, 0x01, 0x01, 0x01, 0xee, 0x05, 0x05, 0x02, 0x0c, 0x01,
4667 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4668 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4669 0x00, 0x6f, 0x00, 0x07bc, 0x07b8, 0x07b4, 0x0212, 0x0213, 0x0214},
4670 {
4671 190, 4950, 0xff, 0x01, 0x01, 0x01, 0xef, 0x05, 0x05, 0x02, 0x0c, 0x01,
4672 0x00, 0x00, 0x00, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4673 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4674 0x00, 0x6f, 0x00, 0x07c0, 0x07bc, 0x07b8, 0x0211, 0x0212, 0x0213},
4675 {
4676 192, 4960, 0xff, 0x01, 0x01, 0x01, 0xf0, 0x05, 0x05, 0x02, 0x0c, 0x01,
4677 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4678 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4679 0x00, 0x6f, 0x00, 0x07c4, 0x07c0, 0x07bc, 0x020f, 0x0211, 0x0212},
4680 {
4681 194, 4970, 0xff, 0x01, 0x01, 0x01, 0xf1, 0x05, 0x05, 0x02, 0x0c, 0x01,
4682 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4683 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4684 0x00, 0x6f, 0x00, 0x07c8, 0x07c4, 0x07c0, 0x020e, 0x020f, 0x0211},
4685 {
4686 196, 4980, 0xff, 0x01, 0x01, 0x01, 0xf2, 0x05, 0x05, 0x02, 0x0c, 0x01,
4687 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4688 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4689 0x00, 0x6f, 0x00, 0x07cc, 0x07c8, 0x07c4, 0x020d, 0x020e, 0x020f},
4690 {
4691 198, 4990, 0xff, 0x01, 0x01, 0x01, 0xf3, 0x05, 0x05, 0x02, 0x0c, 0x01,
4692 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4693 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4694 0x00, 0x6f, 0x00, 0x07d0, 0x07cc, 0x07c8, 0x020c, 0x020d, 0x020e},
4695 {
4696 200, 5000, 0xff, 0x01, 0x01, 0x01, 0xf4, 0x05, 0x05, 0x02, 0x0c, 0x01,
4697 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4698 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4699 0x00, 0x6f, 0x00, 0x07d4, 0x07d0, 0x07cc, 0x020b, 0x020c, 0x020d},
4700 {
4701 202, 5010, 0xff, 0x01, 0x01, 0x01, 0xf5, 0x05, 0x05, 0x02, 0x0c, 0x01,
4702 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4703 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4704 0x00, 0x6f, 0x00, 0x07d8, 0x07d4, 0x07d0, 0x020a, 0x020b, 0x020c},
4705 {
4706 204, 5020, 0xf7, 0x01, 0x01, 0x01, 0xf6, 0x05, 0x05, 0x02, 0x0c, 0x01,
4707 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4708 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4709 0x00, 0x6f, 0x00, 0x07dc, 0x07d8, 0x07d4, 0x0209, 0x020a, 0x020b},
4710 {
4711 206, 5030, 0xf7, 0x01, 0x01, 0x01, 0xf7, 0x05, 0x05, 0x02, 0x0c, 0x01,
4712 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4713 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4714 0x00, 0x6f, 0x00, 0x07e0, 0x07dc, 0x07d8, 0x0208, 0x0209, 0x020a},
4715 {
4716 208, 5040, 0xef, 0x01, 0x01, 0x01, 0xf8, 0x05, 0x05, 0x02, 0x0c, 0x01,
4717 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4718 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4719 0x00, 0x6f, 0x00, 0x07e4, 0x07e0, 0x07dc, 0x0207, 0x0208, 0x0209},
4720 {
4721 210, 5050, 0xef, 0x01, 0x01, 0x01, 0xf9, 0x05, 0x05, 0x02, 0x0c, 0x01,
4722 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4723 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4724 0x00, 0x6f, 0x00, 0x07e8, 0x07e4, 0x07e0, 0x0206, 0x0207, 0x0208},
4725 {
4726 212, 5060, 0xe6, 0x01, 0x01, 0x01, 0xfa, 0x05, 0x05, 0x02, 0x0c, 0x01,
4727 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfe, 0x00, 0x09, 0x00, 0x77,
4728 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfe, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4729 0x00, 0x6f, 0x00, 0x07ec, 0x07e8, 0x07e4, 0x0205, 0x0206, 0x0207},
4730 {
4731 214, 5070, 0xe6, 0x01, 0x01, 0x01, 0xfb, 0x05, 0x05, 0x02, 0x0c, 0x01,
4732 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4733 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4734 0x00, 0x6f, 0x00, 0x07f0, 0x07ec, 0x07e8, 0x0204, 0x0205, 0x0206},
4735 {
4736 216, 5080, 0xde, 0x01, 0x01, 0x01, 0xfc, 0x05, 0x05, 0x02, 0x0c, 0x01,
4737 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4738 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4739 0x00, 0x6f, 0x00, 0x07f4, 0x07f0, 0x07ec, 0x0203, 0x0204, 0x0205},
4740 {
4741 218, 5090, 0xde, 0x01, 0x01, 0x01, 0xfd, 0x05, 0x05, 0x02, 0x0c, 0x01,
4742 0x01, 0x01, 0x01, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x09, 0x00, 0x77,
4743 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x09, 0x00, 0x77, 0x00, 0x0f,
4744 0x00, 0x6f, 0x00, 0x07f8, 0x07f4, 0x07f0, 0x0202, 0x0203, 0x0204},
4745 {
4746 220, 5100, 0xd6, 0x01, 0x01, 0x01, 0xfe, 0x05, 0x05, 0x02, 0x0c, 0x01,
4747 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfd, 0x00, 0x08, 0x00, 0x77,
4748 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfd, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4749 0x00, 0x6f, 0x00, 0x07fc, 0x07f8, 0x07f4, 0x0201, 0x0202, 0x0203},
4750 {
4751 222, 5110, 0xd6, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x02, 0x0c, 0x01,
4752 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4753 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4754 0x00, 0x6f, 0x00, 0x0800, 0x07fc, 0x07f8, 0x0200, 0x0201, 0x0202},
4755 {
4756 224, 5120, 0xce, 0x01, 0x01, 0x02, 0x00, 0x05, 0x05, 0x02, 0x0c, 0x01,
4757 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4758 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4759 0x00, 0x6f, 0x00, 0x0804, 0x0800, 0x07fc, 0x01ff, 0x0200, 0x0201},
4760 {
4761 226, 5130, 0xce, 0x01, 0x01, 0x02, 0x01, 0x05, 0x05, 0x02, 0x0c, 0x01,
4762 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x77,
4763 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfc, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4764 0x00, 0x6f, 0x00, 0x0808, 0x0804, 0x0800, 0x01fe, 0x01ff, 0x0200},
4765 {
4766 228, 5140, 0xc6, 0x01, 0x01, 0x02, 0x02, 0x05, 0x05, 0x02, 0x0c, 0x01,
4767 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfb, 0x00, 0x08, 0x00, 0x77,
4768 0x00, 0x0f, 0x00, 0x6f, 0x00, 0xfb, 0x00, 0x08, 0x00, 0x77, 0x00, 0x0f,
4769 0x00, 0x6f, 0x00, 0x080c, 0x0808, 0x0804, 0x01fd, 0x01fe, 0x01ff},
4770 {
4771 32, 5160, 0xbe, 0x01, 0x01, 0x02, 0x04, 0x05, 0x05, 0x02, 0x0c, 0x01,
4772 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4773 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4774 0x00, 0x6f, 0x00, 0x0814, 0x0810, 0x080c, 0x01fb, 0x01fc, 0x01fd},
4775 {
4776 34, 5170, 0xbe, 0x01, 0x01, 0x02, 0x05, 0x05, 0x05, 0x02, 0x0c, 0x01,
4777 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xfa, 0x00, 0x07, 0x00, 0x77,
4778 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xfa, 0x00, 0x07, 0x00, 0x77, 0x00, 0x0e,
4779 0x00, 0x6f, 0x00, 0x0818, 0x0814, 0x0810, 0x01fa, 0x01fb, 0x01fc},
4780 {
4781 36, 5180, 0xb6, 0x01, 0x01, 0x02, 0x06, 0x05, 0x05, 0x02, 0x0c, 0x01,
4782 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4783 0x00, 0x0e, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0e,
4784 0x00, 0x6f, 0x00, 0x081c, 0x0818, 0x0814, 0x01f9, 0x01fa, 0x01fb},
4785 {
4786 38, 5190, 0xb6, 0x01, 0x01, 0x02, 0x07, 0x05, 0x05, 0x02, 0x0c, 0x01,
4787 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x06, 0x00, 0x77,
4788 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x06, 0x00, 0x77, 0x00, 0x0d,
4789 0x00, 0x6f, 0x00, 0x0820, 0x081c, 0x0818, 0x01f8, 0x01f9, 0x01fa},
4790 {
4791 40, 5200, 0xaf, 0x01, 0x01, 0x02, 0x08, 0x05, 0x05, 0x02, 0x0c, 0x01,
4792 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4793 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4794 0x00, 0x6f, 0x00, 0x0824, 0x0820, 0x081c, 0x01f7, 0x01f8, 0x01f9},
4795 {
4796 42, 5210, 0xaf, 0x01, 0x01, 0x02, 0x09, 0x05, 0x05, 0x02, 0x0c, 0x01,
4797 0x02, 0x02, 0x02, 0x8f, 0x0f, 0x00, 0xff, 0xf9, 0x00, 0x05, 0x00, 0x77,
4798 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4799 0x00, 0x6f, 0x00, 0x0828, 0x0824, 0x0820, 0x01f6, 0x01f7, 0x01f8},
4800 {
4801 44, 5220, 0xa7, 0x01, 0x01, 0x02, 0x0a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4802 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xfe, 0xd8, 0x00, 0x05, 0x00, 0x77,
4803 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4804 0x00, 0x6f, 0x00, 0x082c, 0x0828, 0x0824, 0x01f5, 0x01f6, 0x01f7},
4805 {
4806 46, 5230, 0xa7, 0x01, 0x01, 0x02, 0x0b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4807 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xd8, 0x00, 0x05, 0x00, 0x77,
4808 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4809 0x00, 0x6f, 0x00, 0x0830, 0x082c, 0x0828, 0x01f4, 0x01f5, 0x01f6},
4810 {
4811 48, 5240, 0xa0, 0x01, 0x01, 0x02, 0x0c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4812 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xee, 0xc8, 0x00, 0x05, 0x00, 0x77,
4813 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc8, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4814 0x00, 0x6f, 0x00, 0x0834, 0x0830, 0x082c, 0x01f3, 0x01f4, 0x01f5},
4815 {
4816 50, 5250, 0xa0, 0x01, 0x01, 0x02, 0x0d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4817 0x02, 0x02, 0x02, 0x8e, 0x0f, 0x00, 0xed, 0xc7, 0x00, 0x05, 0x00, 0x77,
4818 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x05, 0x00, 0x77, 0x00, 0x0d,
4819 0x00, 0x6f, 0x00, 0x0838, 0x0834, 0x0830, 0x01f2, 0x01f3, 0x01f4},
4820 {
4821 52, 5260, 0x98, 0x01, 0x01, 0x02, 0x0e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4822 0x02, 0x02, 0x02, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4823 0x00, 0x0d, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0d,
4824 0x00, 0x6f, 0x00, 0x083c, 0x0838, 0x0834, 0x01f1, 0x01f2, 0x01f3},
4825 {
4826 54, 5270, 0x98, 0x01, 0x01, 0x02, 0x0f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4827 0x03, 0x03, 0x03, 0x8e, 0x0e, 0x00, 0xed, 0xc7, 0x00, 0x04, 0x00, 0x77,
4828 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xc7, 0x00, 0x04, 0x00, 0x77, 0x00, 0x0c,
4829 0x00, 0x6f, 0x00, 0x0840, 0x083c, 0x0838, 0x01f0, 0x01f1, 0x01f2},
4830 {
4831 56, 5280, 0x91, 0x01, 0x01, 0x02, 0x10, 0x05, 0x05, 0x02, 0x0c, 0x01,
4832 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4833 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4834 0x00, 0x6f, 0x00, 0x0844, 0x0840, 0x083c, 0x01f0, 0x01f0, 0x01f1},
4835 {
4836 58, 5290, 0x91, 0x01, 0x01, 0x02, 0x11, 0x05, 0x05, 0x02, 0x0c, 0x01,
4837 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4838 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4839 0x00, 0x6f, 0x00, 0x0848, 0x0844, 0x0840, 0x01ef, 0x01f0, 0x01f0},
4840 {
4841 60, 5300, 0x8a, 0x01, 0x01, 0x02, 0x12, 0x05, 0x05, 0x02, 0x0c, 0x01,
4842 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4843 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4844 0x00, 0x6f, 0x00, 0x084c, 0x0848, 0x0844, 0x01ee, 0x01ef, 0x01f0},
4845 {
4846 62, 5310, 0x8a, 0x01, 0x01, 0x02, 0x13, 0x05, 0x05, 0x02, 0x0c, 0x01,
4847 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdc, 0xb7, 0x00, 0x03, 0x00, 0x77,
4848 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4849 0x00, 0x6f, 0x00, 0x0850, 0x084c, 0x0848, 0x01ed, 0x01ee, 0x01ef},
4850 {
4851 64, 5320, 0x83, 0x01, 0x01, 0x02, 0x14, 0x05, 0x05, 0x02, 0x0c, 0x01,
4852 0x03, 0x03, 0x03, 0x8d, 0x0e, 0x00, 0xdb, 0xb7, 0x00, 0x03, 0x00, 0x77,
4853 0x00, 0x0c, 0x00, 0x6f, 0x00, 0xb7, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0c,
4854 0x00, 0x6f, 0x00, 0x0854, 0x0850, 0x084c, 0x01ec, 0x01ed, 0x01ee},
4855 {
4856 66, 5330, 0x83, 0x01, 0x01, 0x02, 0x15, 0x05, 0x05, 0x02, 0x0c, 0x01,
4857 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xcb, 0xa6, 0x00, 0x03, 0x00, 0x77,
4858 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4859 0x00, 0x6f, 0x00, 0x0858, 0x0854, 0x0850, 0x01eb, 0x01ec, 0x01ed},
4860 {
4861 68, 5340, 0x7c, 0x01, 0x01, 0x02, 0x16, 0x05, 0x05, 0x02, 0x0c, 0x01,
4862 0x03, 0x03, 0x03, 0x8d, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4863 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4864 0x00, 0x6f, 0x00, 0x085c, 0x0858, 0x0854, 0x01ea, 0x01eb, 0x01ec},
4865 {
4866 70, 5350, 0x7c, 0x01, 0x01, 0x02, 0x17, 0x05, 0x05, 0x02, 0x0c, 0x01,
4867 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xca, 0xa6, 0x00, 0x03, 0x00, 0x77,
4868 0x00, 0x0b, 0x00, 0x6f, 0x00, 0xa6, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0b,
4869 0x00, 0x6f, 0x00, 0x0860, 0x085c, 0x0858, 0x01e9, 0x01ea, 0x01eb},
4870 {
4871 72, 5360, 0x75, 0x01, 0x01, 0x02, 0x18, 0x05, 0x05, 0x02, 0x0c, 0x01,
4872 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4873 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4874 0x00, 0x6f, 0x00, 0x0864, 0x0860, 0x085c, 0x01e8, 0x01e9, 0x01ea},
4875 {
4876 74, 5370, 0x75, 0x01, 0x01, 0x02, 0x19, 0x05, 0x05, 0x02, 0x0c, 0x01,
4877 0x03, 0x03, 0x03, 0x8c, 0x0d, 0x00, 0xc9, 0x95, 0x00, 0x03, 0x00, 0x77,
4878 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4879 0x00, 0x6f, 0x00, 0x0868, 0x0864, 0x0860, 0x01e7, 0x01e8, 0x01e9},
4880 {
4881 76, 5380, 0x6e, 0x01, 0x01, 0x02, 0x1a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4882 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x95, 0x00, 0x03, 0x00, 0x77,
4883 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x95, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4884 0x00, 0x6f, 0x00, 0x086c, 0x0868, 0x0864, 0x01e6, 0x01e7, 0x01e8},
4885 {
4886 78, 5390, 0x6e, 0x01, 0x01, 0x02, 0x1b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4887 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4888 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4889 0x00, 0x6f, 0x00, 0x0870, 0x086c, 0x0868, 0x01e5, 0x01e6, 0x01e7},
4890 {
4891 80, 5400, 0x67, 0x01, 0x01, 0x02, 0x1c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4892 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb8, 0x84, 0x00, 0x03, 0x00, 0x77,
4893 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x03, 0x00, 0x77, 0x00, 0x0a,
4894 0x00, 0x6f, 0x00, 0x0874, 0x0870, 0x086c, 0x01e5, 0x01e5, 0x01e6},
4895 {
4896 82, 5410, 0x67, 0x01, 0x01, 0x02, 0x1d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4897 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xb7, 0x84, 0x00, 0x02, 0x00, 0x77,
4898 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4899 0x00, 0x6f, 0x00, 0x0878, 0x0874, 0x0870, 0x01e4, 0x01e5, 0x01e5},
4900 {
4901 84, 5420, 0x61, 0x01, 0x01, 0x02, 0x1e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4902 0x03, 0x03, 0x03, 0x8c, 0x0c, 0x00, 0xa7, 0x84, 0x00, 0x02, 0x00, 0x77,
4903 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4904 0x00, 0x6f, 0x00, 0x087c, 0x0878, 0x0874, 0x01e3, 0x01e4, 0x01e5},
4905 {
4906 86, 5430, 0x61, 0x01, 0x01, 0x02, 0x1f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4907 0x03, 0x03, 0x03, 0x8c, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4908 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x0a,
4909 0x00, 0x6f, 0x00, 0x0880, 0x087c, 0x0878, 0x01e2, 0x01e3, 0x01e4},
4910 {
4911 88, 5440, 0x5a, 0x01, 0x01, 0x02, 0x20, 0x05, 0x05, 0x02, 0x0c, 0x01,
4912 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0xa6, 0x84, 0x00, 0x02, 0x00, 0x77,
4913 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x02, 0x00, 0x77, 0x00, 0x09,
4914 0x00, 0x6f, 0x00, 0x0884, 0x0880, 0x087c, 0x01e1, 0x01e2, 0x01e3},
4915 {
4916 90, 5450, 0x5a, 0x01, 0x01, 0x02, 0x21, 0x05, 0x05, 0x02, 0x0c, 0x01,
4917 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4918 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4919 0x00, 0x6f, 0x00, 0x0888, 0x0884, 0x0880, 0x01e0, 0x01e1, 0x01e2},
4920 {
4921 92, 5460, 0x53, 0x01, 0x01, 0x02, 0x22, 0x05, 0x05, 0x02, 0x0c, 0x01,
4922 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x95, 0x84, 0x00, 0x01, 0x00, 0x77,
4923 0x00, 0x09, 0x00, 0x6f, 0x00, 0x84, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4924 0x00, 0x6f, 0x00, 0x088c, 0x0888, 0x0884, 0x01df, 0x01e0, 0x01e1},
4925 {
4926 94, 5470, 0x53, 0x01, 0x01, 0x02, 0x23, 0x05, 0x05, 0x02, 0x0c, 0x01,
4927 0x04, 0x04, 0x04, 0x8b, 0x0b, 0x00, 0x94, 0x73, 0x00, 0x01, 0x00, 0x77,
4928 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x09,
4929 0x00, 0x6f, 0x00, 0x0890, 0x088c, 0x0888, 0x01de, 0x01df, 0x01e0},
4930 {
4931 96, 5480, 0x4d, 0x01, 0x01, 0x02, 0x24, 0x05, 0x05, 0x02, 0x0c, 0x01,
4932 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x84, 0x73, 0x00, 0x00, 0x00, 0x77,
4933 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4934 0x00, 0x6f, 0x00, 0x0894, 0x0890, 0x088c, 0x01dd, 0x01de, 0x01df},
4935 {
4936 98, 5490, 0x4d, 0x01, 0x01, 0x02, 0x25, 0x05, 0x05, 0x02, 0x0c, 0x01,
4937 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x83, 0x73, 0x00, 0x00, 0x00, 0x77,
4938 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4939 0x00, 0x6f, 0x00, 0x0898, 0x0894, 0x0890, 0x01dd, 0x01dd, 0x01de},
4940 {
4941 100, 5500, 0x47, 0x01, 0x01, 0x02, 0x26, 0x05, 0x05, 0x02, 0x0c, 0x01,
4942 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4943 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4944 0x00, 0x6f, 0x00, 0x089c, 0x0898, 0x0894, 0x01dc, 0x01dd, 0x01dd},
4945 {
4946 102, 5510, 0x47, 0x01, 0x01, 0x02, 0x27, 0x05, 0x05, 0x02, 0x0c, 0x01,
4947 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x82, 0x73, 0x00, 0x00, 0x00, 0x77,
4948 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4949 0x00, 0x6f, 0x00, 0x08a0, 0x089c, 0x0898, 0x01db, 0x01dc, 0x01dd},
4950 {
4951 104, 5520, 0x40, 0x01, 0x01, 0x02, 0x28, 0x05, 0x05, 0x02, 0x0c, 0x01,
4952 0x04, 0x04, 0x04, 0x8a, 0x0a, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4953 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4954 0x00, 0x6f, 0x00, 0x08a4, 0x08a0, 0x089c, 0x01da, 0x01db, 0x01dc},
4955 {
4956 106, 5530, 0x40, 0x01, 0x01, 0x02, 0x29, 0x05, 0x05, 0x02, 0x0c, 0x01,
4957 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x72, 0x73, 0x00, 0x00, 0x00, 0x77,
4958 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4959 0x00, 0x6f, 0x00, 0x08a8, 0x08a4, 0x08a0, 0x01d9, 0x01da, 0x01db},
4960 {
4961 108, 5540, 0x3a, 0x01, 0x01, 0x02, 0x2a, 0x05, 0x05, 0x02, 0x0c, 0x01,
4962 0x04, 0x04, 0x04, 0x8a, 0x09, 0x00, 0x71, 0x73, 0x00, 0x00, 0x00, 0x77,
4963 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4964 0x00, 0x6f, 0x00, 0x08ac, 0x08a8, 0x08a4, 0x01d8, 0x01d9, 0x01da},
4965 {
4966 110, 5550, 0x3a, 0x01, 0x01, 0x02, 0x2b, 0x05, 0x05, 0x02, 0x0c, 0x01,
4967 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4968 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4969 0x00, 0x6f, 0x00, 0x08b0, 0x08ac, 0x08a8, 0x01d7, 0x01d8, 0x01d9},
4970 {
4971 112, 5560, 0x34, 0x01, 0x01, 0x02, 0x2c, 0x05, 0x05, 0x02, 0x0c, 0x01,
4972 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0x77,
4973 0x00, 0x09, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4974 0x00, 0x6f, 0x00, 0x08b4, 0x08b0, 0x08ac, 0x01d7, 0x01d7, 0x01d8},
4975 {
4976 114, 5570, 0x34, 0x01, 0x01, 0x02, 0x2d, 0x05, 0x05, 0x02, 0x0c, 0x01,
4977 0x04, 0x04, 0x04, 0x89, 0x09, 0x00, 0x61, 0x62, 0x00, 0x00, 0x00, 0x77,
4978 0x00, 0x09, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x09,
4979 0x00, 0x6f, 0x00, 0x08b8, 0x08b4, 0x08b0, 0x01d6, 0x01d7, 0x01d7},
4980 {
4981 116, 5580, 0x2e, 0x01, 0x01, 0x02, 0x2e, 0x05, 0x05, 0x02, 0x0c, 0x01,
4982 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x60, 0x62, 0x00, 0x00, 0x00, 0x77,
4983 0x00, 0x08, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4984 0x00, 0x6f, 0x00, 0x08bc, 0x08b8, 0x08b4, 0x01d5, 0x01d6, 0x01d7},
4985 {
4986 118, 5590, 0x2e, 0x01, 0x01, 0x02, 0x2f, 0x05, 0x05, 0x02, 0x0c, 0x01,
4987 0x04, 0x04, 0x04, 0x89, 0x08, 0x00, 0x50, 0x61, 0x00, 0x00, 0x00, 0x77,
4988 0x00, 0x08, 0x00, 0x6f, 0x00, 0x61, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4989 0x00, 0x6f, 0x00, 0x08c0, 0x08bc, 0x08b8, 0x01d4, 0x01d5, 0x01d6},
4990 {
4991 120, 5600, 0x28, 0x01, 0x01, 0x02, 0x30, 0x05, 0x05, 0x02, 0x0c, 0x01,
4992 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4993 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4994 0x00, 0x6f, 0x00, 0x08c4, 0x08c0, 0x08bc, 0x01d3, 0x01d4, 0x01d5},
4995 {
4996 122, 5610, 0x28, 0x01, 0x01, 0x02, 0x31, 0x05, 0x05, 0x02, 0x0c, 0x01,
4997 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x51, 0x00, 0x00, 0x00, 0x77,
4998 0x00, 0x08, 0x00, 0x6f, 0x00, 0x51, 0x00, 0x00, 0x00, 0x77, 0x00, 0x08,
4999 0x00, 0x6f, 0x00, 0x08c8, 0x08c4, 0x08c0, 0x01d2, 0x01d3, 0x01d4},
5000 {
5001 124, 5620, 0x21, 0x01, 0x01, 0x02, 0x32, 0x05, 0x05, 0x02, 0x0c, 0x01,
5002 0x05, 0x05, 0x05, 0x89, 0x08, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5003 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5004 0x00, 0x6f, 0x00, 0x08cc, 0x08c8, 0x08c4, 0x01d2, 0x01d2, 0x01d3},
5005 {
5006 126, 5630, 0x21, 0x01, 0x01, 0x02, 0x33, 0x05, 0x05, 0x02, 0x0c, 0x01,
5007 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x77,
5008 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5009 0x00, 0x6f, 0x00, 0x08d0, 0x08cc, 0x08c8, 0x01d1, 0x01d2, 0x01d2},
5010 {
5011 128, 5640, 0x1c, 0x01, 0x01, 0x02, 0x34, 0x05, 0x05, 0x02, 0x0c, 0x01,
5012 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x50, 0x00, 0x00, 0x00, 0x77,
5013 0x00, 0x07, 0x00, 0x6f, 0x00, 0x50, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5014 0x00, 0x6f, 0x00, 0x08d4, 0x08d0, 0x08cc, 0x01d0, 0x01d1, 0x01d2},
5015 {
5016 130, 5650, 0x1c, 0x01, 0x01, 0x02, 0x35, 0x05, 0x05, 0x02, 0x0c, 0x01,
5017 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5018 0x00, 0x07, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x07,
5019 0x00, 0x6f, 0x00, 0x08d8, 0x08d4, 0x08d0, 0x01cf, 0x01d0, 0x01d1},
5020 {
5021 132, 5660, 0x16, 0x01, 0x01, 0x02, 0x36, 0x05, 0x05, 0x02, 0x0c, 0x01,
5022 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x77,
5023 0x00, 0x06, 0x00, 0x6f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5024 0x00, 0x6f, 0x00, 0x08dc, 0x08d8, 0x08d4, 0x01ce, 0x01cf, 0x01d0},
5025 {
5026 134, 5670, 0x16, 0x01, 0x01, 0x02, 0x37, 0x05, 0x05, 0x02, 0x0c, 0x01,
5027 0x05, 0x05, 0x05, 0x88, 0x07, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x77,
5028 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5029 0x00, 0x6f, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce, 0x01ce, 0x01cf},
5030 {
5031 136, 5680, 0x10, 0x01, 0x01, 0x02, 0x38, 0x05, 0x05, 0x02, 0x0c, 0x01,
5032 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5033 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5034 0x00, 0x6f, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd, 0x01ce, 0x01ce},
5035 {
5036 138, 5690, 0x10, 0x01, 0x01, 0x02, 0x39, 0x05, 0x05, 0x02, 0x0c, 0x01,
5037 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5038 0x00, 0x06, 0x00, 0x6f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5039 0x00, 0x6f, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc, 0x01cd, 0x01ce},
5040 {
5041 140, 5700, 0x0a, 0x01, 0x01, 0x02, 0x3a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5042 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5043 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5044 0x00, 0x6e, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb, 0x01cc, 0x01cd},
5045 {
5046 142, 5710, 0x0a, 0x01, 0x01, 0x02, 0x3b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5047 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5048 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5049 0x00, 0x6e, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca, 0x01cb, 0x01cc},
5050 {
5051 144, 5720, 0x0a, 0x01, 0x01, 0x02, 0x3c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5052 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5053 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5054 0x00, 0x6e, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9, 0x01ca, 0x01cb},
5055 {
5056 145, 5725, 0x03, 0x01, 0x02, 0x04, 0x79, 0x05, 0x05, 0x02, 0x15, 0x01,
5057 0x05, 0x05, 0x05, 0x87, 0x06, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x77,
5058 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5059 0x00, 0x6e, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9, 0x01ca, 0x01cb},
5060 {
5061 146, 5730, 0x0a, 0x01, 0x01, 0x02, 0x3d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5062 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5063 0x00, 0x06, 0x00, 0x6e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5064 0x00, 0x6e, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9, 0x01c9, 0x01ca},
5065 {
5066 147, 5735, 0x03, 0x01, 0x02, 0x04, 0x7b, 0x05, 0x05, 0x02, 0x15, 0x01,
5067 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5068 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5069 0x00, 0x6d, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8, 0x01c9, 0x01ca},
5070 {
5071 148, 5740, 0x0a, 0x01, 0x01, 0x02, 0x3e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5072 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5073 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5074 0x00, 0x6d, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8, 0x01c9, 0x01c9},
5075 {
5076 149, 5745, 0xfe, 0x00, 0x02, 0x04, 0x7d, 0x05, 0x05, 0x02, 0x15, 0x01,
5077 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x77,
5078 0x00, 0x06, 0x00, 0x6d, 0x00, 0x30, 0x00, 0x00, 0x00, 0x77, 0x00, 0x06,
5079 0x00, 0x6d, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8, 0x01c8, 0x01c9},
5080 {
5081 150, 5750, 0x0a, 0x01, 0x01, 0x02, 0x3f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5082 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x77,
5083 0x00, 0x05, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5084 0x00, 0x6d, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7, 0x01c8, 0x01c9},
5085 {
5086 151, 5755, 0xfe, 0x00, 0x02, 0x04, 0x7f, 0x05, 0x05, 0x02, 0x15, 0x01,
5087 0x05, 0x05, 0x05, 0x87, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5088 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5089 0x00, 0x6c, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7, 0x01c8, 0x01c8},
5090 {
5091 152, 5760, 0x0a, 0x01, 0x01, 0x02, 0x40, 0x05, 0x05, 0x02, 0x0c, 0x01,
5092 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x77,
5093 0x00, 0x05, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5094 0x00, 0x6c, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6, 0x01c7, 0x01c8},
5095 {
5096 153, 5765, 0xf8, 0x00, 0x02, 0x04, 0x81, 0x05, 0x05, 0x02, 0x15, 0x01,
5097 0x05, 0x05, 0x05, 0x86, 0x05, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5098 0x00, 0x05, 0x00, 0x6c, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5099 0x00, 0x6c, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6, 0x01c7, 0x01c8},
5100 {
5101 154, 5770, 0x0a, 0x01, 0x01, 0x02, 0x41, 0x05, 0x05, 0x02, 0x0c, 0x01,
5102 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5103 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5104 0x00, 0x6b, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6, 0x01c6, 0x01c7},
5105 {
5106 155, 5775, 0xf8, 0x00, 0x02, 0x04, 0x83, 0x05, 0x05, 0x02, 0x15, 0x01,
5107 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5108 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5109 0x00, 0x6b, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5, 0x01c6, 0x01c7},
5110 {
5111 156, 5780, 0x0a, 0x01, 0x01, 0x02, 0x42, 0x05, 0x05, 0x02, 0x0c, 0x01,
5112 0x05, 0x05, 0x05, 0x86, 0x04, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x77,
5113 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5114 0x00, 0x6b, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5, 0x01c6, 0x01c6},
5115 {
5116 157, 5785, 0xf2, 0x00, 0x02, 0x04, 0x85, 0x05, 0x05, 0x02, 0x15, 0x01,
5117 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5118 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5119 0x00, 0x6b, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4, 0x01c5, 0x01c6},
5120 {
5121 158, 5790, 0x0a, 0x01, 0x01, 0x02, 0x43, 0x05, 0x05, 0x02, 0x0c, 0x01,
5122 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77,
5123 0x00, 0x05, 0x00, 0x6b, 0x00, 0x10, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5124 0x00, 0x6b, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4, 0x01c5, 0x01c6},
5125 {
5126 159, 5795, 0xf2, 0x00, 0x02, 0x04, 0x87, 0x05, 0x05, 0x02, 0x15, 0x01,
5127 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5128 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5129 0x00, 0x6b, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4, 0x01c4, 0x01c5},
5130 {
5131 160, 5800, 0x0a, 0x01, 0x01, 0x02, 0x44, 0x05, 0x05, 0x02, 0x0c, 0x01,
5132 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5133 0x00, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5134 0x00, 0x6b, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3, 0x01c4, 0x01c5},
5135 {
5136 161, 5805, 0xed, 0x00, 0x02, 0x04, 0x89, 0x05, 0x05, 0x02, 0x15, 0x01,
5137 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5138 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5139 0x00, 0x6a, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3, 0x01c4, 0x01c4},
5140 {
5141 162, 5810, 0x0a, 0x01, 0x01, 0x02, 0x45, 0x05, 0x05, 0x02, 0x0c, 0x01,
5142 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5143 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5144 0x00, 0x6a, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2, 0x01c3, 0x01c4},
5145 {
5146 163, 5815, 0xed, 0x00, 0x02, 0x04, 0x8b, 0x05, 0x05, 0x02, 0x15, 0x01,
5147 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5148 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5149 0x00, 0x6a, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2, 0x01c3, 0x01c4},
5150 {
5151 164, 5820, 0x0a, 0x01, 0x01, 0x02, 0x46, 0x05, 0x05, 0x02, 0x0c, 0x01,
5152 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5153 0x00, 0x05, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5154 0x00, 0x6a, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2, 0x01c2, 0x01c3},
5155 {
5156 165, 5825, 0xed, 0x00, 0x02, 0x04, 0x8d, 0x05, 0x05, 0x02, 0x15, 0x01,
5157 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5158 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5159 0x00, 0x69, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1, 0x01c2, 0x01c3},
5160 {
5161 166, 5830, 0x0a, 0x01, 0x01, 0x02, 0x47, 0x05, 0x05, 0x02, 0x0c, 0x01,
5162 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5163 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x05,
5164 0x00, 0x69, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1, 0x01c2, 0x01c2},
5165 {
5166 168, 5840, 0x0a, 0x01, 0x01, 0x02, 0x48, 0x05, 0x05, 0x02, 0x0c, 0x01,
5167 0x06, 0x06, 0x06, 0x86, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5168 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5169 0x00, 0x69, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0, 0x01c1, 0x01c2},
5170 {
5171 170, 5850, 0xe0, 0x00, 0x01, 0x02, 0x49, 0x05, 0x05, 0x02, 0x0c, 0x01,
5172 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5173 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5174 0x00, 0x69, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf, 0x01c0, 0x01c1},
5175 {
5176 172, 5860, 0xde, 0x00, 0x01, 0x02, 0x4a, 0x05, 0x05, 0x02, 0x0c, 0x01,
5177 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5178 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5179 0x00, 0x69, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf, 0x01bf, 0x01c0},
5180 {
5181 174, 5870, 0xdb, 0x00, 0x01, 0x02, 0x4b, 0x05, 0x05, 0x02, 0x0c, 0x01,
5182 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5183 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5184 0x00, 0x68, 0x00, 0x0930, 0x092c, 0x0928, 0x01be, 0x01bf, 0x01bf},
5185 {
5186 176, 5880, 0xd8, 0x00, 0x01, 0x02, 0x4c, 0x05, 0x05, 0x02, 0x0c, 0x01,
5187 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5188 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5189 0x00, 0x68, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd, 0x01be, 0x01bf},
5190 {
5191 178, 5890, 0xd6, 0x00, 0x01, 0x02, 0x4d, 0x05, 0x05, 0x02, 0x0c, 0x01,
5192 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5193 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5194 0x00, 0x68, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc, 0x01bd, 0x01be},
5195 {
5196 180, 5900, 0xd3, 0x00, 0x01, 0x02, 0x4e, 0x05, 0x05, 0x02, 0x0c, 0x01,
5197 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5198 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5199 0x00, 0x68, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc, 0x01bc, 0x01bd},
5200 {
5201 182, 5910, 0xd6, 0x00, 0x01, 0x02, 0x4f, 0x05, 0x05, 0x02, 0x0c, 0x01,
5202 0x06, 0x06, 0x06, 0x85, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77,
5203 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x04,
5204 0x00, 0x68, 0x00, 0x0940, 0x093c, 0x0938, 0x01bb, 0x01bc, 0x01bc},
5205 {
5206 1, 2412, 0x00, 0x01, 0x03, 0x09, 0x6c, 0x06, 0x06, 0x04, 0x2b, 0x01,
5207 0x04, 0x04, 0x04, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5208 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5209 0x0b, 0x00, 0x0a, 0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443},
5210 {
5211 2, 2417, 0x00, 0x01, 0x03, 0x09, 0x71, 0x06, 0x06, 0x04, 0x2b, 0x01,
5212 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0x00,
5213 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5214 0x0b, 0x00, 0x0a, 0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441},
5215 {
5216 3, 2422, 0x00, 0x01, 0x03, 0x09, 0x76, 0x06, 0x06, 0x04, 0x2b, 0x01,
5217 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x67, 0x00, 0x03, 0x00,
5218 0x70, 0x00, 0x0b, 0x00, 0x0a, 0x00, 0x89, 0x00, 0x03, 0x00, 0x70, 0x00,
5219 0x0b, 0x00, 0x0a, 0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f},
5220 {
5221 4, 2427, 0x00, 0x01, 0x03, 0x09, 0x7b, 0x06, 0x06, 0x04, 0x2b, 0x01,
5222 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x57, 0x00, 0x03, 0x00,
5223 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x78, 0x00, 0x03, 0x00, 0x70, 0x00,
5224 0x0a, 0x00, 0x0a, 0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d},
5225 {
5226 5, 2432, 0x00, 0x01, 0x03, 0x09, 0x80, 0x06, 0x06, 0x04, 0x2b, 0x01,
5227 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x56, 0x00, 0x03, 0x00,
5228 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x77, 0x00, 0x03, 0x00, 0x70, 0x00,
5229 0x0a, 0x00, 0x0a, 0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a},
5230 {
5231 6, 2437, 0x00, 0x01, 0x03, 0x09, 0x85, 0x06, 0x06, 0x04, 0x2b, 0x01,
5232 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x46, 0x00, 0x03, 0x00,
5233 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x76, 0x00, 0x03, 0x00, 0x70, 0x00,
5234 0x0a, 0x00, 0x0a, 0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438},
5235 {
5236 7, 2442, 0x00, 0x01, 0x03, 0x09, 0x8a, 0x06, 0x06, 0x04, 0x2b, 0x01,
5237 0x05, 0x05, 0x05, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00,
5238 0x70, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x02, 0x00, 0x70, 0x00,
5239 0x0a, 0x00, 0x0a, 0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436},
5240 {
5241 8, 2447, 0x00, 0x01, 0x03, 0x09, 0x8f, 0x06, 0x06, 0x04, 0x2b, 0x01,
5242 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00,
5243 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x55, 0x00, 0x02, 0x00, 0x70, 0x00,
5244 0x0a, 0x00, 0x09, 0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434},
5245 {
5246 9, 2452, 0x00, 0x01, 0x03, 0x09, 0x94, 0x06, 0x06, 0x04, 0x2b, 0x01,
5247 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x23, 0x00, 0x02, 0x00,
5248 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x45, 0x00, 0x02, 0x00, 0x70, 0x00,
5249 0x0a, 0x00, 0x09, 0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431},
5250 {
5251 10, 2457, 0x00, 0x01, 0x03, 0x09, 0x99, 0x06, 0x06, 0x04, 0x2b, 0x01,
5252 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00,
5253 0x70, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x34, 0x00, 0x02, 0x00, 0x70, 0x00,
5254 0x0a, 0x00, 0x09, 0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f},
5255 {
5256 11, 2462, 0x00, 0x01, 0x03, 0x09, 0x9e, 0x06, 0x06, 0x04, 0x2b, 0x01,
5257 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00,
5258 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x33, 0x00, 0x02, 0x00, 0x70, 0x00,
5259 0x09, 0x00, 0x09, 0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d},
5260 {
5261 12, 2467, 0x00, 0x01, 0x03, 0x09, 0xa3, 0x06, 0x06, 0x04, 0x2b, 0x01,
5262 0x06, 0x06, 0x06, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5263 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x22, 0x00, 0x02, 0x00, 0x70, 0x00,
5264 0x09, 0x00, 0x09, 0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b},
5265 {
5266 13, 2472, 0x00, 0x01, 0x03, 0x09, 0xa8, 0x06, 0x06, 0x04, 0x2b, 0x01,
5267 0x07, 0x07, 0x07, 0x8f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00,
5268 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x11, 0x00, 0x02, 0x00, 0x70, 0x00,
5269 0x09, 0x00, 0x09, 0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429},
5270 {
5271 14, 2484, 0xff, 0x01, 0x03, 0x09, 0xb4, 0x06, 0x06, 0x04, 0x2b, 0x01,
5272 0x07, 0x07, 0x07, 0x8f, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
5273 0x70, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x70, 0x00,
5274 0x09, 0x00, 0x09, 0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f, 0x0424}
5275};
5276
5277static chan_info_nphy_radio2057_t chan_info_nphyrev7_2057_rev4[] = {
5278 {
5279 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
5280 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5281 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b4, 0x07b0, 0x07ac, 0x0214,
5282 0x0215,
5283 0x0216,
5284 },
5285 {
5286 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
5287 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5288 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07b8, 0x07b4, 0x07b0, 0x0213,
5289 0x0214,
5290 0x0215,
5291 },
5292 {
5293 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
5294 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5295 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07bc, 0x07b8, 0x07b4, 0x0212,
5296 0x0213,
5297 0x0214,
5298 },
5299 {
5300 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
5301 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5302 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c0, 0x07bc, 0x07b8, 0x0211,
5303 0x0212,
5304 0x0213,
5305 },
5306 {
5307 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
5308 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5309 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c4, 0x07c0, 0x07bc, 0x020f,
5310 0x0211,
5311 0x0212,
5312 },
5313 {
5314 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
5315 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5316 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07c8, 0x07c4, 0x07c0, 0x020e,
5317 0x020f,
5318 0x0211,
5319 },
5320 {
5321 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
5322 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5323 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07cc, 0x07c8, 0x07c4, 0x020d,
5324 0x020e,
5325 0x020f,
5326 },
5327 {
5328 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
5329 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5330 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d0, 0x07cc, 0x07c8, 0x020c,
5331 0x020d,
5332 0x020e,
5333 },
5334 {
5335 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
5336 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5337 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d4, 0x07d0, 0x07cc, 0x020b,
5338 0x020c,
5339 0x020d,
5340 },
5341 {
5342 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
5343 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5344 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07d8, 0x07d4, 0x07d0, 0x020a,
5345 0x020b,
5346 0x020c,
5347 },
5348 {
5349 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
5350 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5351 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07dc, 0x07d8, 0x07d4, 0x0209,
5352 0x020a,
5353 0x020b,
5354 },
5355 {
5356 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
5357 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5358 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e0, 0x07dc, 0x07d8, 0x0208,
5359 0x0209,
5360 0x020a,
5361 },
5362 {
5363 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
5364 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5365 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e4, 0x07e0, 0x07dc, 0x0207,
5366 0x0208,
5367 0x0209,
5368 },
5369 {
5370 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
5371 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x00,
5372 0x00, 0x0f, 0x0f, 0xf3, 0x00, 0xef, 0x07e8, 0x07e4, 0x07e0, 0x0206,
5373 0x0207,
5374 0x0208,
5375 },
5376 {
5377 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
5378 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5379 0x00, 0x0f, 0x0f, 0xe3, 0x00, 0xef, 0x07ec, 0x07e8, 0x07e4, 0x0205,
5380 0x0206,
5381 0x0207,
5382 },
5383 {
5384 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
5385 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5386 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f0, 0x07ec, 0x07e8, 0x0204,
5387 0x0205,
5388 0x0206,
5389 },
5390 {
5391 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
5392 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x00,
5393 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xef, 0x07f4, 0x07f0, 0x07ec, 0x0203,
5394 0x0204,
5395 0x0205,
5396 },
5397 {
5398 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
5399 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5400 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07f8, 0x07f4, 0x07f0, 0x0202,
5401 0x0203,
5402 0x0204,
5403 },
5404 {
5405 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
5406 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5407 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x07fc, 0x07f8, 0x07f4, 0x0201,
5408 0x0202,
5409 0x0203,
5410 },
5411 {
5412 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
5413 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5414 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0800, 0x07fc, 0x07f8, 0x0200,
5415 0x0201,
5416 0x0202,
5417 },
5418 {
5419 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
5420 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5421 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0804, 0x0800, 0x07fc, 0x01ff,
5422 0x0200,
5423 0x0201,
5424 },
5425 {
5426 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
5427 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x00,
5428 0x00, 0x0e, 0x0f, 0xe3, 0x00, 0xd6, 0x0808, 0x0804, 0x0800, 0x01fe,
5429 0x01ff,
5430 0x0200,
5431 },
5432 {
5433 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
5434 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5435 0x00, 0x0e, 0x0e, 0xe3, 0x00, 0xd6, 0x080c, 0x0808, 0x0804, 0x01fd,
5436 0x01fe,
5437 0x01ff,
5438 },
5439 {
5440 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
5441 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5442 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0814, 0x0810, 0x080c, 0x01fb,
5443 0x01fc,
5444 0x01fd,
5445 },
5446 {
5447 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
5448 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x00,
5449 0x00, 0x0d, 0x0e, 0xe3, 0x00, 0xd6, 0x0818, 0x0814, 0x0810, 0x01fa,
5450 0x01fb,
5451 0x01fc,
5452 },
5453 {
5454 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
5455 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5456 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x081c, 0x0818, 0x0814, 0x01f9,
5457 0x01fa,
5458 0x01fb,
5459 },
5460 {
5461 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
5462 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5463 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0820, 0x081c, 0x0818, 0x01f8,
5464 0x01f9,
5465 0x01fa,
5466 },
5467 {
5468 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
5469 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5470 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0824, 0x0820, 0x081c, 0x01f7,
5471 0x01f8,
5472 0x01f9,
5473 },
5474 {
5475 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
5476 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5477 0x00, 0x0d, 0x0e, 0xd3, 0x00, 0xd6, 0x0828, 0x0824, 0x0820, 0x01f6,
5478 0x01f7,
5479 0x01f8,
5480 },
5481 {
5482 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
5483 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5484 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x082c, 0x0828, 0x0824, 0x01f5,
5485 0x01f6,
5486 0x01f7,
5487 },
5488 {
5489 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
5490 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5491 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0830, 0x082c, 0x0828, 0x01f4,
5492 0x01f5,
5493 0x01f6,
5494 },
5495 {
5496 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
5497 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5498 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0834, 0x0830, 0x082c, 0x01f3,
5499 0x01f4,
5500 0x01f5,
5501 },
5502 {
5503 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
5504 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x00,
5505 0x00, 0x0c, 0x0e, 0xd3, 0x00, 0xd6, 0x0838, 0x0834, 0x0830, 0x01f2,
5506 0x01f3,
5507 0x01f4,
5508 },
5509 {
5510 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
5511 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5512 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x083c, 0x0838, 0x0834, 0x01f1,
5513 0x01f2,
5514 0x01f3,
5515 },
5516 {
5517 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
5518 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x00,
5519 0x00, 0x0c, 0x0d, 0xd3, 0x00, 0xd6, 0x0840, 0x083c, 0x0838, 0x01f0,
5520 0x01f1,
5521 0x01f2,
5522 },
5523 {
5524 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
5525 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5526 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0844, 0x0840, 0x083c, 0x01f0,
5527 0x01f0,
5528 0x01f1,
5529 },
5530 {
5531 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
5532 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5533 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x0848, 0x0844, 0x0840, 0x01ef,
5534 0x01f0,
5535 0x01f0,
5536 },
5537 {
5538 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
5539 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5540 0x00, 0x0c, 0x0c, 0xc3, 0x00, 0xd4, 0x084c, 0x0848, 0x0844, 0x01ee,
5541 0x01ef,
5542 0x01f0,
5543 },
5544 {
5545 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
5546 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5547 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0850, 0x084c, 0x0848, 0x01ed,
5548 0x01ee,
5549 0x01ef,
5550 },
5551 {
5552 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
5553 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5554 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0854, 0x0850, 0x084c, 0x01ec,
5555 0x01ed,
5556 0x01ee,
5557 },
5558 {
5559 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
5560 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x00,
5561 0x00, 0x0b, 0x0c, 0xc3, 0x00, 0xd4, 0x0858, 0x0854, 0x0850, 0x01eb,
5562 0x01ec,
5563 0x01ed,
5564 },
5565 {
5566 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
5567 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x00,
5568 0x00, 0x0a, 0x0c, 0xc3, 0x00, 0xa1, 0x085c, 0x0858, 0x0854, 0x01ea,
5569 0x01eb,
5570 0x01ec,
5571 },
5572 {
5573 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
5574 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5575 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0860, 0x085c, 0x0858, 0x01e9,
5576 0x01ea,
5577 0x01eb,
5578 },
5579 {
5580 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
5581 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5582 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0864, 0x0860, 0x085c, 0x01e8,
5583 0x01e9,
5584 0x01ea,
5585 },
5586 {
5587 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
5588 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5589 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x0868, 0x0864, 0x0860, 0x01e7,
5590 0x01e8,
5591 0x01e9,
5592 },
5593 {
5594 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
5595 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x00,
5596 0x00, 0x0a, 0x0b, 0xb3, 0x00, 0xa1, 0x086c, 0x0868, 0x0864, 0x01e6,
5597 0x01e7,
5598 0x01e8,
5599 },
5600 {
5601 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
5602 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x00,
5603 0x00, 0x0a, 0x0a, 0xa3, 0x00, 0xa1, 0x0870, 0x086c, 0x0868, 0x01e5,
5604 0x01e6,
5605 0x01e7,
5606 },
5607 {
5608 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
5609 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5610 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0874, 0x0870, 0x086c, 0x01e5,
5611 0x01e5,
5612 0x01e6,
5613 },
5614 {
5615 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
5616 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x00,
5617 0x00, 0x09, 0x0a, 0xa3, 0x00, 0x90, 0x0878, 0x0874, 0x0870, 0x01e4,
5618 0x01e5,
5619 0x01e5,
5620 },
5621 {
5622 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
5623 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x00,
5624 0x00, 0x09, 0x09, 0xa3, 0x00, 0x90, 0x087c, 0x0878, 0x0874, 0x01e3,
5625 0x01e4,
5626 0x01e5,
5627 },
5628 {
5629 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
5630 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5631 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0880, 0x087c, 0x0878, 0x01e2,
5632 0x01e3,
5633 0x01e4,
5634 },
5635 {
5636 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
5637 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5638 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0884, 0x0880, 0x087c, 0x01e1,
5639 0x01e2,
5640 0x01e3,
5641 },
5642 {
5643 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
5644 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x00,
5645 0x00, 0x09, 0x09, 0x93, 0x00, 0x90, 0x0888, 0x0884, 0x0880, 0x01e0,
5646 0x01e1,
5647 0x01e2,
5648 },
5649 {
5650 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
5651 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x00,
5652 0x00, 0x08, 0x08, 0x93, 0x00, 0x90, 0x088c, 0x0888, 0x0884, 0x01df,
5653 0x01e0,
5654 0x01e1,
5655 },
5656 {
5657 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
5658 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x00,
5659 0x00, 0x08, 0x08, 0x93, 0x00, 0x60, 0x0890, 0x088c, 0x0888, 0x01de,
5660 0x01df,
5661 0x01e0,
5662 },
5663 {
5664 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
5665 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5666 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0894, 0x0890, 0x088c, 0x01dd,
5667 0x01de,
5668 0x01df,
5669 },
5670 {
5671 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
5672 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5673 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x0898, 0x0894, 0x0890, 0x01dd,
5674 0x01dd,
5675 0x01de,
5676 },
5677 {
5678 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
5679 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5680 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x089c, 0x0898, 0x0894, 0x01dc,
5681 0x01dd,
5682 0x01dd,
5683 },
5684 {
5685 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
5686 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x00,
5687 0x00, 0x08, 0x07, 0x93, 0x00, 0x60, 0x08a0, 0x089c, 0x0898, 0x01db,
5688 0x01dc,
5689 0x01dd,
5690 },
5691 {
5692 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
5693 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5694 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a4, 0x08a0, 0x089c, 0x01da,
5695 0x01db,
5696 0x01dc,
5697 },
5698 {
5699 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
5700 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5701 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
5702 0x01da,
5703 0x01db,
5704 },
5705 {
5706 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
5707 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x00,
5708 0x00, 0x08, 0x06, 0x93, 0x00, 0x60, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
5709 0x01d9,
5710 0x01da,
5711 },
5712 {
5713 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
5714 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5715 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
5716 0x01d8,
5717 0x01d9,
5718 },
5719 {
5720 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
5721 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5722 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
5723 0x01d7,
5724 0x01d8,
5725 },
5726 {
5727 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
5728 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x00,
5729 0x00, 0x08, 0x05, 0x83, 0x00, 0x60, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
5730 0x01d7,
5731 0x01d7,
5732 },
5733 {
5734 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
5735 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x00,
5736 0x00, 0x07, 0x05, 0x83, 0x00, 0x60, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
5737 0x01d6,
5738 0x01d7,
5739 },
5740 {
5741 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
5742 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x00,
5743 0x00, 0x07, 0x04, 0x83, 0x00, 0x60, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
5744 0x01d5,
5745 0x01d6,
5746 },
5747 {
5748 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
5749 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x00,
5750 0x00, 0x07, 0x04, 0x73, 0x00, 0x30, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
5751 0x01d4,
5752 0x01d5,
5753 },
5754 {
5755 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
5756 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5757 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
5758 0x01d3,
5759 0x01d4,
5760 },
5761 {
5762 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
5763 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5764 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
5765 0x01d2,
5766 0x01d3,
5767 },
5768 {
5769 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
5770 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5771 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
5772 0x01d2,
5773 0x01d2,
5774 },
5775 {
5776 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
5777 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x00,
5778 0x00, 0x06, 0x04, 0x73, 0x00, 0x30, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
5779 0x01d1,
5780 0x01d2,
5781 },
5782 {
5783 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
5784 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5785 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
5786 0x01d0,
5787 0x01d1,
5788 },
5789 {
5790 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
5791 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x00,
5792 0x00, 0x06, 0x03, 0x63, 0x00, 0x30, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
5793 0x01cf,
5794 0x01d0,
5795 },
5796 {
5797 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
5798 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x00,
5799 0x00, 0x05, 0x03, 0x63, 0x00, 0x00, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
5800 0x01ce,
5801 0x01cf,
5802 },
5803 {
5804 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
5805 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5806 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
5807 0x01ce,
5808 0x01ce,
5809 },
5810 {
5811 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
5812 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5813 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
5814 0x01cd,
5815 0x01ce,
5816 },
5817 {
5818 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
5819 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5820 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
5821 0x01cc,
5822 0x01cd,
5823 },
5824 {
5825 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
5826 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5827 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
5828 0x01cb,
5829 0x01cc,
5830 },
5831 {
5832 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
5833 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x00,
5834 0x00, 0x05, 0x02, 0x53, 0x00, 0x00, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
5835 0x01ca,
5836 0x01cb,
5837 },
5838 {
5839 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
5840 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x00,
5841 0x00, 0x05, 0x01, 0x53, 0x00, 0x00, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
5842 0x01ca,
5843 0x01cb,
5844 },
5845 {
5846 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
5847 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5848 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
5849 0x01c9,
5850 0x01ca,
5851 },
5852 {
5853 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
5854 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5855 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
5856 0x01c9,
5857 0x01ca,
5858 },
5859 {
5860 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
5861 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5862 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
5863 0x01c9,
5864 0x01c9,
5865 },
5866 {
5867 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
5868 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5869 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
5870 0x01c8,
5871 0x01c9,
5872 },
5873 {
5874 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
5875 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5876 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
5877 0x01c8,
5878 0x01c9,
5879 },
5880 {
5881 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
5882 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x00,
5883 0x00, 0x04, 0x01, 0x53, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
5884 0x01c8,
5885 0x01c8,
5886 },
5887 {
5888 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
5889 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5890 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
5891 0x01c7,
5892 0x01c8,
5893 },
5894 {
5895 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
5896 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5897 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
5898 0x01c7,
5899 0x01c8,
5900 },
5901 {
5902 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
5903 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5904 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
5905 0x01c6,
5906 0x01c7,
5907 },
5908 {
5909 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
5910 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x00,
5911 0x00, 0x04, 0x01, 0x43, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
5912 0x01c6,
5913 0x01c7,
5914 },
5915 {
5916 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
5917 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x00,
5918 0x00, 0x03, 0x01, 0x43, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
5919 0x01c6,
5920 0x01c6,
5921 },
5922 {
5923 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
5924 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5925 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
5926 0x01c5,
5927 0x01c6,
5928 },
5929 {
5930 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
5931 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5932 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
5933 0x01c5,
5934 0x01c6,
5935 },
5936 {
5937 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
5938 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5939 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
5940 0x01c4,
5941 0x01c5,
5942 },
5943 {
5944 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
5945 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5946 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
5947 0x01c4,
5948 0x01c5,
5949 },
5950 {
5951 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
5952 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5953 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
5954 0x01c4,
5955 0x01c4,
5956 },
5957 {
5958 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
5959 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5960 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
5961 0x01c3,
5962 0x01c4,
5963 },
5964 {
5965 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
5966 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5967 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
5968 0x01c3,
5969 0x01c4,
5970 },
5971 {
5972 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
5973 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5974 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
5975 0x01c2,
5976 0x01c3,
5977 },
5978 {
5979 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
5980 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5981 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
5982 0x01c2,
5983 0x01c3,
5984 },
5985 {
5986 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
5987 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5988 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
5989 0x01c2,
5990 0x01c2,
5991 },
5992 {
5993 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
5994 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
5995 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
5996 0x01c1,
5997 0x01c2,
5998 },
5999 {
6000 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6001 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6002 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6003 0x01c0,
6004 0x01c1,
6005 },
6006 {
6007 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6008 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6009 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6010 0x01bf,
6011 0x01c0,
6012 },
6013 {
6014 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6015 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6016 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6017 0x01bf,
6018 0x01bf,
6019 },
6020 {
6021 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6022 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6023 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6024 0x01be,
6025 0x01bf,
6026 },
6027 {
6028 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6029 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6030 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6031 0x01bd,
6032 0x01be,
6033 },
6034 {
6035 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6036 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00,
6037 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6038 0x01bc,
6039 0x01bd,
6040 },
6041 {
6042 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6043 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6044 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6045 0x043f,
6046 0x0443,
6047 },
6048 {
6049 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6050 0x0a, 0x00, 0x0a, 0x00, 0x71, 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6051 0xa3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6052 0x043d,
6053 0x0441,
6054 },
6055 {
6056 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6057 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6058 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6059 0x043a,
6060 0x043f,
6061 },
6062 {
6063 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6064 0x09, 0x00, 0x09, 0x00, 0x71, 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x71,
6065 0x93, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6066 0x0438,
6067 0x043d,
6068 },
6069 {
6070 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6071 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6072 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6073 0x0436,
6074 0x043a,
6075 },
6076 {
6077 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6078 0x08, 0x00, 0x08, 0x00, 0x51, 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6079 0x83, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6080 0x0434,
6081 0x0438,
6082 },
6083 {
6084 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6085 0x07, 0x00, 0x07, 0x00, 0x51, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x51,
6086 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6087 0x0431,
6088 0x0436,
6089 },
6090 {
6091 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6092 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6093 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6094 0x042f,
6095 0x0434,
6096 },
6097 {
6098 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6099 0x07, 0x00, 0x07, 0x00, 0x31, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6100 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6101 0x042d,
6102 0x0431,
6103 },
6104 {
6105 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6106 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6107 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6108 0x042b,
6109 0x042f,
6110 },
6111 {
6112 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6113 0x06, 0x00, 0x06, 0x00, 0x31, 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x31,
6114 0x63, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6115 0x0429,
6116 0x042d,
6117 },
6118 {
6119 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6120 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6121 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6122 0x0427,
6123 0x042b,
6124 },
6125 {
6126 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6127 0x05, 0x00, 0x05, 0x00, 0x11, 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x11,
6128 0x53, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6129 0x0424,
6130 0x0429,
6131 },
6132 {
6133 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6134 0x04, 0x00, 0x04, 0x00, 0x11, 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x11,
6135 0x43, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6136 0x041f,
6137 0x0424}
6138};
6139
6140static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev8_2057_rev5[] = {
6141 {
6142 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6143 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6144 0x043a, 0x043f, 0x0443},
6145 {
6146 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6147 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6148 0x0438, 0x043d, 0x0441},
6149 {
6150 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6151 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6152 0x0436, 0x043a, 0x043f},
6153 {
6154 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6155 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6156 0x0434, 0x0438, 0x043d},
6157 {
6158 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6159 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6160 0x0431, 0x0436, 0x043a},
6161 {
6162 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6163 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6164 0x042f, 0x0434, 0x0438},
6165 {
6166 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6167 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6168 0x042d, 0x0431, 0x0436},
6169 {
6170 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6171 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6172 0x042b, 0x042f, 0x0434},
6173 {
6174 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6175 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6176 0x0429, 0x042d, 0x0431},
6177 {
6178 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6179 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6180 0x0427, 0x042b, 0x042f},
6181 {
6182 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6183 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6184 0x0424, 0x0429, 0x042d},
6185 {
6186 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6187 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6188 0x0422, 0x0427, 0x042b},
6189 {
6190 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6191 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6192 0x0420, 0x0424, 0x0429},
6193 {
6194 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6195 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6196 0x041b, 0x041f, 0x0424}
6197};
6198
6199static chan_info_nphy_radio2057_rev5_t chan_info_nphyrev9_2057_rev5v1[] = {
6200 {
6201 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0d,
6202 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03c9, 0x03c5, 0x03c1,
6203 0x043a, 0x043f, 0x0443},
6204 {
6205 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0d,
6206 0x08, 0x0e, 0x61, 0x03, 0xff, 0x61, 0x03, 0xff, 0x03cb, 0x03c7, 0x03c3,
6207 0x0438, 0x043d, 0x0441},
6208 {
6209 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0d,
6210 0x08, 0x0e, 0x61, 0x03, 0xef, 0x61, 0x03, 0xef, 0x03cd, 0x03c9, 0x03c5,
6211 0x0436, 0x043a, 0x043f},
6212 {
6213 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0c,
6214 0x08, 0x0e, 0x61, 0x03, 0xdf, 0x61, 0x03, 0xdf, 0x03cf, 0x03cb, 0x03c7,
6215 0x0434, 0x0438, 0x043d},
6216 {
6217 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0c,
6218 0x07, 0x0d, 0x61, 0x03, 0xcf, 0x61, 0x03, 0xcf, 0x03d1, 0x03cd, 0x03c9,
6219 0x0431, 0x0436, 0x043a},
6220 {
6221 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0c,
6222 0x07, 0x0d, 0x61, 0x03, 0xbf, 0x61, 0x03, 0xbf, 0x03d3, 0x03cf, 0x03cb,
6223 0x042f, 0x0434, 0x0438},
6224 {
6225 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0b,
6226 0x07, 0x0d, 0x61, 0x03, 0xaf, 0x61, 0x03, 0xaf, 0x03d5, 0x03d1, 0x03cd,
6227 0x042d, 0x0431, 0x0436},
6228 {
6229 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0b,
6230 0x07, 0x0d, 0x61, 0x03, 0x9f, 0x61, 0x03, 0x9f, 0x03d7, 0x03d3, 0x03cf,
6231 0x042b, 0x042f, 0x0434},
6232 {
6233 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0b,
6234 0x07, 0x0d, 0x61, 0x03, 0x8f, 0x61, 0x03, 0x8f, 0x03d9, 0x03d5, 0x03d1,
6235 0x0429, 0x042d, 0x0431},
6236 {
6237 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0b,
6238 0x07, 0x0c, 0x61, 0x03, 0x7f, 0x61, 0x03, 0x7f, 0x03db, 0x03d7, 0x03d3,
6239 0x0427, 0x042b, 0x042f},
6240 {
6241 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0b,
6242 0x07, 0x0c, 0x61, 0x03, 0x6f, 0x61, 0x03, 0x6f, 0x03dd, 0x03d9, 0x03d5,
6243 0x0424, 0x0429, 0x042d},
6244 {
6245 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0b,
6246 0x06, 0x0c, 0x61, 0x03, 0x5f, 0x61, 0x03, 0x5f, 0x03df, 0x03db, 0x03d7,
6247 0x0422, 0x0427, 0x042b},
6248 {
6249 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0a,
6250 0x06, 0x0b, 0x61, 0x03, 0x4f, 0x61, 0x03, 0x4f, 0x03e1, 0x03dd, 0x03d9,
6251 0x0420, 0x0424, 0x0429},
6252 {
6253 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0a,
6254 0x06, 0x0b, 0x61, 0x03, 0x3f, 0x61, 0x03, 0x3f, 0x03e6, 0x03e2, 0x03de,
6255 0x041b, 0x041f, 0x0424}
6256};
6257
6258static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev7[] = {
6259 {
6260 184, 4920, 0x68, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xec, 0x01, 0x0f,
6261 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6262 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b4, 0x07b0, 0x07ac, 0x0214,
6263 0x0215,
6264 0x0216},
6265 {
6266 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
6267 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6268 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
6269 0x0214,
6270 0x0215},
6271 {
6272 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
6273 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6274 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
6275 0x0213,
6276 0x0214},
6277 {
6278 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
6279 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6280 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
6281 0x0212,
6282 0x0213},
6283 {
6284 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
6285 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6286 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
6287 0x0211,
6288 0x0212},
6289 {
6290 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
6291 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6292 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
6293 0x020f,
6294 0x0211},
6295 {
6296 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
6297 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6298 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
6299 0x020e,
6300 0x020f},
6301 {
6302 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
6303 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
6304 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
6305 0x020d,
6306 0x020e},
6307 {
6308 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
6309 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6310 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
6311 0x020c,
6312 0x020d},
6313 {
6314 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
6315 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6316 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
6317 0x020b,
6318 0x020c},
6319 {
6320 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
6321 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6322 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
6323 0x020a,
6324 0x020b},
6325 {
6326 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
6327 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6328 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
6329 0x0209,
6330 0x020a},
6331 {
6332 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
6333 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6334 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
6335 0x0208,
6336 0x0209},
6337 {
6338 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
6339 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6340 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
6341 0x0207,
6342 0x0208},
6343 {
6344 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
6345 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6346 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
6347 0x0206,
6348 0x0207},
6349 {
6350 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
6351 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6352 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
6353 0x0205,
6354 0x0206},
6355 {
6356 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
6357 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6358 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
6359 0x0204,
6360 0x0205},
6361 {
6362 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
6363 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
6364 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
6365 0x0203,
6366 0x0204},
6367 {
6368 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
6369 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6370 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
6371 0x0202,
6372 0x0203},
6373 {
6374 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
6375 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6376 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
6377 0x0201,
6378 0x0202},
6379 {
6380 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
6381 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6382 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
6383 0x0200,
6384 0x0201},
6385 {
6386 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
6387 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6388 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
6389 0x01ff,
6390 0x0200},
6391 {
6392 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
6393 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6394 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
6395 0x01fe,
6396 0x01ff},
6397 {
6398 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
6399 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6400 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
6401 0x01fc,
6402 0x01fd},
6403 {
6404 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
6405 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6406 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
6407 0x01fb,
6408 0x01fc},
6409 {
6410 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
6411 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6412 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
6413 0x01fa,
6414 0x01fb},
6415 {
6416 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
6417 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
6418 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
6419 0x01f9,
6420 0x01fa},
6421 {
6422 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
6423 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6424 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
6425 0x01f8,
6426 0x01f9},
6427 {
6428 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
6429 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6430 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
6431 0x01f7,
6432 0x01f8},
6433 {
6434 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
6435 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6436 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
6437 0x01f6,
6438 0x01f7},
6439 {
6440 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
6441 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6442 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
6443 0x01f5,
6444 0x01f6},
6445 {
6446 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
6447 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6448 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
6449 0x01f4,
6450 0x01f5},
6451 {
6452 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
6453 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6454 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
6455 0x01f3,
6456 0x01f4},
6457 {
6458 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
6459 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6460 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
6461 0x01f2,
6462 0x01f3},
6463 {
6464 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
6465 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6466 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
6467 0x01f1,
6468 0x01f2},
6469 {
6470 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
6471 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6472 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
6473 0x01f0,
6474 0x01f1},
6475 {
6476 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
6477 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
6478 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
6479 0x01f0,
6480 0x01f0},
6481 {
6482 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
6483 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6484 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
6485 0x01ef,
6486 0x01f0},
6487 {
6488 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
6489 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6490 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
6491 0x01ee,
6492 0x01ef},
6493 {
6494 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
6495 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6496 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
6497 0x01ed,
6498 0x01ee},
6499 {
6500 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
6501 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6502 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
6503 0x01ec,
6504 0x01ed},
6505 {
6506 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
6507 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6508 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
6509 0x01eb,
6510 0x01ec},
6511 {
6512 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
6513 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6514 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
6515 0x01ea,
6516 0x01eb},
6517 {
6518 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
6519 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6520 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
6521 0x01e9,
6522 0x01ea},
6523 {
6524 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
6525 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6526 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
6527 0x01e8,
6528 0x01e9},
6529 {
6530 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
6531 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6532 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
6533 0x01e7,
6534 0x01e8},
6535 {
6536 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
6537 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
6538 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
6539 0x01e6,
6540 0x01e7},
6541 {
6542 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
6543 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6544 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
6545 0x01e5,
6546 0x01e6},
6547 {
6548 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
6549 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6550 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
6551 0x01e5,
6552 0x01e5},
6553 {
6554 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
6555 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6556 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
6557 0x01e4,
6558 0x01e5},
6559 {
6560 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
6561 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6562 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
6563 0x01e3,
6564 0x01e4},
6565 {
6566 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
6567 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6568 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
6569 0x01e2,
6570 0x01e3},
6571 {
6572 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
6573 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6574 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
6575 0x01e1,
6576 0x01e2},
6577 {
6578 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
6579 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6580 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
6581 0x01e0,
6582 0x01e1},
6583 {
6584 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
6585 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6586 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
6587 0x01df,
6588 0x01e0},
6589 {
6590 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
6591 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6592 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
6593 0x01de,
6594 0x01df},
6595 {
6596 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
6597 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
6598 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
6599 0x01dd,
6600 0x01de},
6601 {
6602 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
6603 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6604 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
6605 0x01dd,
6606 0x01dd},
6607 {
6608 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
6609 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6610 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
6611 0x01dc,
6612 0x01dd},
6613 {
6614 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
6615 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6616 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
6617 0x01db,
6618 0x01dc},
6619 {
6620 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
6621 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6622 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
6623 0x01da,
6624 0x01db},
6625 {
6626 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
6627 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6628 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
6629 0x01d9,
6630 0x01da},
6631 {
6632 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
6633 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6634 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
6635 0x01d8,
6636 0x01d9},
6637 {
6638 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
6639 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6640 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
6641 0x01d7,
6642 0x01d8},
6643 {
6644 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
6645 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6646 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
6647 0x01d7,
6648 0x01d7},
6649 {
6650 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
6651 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6652 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
6653 0x01d6,
6654 0x01d7},
6655 {
6656 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
6657 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
6658 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
6659 0x01d5,
6660 0x01d6},
6661 {
6662 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
6663 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6664 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
6665 0x01d4,
6666 0x01d5},
6667 {
6668 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
6669 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6670 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
6671 0x01d3,
6672 0x01d4},
6673 {
6674 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
6675 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6676 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
6677 0x01d2,
6678 0x01d3},
6679 {
6680 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
6681 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6682 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
6683 0x01d2,
6684 0x01d2},
6685 {
6686 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
6687 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
6688 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
6689 0x01d1,
6690 0x01d2},
6691 {
6692 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
6693 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6694 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
6695 0x01d0,
6696 0x01d1},
6697 {
6698 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
6699 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6700 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
6701 0x01cf,
6702 0x01d0},
6703 {
6704 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
6705 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
6706 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
6707 0x01ce,
6708 0x01cf},
6709 {
6710 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
6711 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6712 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
6713 0x01ce,
6714 0x01ce},
6715 {
6716 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
6717 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
6718 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
6719 0x01cd,
6720 0x01ce},
6721 {
6722 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
6723 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6724 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
6725 0x01cc,
6726 0x01cd},
6727 {
6728 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
6729 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6730 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
6731 0x01cb,
6732 0x01cc},
6733 {
6734 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
6735 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6736 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
6737 0x01ca,
6738 0x01cb},
6739 {
6740 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
6741 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6742 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
6743 0x01ca,
6744 0x01cb},
6745 {
6746 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
6747 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6748 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
6749 0x01c9,
6750 0x01ca},
6751 {
6752 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
6753 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6754 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
6755 0x01c9,
6756 0x01ca},
6757 {
6758 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
6759 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6760 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
6761 0x01c9,
6762 0x01c9},
6763 {
6764 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
6765 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
6766 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
6767 0x01c8,
6768 0x01c9},
6769 {
6770 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
6771 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6772 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
6773 0x01c8,
6774 0x01c9},
6775 {
6776 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
6777 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6778 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
6779 0x01c8,
6780 0x01c8},
6781 {
6782 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
6783 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6784 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
6785 0x01c7,
6786 0x01c8},
6787 {
6788 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
6789 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6790 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
6791 0x01c7,
6792 0x01c8},
6793 {
6794 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
6795 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6796 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
6797 0x01c6,
6798 0x01c7},
6799 {
6800 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
6801 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6802 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
6803 0x01c6,
6804 0x01c7},
6805 {
6806 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
6807 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6808 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
6809 0x01c6,
6810 0x01c6},
6811 {
6812 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
6813 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6814 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
6815 0x01c5,
6816 0x01c6},
6817 {
6818 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
6819 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6820 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
6821 0x01c5,
6822 0x01c6},
6823 {
6824 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
6825 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
6826 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
6827 0x01c4,
6828 0x01c5},
6829 {
6830 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
6831 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
6832 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
6833 0x01c4,
6834 0x01c5},
6835 {
6836 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
6837 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6838 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
6839 0x01c4,
6840 0x01c4},
6841 {
6842 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
6843 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6844 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
6845 0x01c3,
6846 0x01c4},
6847 {
6848 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
6849 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6850 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
6851 0x01c3,
6852 0x01c4},
6853 {
6854 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
6855 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6856 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
6857 0x01c2,
6858 0x01c3},
6859 {
6860 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
6861 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6862 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
6863 0x01c2,
6864 0x01c3},
6865 {
6866 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
6867 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6868 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
6869 0x01c2,
6870 0x01c2},
6871 {
6872 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
6873 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6874 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
6875 0x01c1,
6876 0x01c2},
6877 {
6878 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
6879 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6880 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
6881 0x01c0,
6882 0x01c1},
6883 {
6884 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
6885 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6886 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
6887 0x01bf,
6888 0x01c0},
6889 {
6890 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
6891 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6892 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
6893 0x01bf,
6894 0x01bf},
6895 {
6896 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
6897 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6898 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
6899 0x01be,
6900 0x01bf},
6901 {
6902 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
6903 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6904 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
6905 0x01bd,
6906 0x01be},
6907 {
6908 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
6909 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
6910 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
6911 0x01bc,
6912 0x01bd},
6913 {
6914 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
6915 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6916 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
6917 0x043f,
6918 0x0443},
6919 {
6920 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
6921 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6922 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
6923 0x043d,
6924 0x0441},
6925 {
6926 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
6927 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6928 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
6929 0x043a,
6930 0x043f},
6931 {
6932 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
6933 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6934 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
6935 0x0438,
6936 0x043d},
6937 {
6938 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
6939 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6940 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
6941 0x0436,
6942 0x043a},
6943 {
6944 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
6945 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6946 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
6947 0x0434,
6948 0x0438},
6949 {
6950 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
6951 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6952 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
6953 0x0431,
6954 0x0436},
6955 {
6956 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
6957 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6958 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
6959 0x042f,
6960 0x0434},
6961 {
6962 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
6963 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6964 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
6965 0x042d,
6966 0x0431},
6967 {
6968 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
6969 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6970 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
6971 0x042b,
6972 0x042f},
6973 {
6974 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
6975 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6976 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
6977 0x0429,
6978 0x042d},
6979 {
6980 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
6981 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6982 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
6983 0x0427,
6984 0x042b},
6985 {
6986 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
6987 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
6988 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
6989 0x0424,
6990 0x0429},
6991 {
6992 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
6993 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
6994 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
6995 0x041f,
6996 0x0424}
6997};
6998
6999static chan_info_nphy_radio2057_t chan_info_nphyrev8_2057_rev8[] = {
7000 {
7001 186, 4930, 0x6b, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xed, 0x01, 0x0f,
7002 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7003 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07b8, 0x07b4, 0x07b0, 0x0213,
7004 0x0214,
7005 0x0215},
7006 {
7007 188, 4940, 0x6e, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xee, 0x01, 0x0f,
7008 0x00, 0x0f, 0x00, 0xff, 0x00, 0xd3, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7009 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07bc, 0x07b8, 0x07b4, 0x0212,
7010 0x0213,
7011 0x0214},
7012 {
7013 190, 4950, 0x72, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xef, 0x01, 0x0f,
7014 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7015 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c0, 0x07bc, 0x07b8, 0x0211,
7016 0x0212,
7017 0x0213},
7018 {
7019 192, 4960, 0x75, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf0, 0x01, 0x0f,
7020 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7021 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c4, 0x07c0, 0x07bc, 0x020f,
7022 0x0211,
7023 0x0212},
7024 {
7025 194, 4970, 0x78, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf1, 0x01, 0x0f,
7026 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7027 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07c8, 0x07c4, 0x07c0, 0x020e,
7028 0x020f,
7029 0x0211},
7030 {
7031 196, 4980, 0x7c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf2, 0x01, 0x0f,
7032 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7033 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07cc, 0x07c8, 0x07c4, 0x020d,
7034 0x020e,
7035 0x020f},
7036 {
7037 198, 4990, 0x7f, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf3, 0x01, 0x0f,
7038 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x00,
7039 0x00, 0x0f, 0x0f, 0xd3, 0x00, 0xff, 0x07d0, 0x07cc, 0x07c8, 0x020c,
7040 0x020d,
7041 0x020e},
7042 {
7043 200, 5000, 0x82, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf4, 0x01, 0x0f,
7044 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7045 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d4, 0x07d0, 0x07cc, 0x020b,
7046 0x020c,
7047 0x020d},
7048 {
7049 202, 5010, 0x86, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf5, 0x01, 0x0f,
7050 0x00, 0x0f, 0x00, 0xff, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7051 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07d8, 0x07d4, 0x07d0, 0x020a,
7052 0x020b,
7053 0x020c},
7054 {
7055 204, 5020, 0x89, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf6, 0x01, 0x0e,
7056 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7057 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07dc, 0x07d8, 0x07d4, 0x0209,
7058 0x020a,
7059 0x020b},
7060 {
7061 206, 5030, 0x8c, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf7, 0x01, 0x0e,
7062 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7063 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e0, 0x07dc, 0x07d8, 0x0208,
7064 0x0209,
7065 0x020a},
7066 {
7067 208, 5040, 0x90, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf8, 0x01, 0x0e,
7068 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7069 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e4, 0x07e0, 0x07dc, 0x0207,
7070 0x0208,
7071 0x0209},
7072 {
7073 210, 5050, 0x93, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xf9, 0x01, 0x0e,
7074 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7075 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07e8, 0x07e4, 0x07e0, 0x0206,
7076 0x0207,
7077 0x0208},
7078 {
7079 212, 5060, 0x96, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfa, 0x01, 0x0e,
7080 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7081 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07ec, 0x07e8, 0x07e4, 0x0205,
7082 0x0206,
7083 0x0207},
7084 {
7085 214, 5070, 0x9a, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfb, 0x01, 0x0e,
7086 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7087 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f0, 0x07ec, 0x07e8, 0x0204,
7088 0x0205,
7089 0x0206},
7090 {
7091 216, 5080, 0x9d, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfc, 0x01, 0x0e,
7092 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7093 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f4, 0x07f0, 0x07ec, 0x0203,
7094 0x0204,
7095 0x0205},
7096 {
7097 218, 5090, 0xa0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfd, 0x01, 0x0e,
7098 0x00, 0x0e, 0x00, 0xee, 0x00, 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x00,
7099 0x00, 0x0f, 0x0f, 0xb3, 0x00, 0xff, 0x07f8, 0x07f4, 0x07f0, 0x0202,
7100 0x0203,
7101 0x0204},
7102 {
7103 220, 5100, 0xa4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xfe, 0x01, 0x0d,
7104 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7105 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x07fc, 0x07f8, 0x07f4, 0x0201,
7106 0x0202,
7107 0x0203},
7108 {
7109 222, 5110, 0xa7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0xff, 0x01, 0x0d,
7110 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7111 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0800, 0x07fc, 0x07f8, 0x0200,
7112 0x0201,
7113 0x0202},
7114 {
7115 224, 5120, 0xaa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x00, 0x02, 0x0d,
7116 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7117 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0804, 0x0800, 0x07fc, 0x01ff,
7118 0x0200,
7119 0x0201},
7120 {
7121 226, 5130, 0xae, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x01, 0x02, 0x0d,
7122 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7123 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0808, 0x0804, 0x0800, 0x01fe,
7124 0x01ff,
7125 0x0200},
7126 {
7127 228, 5140, 0xb1, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x02, 0x02, 0x0d,
7128 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7129 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x080c, 0x0808, 0x0804, 0x01fd,
7130 0x01fe,
7131 0x01ff},
7132 {
7133 32, 5160, 0xb8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x04, 0x02, 0x0d,
7134 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7135 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0814, 0x0810, 0x080c, 0x01fb,
7136 0x01fc,
7137 0x01fd},
7138 {
7139 34, 5170, 0xbb, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x05, 0x02, 0x0d,
7140 0x00, 0x0d, 0x00, 0xdd, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7141 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0818, 0x0814, 0x0810, 0x01fa,
7142 0x01fb,
7143 0x01fc},
7144 {
7145 36, 5180, 0xbe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x06, 0x02, 0x0c,
7146 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7147 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x081c, 0x0818, 0x0814, 0x01f9,
7148 0x01fa,
7149 0x01fb},
7150 {
7151 38, 5190, 0xc2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x07, 0x02, 0x0c,
7152 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x00,
7153 0x00, 0x0f, 0x0f, 0xa3, 0x00, 0xfc, 0x0820, 0x081c, 0x0818, 0x01f8,
7154 0x01f9,
7155 0x01fa},
7156 {
7157 40, 5200, 0xc5, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x08, 0x02, 0x0c,
7158 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7159 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0824, 0x0820, 0x081c, 0x01f7,
7160 0x01f8,
7161 0x01f9},
7162 {
7163 42, 5210, 0xc8, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x09, 0x02, 0x0c,
7164 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7165 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0828, 0x0824, 0x0820, 0x01f6,
7166 0x01f7,
7167 0x01f8},
7168 {
7169 44, 5220, 0xcc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0a, 0x02, 0x0c,
7170 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7171 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x082c, 0x0828, 0x0824, 0x01f5,
7172 0x01f6,
7173 0x01f7},
7174 {
7175 46, 5230, 0xcf, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0b, 0x02, 0x0c,
7176 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7177 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0830, 0x082c, 0x0828, 0x01f4,
7178 0x01f5,
7179 0x01f6},
7180 {
7181 48, 5240, 0xd2, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0c, 0x02, 0x0c,
7182 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7183 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0834, 0x0830, 0x082c, 0x01f3,
7184 0x01f4,
7185 0x01f5},
7186 {
7187 50, 5250, 0xd6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0d, 0x02, 0x0c,
7188 0x00, 0x0c, 0x00, 0xcc, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7189 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0838, 0x0834, 0x0830, 0x01f2,
7190 0x01f3,
7191 0x01f4},
7192 {
7193 52, 5260, 0xd9, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0e, 0x02, 0x0b,
7194 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7195 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x083c, 0x0838, 0x0834, 0x01f1,
7196 0x01f2,
7197 0x01f3},
7198 {
7199 54, 5270, 0xdc, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x0f, 0x02, 0x0b,
7200 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7201 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0840, 0x083c, 0x0838, 0x01f0,
7202 0x01f1,
7203 0x01f2},
7204 {
7205 56, 5280, 0xe0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x10, 0x02, 0x0b,
7206 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7207 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0844, 0x0840, 0x083c, 0x01f0,
7208 0x01f0,
7209 0x01f1},
7210 {
7211 58, 5290, 0xe3, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x11, 0x02, 0x0b,
7212 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x00,
7213 0x00, 0x0f, 0x0f, 0x93, 0x00, 0xf8, 0x0848, 0x0844, 0x0840, 0x01ef,
7214 0x01f0,
7215 0x01f0},
7216 {
7217 60, 5300, 0xe6, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x12, 0x02, 0x0b,
7218 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7219 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x084c, 0x0848, 0x0844, 0x01ee,
7220 0x01ef,
7221 0x01f0},
7222 {
7223 62, 5310, 0xea, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x13, 0x02, 0x0b,
7224 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7225 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0850, 0x084c, 0x0848, 0x01ed,
7226 0x01ee,
7227 0x01ef},
7228 {
7229 64, 5320, 0xed, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x14, 0x02, 0x0b,
7230 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7231 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0854, 0x0850, 0x084c, 0x01ec,
7232 0x01ed,
7233 0x01ee},
7234 {
7235 66, 5330, 0xf0, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x15, 0x02, 0x0b,
7236 0x00, 0x0b, 0x00, 0xbb, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7237 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0858, 0x0854, 0x0850, 0x01eb,
7238 0x01ec,
7239 0x01ed},
7240 {
7241 68, 5340, 0xf4, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x16, 0x02, 0x0a,
7242 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7243 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x085c, 0x0858, 0x0854, 0x01ea,
7244 0x01eb,
7245 0x01ec},
7246 {
7247 70, 5350, 0xf7, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x17, 0x02, 0x0a,
7248 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7249 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0860, 0x085c, 0x0858, 0x01e9,
7250 0x01ea,
7251 0x01eb},
7252 {
7253 72, 5360, 0xfa, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x18, 0x02, 0x0a,
7254 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7255 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0864, 0x0860, 0x085c, 0x01e8,
7256 0x01e9,
7257 0x01ea},
7258 {
7259 74, 5370, 0xfe, 0x16, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x19, 0x02, 0x0a,
7260 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7261 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0868, 0x0864, 0x0860, 0x01e7,
7262 0x01e8,
7263 0x01e9},
7264 {
7265 76, 5380, 0x01, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1a, 0x02, 0x0a,
7266 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7267 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x086c, 0x0868, 0x0864, 0x01e6,
7268 0x01e7,
7269 0x01e8},
7270 {
7271 78, 5390, 0x04, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1b, 0x02, 0x0a,
7272 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x00,
7273 0x00, 0x0f, 0x0c, 0x83, 0x00, 0xf5, 0x0870, 0x086c, 0x0868, 0x01e5,
7274 0x01e6,
7275 0x01e7},
7276 {
7277 80, 5400, 0x08, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1c, 0x02, 0x0a,
7278 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7279 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0874, 0x0870, 0x086c, 0x01e5,
7280 0x01e5,
7281 0x01e6},
7282 {
7283 82, 5410, 0x0b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1d, 0x02, 0x0a,
7284 0x00, 0x0a, 0x00, 0xaa, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7285 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0878, 0x0874, 0x0870, 0x01e4,
7286 0x01e5,
7287 0x01e5},
7288 {
7289 84, 5420, 0x0e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1e, 0x02, 0x09,
7290 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7291 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x087c, 0x0878, 0x0874, 0x01e3,
7292 0x01e4,
7293 0x01e5},
7294 {
7295 86, 5430, 0x12, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x1f, 0x02, 0x09,
7296 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7297 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0880, 0x087c, 0x0878, 0x01e2,
7298 0x01e3,
7299 0x01e4},
7300 {
7301 88, 5440, 0x15, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x20, 0x02, 0x09,
7302 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7303 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0884, 0x0880, 0x087c, 0x01e1,
7304 0x01e2,
7305 0x01e3},
7306 {
7307 90, 5450, 0x18, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x21, 0x02, 0x09,
7308 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7309 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0888, 0x0884, 0x0880, 0x01e0,
7310 0x01e1,
7311 0x01e2},
7312 {
7313 92, 5460, 0x1c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x22, 0x02, 0x09,
7314 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7315 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x088c, 0x0888, 0x0884, 0x01df,
7316 0x01e0,
7317 0x01e1},
7318 {
7319 94, 5470, 0x1f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x23, 0x02, 0x09,
7320 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7321 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0890, 0x088c, 0x0888, 0x01de,
7322 0x01df,
7323 0x01e0},
7324 {
7325 96, 5480, 0x22, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x24, 0x02, 0x09,
7326 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7327 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0894, 0x0890, 0x088c, 0x01dd,
7328 0x01de,
7329 0x01df},
7330 {
7331 98, 5490, 0x26, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x25, 0x02, 0x09,
7332 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x00,
7333 0x00, 0x0d, 0x09, 0x53, 0x00, 0xb1, 0x0898, 0x0894, 0x0890, 0x01dd,
7334 0x01dd,
7335 0x01de},
7336 {
7337 100, 5500, 0x29, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x26, 0x02, 0x09,
7338 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7339 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x089c, 0x0898, 0x0894, 0x01dc,
7340 0x01dd,
7341 0x01dd},
7342 {
7343 102, 5510, 0x2c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x27, 0x02, 0x09,
7344 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7345 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a0, 0x089c, 0x0898, 0x01db,
7346 0x01dc,
7347 0x01dd},
7348 {
7349 104, 5520, 0x30, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x28, 0x02, 0x08,
7350 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7351 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a4, 0x08a0, 0x089c, 0x01da,
7352 0x01db,
7353 0x01dc},
7354 {
7355 106, 5530, 0x33, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x29, 0x02, 0x08,
7356 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7357 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08a8, 0x08a4, 0x08a0, 0x01d9,
7358 0x01da,
7359 0x01db},
7360 {
7361 108, 5540, 0x36, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2a, 0x02, 0x08,
7362 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7363 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08ac, 0x08a8, 0x08a4, 0x01d8,
7364 0x01d9,
7365 0x01da},
7366 {
7367 110, 5550, 0x3a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2b, 0x02, 0x08,
7368 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7369 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b0, 0x08ac, 0x08a8, 0x01d7,
7370 0x01d8,
7371 0x01d9},
7372 {
7373 112, 5560, 0x3d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2c, 0x02, 0x08,
7374 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7375 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b4, 0x08b0, 0x08ac, 0x01d7,
7376 0x01d7,
7377 0x01d8},
7378 {
7379 114, 5570, 0x40, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2d, 0x02, 0x08,
7380 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7381 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08b8, 0x08b4, 0x08b0, 0x01d6,
7382 0x01d7,
7383 0x01d7},
7384 {
7385 116, 5580, 0x44, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2e, 0x02, 0x08,
7386 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7387 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08bc, 0x08b8, 0x08b4, 0x01d5,
7388 0x01d6,
7389 0x01d7},
7390 {
7391 118, 5590, 0x47, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x2f, 0x02, 0x08,
7392 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x00,
7393 0x00, 0x0a, 0x06, 0x43, 0x00, 0x80, 0x08c0, 0x08bc, 0x08b8, 0x01d4,
7394 0x01d5,
7395 0x01d6},
7396 {
7397 120, 5600, 0x4a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x30, 0x02, 0x08,
7398 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7399 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c4, 0x08c0, 0x08bc, 0x01d3,
7400 0x01d4,
7401 0x01d5},
7402 {
7403 122, 5610, 0x4e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x31, 0x02, 0x08,
7404 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7405 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08c8, 0x08c4, 0x08c0, 0x01d2,
7406 0x01d3,
7407 0x01d4},
7408 {
7409 124, 5620, 0x51, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x32, 0x02, 0x07,
7410 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7411 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08cc, 0x08c8, 0x08c4, 0x01d2,
7412 0x01d2,
7413 0x01d3},
7414 {
7415 126, 5630, 0x54, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x33, 0x02, 0x07,
7416 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7417 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d0, 0x08cc, 0x08c8, 0x01d1,
7418 0x01d2,
7419 0x01d2},
7420 {
7421 128, 5640, 0x58, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x34, 0x02, 0x07,
7422 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x00,
7423 0x00, 0x09, 0x04, 0x23, 0x00, 0x60, 0x08d4, 0x08d0, 0x08cc, 0x01d0,
7424 0x01d1,
7425 0x01d2},
7426 {
7427 130, 5650, 0x5b, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x35, 0x02, 0x07,
7428 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7429 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08d8, 0x08d4, 0x08d0, 0x01cf,
7430 0x01d0,
7431 0x01d1},
7432 {
7433 132, 5660, 0x5e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x36, 0x02, 0x07,
7434 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7435 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08dc, 0x08d8, 0x08d4, 0x01ce,
7436 0x01cf,
7437 0x01d0},
7438 {
7439 134, 5670, 0x62, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x37, 0x02, 0x07,
7440 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x00,
7441 0x00, 0x09, 0x03, 0x23, 0x00, 0x60, 0x08e0, 0x08dc, 0x08d8, 0x01ce,
7442 0x01ce,
7443 0x01cf},
7444 {
7445 136, 5680, 0x65, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x38, 0x02, 0x07,
7446 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7447 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e4, 0x08e0, 0x08dc, 0x01cd,
7448 0x01ce,
7449 0x01ce},
7450 {
7451 138, 5690, 0x68, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x39, 0x02, 0x07,
7452 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x00,
7453 0x00, 0x09, 0x02, 0x23, 0x00, 0x60, 0x08e8, 0x08e4, 0x08e0, 0x01cc,
7454 0x01cd,
7455 0x01ce},
7456 {
7457 140, 5700, 0x6c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3a, 0x02, 0x07,
7458 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7459 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08ec, 0x08e8, 0x08e4, 0x01cb,
7460 0x01cc,
7461 0x01cd},
7462 {
7463 142, 5710, 0x6f, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3b, 0x02, 0x07,
7464 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7465 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f0, 0x08ec, 0x08e8, 0x01ca,
7466 0x01cb,
7467 0x01cc},
7468 {
7469 144, 5720, 0x72, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3c, 0x02, 0x07,
7470 0x00, 0x07, 0x00, 0x77, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7471 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f4, 0x08f0, 0x08ec, 0x01c9,
7472 0x01ca,
7473 0x01cb},
7474 {
7475 145, 5725, 0x74, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x79, 0x04, 0x06,
7476 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7477 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f6, 0x08f2, 0x08ee, 0x01c9,
7478 0x01ca,
7479 0x01cb},
7480 {
7481 146, 5730, 0x76, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3d, 0x02, 0x06,
7482 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7483 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08f8, 0x08f4, 0x08f0, 0x01c9,
7484 0x01c9,
7485 0x01ca},
7486 {
7487 147, 5735, 0x77, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7b, 0x04, 0x06,
7488 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7489 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fa, 0x08f6, 0x08f2, 0x01c8,
7490 0x01c9,
7491 0x01ca},
7492 {
7493 148, 5740, 0x79, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3e, 0x02, 0x06,
7494 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7495 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fc, 0x08f8, 0x08f4, 0x01c8,
7496 0x01c9,
7497 0x01c9},
7498 {
7499 149, 5745, 0x7b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7d, 0x04, 0x06,
7500 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x00,
7501 0x00, 0x08, 0x02, 0x13, 0x00, 0x30, 0x08fe, 0x08fa, 0x08f6, 0x01c8,
7502 0x01c8,
7503 0x01c9},
7504 {
7505 150, 5750, 0x7c, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x3f, 0x02, 0x06,
7506 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7507 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0900, 0x08fc, 0x08f8, 0x01c7,
7508 0x01c8,
7509 0x01c9},
7510 {
7511 151, 5755, 0x7e, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x7f, 0x04, 0x06,
7512 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7513 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0902, 0x08fe, 0x08fa, 0x01c7,
7514 0x01c8,
7515 0x01c8},
7516 {
7517 152, 5760, 0x80, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x40, 0x02, 0x06,
7518 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7519 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0904, 0x0900, 0x08fc, 0x01c6,
7520 0x01c7,
7521 0x01c8},
7522 {
7523 153, 5765, 0x81, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x81, 0x04, 0x06,
7524 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7525 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0906, 0x0902, 0x08fe, 0x01c6,
7526 0x01c7,
7527 0x01c8},
7528 {
7529 154, 5770, 0x83, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x41, 0x02, 0x06,
7530 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7531 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0908, 0x0904, 0x0900, 0x01c6,
7532 0x01c6,
7533 0x01c7},
7534 {
7535 155, 5775, 0x85, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x83, 0x04, 0x06,
7536 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7537 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090a, 0x0906, 0x0902, 0x01c5,
7538 0x01c6,
7539 0x01c7},
7540 {
7541 156, 5780, 0x86, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x42, 0x02, 0x06,
7542 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7543 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090c, 0x0908, 0x0904, 0x01c5,
7544 0x01c6,
7545 0x01c6},
7546 {
7547 157, 5785, 0x88, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x85, 0x04, 0x05,
7548 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7549 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x090e, 0x090a, 0x0906, 0x01c4,
7550 0x01c5,
7551 0x01c6},
7552 {
7553 158, 5790, 0x8a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x43, 0x02, 0x05,
7554 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7555 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0910, 0x090c, 0x0908, 0x01c4,
7556 0x01c5,
7557 0x01c6},
7558 {
7559 159, 5795, 0x8b, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x87, 0x04, 0x05,
7560 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x00,
7561 0x00, 0x08, 0x02, 0x13, 0x00, 0x00, 0x0912, 0x090e, 0x090a, 0x01c4,
7562 0x01c4,
7563 0x01c5},
7564 {
7565 160, 5800, 0x8d, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x44, 0x02, 0x05,
7566 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x00,
7567 0x00, 0x08, 0x01, 0x03, 0x00, 0x00, 0x0914, 0x0910, 0x090c, 0x01c3,
7568 0x01c4,
7569 0x01c5},
7570 {
7571 161, 5805, 0x8f, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x89, 0x04, 0x05,
7572 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7573 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0916, 0x0912, 0x090e, 0x01c3,
7574 0x01c4,
7575 0x01c4},
7576 {
7577 162, 5810, 0x90, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x45, 0x02, 0x05,
7578 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7579 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0918, 0x0914, 0x0910, 0x01c2,
7580 0x01c3,
7581 0x01c4},
7582 {
7583 163, 5815, 0x92, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8b, 0x04, 0x05,
7584 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7585 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091a, 0x0916, 0x0912, 0x01c2,
7586 0x01c3,
7587 0x01c4},
7588 {
7589 164, 5820, 0x94, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x46, 0x02, 0x05,
7590 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7591 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091c, 0x0918, 0x0914, 0x01c2,
7592 0x01c2,
7593 0x01c3},
7594 {
7595 165, 5825, 0x95, 0x17, 0x20, 0x14, 0x08, 0x08, 0x30, 0x8d, 0x04, 0x05,
7596 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7597 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x091e, 0x091a, 0x0916, 0x01c1,
7598 0x01c2,
7599 0x01c3},
7600 {
7601 166, 5830, 0x97, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x47, 0x02, 0x05,
7602 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7603 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0920, 0x091c, 0x0918, 0x01c1,
7604 0x01c2,
7605 0x01c2},
7606 {
7607 168, 5840, 0x9a, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x48, 0x02, 0x05,
7608 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7609 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0924, 0x0920, 0x091c, 0x01c0,
7610 0x01c1,
7611 0x01c2},
7612 {
7613 170, 5850, 0x9e, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x49, 0x02, 0x04,
7614 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7615 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0928, 0x0924, 0x0920, 0x01bf,
7616 0x01c0,
7617 0x01c1},
7618 {
7619 172, 5860, 0xa1, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4a, 0x02, 0x04,
7620 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7621 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x092c, 0x0928, 0x0924, 0x01bf,
7622 0x01bf,
7623 0x01c0},
7624 {
7625 174, 5870, 0xa4, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4b, 0x02, 0x04,
7626 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7627 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0930, 0x092c, 0x0928, 0x01be,
7628 0x01bf,
7629 0x01bf},
7630 {
7631 176, 5880, 0xa8, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4c, 0x02, 0x03,
7632 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7633 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0934, 0x0930, 0x092c, 0x01bd,
7634 0x01be,
7635 0x01bf},
7636 {
7637 178, 5890, 0xab, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4d, 0x02, 0x03,
7638 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7639 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x0938, 0x0934, 0x0930, 0x01bc,
7640 0x01bd,
7641 0x01be},
7642 {
7643 180, 5900, 0xae, 0x17, 0x10, 0x0c, 0x0c, 0x0c, 0x30, 0x4e, 0x02, 0x03,
7644 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00,
7645 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x093c, 0x0938, 0x0934, 0x01bc,
7646 0x01bc,
7647 0x01bd},
7648 {
7649 1, 2412, 0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 0x09, 0x0f,
7650 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7651 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03c9, 0x03c5, 0x03c1, 0x043a,
7652 0x043f,
7653 0x0443},
7654 {
7655 2, 2417, 0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 0x09, 0x0f,
7656 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7657 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cb, 0x03c7, 0x03c3, 0x0438,
7658 0x043d,
7659 0x0441},
7660 {
7661 3, 2422, 0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 0x09, 0x0f,
7662 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7663 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cd, 0x03c9, 0x03c5, 0x0436,
7664 0x043a,
7665 0x043f},
7666 {
7667 4, 2427, 0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 0x09, 0x0f,
7668 0x09, 0x00, 0x09, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7669 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03cf, 0x03cb, 0x03c7, 0x0434,
7670 0x0438,
7671 0x043d},
7672 {
7673 5, 2432, 0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 0x09, 0x0f,
7674 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7675 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d1, 0x03cd, 0x03c9, 0x0431,
7676 0x0436,
7677 0x043a},
7678 {
7679 6, 2437, 0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 0x09, 0x0f,
7680 0x08, 0x00, 0x08, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7681 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d3, 0x03cf, 0x03cb, 0x042f,
7682 0x0434,
7683 0x0438},
7684 {
7685 7, 2442, 0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 0x09, 0x0f,
7686 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7687 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d5, 0x03d1, 0x03cd, 0x042d,
7688 0x0431,
7689 0x0436},
7690 {
7691 8, 2447, 0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 0x09, 0x0f,
7692 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7693 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d7, 0x03d3, 0x03cf, 0x042b,
7694 0x042f,
7695 0x0434},
7696 {
7697 9, 2452, 0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 0x09, 0x0f,
7698 0x07, 0x00, 0x07, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7699 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03d9, 0x03d5, 0x03d1, 0x0429,
7700 0x042d,
7701 0x0431},
7702 {
7703 10, 2457, 0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 0x09, 0x0f,
7704 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7705 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03db, 0x03d7, 0x03d3, 0x0427,
7706 0x042b,
7707 0x042f},
7708 {
7709 11, 2462, 0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 0x09, 0x0f,
7710 0x06, 0x00, 0x06, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7711 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03dd, 0x03d9, 0x03d5, 0x0424,
7712 0x0429,
7713 0x042d},
7714 {
7715 12, 2467, 0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 0x09, 0x0f,
7716 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7717 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03df, 0x03db, 0x03d7, 0x0422,
7718 0x0427,
7719 0x042b},
7720 {
7721 13, 2472, 0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 0x09, 0x0f,
7722 0x05, 0x00, 0x05, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x61,
7723 0x73, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x03e1, 0x03dd, 0x03d9, 0x0420,
7724 0x0424,
7725 0x0429},
7726 {
7727 14, 2484, 0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xb4, 0x09, 0x0f,
7728 0x04, 0x00, 0x04, 0x00, 0x61, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x61,
7729 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x03e6, 0x03e2, 0x03de, 0x041b,
7730 0x041f,
7731 0x0424}
7732};
7733
7734radio_regs_t regs_2055[] = {
7735 {0x02, 0x80, 0x80, 0, 0},
7736 {0x03, 0, 0, 0, 0},
7737 {0x04, 0x27, 0x27, 0, 0},
7738 {0x05, 0, 0, 0, 0},
7739 {0x06, 0x27, 0x27, 0, 0},
7740 {0x07, 0x7f, 0x7f, 1, 1},
7741 {0x08, 0x7, 0x7, 1, 1},
7742 {0x09, 0x7f, 0x7f, 1, 1},
7743 {0x0A, 0x7, 0x7, 1, 1},
7744 {0x0B, 0x15, 0x15, 0, 0},
7745 {0x0C, 0x15, 0x15, 0, 0},
7746 {0x0D, 0x4f, 0x4f, 1, 1},
7747 {0x0E, 0x5, 0x5, 1, 1},
7748 {0x0F, 0x4f, 0x4f, 1, 1},
7749 {0x10, 0x5, 0x5, 1, 1},
7750 {0x11, 0xd0, 0xd0, 0, 0},
7751 {0x12, 0x2, 0x2, 0, 0},
7752 {0x13, 0, 0, 0, 0},
7753 {0x14, 0x40, 0x40, 0, 0},
7754 {0x15, 0, 0, 0, 0},
7755 {0x16, 0, 0, 0, 0},
7756 {0x17, 0, 0, 0, 0},
7757 {0x18, 0, 0, 0, 0},
7758 {0x19, 0, 0, 0, 0},
7759 {0x1A, 0, 0, 0, 0},
7760 {0x1B, 0, 0, 0, 0},
7761 {0x1C, 0, 0, 0, 0},
7762 {0x1D, 0xc0, 0xc0, 0, 0},
7763 {0x1E, 0xff, 0xff, 0, 0},
7764 {0x1F, 0xc0, 0xc0, 0, 0},
7765 {0x20, 0xff, 0xff, 0, 0},
7766 {0x21, 0xc0, 0xc0, 0, 0},
7767 {0x22, 0, 0, 0, 0},
7768 {0x23, 0x2c, 0x2c, 0, 0},
7769 {0x24, 0, 0, 0, 0},
7770 {0x25, 0, 0, 0, 0},
7771 {0x26, 0, 0, 0, 0},
7772 {0x27, 0, 0, 0, 0},
7773 {0x28, 0, 0, 0, 0},
7774 {0x29, 0, 0, 0, 0},
7775 {0x2A, 0, 0, 0, 0},
7776 {0x2B, 0, 0, 0, 0},
7777 {0x2C, 0, 0, 0, 0},
7778 {0x2D, 0xa4, 0xa4, 0, 0},
7779 {0x2E, 0x38, 0x38, 0, 0},
7780 {0x2F, 0, 0, 0, 0},
7781 {0x30, 0x4, 0x4, 1, 1},
7782 {0x31, 0, 0, 0, 0},
7783 {0x32, 0xa, 0xa, 0, 0},
7784 {0x33, 0x87, 0x87, 0, 0},
7785 {0x34, 0x9, 0x9, 0, 0},
7786 {0x35, 0x70, 0x70, 0, 0},
7787 {0x36, 0x11, 0x11, 0, 0},
7788 {0x37, 0x18, 0x18, 1, 1},
7789 {0x38, 0x6, 0x6, 0, 0},
7790 {0x39, 0x4, 0x4, 1, 1},
7791 {0x3A, 0x6, 0x6, 0, 0},
7792 {0x3B, 0x9e, 0x9e, 0, 0},
7793 {0x3C, 0x9, 0x9, 0, 0},
7794 {0x3D, 0xc8, 0xc8, 1, 1},
7795 {0x3E, 0x88, 0x88, 0, 0},
7796 {0x3F, 0, 0, 0, 0},
7797 {0x40, 0, 0, 0, 0},
7798 {0x41, 0, 0, 0, 0},
7799 {0x42, 0x1, 0x1, 0, 0},
7800 {0x43, 0x2, 0x2, 0, 0},
7801 {0x44, 0x96, 0x96, 0, 0},
7802 {0x45, 0x3e, 0x3e, 0, 0},
7803 {0x46, 0x3e, 0x3e, 0, 0},
7804 {0x47, 0x13, 0x13, 0, 0},
7805 {0x48, 0x2, 0x2, 0, 0},
7806 {0x49, 0x15, 0x15, 0, 0},
7807 {0x4A, 0x7, 0x7, 0, 0},
7808 {0x4B, 0, 0, 0, 0},
7809 {0x4C, 0, 0, 0, 0},
7810 {0x4D, 0, 0, 0, 0},
7811 {0x4E, 0, 0, 0, 0},
7812 {0x4F, 0, 0, 0, 0},
7813 {0x50, 0x8, 0x8, 0, 0},
7814 {0x51, 0x8, 0x8, 0, 0},
7815 {0x52, 0x6, 0x6, 0, 0},
7816 {0x53, 0x84, 0x84, 1, 1},
7817 {0x54, 0xc3, 0xc3, 0, 0},
7818 {0x55, 0x8f, 0x8f, 0, 0},
7819 {0x56, 0xff, 0xff, 0, 0},
7820 {0x57, 0xff, 0xff, 0, 0},
7821 {0x58, 0x88, 0x88, 0, 0},
7822 {0x59, 0x88, 0x88, 0, 0},
7823 {0x5A, 0, 0, 0, 0},
7824 {0x5B, 0xcc, 0xcc, 0, 0},
7825 {0x5C, 0x6, 0x6, 0, 0},
7826 {0x5D, 0x80, 0x80, 0, 0},
7827 {0x5E, 0x80, 0x80, 0, 0},
7828 {0x5F, 0xf8, 0xf8, 0, 0},
7829 {0x60, 0x88, 0x88, 0, 0},
7830 {0x61, 0x88, 0x88, 0, 0},
7831 {0x62, 0x88, 0x8, 1, 1},
7832 {0x63, 0x88, 0x88, 0, 0},
7833 {0x64, 0, 0, 0, 0},
7834 {0x65, 0x1, 0x1, 1, 1},
7835 {0x66, 0x8a, 0x8a, 0, 0},
7836 {0x67, 0x8, 0x8, 0, 0},
7837 {0x68, 0x83, 0x83, 0, 0},
7838 {0x69, 0x6, 0x6, 0, 0},
7839 {0x6A, 0xa0, 0xa0, 0, 0},
7840 {0x6B, 0xa, 0xa, 0, 0},
7841 {0x6C, 0x87, 0x87, 1, 1},
7842 {0x6D, 0x2a, 0x2a, 0, 0},
7843 {0x6E, 0x2a, 0x2a, 0, 0},
7844 {0x6F, 0x2a, 0x2a, 0, 0},
7845 {0x70, 0x2a, 0x2a, 0, 0},
7846 {0x71, 0x18, 0x18, 0, 0},
7847 {0x72, 0x6a, 0x6a, 1, 1},
7848 {0x73, 0xab, 0xab, 1, 1},
7849 {0x74, 0x13, 0x13, 1, 1},
7850 {0x75, 0xc1, 0xc1, 1, 1},
7851 {0x76, 0xaa, 0xaa, 1, 1},
7852 {0x77, 0x87, 0x87, 1, 1},
7853 {0x78, 0, 0, 0, 0},
7854 {0x79, 0x6, 0x6, 0, 0},
7855 {0x7A, 0x7, 0x7, 0, 0},
7856 {0x7B, 0x7, 0x7, 0, 0},
7857 {0x7C, 0x15, 0x15, 0, 0},
7858 {0x7D, 0x55, 0x55, 0, 0},
7859 {0x7E, 0x97, 0x97, 1, 1},
7860 {0x7F, 0x8, 0x8, 0, 0},
7861 {0x80, 0x14, 0x14, 1, 1},
7862 {0x81, 0x33, 0x33, 0, 0},
7863 {0x82, 0x88, 0x88, 0, 0},
7864 {0x83, 0x6, 0x6, 0, 0},
7865 {0x84, 0x3, 0x3, 1, 1},
7866 {0x85, 0xa, 0xa, 0, 0},
7867 {0x86, 0x3, 0x3, 1, 1},
7868 {0x87, 0x2a, 0x2a, 0, 0},
7869 {0x88, 0xa4, 0xa4, 0, 0},
7870 {0x89, 0x18, 0x18, 0, 0},
7871 {0x8A, 0x28, 0x28, 0, 0},
7872 {0x8B, 0, 0, 0, 0},
7873 {0x8C, 0x4a, 0x4a, 0, 0},
7874 {0x8D, 0, 0, 0, 0},
7875 {0x8E, 0xf8, 0xf8, 0, 0},
7876 {0x8F, 0x88, 0x88, 0, 0},
7877 {0x90, 0x88, 0x88, 0, 0},
7878 {0x91, 0x88, 0x8, 1, 1},
7879 {0x92, 0x88, 0x88, 0, 0},
7880 {0x93, 0, 0, 0, 0},
7881 {0x94, 0x1, 0x1, 1, 1},
7882 {0x95, 0x8a, 0x8a, 0, 0},
7883 {0x96, 0x8, 0x8, 0, 0},
7884 {0x97, 0x83, 0x83, 0, 0},
7885 {0x98, 0x6, 0x6, 0, 0},
7886 {0x99, 0xa0, 0xa0, 0, 0},
7887 {0x9A, 0xa, 0xa, 0, 0},
7888 {0x9B, 0x87, 0x87, 1, 1},
7889 {0x9C, 0x2a, 0x2a, 0, 0},
7890 {0x9D, 0x2a, 0x2a, 0, 0},
7891 {0x9E, 0x2a, 0x2a, 0, 0},
7892 {0x9F, 0x2a, 0x2a, 0, 0},
7893 {0xA0, 0x18, 0x18, 0, 0},
7894 {0xA1, 0x6a, 0x6a, 1, 1},
7895 {0xA2, 0xab, 0xab, 1, 1},
7896 {0xA3, 0x13, 0x13, 1, 1},
7897 {0xA4, 0xc1, 0xc1, 1, 1},
7898 {0xA5, 0xaa, 0xaa, 1, 1},
7899 {0xA6, 0x87, 0x87, 1, 1},
7900 {0xA7, 0, 0, 0, 0},
7901 {0xA8, 0x6, 0x6, 0, 0},
7902 {0xA9, 0x7, 0x7, 0, 0},
7903 {0xAA, 0x7, 0x7, 0, 0},
7904 {0xAB, 0x15, 0x15, 0, 0},
7905 {0xAC, 0x55, 0x55, 0, 0},
7906 {0xAD, 0x97, 0x97, 1, 1},
7907 {0xAE, 0x8, 0x8, 0, 0},
7908 {0xAF, 0x14, 0x14, 1, 1},
7909 {0xB0, 0x33, 0x33, 0, 0},
7910 {0xB1, 0x88, 0x88, 0, 0},
7911 {0xB2, 0x6, 0x6, 0, 0},
7912 {0xB3, 0x3, 0x3, 1, 1},
7913 {0xB4, 0xa, 0xa, 0, 0},
7914 {0xB5, 0x3, 0x3, 1, 1},
7915 {0xB6, 0x2a, 0x2a, 0, 0},
7916 {0xB7, 0xa4, 0xa4, 0, 0},
7917 {0xB8, 0x18, 0x18, 0, 0},
7918 {0xB9, 0x28, 0x28, 0, 0},
7919 {0xBA, 0, 0, 0, 0},
7920 {0xBB, 0x4a, 0x4a, 0, 0},
7921 {0xBC, 0, 0, 0, 0},
7922 {0xBD, 0x71, 0x71, 0, 0},
7923 {0xBE, 0x72, 0x72, 0, 0},
7924 {0xBF, 0x73, 0x73, 0, 0},
7925 {0xC0, 0x74, 0x74, 0, 0},
7926 {0xC1, 0x75, 0x75, 0, 0},
7927 {0xC2, 0x76, 0x76, 0, 0},
7928 {0xC3, 0x77, 0x77, 0, 0},
7929 {0xC4, 0x78, 0x78, 0, 0},
7930 {0xC5, 0x79, 0x79, 0, 0},
7931 {0xC6, 0x7a, 0x7a, 0, 0},
7932 {0xC7, 0, 0, 0, 0},
7933 {0xC8, 0, 0, 0, 0},
7934 {0xC9, 0, 0, 0, 0},
7935 {0xCA, 0, 0, 0, 0},
7936 {0xCB, 0, 0, 0, 0},
7937 {0xCC, 0, 0, 0, 0},
7938 {0xCD, 0, 0, 0, 0},
7939 {0xCE, 0x6, 0x6, 0, 0},
7940 {0xCF, 0, 0, 0, 0},
7941 {0xD0, 0, 0, 0, 0},
7942 {0xD1, 0x18, 0x18, 0, 0},
7943 {0xD2, 0x88, 0x88, 0, 0},
7944 {0xD3, 0, 0, 0, 0},
7945 {0xD4, 0, 0, 0, 0},
7946 {0xD5, 0, 0, 0, 0},
7947 {0xD6, 0, 0, 0, 0},
7948 {0xD7, 0, 0, 0, 0},
7949 {0xD8, 0, 0, 0, 0},
7950 {0xD9, 0, 0, 0, 0},
7951 {0xDA, 0x6, 0x6, 0, 0},
7952 {0xDB, 0, 0, 0, 0},
7953 {0xDC, 0, 0, 0, 0},
7954 {0xDD, 0x18, 0x18, 0, 0},
7955 {0xDE, 0x88, 0x88, 0, 0},
7956 {0xDF, 0, 0, 0, 0},
7957 {0xE0, 0, 0, 0, 0},
7958 {0xE1, 0, 0, 0, 0},
7959 {0xE2, 0, 0, 0, 0},
7960 {0xFFFF, 0, 0, 0, 0},
7961};
7962
7963radio_regs_t regs_SYN_2056[] = {
7964 {0x02, 0, 0, 0, 0},
7965 {0x03, 0, 0, 0, 0},
7966 {0x04, 0, 0, 0, 0},
7967 {0x05, 0, 0, 0, 0},
7968 {0x06, 0, 0, 0, 0},
7969 {0x07, 0, 0, 0, 0},
7970 {0x08, 0, 0, 0, 0},
7971 {0x09, 0x1, 0x1, 0, 0},
7972 {0x0A, 0, 0, 0, 0},
7973 {0x0B, 0, 0, 0, 0},
7974 {0x0C, 0, 0, 0, 0},
7975 {0x0D, 0, 0, 0, 0},
7976 {0x0E, 0, 0, 0, 0},
7977 {0x0F, 0, 0, 0, 0},
7978 {0x10, 0, 0, 0, 0},
7979 {0x11, 0, 0, 0, 0},
7980 {0x12, 0, 0, 0, 0},
7981 {0x13, 0, 0, 0, 0},
7982 {0x14, 0, 0, 0, 0},
7983 {0x15, 0, 0, 0, 0},
7984 {0x16, 0, 0, 0, 0},
7985 {0x17, 0, 0, 0, 0},
7986 {0x18, 0, 0, 0, 0},
7987 {0x19, 0, 0, 0, 0},
7988 {0x1A, 0, 0, 0, 0},
7989 {0x1B, 0, 0, 0, 0},
7990 {0x1C, 0, 0, 0, 0},
7991 {0x1D, 0, 0, 0, 0},
7992 {0x1E, 0, 0, 0, 0},
7993 {0x1F, 0, 0, 0, 0},
7994 {0x20, 0, 0, 0, 0},
7995 {0x21, 0, 0, 0, 0},
7996 {0x22, 0x60, 0x60, 0, 0},
7997 {0x23, 0x6, 0x6, 0, 0},
7998 {0x24, 0xc, 0xc, 0, 0},
7999 {0x25, 0, 0, 0, 0},
8000 {0x26, 0, 0, 0, 0},
8001 {0x27, 0, 0, 0, 0},
8002 {0x28, 0x1, 0x1, 0, 0},
8003 {0x29, 0, 0, 0, 0},
8004 {0x2A, 0, 0, 0, 0},
8005 {0x2B, 0, 0, 0, 0},
8006 {0x2C, 0, 0, 0, 0},
8007 {0x2D, 0, 0, 0, 0},
8008 {0x2E, 0xd, 0xd, 0, 0},
8009 {0x2F, 0x1f, 0x1f, 0, 0},
8010 {0x30, 0x15, 0x15, 0, 0},
8011 {0x31, 0xf, 0xf, 0, 0},
8012 {0x32, 0, 0, 0, 0},
8013 {0x33, 0, 0, 0, 0},
8014 {0x34, 0, 0, 0, 0},
8015 {0x35, 0, 0, 0, 0},
8016 {0x36, 0, 0, 0, 0},
8017 {0x37, 0, 0, 0, 0},
8018 {0x38, 0, 0, 0, 0},
8019 {0x39, 0, 0, 0, 0},
8020 {0x3A, 0, 0, 0, 0},
8021 {0x3B, 0, 0, 0, 0},
8022 {0x3C, 0x13, 0x13, 0, 0},
8023 {0x3D, 0xf, 0xf, 0, 0},
8024 {0x3E, 0x18, 0x18, 0, 0},
8025 {0x3F, 0, 0, 0, 0},
8026 {0x40, 0, 0, 0, 0},
8027 {0x41, 0x20, 0x20, 0, 0},
8028 {0x42, 0x20, 0x20, 0, 0},
8029 {0x43, 0, 0, 0, 0},
8030 {0x44, 0x77, 0x77, 0, 0},
8031 {0x45, 0x7, 0x7, 0, 0},
8032 {0x46, 0x1, 0x1, 0, 0},
8033 {0x47, 0x4, 0x4, 0, 0},
8034 {0x48, 0xf, 0xf, 0, 0},
8035 {0x49, 0x30, 0x30, 0, 0},
8036 {0x4A, 0x32, 0x32, 0, 0},
8037 {0x4B, 0xd, 0xd, 0, 0},
8038 {0x4C, 0xd, 0xd, 0, 0},
8039 {0x4D, 0x4, 0x4, 0, 0},
8040 {0x4E, 0x6, 0x6, 0, 0},
8041 {0x4F, 0x1, 0x1, 0, 0},
8042 {0x50, 0x1c, 0x1c, 0, 0},
8043 {0x51, 0x2, 0x2, 0, 0},
8044 {0x52, 0x2, 0x2, 0, 0},
8045 {0x53, 0xf7, 0xf7, 1, 1},
8046 {0x54, 0xb4, 0xb4, 0, 0},
8047 {0x55, 0xd2, 0xd2, 0, 0},
8048 {0x56, 0, 0, 0, 0},
8049 {0x57, 0, 0, 0, 0},
8050 {0x58, 0x4, 0x4, 0, 0},
8051 {0x59, 0x96, 0x96, 0, 0},
8052 {0x5A, 0x3e, 0x3e, 0, 0},
8053 {0x5B, 0x3e, 0x3e, 0, 0},
8054 {0x5C, 0x13, 0x13, 0, 0},
8055 {0x5D, 0x2, 0x2, 0, 0},
8056 {0x5E, 0, 0, 0, 0},
8057 {0x5F, 0x7, 0x7, 0, 0},
8058 {0x60, 0x7, 0x7, 1, 1},
8059 {0x61, 0x8, 0x8, 0, 0},
8060 {0x62, 0x3, 0x3, 0, 0},
8061 {0x63, 0, 0, 0, 0},
8062 {0x64, 0, 0, 0, 0},
8063 {0x65, 0, 0, 0, 0},
8064 {0x66, 0, 0, 0, 0},
8065 {0x67, 0, 0, 0, 0},
8066 {0x68, 0x40, 0x40, 0, 0},
8067 {0x69, 0, 0, 0, 0},
8068 {0x6A, 0, 0, 0, 0},
8069 {0x6B, 0, 0, 0, 0},
8070 {0x6C, 0, 0, 0, 0},
8071 {0x6D, 0x1, 0x1, 0, 0},
8072 {0x6E, 0, 0, 0, 0},
8073 {0x6F, 0, 0, 0, 0},
8074 {0x70, 0x60, 0x60, 0, 0},
8075 {0x71, 0x66, 0x66, 0, 0},
8076 {0x72, 0xc, 0xc, 0, 0},
8077 {0x73, 0x66, 0x66, 0, 0},
8078 {0x74, 0x8f, 0x8f, 1, 1},
8079 {0x75, 0, 0, 0, 0},
8080 {0x76, 0xcc, 0xcc, 0, 0},
8081 {0x77, 0x1, 0x1, 0, 0},
8082 {0x78, 0x66, 0x66, 0, 0},
8083 {0x79, 0x66, 0x66, 0, 0},
8084 {0x7A, 0, 0, 0, 0},
8085 {0x7B, 0, 0, 0, 0},
8086 {0x7C, 0, 0, 0, 0},
8087 {0x7D, 0, 0, 0, 0},
8088 {0x7E, 0, 0, 0, 0},
8089 {0x7F, 0, 0, 0, 0},
8090 {0x80, 0, 0, 0, 0},
8091 {0x81, 0, 0, 0, 0},
8092 {0x82, 0, 0, 0, 0},
8093 {0x83, 0, 0, 0, 0},
8094 {0x84, 0, 0, 0, 0},
8095 {0x85, 0xff, 0xff, 0, 0},
8096 {0x86, 0, 0, 0, 0},
8097 {0x87, 0, 0, 0, 0},
8098 {0x88, 0, 0, 0, 0},
8099 {0x89, 0, 0, 0, 0},
8100 {0x8A, 0, 0, 0, 0},
8101 {0x8B, 0, 0, 0, 0},
8102 {0x8C, 0, 0, 0, 0},
8103 {0x8D, 0, 0, 0, 0},
8104 {0x8E, 0, 0, 0, 0},
8105 {0x8F, 0, 0, 0, 0},
8106 {0x90, 0, 0, 0, 0},
8107 {0x91, 0, 0, 0, 0},
8108 {0x92, 0, 0, 0, 0},
8109 {0x93, 0, 0, 0, 0},
8110 {0x94, 0, 0, 0, 0},
8111 {0x95, 0, 0, 0, 0},
8112 {0x96, 0, 0, 0, 0},
8113 {0x97, 0, 0, 0, 0},
8114 {0x98, 0, 0, 0, 0},
8115 {0x99, 0, 0, 0, 0},
8116 {0x9A, 0, 0, 0, 0},
8117 {0x9B, 0, 0, 0, 0},
8118 {0x9C, 0, 0, 0, 0},
8119 {0x9D, 0, 0, 0, 0},
8120 {0x9E, 0, 0, 0, 0},
8121 {0x9F, 0x6, 0x6, 0, 0},
8122 {0xA0, 0x66, 0x66, 0, 0},
8123 {0xA1, 0x66, 0x66, 0, 0},
8124 {0xA2, 0x66, 0x66, 0, 0},
8125 {0xA3, 0x66, 0x66, 0, 0},
8126 {0xA4, 0x66, 0x66, 0, 0},
8127 {0xA5, 0x66, 0x66, 0, 0},
8128 {0xA6, 0x66, 0x66, 0, 0},
8129 {0xA7, 0x66, 0x66, 0, 0},
8130 {0xA8, 0x66, 0x66, 0, 0},
8131 {0xA9, 0x66, 0x66, 0, 0},
8132 {0xAA, 0x66, 0x66, 0, 0},
8133 {0xAB, 0x66, 0x66, 0, 0},
8134 {0xAC, 0x66, 0x66, 0, 0},
8135 {0xAD, 0x66, 0x66, 0, 0},
8136 {0xAE, 0x66, 0x66, 0, 0},
8137 {0xAF, 0x66, 0x66, 0, 0},
8138 {0xB0, 0x66, 0x66, 0, 0},
8139 {0xB1, 0x66, 0x66, 0, 0},
8140 {0xB2, 0x66, 0x66, 0, 0},
8141 {0xB3, 0xa, 0xa, 0, 0},
8142 {0xB4, 0, 0, 0, 0},
8143 {0xB5, 0, 0, 0, 0},
8144 {0xB6, 0, 0, 0, 0},
8145 {0xFFFF, 0, 0, 0, 0}
8146};
8147
8148radio_regs_t regs_TX_2056[] = {
8149 {0x02, 0, 0, 0, 0},
8150 {0x03, 0, 0, 0, 0},
8151 {0x04, 0, 0, 0, 0},
8152 {0x05, 0, 0, 0, 0},
8153 {0x06, 0, 0, 0, 0},
8154 {0x07, 0, 0, 0, 0},
8155 {0x08, 0, 0, 0, 0},
8156 {0x09, 0, 0, 0, 0},
8157 {0x0A, 0, 0, 0, 0},
8158 {0x0B, 0, 0, 0, 0},
8159 {0x0C, 0, 0, 0, 0},
8160 {0x0D, 0, 0, 0, 0},
8161 {0x0E, 0, 0, 0, 0},
8162 {0x0F, 0, 0, 0, 0},
8163 {0x10, 0, 0, 0, 0},
8164 {0x11, 0, 0, 0, 0},
8165 {0x12, 0, 0, 0, 0},
8166 {0x13, 0, 0, 0, 0},
8167 {0x14, 0, 0, 0, 0},
8168 {0x15, 0, 0, 0, 0},
8169 {0x16, 0, 0, 0, 0},
8170 {0x17, 0, 0, 0, 0},
8171 {0x18, 0, 0, 0, 0},
8172 {0x19, 0, 0, 0, 0},
8173 {0x1A, 0, 0, 0, 0},
8174 {0x1B, 0, 0, 0, 0},
8175 {0x1C, 0, 0, 0, 0},
8176 {0x1D, 0, 0, 0, 0},
8177 {0x1E, 0, 0, 0, 0},
8178 {0x1F, 0, 0, 0, 0},
8179 {0x20, 0, 0, 0, 0},
8180 {0x21, 0x88, 0x88, 0, 0},
8181 {0x22, 0x88, 0x88, 0, 0},
8182 {0x23, 0x88, 0x88, 0, 0},
8183 {0x24, 0x88, 0x88, 0, 0},
8184 {0x25, 0xc, 0xc, 0, 0},
8185 {0x26, 0, 0, 0, 0},
8186 {0x27, 0x3, 0x3, 0, 0},
8187 {0x28, 0, 0, 0, 0},
8188 {0x29, 0x3, 0x3, 0, 0},
8189 {0x2A, 0x37, 0x37, 0, 0},
8190 {0x2B, 0x3, 0x3, 0, 0},
8191 {0x2C, 0, 0, 0, 0},
8192 {0x2D, 0, 0, 0, 0},
8193 {0x2E, 0x1, 0x1, 0, 0},
8194 {0x2F, 0x1, 0x1, 0, 0},
8195 {0x30, 0, 0, 0, 0},
8196 {0x31, 0, 0, 0, 0},
8197 {0x32, 0, 0, 0, 0},
8198 {0x33, 0x11, 0x11, 0, 0},
8199 {0x34, 0x11, 0x11, 0, 0},
8200 {0x35, 0, 0, 0, 0},
8201 {0x36, 0, 0, 0, 0},
8202 {0x37, 0x3, 0x3, 0, 0},
8203 {0x38, 0xf, 0xf, 0, 0},
8204 {0x39, 0, 0, 0, 0},
8205 {0x3A, 0x2d, 0x2d, 0, 0},
8206 {0x3B, 0, 0, 0, 0},
8207 {0x3C, 0x6e, 0x6e, 0, 0},
8208 {0x3D, 0xf0, 0xf0, 1, 1},
8209 {0x3E, 0, 0, 0, 0},
8210 {0x3F, 0, 0, 0, 0},
8211 {0x40, 0, 0, 0, 0},
8212 {0x41, 0x3, 0x3, 0, 0},
8213 {0x42, 0x3, 0x3, 0, 0},
8214 {0x43, 0, 0, 0, 0},
8215 {0x44, 0x1e, 0x1e, 0, 0},
8216 {0x45, 0, 0, 0, 0},
8217 {0x46, 0x6e, 0x6e, 0, 0},
8218 {0x47, 0xf0, 0xf0, 1, 1},
8219 {0x48, 0, 0, 0, 0},
8220 {0x49, 0x2, 0x2, 0, 0},
8221 {0x4A, 0xff, 0xff, 1, 1},
8222 {0x4B, 0xc, 0xc, 0, 0},
8223 {0x4C, 0, 0, 0, 0},
8224 {0x4D, 0x38, 0x38, 0, 0},
8225 {0x4E, 0x70, 0x70, 1, 1},
8226 {0x4F, 0x2, 0x2, 0, 0},
8227 {0x50, 0x88, 0x88, 0, 0},
8228 {0x51, 0xc, 0xc, 0, 0},
8229 {0x52, 0, 0, 0, 0},
8230 {0x53, 0x8, 0x8, 0, 0},
8231 {0x54, 0x70, 0x70, 1, 1},
8232 {0x55, 0x2, 0x2, 0, 0},
8233 {0x56, 0xff, 0xff, 1, 1},
8234 {0x57, 0, 0, 0, 0},
8235 {0x58, 0x83, 0x83, 0, 0},
8236 {0x59, 0x77, 0x77, 1, 1},
8237 {0x5A, 0, 0, 0, 0},
8238 {0x5B, 0x2, 0x2, 0, 0},
8239 {0x5C, 0x88, 0x88, 0, 0},
8240 {0x5D, 0, 0, 0, 0},
8241 {0x5E, 0x8, 0x8, 0, 0},
8242 {0x5F, 0x77, 0x77, 1, 1},
8243 {0x60, 0x1, 0x1, 0, 0},
8244 {0x61, 0, 0, 0, 0},
8245 {0x62, 0x7, 0x7, 0, 0},
8246 {0x63, 0, 0, 0, 0},
8247 {0x64, 0x7, 0x7, 0, 0},
8248 {0x65, 0, 0, 0, 0},
8249 {0x66, 0, 0, 0, 0},
8250 {0x67, 0x74, 0x74, 1, 1},
8251 {0x68, 0, 0, 0, 0},
8252 {0x69, 0xa, 0xa, 0, 0},
8253 {0x6A, 0, 0, 0, 0},
8254 {0x6B, 0, 0, 0, 0},
8255 {0x6C, 0, 0, 0, 0},
8256 {0x6D, 0, 0, 0, 0},
8257 {0x6E, 0, 0, 0, 0},
8258 {0x6F, 0, 0, 0, 0},
8259 {0x70, 0, 0, 0, 0},
8260 {0x71, 0x2, 0x2, 0, 0},
8261 {0x72, 0, 0, 0, 0},
8262 {0x73, 0, 0, 0, 0},
8263 {0x74, 0xe, 0xe, 0, 0},
8264 {0x75, 0xe, 0xe, 0, 0},
8265 {0x76, 0xe, 0xe, 0, 0},
8266 {0x77, 0x13, 0x13, 0, 0},
8267 {0x78, 0x13, 0x13, 0, 0},
8268 {0x79, 0x1b, 0x1b, 0, 0},
8269 {0x7A, 0x1b, 0x1b, 0, 0},
8270 {0x7B, 0x55, 0x55, 0, 0},
8271 {0x7C, 0x5b, 0x5b, 0, 0},
8272 {0x7D, 0, 0, 0, 0},
8273 {0x7E, 0, 0, 0, 0},
8274 {0x7F, 0, 0, 0, 0},
8275 {0x80, 0, 0, 0, 0},
8276 {0x81, 0, 0, 0, 0},
8277 {0x82, 0, 0, 0, 0},
8278 {0x83, 0, 0, 0, 0},
8279 {0x84, 0, 0, 0, 0},
8280 {0x85, 0, 0, 0, 0},
8281 {0x86, 0, 0, 0, 0},
8282 {0x87, 0, 0, 0, 0},
8283 {0x88, 0, 0, 0, 0},
8284 {0x89, 0, 0, 0, 0},
8285 {0x8A, 0, 0, 0, 0},
8286 {0x8B, 0, 0, 0, 0},
8287 {0x8C, 0, 0, 0, 0},
8288 {0x8D, 0, 0, 0, 0},
8289 {0x8E, 0, 0, 0, 0},
8290 {0x8F, 0, 0, 0, 0},
8291 {0x90, 0, 0, 0, 0},
8292 {0x91, 0, 0, 0, 0},
8293 {0x92, 0, 0, 0, 0},
8294 {0xFFFF, 0, 0, 0, 0}
8295};
8296
8297radio_regs_t regs_RX_2056[] = {
8298 {0x02, 0, 0, 0, 0},
8299 {0x03, 0, 0, 0, 0},
8300 {0x04, 0, 0, 0, 0},
8301 {0x05, 0, 0, 0, 0},
8302 {0x06, 0, 0, 0, 0},
8303 {0x07, 0, 0, 0, 0},
8304 {0x08, 0, 0, 0, 0},
8305 {0x09, 0, 0, 0, 0},
8306 {0x0A, 0, 0, 0, 0},
8307 {0x0B, 0, 0, 0, 0},
8308 {0x0C, 0, 0, 0, 0},
8309 {0x0D, 0, 0, 0, 0},
8310 {0x0E, 0, 0, 0, 0},
8311 {0x0F, 0, 0, 0, 0},
8312 {0x10, 0, 0, 0, 0},
8313 {0x11, 0, 0, 0, 0},
8314 {0x12, 0, 0, 0, 0},
8315 {0x13, 0, 0, 0, 0},
8316 {0x14, 0, 0, 0, 0},
8317 {0x15, 0, 0, 0, 0},
8318 {0x16, 0, 0, 0, 0},
8319 {0x17, 0, 0, 0, 0},
8320 {0x18, 0, 0, 0, 0},
8321 {0x19, 0, 0, 0, 0},
8322 {0x1A, 0, 0, 0, 0},
8323 {0x1B, 0, 0, 0, 0},
8324 {0x1C, 0, 0, 0, 0},
8325 {0x1D, 0, 0, 0, 0},
8326 {0x1E, 0, 0, 0, 0},
8327 {0x1F, 0, 0, 0, 0},
8328 {0x20, 0x3, 0x3, 0, 0},
8329 {0x21, 0, 0, 0, 0},
8330 {0x22, 0, 0, 0, 0},
8331 {0x23, 0x90, 0x90, 0, 0},
8332 {0x24, 0x55, 0x55, 0, 0},
8333 {0x25, 0x15, 0x15, 0, 0},
8334 {0x26, 0x5, 0x5, 0, 0},
8335 {0x27, 0x15, 0x15, 0, 0},
8336 {0x28, 0x5, 0x5, 0, 0},
8337 {0x29, 0x20, 0x20, 0, 0},
8338 {0x2A, 0x11, 0x11, 0, 0},
8339 {0x2B, 0x90, 0x90, 0, 0},
8340 {0x2C, 0, 0, 0, 0},
8341 {0x2D, 0x88, 0x88, 0, 0},
8342 {0x2E, 0x32, 0x32, 0, 0},
8343 {0x2F, 0x77, 0x77, 0, 0},
8344 {0x30, 0x17, 0x17, 1, 1},
8345 {0x31, 0xff, 0xff, 1, 1},
8346 {0x32, 0x20, 0x20, 0, 0},
8347 {0x33, 0, 0, 0, 0},
8348 {0x34, 0x88, 0x88, 0, 0},
8349 {0x35, 0x32, 0x32, 0, 0},
8350 {0x36, 0x77, 0x77, 0, 0},
8351 {0x37, 0x17, 0x17, 1, 1},
8352 {0x38, 0xf0, 0xf0, 1, 1},
8353 {0x39, 0x20, 0x20, 0, 0},
8354 {0x3A, 0x8, 0x8, 0, 0},
8355 {0x3B, 0x99, 0x99, 0, 0},
8356 {0x3C, 0, 0, 0, 0},
8357 {0x3D, 0x44, 0x44, 1, 1},
8358 {0x3E, 0, 0, 0, 0},
8359 {0x3F, 0x44, 0x44, 0, 0},
8360 {0x40, 0xf, 0xf, 1, 1},
8361 {0x41, 0x6, 0x6, 0, 0},
8362 {0x42, 0x4, 0x4, 0, 0},
8363 {0x43, 0x50, 0x50, 1, 1},
8364 {0x44, 0x8, 0x8, 0, 0},
8365 {0x45, 0x99, 0x99, 0, 0},
8366 {0x46, 0, 0, 0, 0},
8367 {0x47, 0x11, 0x11, 0, 0},
8368 {0x48, 0, 0, 0, 0},
8369 {0x49, 0x44, 0x44, 0, 0},
8370 {0x4A, 0x7, 0x7, 0, 0},
8371 {0x4B, 0x6, 0x6, 0, 0},
8372 {0x4C, 0x4, 0x4, 0, 0},
8373 {0x4D, 0, 0, 0, 0},
8374 {0x4E, 0, 0, 0, 0},
8375 {0x4F, 0x66, 0x66, 0, 0},
8376 {0x50, 0x66, 0x66, 0, 0},
8377 {0x51, 0x57, 0x57, 0, 0},
8378 {0x52, 0x57, 0x57, 0, 0},
8379 {0x53, 0x44, 0x44, 0, 0},
8380 {0x54, 0, 0, 0, 0},
8381 {0x55, 0, 0, 0, 0},
8382 {0x56, 0x8, 0x8, 0, 0},
8383 {0x57, 0x8, 0x8, 0, 0},
8384 {0x58, 0x7, 0x7, 0, 0},
8385 {0x59, 0x22, 0x22, 0, 0},
8386 {0x5A, 0x22, 0x22, 0, 0},
8387 {0x5B, 0x2, 0x2, 0, 0},
8388 {0x5C, 0x23, 0x23, 0, 0},
8389 {0x5D, 0x7, 0x7, 0, 0},
8390 {0x5E, 0x55, 0x55, 0, 0},
8391 {0x5F, 0x23, 0x23, 0, 0},
8392 {0x60, 0x41, 0x41, 0, 0},
8393 {0x61, 0x1, 0x1, 0, 0},
8394 {0x62, 0xa, 0xa, 0, 0},
8395 {0x63, 0, 0, 0, 0},
8396 {0x64, 0, 0, 0, 0},
8397 {0x65, 0, 0, 0, 0},
8398 {0x66, 0, 0, 0, 0},
8399 {0x67, 0, 0, 0, 0},
8400 {0x68, 0, 0, 0, 0},
8401 {0x69, 0, 0, 0, 0},
8402 {0x6A, 0, 0, 0, 0},
8403 {0x6B, 0xc, 0xc, 0, 0},
8404 {0x6C, 0, 0, 0, 0},
8405 {0x6D, 0, 0, 0, 0},
8406 {0x6E, 0, 0, 0, 0},
8407 {0x6F, 0, 0, 0, 0},
8408 {0x70, 0, 0, 0, 0},
8409 {0x71, 0, 0, 0, 0},
8410 {0x72, 0x22, 0x22, 0, 0},
8411 {0x73, 0x22, 0x22, 0, 0},
8412 {0x74, 0x2, 0x2, 0, 0},
8413 {0x75, 0xa, 0xa, 0, 0},
8414 {0x76, 0x1, 0x1, 0, 0},
8415 {0x77, 0x22, 0x22, 0, 0},
8416 {0x78, 0x30, 0x30, 0, 0},
8417 {0x79, 0, 0, 0, 0},
8418 {0x7A, 0, 0, 0, 0},
8419 {0x7B, 0, 0, 0, 0},
8420 {0x7C, 0, 0, 0, 0},
8421 {0x7D, 0, 0, 0, 0},
8422 {0x7E, 0, 0, 0, 0},
8423 {0x7F, 0, 0, 0, 0},
8424 {0x80, 0, 0, 0, 0},
8425 {0x81, 0, 0, 0, 0},
8426 {0x82, 0, 0, 0, 0},
8427 {0x83, 0, 0, 0, 0},
8428 {0x84, 0, 0, 0, 0},
8429 {0x85, 0, 0, 0, 0},
8430 {0x86, 0, 0, 0, 0},
8431 {0x87, 0, 0, 0, 0},
8432 {0x88, 0, 0, 0, 0},
8433 {0x89, 0, 0, 0, 0},
8434 {0x8A, 0, 0, 0, 0},
8435 {0x8B, 0, 0, 0, 0},
8436 {0x8C, 0, 0, 0, 0},
8437 {0x8D, 0, 0, 0, 0},
8438 {0x8E, 0, 0, 0, 0},
8439 {0x8F, 0, 0, 0, 0},
8440 {0x90, 0, 0, 0, 0},
8441 {0x91, 0, 0, 0, 0},
8442 {0x92, 0, 0, 0, 0},
8443 {0x93, 0, 0, 0, 0},
8444 {0x94, 0, 0, 0, 0},
8445 {0xFFFF, 0, 0, 0, 0}
8446};
8447
8448radio_regs_t regs_SYN_2056_A1[] = {
8449 {0x02, 0, 0, 0, 0},
8450 {0x03, 0, 0, 0, 0},
8451 {0x04, 0, 0, 0, 0},
8452 {0x05, 0, 0, 0, 0},
8453 {0x06, 0, 0, 0, 0},
8454 {0x07, 0, 0, 0, 0},
8455 {0x08, 0, 0, 0, 0},
8456 {0x09, 0x1, 0x1, 0, 0},
8457 {0x0A, 0, 0, 0, 0},
8458 {0x0B, 0, 0, 0, 0},
8459 {0x0C, 0, 0, 0, 0},
8460 {0x0D, 0, 0, 0, 0},
8461 {0x0E, 0, 0, 0, 0},
8462 {0x0F, 0, 0, 0, 0},
8463 {0x10, 0, 0, 0, 0},
8464 {0x11, 0, 0, 0, 0},
8465 {0x12, 0, 0, 0, 0},
8466 {0x13, 0, 0, 0, 0},
8467 {0x14, 0, 0, 0, 0},
8468 {0x15, 0, 0, 0, 0},
8469 {0x16, 0, 0, 0, 0},
8470 {0x17, 0, 0, 0, 0},
8471 {0x18, 0, 0, 0, 0},
8472 {0x19, 0, 0, 0, 0},
8473 {0x1A, 0, 0, 0, 0},
8474 {0x1B, 0, 0, 0, 0},
8475 {0x1C, 0, 0, 0, 0},
8476 {0x1D, 0, 0, 0, 0},
8477 {0x1E, 0, 0, 0, 0},
8478 {0x1F, 0, 0, 0, 0},
8479 {0x20, 0, 0, 0, 0},
8480 {0x21, 0, 0, 0, 0},
8481 {0x22, 0x60, 0x60, 0, 0},
8482 {0x23, 0x6, 0x6, 0, 0},
8483 {0x24, 0xc, 0xc, 0, 0},
8484 {0x25, 0, 0, 0, 0},
8485 {0x26, 0, 0, 0, 0},
8486 {0x27, 0, 0, 0, 0},
8487 {0x28, 0x1, 0x1, 0, 0},
8488 {0x29, 0, 0, 0, 0},
8489 {0x2A, 0, 0, 0, 0},
8490 {0x2B, 0, 0, 0, 0},
8491 {0x2C, 0, 0, 0, 0},
8492 {0x2D, 0, 0, 0, 0},
8493 {0x2E, 0xd, 0xd, 0, 0},
8494 {0x2F, 0x1f, 0x1f, 0, 0},
8495 {0x30, 0x15, 0x15, 0, 0},
8496 {0x31, 0xf, 0xf, 0, 0},
8497 {0x32, 0, 0, 0, 0},
8498 {0x33, 0, 0, 0, 0},
8499 {0x34, 0, 0, 0, 0},
8500 {0x35, 0, 0, 0, 0},
8501 {0x36, 0, 0, 0, 0},
8502 {0x37, 0, 0, 0, 0},
8503 {0x38, 0, 0, 0, 0},
8504 {0x39, 0, 0, 0, 0},
8505 {0x3A, 0, 0, 0, 0},
8506 {0x3B, 0, 0, 0, 0},
8507 {0x3C, 0x13, 0x13, 0, 0},
8508 {0x3D, 0xf, 0xf, 0, 0},
8509 {0x3E, 0x18, 0x18, 0, 0},
8510 {0x3F, 0, 0, 0, 0},
8511 {0x40, 0, 0, 0, 0},
8512 {0x41, 0x20, 0x20, 0, 0},
8513 {0x42, 0x20, 0x20, 0, 0},
8514 {0x43, 0, 0, 0, 0},
8515 {0x44, 0x77, 0x77, 0, 0},
8516 {0x45, 0x7, 0x7, 0, 0},
8517 {0x46, 0x1, 0x1, 0, 0},
8518 {0x47, 0x4, 0x4, 0, 0},
8519 {0x48, 0xf, 0xf, 0, 0},
8520 {0x49, 0x30, 0x30, 0, 0},
8521 {0x4A, 0x32, 0x32, 0, 0},
8522 {0x4B, 0xd, 0xd, 0, 0},
8523 {0x4C, 0xd, 0xd, 0, 0},
8524 {0x4D, 0x4, 0x4, 0, 0},
8525 {0x4E, 0x6, 0x6, 0, 0},
8526 {0x4F, 0x1, 0x1, 0, 0},
8527 {0x50, 0x1c, 0x1c, 0, 0},
8528 {0x51, 0x2, 0x2, 0, 0},
8529 {0x52, 0x2, 0x2, 0, 0},
8530 {0x53, 0xf7, 0xf7, 1, 1},
8531 {0x54, 0xb4, 0xb4, 0, 0},
8532 {0x55, 0xd2, 0xd2, 0, 0},
8533 {0x56, 0, 0, 0, 0},
8534 {0x57, 0, 0, 0, 0},
8535 {0x58, 0x4, 0x4, 0, 0},
8536 {0x59, 0x96, 0x96, 0, 0},
8537 {0x5A, 0x3e, 0x3e, 0, 0},
8538 {0x5B, 0x3e, 0x3e, 0, 0},
8539 {0x5C, 0x13, 0x13, 0, 0},
8540 {0x5D, 0x2, 0x2, 0, 0},
8541 {0x5E, 0, 0, 0, 0},
8542 {0x5F, 0x7, 0x7, 0, 0},
8543 {0x60, 0x7, 0x7, 1, 1},
8544 {0x61, 0x8, 0x8, 0, 0},
8545 {0x62, 0x3, 0x3, 0, 0},
8546 {0x63, 0, 0, 0, 0},
8547 {0x64, 0, 0, 0, 0},
8548 {0x65, 0, 0, 0, 0},
8549 {0x66, 0, 0, 0, 0},
8550 {0x67, 0, 0, 0, 0},
8551 {0x68, 0x40, 0x40, 0, 0},
8552 {0x69, 0, 0, 0, 0},
8553 {0x6A, 0, 0, 0, 0},
8554 {0x6B, 0, 0, 0, 0},
8555 {0x6C, 0, 0, 0, 0},
8556 {0x6D, 0x1, 0x1, 0, 0},
8557 {0x6E, 0, 0, 0, 0},
8558 {0x6F, 0, 0, 0, 0},
8559 {0x70, 0x60, 0x60, 0, 0},
8560 {0x71, 0x66, 0x66, 0, 0},
8561 {0x72, 0xc, 0xc, 0, 0},
8562 {0x73, 0x66, 0x66, 0, 0},
8563 {0x74, 0x8f, 0x8f, 1, 1},
8564 {0x75, 0, 0, 0, 0},
8565 {0x76, 0xcc, 0xcc, 0, 0},
8566 {0x77, 0x1, 0x1, 0, 0},
8567 {0x78, 0x66, 0x66, 0, 0},
8568 {0x79, 0x66, 0x66, 0, 0},
8569 {0x7A, 0, 0, 0, 0},
8570 {0x7B, 0, 0, 0, 0},
8571 {0x7C, 0, 0, 0, 0},
8572 {0x7D, 0, 0, 0, 0},
8573 {0x7E, 0, 0, 0, 0},
8574 {0x7F, 0, 0, 0, 0},
8575 {0x80, 0, 0, 0, 0},
8576 {0x81, 0, 0, 0, 0},
8577 {0x82, 0, 0, 0, 0},
8578 {0x83, 0, 0, 0, 0},
8579 {0x84, 0, 0, 0, 0},
8580 {0x85, 0xff, 0xff, 0, 0},
8581 {0x86, 0, 0, 0, 0},
8582 {0x87, 0, 0, 0, 0},
8583 {0x88, 0, 0, 0, 0},
8584 {0x89, 0, 0, 0, 0},
8585 {0x8A, 0, 0, 0, 0},
8586 {0x8B, 0, 0, 0, 0},
8587 {0x8C, 0, 0, 0, 0},
8588 {0x8D, 0, 0, 0, 0},
8589 {0x8E, 0, 0, 0, 0},
8590 {0x8F, 0, 0, 0, 0},
8591 {0x90, 0, 0, 0, 0},
8592 {0x91, 0, 0, 0, 0},
8593 {0x92, 0, 0, 0, 0},
8594 {0x93, 0, 0, 0, 0},
8595 {0x94, 0, 0, 0, 0},
8596 {0x95, 0, 0, 0, 0},
8597 {0x96, 0, 0, 0, 0},
8598 {0x97, 0, 0, 0, 0},
8599 {0x98, 0, 0, 0, 0},
8600 {0x99, 0, 0, 0, 0},
8601 {0x9A, 0, 0, 0, 0},
8602 {0x9B, 0, 0, 0, 0},
8603 {0x9C, 0, 0, 0, 0},
8604 {0x9D, 0, 0, 0, 0},
8605 {0x9E, 0, 0, 0, 0},
8606 {0x9F, 0x6, 0x6, 0, 0},
8607 {0xA0, 0x66, 0x66, 0, 0},
8608 {0xA1, 0x66, 0x66, 0, 0},
8609 {0xA2, 0x66, 0x66, 0, 0},
8610 {0xA3, 0x66, 0x66, 0, 0},
8611 {0xA4, 0x66, 0x66, 0, 0},
8612 {0xA5, 0x66, 0x66, 0, 0},
8613 {0xA6, 0x66, 0x66, 0, 0},
8614 {0xA7, 0x66, 0x66, 0, 0},
8615 {0xA8, 0x66, 0x66, 0, 0},
8616 {0xA9, 0x66, 0x66, 0, 0},
8617 {0xAA, 0x66, 0x66, 0, 0},
8618 {0xAB, 0x66, 0x66, 0, 0},
8619 {0xAC, 0x66, 0x66, 0, 0},
8620 {0xAD, 0x66, 0x66, 0, 0},
8621 {0xAE, 0x66, 0x66, 0, 0},
8622 {0xAF, 0x66, 0x66, 0, 0},
8623 {0xB0, 0x66, 0x66, 0, 0},
8624 {0xB1, 0x66, 0x66, 0, 0},
8625 {0xB2, 0x66, 0x66, 0, 0},
8626 {0xB3, 0xa, 0xa, 0, 0},
8627 {0xB4, 0, 0, 0, 0},
8628 {0xB5, 0, 0, 0, 0},
8629 {0xB6, 0, 0, 0, 0},
8630 {0xFFFF, 0, 0, 0, 0}
8631};
8632
8633radio_regs_t regs_TX_2056_A1[] = {
8634 {0x02, 0, 0, 0, 0},
8635 {0x03, 0, 0, 0, 0},
8636 {0x04, 0, 0, 0, 0},
8637 {0x05, 0, 0, 0, 0},
8638 {0x06, 0, 0, 0, 0},
8639 {0x07, 0, 0, 0, 0},
8640 {0x08, 0, 0, 0, 0},
8641 {0x09, 0, 0, 0, 0},
8642 {0x0A, 0, 0, 0, 0},
8643 {0x0B, 0, 0, 0, 0},
8644 {0x0C, 0, 0, 0, 0},
8645 {0x0D, 0, 0, 0, 0},
8646 {0x0E, 0, 0, 0, 0},
8647 {0x0F, 0, 0, 0, 0},
8648 {0x10, 0, 0, 0, 0},
8649 {0x11, 0, 0, 0, 0},
8650 {0x12, 0, 0, 0, 0},
8651 {0x13, 0, 0, 0, 0},
8652 {0x14, 0, 0, 0, 0},
8653 {0x15, 0, 0, 0, 0},
8654 {0x16, 0, 0, 0, 0},
8655 {0x17, 0, 0, 0, 0},
8656 {0x18, 0, 0, 0, 0},
8657 {0x19, 0, 0, 0, 0},
8658 {0x1A, 0, 0, 0, 0},
8659 {0x1B, 0, 0, 0, 0},
8660 {0x1C, 0, 0, 0, 0},
8661 {0x1D, 0, 0, 0, 0},
8662 {0x1E, 0, 0, 0, 0},
8663 {0x1F, 0, 0, 0, 0},
8664 {0x20, 0, 0, 0, 0},
8665 {0x21, 0x88, 0x88, 0, 0},
8666 {0x22, 0x88, 0x88, 0, 0},
8667 {0x23, 0x88, 0x88, 0, 0},
8668 {0x24, 0x88, 0x88, 0, 0},
8669 {0x25, 0xc, 0xc, 0, 0},
8670 {0x26, 0, 0, 0, 0},
8671 {0x27, 0x3, 0x3, 0, 0},
8672 {0x28, 0, 0, 0, 0},
8673 {0x29, 0x3, 0x3, 0, 0},
8674 {0x2A, 0x37, 0x37, 0, 0},
8675 {0x2B, 0x3, 0x3, 0, 0},
8676 {0x2C, 0, 0, 0, 0},
8677 {0x2D, 0, 0, 0, 0},
8678 {0x2E, 0x1, 0x1, 0, 0},
8679 {0x2F, 0x1, 0x1, 0, 0},
8680 {0x30, 0, 0, 0, 0},
8681 {0x31, 0, 0, 0, 0},
8682 {0x32, 0, 0, 0, 0},
8683 {0x33, 0x11, 0x11, 0, 0},
8684 {0x34, 0x11, 0x11, 0, 0},
8685 {0x35, 0, 0, 0, 0},
8686 {0x36, 0, 0, 0, 0},
8687 {0x37, 0x3, 0x3, 0, 0},
8688 {0x38, 0xf, 0xf, 0, 0},
8689 {0x39, 0, 0, 0, 0},
8690 {0x3A, 0x2d, 0x2d, 0, 0},
8691 {0x3B, 0, 0, 0, 0},
8692 {0x3C, 0x6e, 0x6e, 0, 0},
8693 {0x3D, 0xf0, 0xf0, 1, 1},
8694 {0x3E, 0, 0, 0, 0},
8695 {0x3F, 0, 0, 0, 0},
8696 {0x40, 0, 0, 0, 0},
8697 {0x41, 0x3, 0x3, 0, 0},
8698 {0x42, 0x3, 0x3, 0, 0},
8699 {0x43, 0, 0, 0, 0},
8700 {0x44, 0x1e, 0x1e, 0, 0},
8701 {0x45, 0, 0, 0, 0},
8702 {0x46, 0x6e, 0x6e, 0, 0},
8703 {0x47, 0xf0, 0xf0, 1, 1},
8704 {0x48, 0, 0, 0, 0},
8705 {0x49, 0x2, 0x2, 0, 0},
8706 {0x4A, 0xff, 0xff, 1, 1},
8707 {0x4B, 0xc, 0xc, 0, 0},
8708 {0x4C, 0, 0, 0, 0},
8709 {0x4D, 0x38, 0x38, 0, 0},
8710 {0x4E, 0x70, 0x70, 1, 1},
8711 {0x4F, 0x2, 0x2, 0, 0},
8712 {0x50, 0x88, 0x88, 0, 0},
8713 {0x51, 0xc, 0xc, 0, 0},
8714 {0x52, 0, 0, 0, 0},
8715 {0x53, 0x8, 0x8, 0, 0},
8716 {0x54, 0x70, 0x70, 1, 1},
8717 {0x55, 0x2, 0x2, 0, 0},
8718 {0x56, 0xff, 0xff, 1, 1},
8719 {0x57, 0, 0, 0, 0},
8720 {0x58, 0x83, 0x83, 0, 0},
8721 {0x59, 0x77, 0x77, 1, 1},
8722 {0x5A, 0, 0, 0, 0},
8723 {0x5B, 0x2, 0x2, 0, 0},
8724 {0x5C, 0x88, 0x88, 0, 0},
8725 {0x5D, 0, 0, 0, 0},
8726 {0x5E, 0x8, 0x8, 0, 0},
8727 {0x5F, 0x77, 0x77, 1, 1},
8728 {0x60, 0x1, 0x1, 0, 0},
8729 {0x61, 0, 0, 0, 0},
8730 {0x62, 0x7, 0x7, 0, 0},
8731 {0x63, 0, 0, 0, 0},
8732 {0x64, 0x7, 0x7, 0, 0},
8733 {0x65, 0, 0, 0, 0},
8734 {0x66, 0, 0, 0, 0},
8735 {0x67, 0x72, 0x72, 1, 1},
8736 {0x68, 0, 0, 0, 0},
8737 {0x69, 0xa, 0xa, 0, 0},
8738 {0x6A, 0, 0, 0, 0},
8739 {0x6B, 0, 0, 0, 0},
8740 {0x6C, 0, 0, 0, 0},
8741 {0x6D, 0, 0, 0, 0},
8742 {0x6E, 0, 0, 0, 0},
8743 {0x6F, 0, 0, 0, 0},
8744 {0x70, 0, 0, 0, 0},
8745 {0x71, 0x2, 0x2, 0, 0},
8746 {0x72, 0, 0, 0, 0},
8747 {0x73, 0, 0, 0, 0},
8748 {0x74, 0xe, 0xe, 0, 0},
8749 {0x75, 0xe, 0xe, 0, 0},
8750 {0x76, 0xe, 0xe, 0, 0},
8751 {0x77, 0x13, 0x13, 0, 0},
8752 {0x78, 0x13, 0x13, 0, 0},
8753 {0x79, 0x1b, 0x1b, 0, 0},
8754 {0x7A, 0x1b, 0x1b, 0, 0},
8755 {0x7B, 0x55, 0x55, 0, 0},
8756 {0x7C, 0x5b, 0x5b, 0, 0},
8757 {0x7D, 0, 0, 0, 0},
8758 {0x7E, 0, 0, 0, 0},
8759 {0x7F, 0, 0, 0, 0},
8760 {0x80, 0, 0, 0, 0},
8761 {0x81, 0, 0, 0, 0},
8762 {0x82, 0, 0, 0, 0},
8763 {0x83, 0, 0, 0, 0},
8764 {0x84, 0, 0, 0, 0},
8765 {0x85, 0, 0, 0, 0},
8766 {0x86, 0, 0, 0, 0},
8767 {0x87, 0, 0, 0, 0},
8768 {0x88, 0, 0, 0, 0},
8769 {0x89, 0, 0, 0, 0},
8770 {0x8A, 0, 0, 0, 0},
8771 {0x8B, 0, 0, 0, 0},
8772 {0x8C, 0, 0, 0, 0},
8773 {0x8D, 0, 0, 0, 0},
8774 {0x8E, 0, 0, 0, 0},
8775 {0x8F, 0, 0, 0, 0},
8776 {0x90, 0, 0, 0, 0},
8777 {0x91, 0, 0, 0, 0},
8778 {0x92, 0, 0, 0, 0},
8779 {0xFFFF, 0, 0, 0, 0}
8780};
8781
8782radio_regs_t regs_RX_2056_A1[] = {
8783 {0x02, 0, 0, 0, 0},
8784 {0x03, 0, 0, 0, 0},
8785 {0x04, 0, 0, 0, 0},
8786 {0x05, 0, 0, 0, 0},
8787 {0x06, 0, 0, 0, 0},
8788 {0x07, 0, 0, 0, 0},
8789 {0x08, 0, 0, 0, 0},
8790 {0x09, 0, 0, 0, 0},
8791 {0x0A, 0, 0, 0, 0},
8792 {0x0B, 0, 0, 0, 0},
8793 {0x0C, 0, 0, 0, 0},
8794 {0x0D, 0, 0, 0, 0},
8795 {0x0E, 0, 0, 0, 0},
8796 {0x0F, 0, 0, 0, 0},
8797 {0x10, 0, 0, 0, 0},
8798 {0x11, 0, 0, 0, 0},
8799 {0x12, 0, 0, 0, 0},
8800 {0x13, 0, 0, 0, 0},
8801 {0x14, 0, 0, 0, 0},
8802 {0x15, 0, 0, 0, 0},
8803 {0x16, 0, 0, 0, 0},
8804 {0x17, 0, 0, 0, 0},
8805 {0x18, 0, 0, 0, 0},
8806 {0x19, 0, 0, 0, 0},
8807 {0x1A, 0, 0, 0, 0},
8808 {0x1B, 0, 0, 0, 0},
8809 {0x1C, 0, 0, 0, 0},
8810 {0x1D, 0, 0, 0, 0},
8811 {0x1E, 0, 0, 0, 0},
8812 {0x1F, 0, 0, 0, 0},
8813 {0x20, 0x3, 0x3, 0, 0},
8814 {0x21, 0, 0, 0, 0},
8815 {0x22, 0, 0, 0, 0},
8816 {0x23, 0x90, 0x90, 0, 0},
8817 {0x24, 0x55, 0x55, 0, 0},
8818 {0x25, 0x15, 0x15, 0, 0},
8819 {0x26, 0x5, 0x5, 0, 0},
8820 {0x27, 0x15, 0x15, 0, 0},
8821 {0x28, 0x5, 0x5, 0, 0},
8822 {0x29, 0x20, 0x20, 0, 0},
8823 {0x2A, 0x11, 0x11, 0, 0},
8824 {0x2B, 0x90, 0x90, 0, 0},
8825 {0x2C, 0, 0, 0, 0},
8826 {0x2D, 0x88, 0x88, 0, 0},
8827 {0x2E, 0x32, 0x32, 0, 0},
8828 {0x2F, 0x77, 0x77, 0, 0},
8829 {0x30, 0x17, 0x17, 1, 1},
8830 {0x31, 0xff, 0xff, 1, 1},
8831 {0x32, 0x20, 0x20, 0, 0},
8832 {0x33, 0, 0, 0, 0},
8833 {0x34, 0x88, 0x88, 0, 0},
8834 {0x35, 0x32, 0x32, 0, 0},
8835 {0x36, 0x77, 0x77, 0, 0},
8836 {0x37, 0x17, 0x17, 1, 1},
8837 {0x38, 0xf0, 0xf0, 1, 1},
8838 {0x39, 0x20, 0x20, 0, 0},
8839 {0x3A, 0x8, 0x8, 0, 0},
8840 {0x3B, 0x55, 0x55, 1, 1},
8841 {0x3C, 0, 0, 0, 0},
8842 {0x3D, 0x44, 0x44, 1, 1},
8843 {0x3E, 0, 0, 0, 0},
8844 {0x3F, 0x44, 0x44, 0, 0},
8845 {0x40, 0xf, 0xf, 1, 1},
8846 {0x41, 0x6, 0x6, 0, 0},
8847 {0x42, 0x4, 0x4, 0, 0},
8848 {0x43, 0x50, 0x50, 1, 1},
8849 {0x44, 0x8, 0x8, 0, 0},
8850 {0x45, 0x55, 0x55, 1, 1},
8851 {0x46, 0, 0, 0, 0},
8852 {0x47, 0x11, 0x11, 0, 0},
8853 {0x48, 0, 0, 0, 0},
8854 {0x49, 0x44, 0x44, 0, 0},
8855 {0x4A, 0x7, 0x7, 0, 0},
8856 {0x4B, 0x6, 0x6, 0, 0},
8857 {0x4C, 0x4, 0x4, 0, 0},
8858 {0x4D, 0, 0, 0, 0},
8859 {0x4E, 0, 0, 0, 0},
8860 {0x4F, 0x26, 0x26, 1, 1},
8861 {0x50, 0x26, 0x26, 1, 1},
8862 {0x51, 0xf, 0xf, 1, 1},
8863 {0x52, 0xf, 0xf, 1, 1},
8864 {0x53, 0x44, 0x44, 0, 0},
8865 {0x54, 0, 0, 0, 0},
8866 {0x55, 0, 0, 0, 0},
8867 {0x56, 0x8, 0x8, 0, 0},
8868 {0x57, 0x8, 0x8, 0, 0},
8869 {0x58, 0x7, 0x7, 0, 0},
8870 {0x59, 0x22, 0x22, 0, 0},
8871 {0x5A, 0x22, 0x22, 0, 0},
8872 {0x5B, 0x2, 0x2, 0, 0},
8873 {0x5C, 0x2f, 0x2f, 1, 1},
8874 {0x5D, 0x7, 0x7, 0, 0},
8875 {0x5E, 0x55, 0x55, 0, 0},
8876 {0x5F, 0x23, 0x23, 0, 0},
8877 {0x60, 0x41, 0x41, 0, 0},
8878 {0x61, 0x1, 0x1, 0, 0},
8879 {0x62, 0xa, 0xa, 0, 0},
8880 {0x63, 0, 0, 0, 0},
8881 {0x64, 0, 0, 0, 0},
8882 {0x65, 0, 0, 0, 0},
8883 {0x66, 0, 0, 0, 0},
8884 {0x67, 0, 0, 0, 0},
8885 {0x68, 0, 0, 0, 0},
8886 {0x69, 0, 0, 0, 0},
8887 {0x6A, 0, 0, 0, 0},
8888 {0x6B, 0xc, 0xc, 0, 0},
8889 {0x6C, 0, 0, 0, 0},
8890 {0x6D, 0, 0, 0, 0},
8891 {0x6E, 0, 0, 0, 0},
8892 {0x6F, 0, 0, 0, 0},
8893 {0x70, 0, 0, 0, 0},
8894 {0x71, 0, 0, 0, 0},
8895 {0x72, 0x22, 0x22, 0, 0},
8896 {0x73, 0x22, 0x22, 0, 0},
8897 {0x74, 0, 0, 1, 1},
8898 {0x75, 0xa, 0xa, 0, 0},
8899 {0x76, 0x1, 0x1, 0, 0},
8900 {0x77, 0x22, 0x22, 0, 0},
8901 {0x78, 0x30, 0x30, 0, 0},
8902 {0x79, 0, 0, 0, 0},
8903 {0x7A, 0, 0, 0, 0},
8904 {0x7B, 0, 0, 0, 0},
8905 {0x7C, 0, 0, 0, 0},
8906 {0x7D, 0, 0, 0, 0},
8907 {0x7E, 0, 0, 0, 0},
8908 {0x7F, 0, 0, 0, 0},
8909 {0x80, 0, 0, 0, 0},
8910 {0x81, 0, 0, 0, 0},
8911 {0x82, 0, 0, 0, 0},
8912 {0x83, 0, 0, 0, 0},
8913 {0x84, 0, 0, 0, 0},
8914 {0x85, 0, 0, 0, 0},
8915 {0x86, 0, 0, 0, 0},
8916 {0x87, 0, 0, 0, 0},
8917 {0x88, 0, 0, 0, 0},
8918 {0x89, 0, 0, 0, 0},
8919 {0x8A, 0, 0, 0, 0},
8920 {0x8B, 0, 0, 0, 0},
8921 {0x8C, 0, 0, 0, 0},
8922 {0x8D, 0, 0, 0, 0},
8923 {0x8E, 0, 0, 0, 0},
8924 {0x8F, 0, 0, 0, 0},
8925 {0x90, 0, 0, 0, 0},
8926 {0x91, 0, 0, 0, 0},
8927 {0x92, 0, 0, 0, 0},
8928 {0x93, 0, 0, 0, 0},
8929 {0x94, 0, 0, 0, 0},
8930 {0xFFFF, 0, 0, 0, 0}
8931};
8932
8933radio_regs_t regs_SYN_2056_rev5[] = {
8934 {0x02, 0, 0, 0, 0},
8935 {0x03, 0, 0, 0, 0},
8936 {0x04, 0, 0, 0, 0},
8937 {0x05, 0, 0, 0, 0},
8938 {0x06, 0, 0, 0, 0},
8939 {0x07, 0, 0, 0, 0},
8940 {0x08, 0, 0, 0, 0},
8941 {0x09, 0x1, 0x1, 0, 0},
8942 {0x0A, 0, 0, 0, 0},
8943 {0x0B, 0, 0, 0, 0},
8944 {0x0C, 0, 0, 0, 0},
8945 {0x0D, 0, 0, 0, 0},
8946 {0x0E, 0, 0, 0, 0},
8947 {0x0F, 0, 0, 0, 0},
8948 {0x10, 0, 0, 0, 0},
8949 {0x11, 0, 0, 0, 0},
8950 {0x12, 0, 0, 0, 0},
8951 {0x13, 0, 0, 0, 0},
8952 {0x14, 0, 0, 0, 0},
8953 {0x15, 0, 0, 0, 0},
8954 {0x16, 0, 0, 0, 0},
8955 {0x17, 0, 0, 0, 0},
8956 {0x18, 0, 0, 0, 0},
8957 {0x19, 0, 0, 0, 0},
8958 {0x1A, 0, 0, 0, 0},
8959 {0x1B, 0, 0, 0, 0},
8960 {0x1C, 0, 0, 0, 0},
8961 {0x1D, 0, 0, 0, 0},
8962 {0x1E, 0, 0, 0, 0},
8963 {0x1F, 0, 0, 0, 0},
8964 {0x20, 0, 0, 0, 0},
8965 {0x21, 0, 0, 0, 0},
8966 {0x22, 0x60, 0x60, 0, 0},
8967 {0x23, 0x6, 0x6, 0, 0},
8968 {0x24, 0xc, 0xc, 0, 0},
8969 {0x25, 0, 0, 0, 0},
8970 {0x26, 0, 0, 0, 0},
8971 {0x27, 0, 0, 0, 0},
8972 {0x28, 0x1, 0x1, 0, 0},
8973 {0x29, 0, 0, 0, 0},
8974 {0x2A, 0, 0, 0, 0},
8975 {0x2B, 0, 0, 0, 0},
8976 {0x2C, 0, 0, 0, 0},
8977 {0x2D, 0, 0, 0, 0},
8978 {0x2E, 0, 0, 0, 0},
8979 {0x2F, 0x1f, 0x1f, 0, 0},
8980 {0x30, 0x15, 0x15, 0, 0},
8981 {0x31, 0xf, 0xf, 0, 0},
8982 {0x32, 0, 0, 0, 0},
8983 {0x33, 0, 0, 0, 0},
8984 {0x34, 0, 0, 0, 0},
8985 {0x35, 0, 0, 0, 0},
8986 {0x36, 0, 0, 0, 0},
8987 {0x37, 0, 0, 0, 0},
8988 {0x38, 0, 0, 0, 0},
8989 {0x39, 0, 0, 0, 0},
8990 {0x3A, 0, 0, 0, 0},
8991 {0x3B, 0, 0, 0, 0},
8992 {0x3C, 0x13, 0x13, 0, 0},
8993 {0x3D, 0xf, 0xf, 0, 0},
8994 {0x3E, 0x18, 0x18, 0, 0},
8995 {0x3F, 0, 0, 0, 0},
8996 {0x40, 0, 0, 0, 0},
8997 {0x41, 0x20, 0x20, 0, 0},
8998 {0x42, 0x20, 0x20, 0, 0},
8999 {0x43, 0, 0, 0, 0},
9000 {0x44, 0x77, 0x77, 0, 0},
9001 {0x45, 0x7, 0x7, 0, 0},
9002 {0x46, 0x1, 0x1, 0, 0},
9003 {0x47, 0x4, 0x4, 0, 0},
9004 {0x48, 0xf, 0xf, 0, 0},
9005 {0x49, 0x30, 0x30, 0, 0},
9006 {0x4A, 0x32, 0x32, 0, 0},
9007 {0x4B, 0xd, 0xd, 0, 0},
9008 {0x4C, 0xd, 0xd, 0, 0},
9009 {0x4D, 0x4, 0x4, 0, 0},
9010 {0x4E, 0x6, 0x6, 0, 0},
9011 {0x4F, 0x1, 0x1, 0, 0},
9012 {0x50, 0x1c, 0x1c, 0, 0},
9013 {0x51, 0x2, 0x2, 0, 0},
9014 {0x52, 0x2, 0x2, 0, 0},
9015 {0x53, 0xf7, 0xf7, 1, 1},
9016 {0x54, 0xb4, 0xb4, 0, 0},
9017 {0x55, 0xd2, 0xd2, 0, 0},
9018 {0x56, 0, 0, 0, 0},
9019 {0x57, 0, 0, 0, 0},
9020 {0x58, 0x4, 0x4, 0, 0},
9021 {0x59, 0x96, 0x96, 0, 0},
9022 {0x5A, 0x3e, 0x3e, 0, 0},
9023 {0x5B, 0x3e, 0x3e, 0, 0},
9024 {0x5C, 0x13, 0x13, 0, 0},
9025 {0x5D, 0x2, 0x2, 0, 0},
9026 {0x5E, 0, 0, 0, 0},
9027 {0x5F, 0x7, 0x7, 0, 0},
9028 {0x60, 0x7, 0x7, 1, 1},
9029 {0x61, 0x8, 0x8, 0, 0},
9030 {0x62, 0x3, 0x3, 0, 0},
9031 {0x63, 0, 0, 0, 0},
9032 {0x64, 0, 0, 0, 0},
9033 {0x65, 0, 0, 0, 0},
9034 {0x66, 0, 0, 0, 0},
9035 {0x67, 0, 0, 0, 0},
9036 {0x68, 0x40, 0x40, 0, 0},
9037 {0x69, 0, 0, 0, 0},
9038 {0x6A, 0, 0, 0, 0},
9039 {0x6B, 0, 0, 0, 0},
9040 {0x6C, 0, 0, 0, 0},
9041 {0x6D, 0x1, 0x1, 0, 0},
9042 {0x6E, 0, 0, 0, 0},
9043 {0x6F, 0, 0, 0, 0},
9044 {0x70, 0x60, 0x60, 0, 0},
9045 {0x71, 0x66, 0x66, 0, 0},
9046 {0x72, 0xc, 0xc, 0, 0},
9047 {0x73, 0x66, 0x66, 0, 0},
9048 {0x74, 0x8f, 0x8f, 1, 1},
9049 {0x75, 0, 0, 0, 0},
9050 {0x76, 0xcc, 0xcc, 0, 0},
9051 {0x77, 0x1, 0x1, 0, 0},
9052 {0x78, 0x66, 0x66, 0, 0},
9053 {0x79, 0x66, 0x66, 0, 0},
9054 {0x7A, 0, 0, 0, 0},
9055 {0x7B, 0, 0, 0, 0},
9056 {0x7C, 0, 0, 0, 0},
9057 {0x7D, 0, 0, 0, 0},
9058 {0x7E, 0, 0, 0, 0},
9059 {0x7F, 0, 0, 0, 0},
9060 {0x80, 0, 0, 0, 0},
9061 {0x81, 0, 0, 0, 0},
9062 {0x82, 0, 0, 0, 0},
9063 {0x83, 0, 0, 0, 0},
9064 {0x84, 0, 0, 0, 0},
9065 {0x85, 0xff, 0xff, 0, 0},
9066 {0x86, 0, 0, 0, 0},
9067 {0x87, 0, 0, 0, 0},
9068 {0x88, 0, 0, 0, 0},
9069 {0x89, 0, 0, 0, 0},
9070 {0x8A, 0, 0, 0, 0},
9071 {0x8B, 0, 0, 0, 0},
9072 {0x8C, 0, 0, 0, 0},
9073 {0x8D, 0, 0, 0, 0},
9074 {0x8E, 0, 0, 0, 0},
9075 {0x8F, 0, 0, 0, 0},
9076 {0x90, 0, 0, 0, 0},
9077 {0x91, 0, 0, 0, 0},
9078 {0x92, 0, 0, 0, 0},
9079 {0x93, 0, 0, 0, 0},
9080 {0x94, 0, 0, 0, 0},
9081 {0x95, 0, 0, 0, 0},
9082 {0x96, 0, 0, 0, 0},
9083 {0x97, 0, 0, 0, 0},
9084 {0x98, 0, 0, 0, 0},
9085 {0x99, 0, 0, 0, 0},
9086 {0x9A, 0, 0, 0, 0},
9087 {0x9B, 0, 0, 0, 0},
9088 {0x9C, 0, 0, 0, 0},
9089 {0x9D, 0, 0, 0, 0},
9090 {0x9E, 0, 0, 0, 0},
9091 {0x9F, 0x6, 0x6, 0, 0},
9092 {0xA0, 0x66, 0x66, 0, 0},
9093 {0xA1, 0x66, 0x66, 0, 0},
9094 {0xA2, 0x66, 0x66, 0, 0},
9095 {0xA3, 0x66, 0x66, 0, 0},
9096 {0xA4, 0x66, 0x66, 0, 0},
9097 {0xA5, 0x66, 0x66, 0, 0},
9098 {0xA6, 0x66, 0x66, 0, 0},
9099 {0xA7, 0x66, 0x66, 0, 0},
9100 {0xA8, 0x66, 0x66, 0, 0},
9101 {0xA9, 0x66, 0x66, 0, 0},
9102 {0xAA, 0x66, 0x66, 0, 0},
9103 {0xAB, 0x66, 0x66, 0, 0},
9104 {0xAC, 0x66, 0x66, 0, 0},
9105 {0xAD, 0x66, 0x66, 0, 0},
9106 {0xAE, 0x66, 0x66, 0, 0},
9107 {0xAF, 0x66, 0x66, 0, 0},
9108 {0xB0, 0x66, 0x66, 0, 0},
9109 {0xB1, 0x66, 0x66, 0, 0},
9110 {0xB2, 0x66, 0x66, 0, 0},
9111 {0xB3, 0xa, 0xa, 0, 0},
9112 {0xB4, 0, 0, 0, 0},
9113 {0xB5, 0, 0, 0, 0},
9114 {0xB6, 0, 0, 0, 0},
9115 {0xFFFF, 0, 0, 0, 0}
9116};
9117
9118radio_regs_t regs_TX_2056_rev5[] = {
9119 {0x02, 0, 0, 0, 0},
9120 {0x03, 0, 0, 0, 0},
9121 {0x04, 0, 0, 0, 0},
9122 {0x05, 0, 0, 0, 0},
9123 {0x06, 0, 0, 0, 0},
9124 {0x07, 0, 0, 0, 0},
9125 {0x08, 0, 0, 0, 0},
9126 {0x09, 0, 0, 0, 0},
9127 {0x0A, 0, 0, 0, 0},
9128 {0x0B, 0, 0, 0, 0},
9129 {0x0C, 0, 0, 0, 0},
9130 {0x0D, 0, 0, 0, 0},
9131 {0x0E, 0, 0, 0, 0},
9132 {0x0F, 0, 0, 0, 0},
9133 {0x10, 0, 0, 0, 0},
9134 {0x11, 0, 0, 0, 0},
9135 {0x12, 0, 0, 0, 0},
9136 {0x13, 0, 0, 0, 0},
9137 {0x14, 0, 0, 0, 0},
9138 {0x15, 0, 0, 0, 0},
9139 {0x16, 0, 0, 0, 0},
9140 {0x17, 0, 0, 0, 0},
9141 {0x18, 0, 0, 0, 0},
9142 {0x19, 0, 0, 0, 0},
9143 {0x1A, 0, 0, 0, 0},
9144 {0x1B, 0, 0, 0, 0},
9145 {0x1C, 0, 0, 0, 0},
9146 {0x1D, 0, 0, 0, 0},
9147 {0x1E, 0, 0, 0, 0},
9148 {0x1F, 0, 0, 0, 0},
9149 {0x20, 0, 0, 0, 0},
9150 {0x21, 0x88, 0x88, 0, 0},
9151 {0x22, 0x88, 0x88, 0, 0},
9152 {0x23, 0x88, 0x88, 0, 0},
9153 {0x24, 0x88, 0x88, 0, 0},
9154 {0x25, 0xc, 0xc, 0, 0},
9155 {0x26, 0, 0, 0, 0},
9156 {0x27, 0x3, 0x3, 0, 0},
9157 {0x28, 0, 0, 0, 0},
9158 {0x29, 0x3, 0x3, 0, 0},
9159 {0x2A, 0x37, 0x37, 0, 0},
9160 {0x2B, 0x3, 0x3, 0, 0},
9161 {0x2C, 0, 0, 0, 0},
9162 {0x2D, 0, 0, 0, 0},
9163 {0x2E, 0x1, 0x1, 0, 0},
9164 {0x2F, 0x1, 0x1, 0, 0},
9165 {0x30, 0, 0, 0, 0},
9166 {0x31, 0, 0, 0, 0},
9167 {0x32, 0, 0, 0, 0},
9168 {0x33, 0x11, 0x11, 0, 0},
9169 {0x34, 0x11, 0x11, 0, 0},
9170 {0x35, 0, 0, 0, 0},
9171 {0x36, 0, 0, 0, 0},
9172 {0x37, 0x3, 0x3, 0, 0},
9173 {0x38, 0xf, 0xf, 0, 0},
9174 {0x39, 0, 0, 0, 0},
9175 {0x3A, 0x2d, 0x2d, 0, 0},
9176 {0x3B, 0, 0, 0, 0},
9177 {0x3C, 0x6e, 0x6e, 0, 0},
9178 {0x3D, 0xf0, 0xf0, 1, 1},
9179 {0x3E, 0, 0, 0, 0},
9180 {0x3F, 0, 0, 0, 0},
9181 {0x40, 0, 0, 0, 0},
9182 {0x41, 0x3, 0x3, 0, 0},
9183 {0x42, 0x3, 0x3, 0, 0},
9184 {0x43, 0, 0, 0, 0},
9185 {0x44, 0x1e, 0x1e, 0, 0},
9186 {0x45, 0, 0, 0, 0},
9187 {0x46, 0x6e, 0x6e, 0, 0},
9188 {0x47, 0xf0, 0xf0, 1, 1},
9189 {0x48, 0, 0, 0, 0},
9190 {0x49, 0x2, 0x2, 0, 0},
9191 {0x4A, 0xff, 0xff, 1, 1},
9192 {0x4B, 0xc, 0xc, 0, 0},
9193 {0x4C, 0, 0, 0, 0},
9194 {0x4D, 0x38, 0x38, 0, 0},
9195 {0x4E, 0x70, 0x70, 1, 1},
9196 {0x4F, 0x2, 0x2, 0, 0},
9197 {0x50, 0x88, 0x88, 0, 0},
9198 {0x51, 0xc, 0xc, 0, 0},
9199 {0x52, 0, 0, 0, 0},
9200 {0x53, 0x8, 0x8, 0, 0},
9201 {0x54, 0x70, 0x70, 1, 1},
9202 {0x55, 0x2, 0x2, 0, 0},
9203 {0x56, 0xff, 0xff, 1, 1},
9204 {0x57, 0, 0, 0, 0},
9205 {0x58, 0x83, 0x83, 0, 0},
9206 {0x59, 0x77, 0x77, 1, 1},
9207 {0x5A, 0, 0, 0, 0},
9208 {0x5B, 0x2, 0x2, 0, 0},
9209 {0x5C, 0x88, 0x88, 0, 0},
9210 {0x5D, 0, 0, 0, 0},
9211 {0x5E, 0x8, 0x8, 0, 0},
9212 {0x5F, 0x77, 0x77, 1, 1},
9213 {0x60, 0x1, 0x1, 0, 0},
9214 {0x61, 0, 0, 0, 0},
9215 {0x62, 0x7, 0x7, 0, 0},
9216 {0x63, 0, 0, 0, 0},
9217 {0x64, 0x7, 0x7, 0, 0},
9218 {0x65, 0, 0, 0, 0},
9219 {0x66, 0, 0, 0, 0},
9220 {0x67, 0, 0, 1, 1},
9221 {0x68, 0, 0, 0, 0},
9222 {0x69, 0xa, 0xa, 0, 0},
9223 {0x6A, 0, 0, 0, 0},
9224 {0x6B, 0, 0, 0, 0},
9225 {0x6C, 0, 0, 0, 0},
9226 {0x6D, 0, 0, 0, 0},
9227 {0x6E, 0, 0, 0, 0},
9228 {0x6F, 0, 0, 0, 0},
9229 {0x70, 0, 0, 0, 0},
9230 {0x71, 0x2, 0x2, 0, 0},
9231 {0x72, 0, 0, 0, 0},
9232 {0x73, 0, 0, 0, 0},
9233 {0x74, 0xe, 0xe, 0, 0},
9234 {0x75, 0xe, 0xe, 0, 0},
9235 {0x76, 0xe, 0xe, 0, 0},
9236 {0x77, 0x13, 0x13, 0, 0},
9237 {0x78, 0x13, 0x13, 0, 0},
9238 {0x79, 0x1b, 0x1b, 0, 0},
9239 {0x7A, 0x1b, 0x1b, 0, 0},
9240 {0x7B, 0x55, 0x55, 0, 0},
9241 {0x7C, 0x5b, 0x5b, 0, 0},
9242 {0x7D, 0, 0, 0, 0},
9243 {0x7E, 0, 0, 0, 0},
9244 {0x7F, 0, 0, 0, 0},
9245 {0x80, 0, 0, 0, 0},
9246 {0x81, 0, 0, 0, 0},
9247 {0x82, 0, 0, 0, 0},
9248 {0x83, 0, 0, 0, 0},
9249 {0x84, 0, 0, 0, 0},
9250 {0x85, 0, 0, 0, 0},
9251 {0x86, 0, 0, 0, 0},
9252 {0x87, 0, 0, 0, 0},
9253 {0x88, 0, 0, 0, 0},
9254 {0x89, 0, 0, 0, 0},
9255 {0x8A, 0, 0, 0, 0},
9256 {0x8B, 0, 0, 0, 0},
9257 {0x8C, 0, 0, 0, 0},
9258 {0x8D, 0, 0, 0, 0},
9259 {0x8E, 0, 0, 0, 0},
9260 {0x8F, 0, 0, 0, 0},
9261 {0x90, 0, 0, 0, 0},
9262 {0x91, 0, 0, 0, 0},
9263 {0x92, 0, 0, 0, 0},
9264 {0x93, 0x70, 0x70, 0, 0},
9265 {0x94, 0x70, 0x70, 0, 0},
9266 {0x95, 0x71, 0x71, 1, 1},
9267 {0x96, 0x71, 0x71, 1, 1},
9268 {0x97, 0x72, 0x72, 1, 1},
9269 {0x98, 0x73, 0x73, 1, 1},
9270 {0x99, 0x74, 0x74, 1, 1},
9271 {0x9A, 0x75, 0x75, 1, 1},
9272 {0xFFFF, 0, 0, 0, 0}
9273};
9274
9275radio_regs_t regs_RX_2056_rev5[] = {
9276 {0x02, 0, 0, 0, 0},
9277 {0x03, 0, 0, 0, 0},
9278 {0x04, 0, 0, 0, 0},
9279 {0x05, 0, 0, 0, 0},
9280 {0x06, 0, 0, 0, 0},
9281 {0x07, 0, 0, 0, 0},
9282 {0x08, 0, 0, 0, 0},
9283 {0x09, 0, 0, 0, 0},
9284 {0x0A, 0, 0, 0, 0},
9285 {0x0B, 0, 0, 0, 0},
9286 {0x0C, 0, 0, 0, 0},
9287 {0x0D, 0, 0, 0, 0},
9288 {0x0E, 0, 0, 0, 0},
9289 {0x0F, 0, 0, 0, 0},
9290 {0x10, 0, 0, 0, 0},
9291 {0x11, 0, 0, 0, 0},
9292 {0x12, 0, 0, 0, 0},
9293 {0x13, 0, 0, 0, 0},
9294 {0x14, 0, 0, 0, 0},
9295 {0x15, 0, 0, 0, 0},
9296 {0x16, 0, 0, 0, 0},
9297 {0x17, 0, 0, 0, 0},
9298 {0x18, 0, 0, 0, 0},
9299 {0x19, 0, 0, 0, 0},
9300 {0x1A, 0, 0, 0, 0},
9301 {0x1B, 0, 0, 0, 0},
9302 {0x1C, 0, 0, 0, 0},
9303 {0x1D, 0, 0, 0, 0},
9304 {0x1E, 0, 0, 0, 0},
9305 {0x1F, 0, 0, 0, 0},
9306 {0x20, 0x3, 0x3, 0, 0},
9307 {0x21, 0, 0, 0, 0},
9308 {0x22, 0, 0, 0, 0},
9309 {0x23, 0x90, 0x90, 0, 0},
9310 {0x24, 0x55, 0x55, 0, 0},
9311 {0x25, 0x15, 0x15, 0, 0},
9312 {0x26, 0x5, 0x5, 0, 0},
9313 {0x27, 0x15, 0x15, 0, 0},
9314 {0x28, 0x5, 0x5, 0, 0},
9315 {0x29, 0x20, 0x20, 0, 0},
9316 {0x2A, 0x11, 0x11, 0, 0},
9317 {0x2B, 0x90, 0x90, 0, 0},
9318 {0x2C, 0, 0, 0, 0},
9319 {0x2D, 0x88, 0x88, 0, 0},
9320 {0x2E, 0x32, 0x32, 0, 0},
9321 {0x2F, 0x77, 0x77, 0, 0},
9322 {0x30, 0x17, 0x17, 1, 1},
9323 {0x31, 0xff, 0xff, 1, 1},
9324 {0x32, 0x20, 0x20, 0, 0},
9325 {0x33, 0, 0, 0, 0},
9326 {0x34, 0x88, 0x88, 0, 0},
9327 {0x35, 0x32, 0x32, 0, 0},
9328 {0x36, 0x77, 0x77, 0, 0},
9329 {0x37, 0x17, 0x17, 1, 1},
9330 {0x38, 0xf0, 0xf0, 1, 1},
9331 {0x39, 0x20, 0x20, 0, 0},
9332 {0x3A, 0x8, 0x8, 0, 0},
9333 {0x3B, 0x55, 0x55, 1, 1},
9334 {0x3C, 0, 0, 0, 0},
9335 {0x3D, 0x88, 0x88, 1, 1},
9336 {0x3E, 0, 0, 0, 0},
9337 {0x3F, 0, 0, 1, 1},
9338 {0x40, 0x7, 0x7, 1, 1},
9339 {0x41, 0x6, 0x6, 0, 0},
9340 {0x42, 0x4, 0x4, 0, 0},
9341 {0x43, 0, 0, 0, 0},
9342 {0x44, 0x8, 0x8, 0, 0},
9343 {0x45, 0x55, 0x55, 1, 1},
9344 {0x46, 0, 0, 0, 0},
9345 {0x47, 0x11, 0x11, 0, 0},
9346 {0x48, 0, 0, 0, 0},
9347 {0x49, 0, 0, 1, 1},
9348 {0x4A, 0x7, 0x7, 0, 0},
9349 {0x4B, 0x6, 0x6, 0, 0},
9350 {0x4C, 0x4, 0x4, 0, 0},
9351 {0x4D, 0, 0, 0, 0},
9352 {0x4E, 0, 0, 0, 0},
9353 {0x4F, 0x26, 0x26, 1, 1},
9354 {0x50, 0x26, 0x26, 1, 1},
9355 {0x51, 0xf, 0xf, 1, 1},
9356 {0x52, 0xf, 0xf, 1, 1},
9357 {0x53, 0x44, 0x44, 0, 0},
9358 {0x54, 0, 0, 0, 0},
9359 {0x55, 0, 0, 0, 0},
9360 {0x56, 0x8, 0x8, 0, 0},
9361 {0x57, 0x8, 0x8, 0, 0},
9362 {0x58, 0x7, 0x7, 0, 0},
9363 {0x59, 0x22, 0x22, 0, 0},
9364 {0x5A, 0x22, 0x22, 0, 0},
9365 {0x5B, 0x2, 0x2, 0, 0},
9366 {0x5C, 0x4, 0x4, 1, 1},
9367 {0x5D, 0x7, 0x7, 0, 0},
9368 {0x5E, 0x55, 0x55, 0, 0},
9369 {0x5F, 0x23, 0x23, 0, 0},
9370 {0x60, 0x41, 0x41, 0, 0},
9371 {0x61, 0x1, 0x1, 0, 0},
9372 {0x62, 0xa, 0xa, 0, 0},
9373 {0x63, 0, 0, 0, 0},
9374 {0x64, 0, 0, 0, 0},
9375 {0x65, 0, 0, 0, 0},
9376 {0x66, 0, 0, 0, 0},
9377 {0x67, 0, 0, 0, 0},
9378 {0x68, 0, 0, 0, 0},
9379 {0x69, 0, 0, 0, 0},
9380 {0x6A, 0, 0, 0, 0},
9381 {0x6B, 0xc, 0xc, 0, 0},
9382 {0x6C, 0, 0, 0, 0},
9383 {0x6D, 0, 0, 0, 0},
9384 {0x6E, 0, 0, 0, 0},
9385 {0x6F, 0, 0, 0, 0},
9386 {0x70, 0, 0, 0, 0},
9387 {0x71, 0, 0, 0, 0},
9388 {0x72, 0x22, 0x22, 0, 0},
9389 {0x73, 0x22, 0x22, 0, 0},
9390 {0x74, 0, 0, 1, 1},
9391 {0x75, 0xa, 0xa, 0, 0},
9392 {0x76, 0x1, 0x1, 0, 0},
9393 {0x77, 0x22, 0x22, 0, 0},
9394 {0x78, 0x30, 0x30, 0, 0},
9395 {0x79, 0, 0, 0, 0},
9396 {0x7A, 0, 0, 0, 0},
9397 {0x7B, 0, 0, 0, 0},
9398 {0x7C, 0, 0, 0, 0},
9399 {0x7D, 0, 0, 0, 0},
9400 {0x7E, 0, 0, 0, 0},
9401 {0x7F, 0, 0, 0, 0},
9402 {0x80, 0, 0, 0, 0},
9403 {0x81, 0, 0, 0, 0},
9404 {0x82, 0, 0, 0, 0},
9405 {0x83, 0, 0, 0, 0},
9406 {0x84, 0, 0, 0, 0},
9407 {0x85, 0, 0, 0, 0},
9408 {0x86, 0, 0, 0, 0},
9409 {0x87, 0, 0, 0, 0},
9410 {0x88, 0, 0, 0, 0},
9411 {0x89, 0, 0, 0, 0},
9412 {0x8A, 0, 0, 0, 0},
9413 {0x8B, 0, 0, 0, 0},
9414 {0x8C, 0, 0, 0, 0},
9415 {0x8D, 0, 0, 0, 0},
9416 {0x8E, 0, 0, 0, 0},
9417 {0x8F, 0, 0, 0, 0},
9418 {0x90, 0, 0, 0, 0},
9419 {0x91, 0, 0, 0, 0},
9420 {0x92, 0, 0, 0, 0},
9421 {0x93, 0, 0, 0, 0},
9422 {0x94, 0, 0, 0, 0},
9423 {0xFFFF, 0, 0, 0, 0}
9424};
9425
9426radio_regs_t regs_SYN_2056_rev6[] = {
9427 {0x02, 0, 0, 0, 0},
9428 {0x03, 0, 0, 0, 0},
9429 {0x04, 0, 0, 0, 0},
9430 {0x05, 0, 0, 0, 0},
9431 {0x06, 0, 0, 0, 0},
9432 {0x07, 0, 0, 0, 0},
9433 {0x08, 0, 0, 0, 0},
9434 {0x09, 0x1, 0x1, 0, 0},
9435 {0x0A, 0, 0, 0, 0},
9436 {0x0B, 0, 0, 0, 0},
9437 {0x0C, 0, 0, 0, 0},
9438 {0x0D, 0, 0, 0, 0},
9439 {0x0E, 0, 0, 0, 0},
9440 {0x0F, 0, 0, 0, 0},
9441 {0x10, 0, 0, 0, 0},
9442 {0x11, 0, 0, 0, 0},
9443 {0x12, 0, 0, 0, 0},
9444 {0x13, 0, 0, 0, 0},
9445 {0x14, 0, 0, 0, 0},
9446 {0x15, 0, 0, 0, 0},
9447 {0x16, 0, 0, 0, 0},
9448 {0x17, 0, 0, 0, 0},
9449 {0x18, 0, 0, 0, 0},
9450 {0x19, 0, 0, 0, 0},
9451 {0x1A, 0, 0, 0, 0},
9452 {0x1B, 0, 0, 0, 0},
9453 {0x1C, 0, 0, 0, 0},
9454 {0x1D, 0, 0, 0, 0},
9455 {0x1E, 0, 0, 0, 0},
9456 {0x1F, 0, 0, 0, 0},
9457 {0x20, 0, 0, 0, 0},
9458 {0x21, 0, 0, 0, 0},
9459 {0x22, 0x60, 0x60, 0, 0},
9460 {0x23, 0x6, 0x6, 0, 0},
9461 {0x24, 0xc, 0xc, 0, 0},
9462 {0x25, 0, 0, 0, 0},
9463 {0x26, 0, 0, 0, 0},
9464 {0x27, 0, 0, 0, 0},
9465 {0x28, 0x1, 0x1, 0, 0},
9466 {0x29, 0, 0, 0, 0},
9467 {0x2A, 0, 0, 0, 0},
9468 {0x2B, 0, 0, 0, 0},
9469 {0x2C, 0, 0, 0, 0},
9470 {0x2D, 0, 0, 0, 0},
9471 {0x2E, 0, 0, 0, 0},
9472 {0x2F, 0x1f, 0x1f, 0, 0},
9473 {0x30, 0x15, 0x15, 0, 0},
9474 {0x31, 0xf, 0xf, 0, 0},
9475 {0x32, 0, 0, 0, 0},
9476 {0x33, 0, 0, 0, 0},
9477 {0x34, 0, 0, 0, 0},
9478 {0x35, 0, 0, 0, 0},
9479 {0x36, 0, 0, 0, 0},
9480 {0x37, 0, 0, 0, 0},
9481 {0x38, 0, 0, 0, 0},
9482 {0x39, 0, 0, 0, 0},
9483 {0x3A, 0, 0, 0, 0},
9484 {0x3B, 0, 0, 0, 0},
9485 {0x3C, 0x13, 0x13, 0, 0},
9486 {0x3D, 0xf, 0xf, 0, 0},
9487 {0x3E, 0x18, 0x18, 0, 0},
9488 {0x3F, 0, 0, 0, 0},
9489 {0x40, 0, 0, 0, 0},
9490 {0x41, 0x20, 0x20, 0, 0},
9491 {0x42, 0x20, 0x20, 0, 0},
9492 {0x43, 0, 0, 0, 0},
9493 {0x44, 0x77, 0x77, 0, 0},
9494 {0x45, 0x7, 0x7, 0, 0},
9495 {0x46, 0x1, 0x1, 0, 0},
9496 {0x47, 0x4, 0x4, 0, 0},
9497 {0x48, 0xf, 0xf, 0, 0},
9498 {0x49, 0x30, 0x30, 0, 0},
9499 {0x4A, 0x32, 0x32, 0, 0},
9500 {0x4B, 0xd, 0xd, 0, 0},
9501 {0x4C, 0xd, 0xd, 0, 0},
9502 {0x4D, 0x4, 0x4, 0, 0},
9503 {0x4E, 0x6, 0x6, 0, 0},
9504 {0x4F, 0x1, 0x1, 0, 0},
9505 {0x50, 0x1c, 0x1c, 0, 0},
9506 {0x51, 0x2, 0x2, 0, 0},
9507 {0x52, 0x2, 0x2, 0, 0},
9508 {0x53, 0xf7, 0xf7, 1, 1},
9509 {0x54, 0xb4, 0xb4, 0, 0},
9510 {0x55, 0xd2, 0xd2, 0, 0},
9511 {0x56, 0, 0, 0, 0},
9512 {0x57, 0, 0, 0, 0},
9513 {0x58, 0x4, 0x4, 0, 0},
9514 {0x59, 0x96, 0x96, 0, 0},
9515 {0x5A, 0x3e, 0x3e, 0, 0},
9516 {0x5B, 0x3e, 0x3e, 0, 0},
9517 {0x5C, 0x13, 0x13, 0, 0},
9518 {0x5D, 0x2, 0x2, 0, 0},
9519 {0x5E, 0, 0, 0, 0},
9520 {0x5F, 0x7, 0x7, 0, 0},
9521 {0x60, 0x7, 0x7, 1, 1},
9522 {0x61, 0x8, 0x8, 0, 0},
9523 {0x62, 0x3, 0x3, 0, 0},
9524 {0x63, 0, 0, 0, 0},
9525 {0x64, 0, 0, 0, 0},
9526 {0x65, 0, 0, 0, 0},
9527 {0x66, 0, 0, 0, 0},
9528 {0x67, 0, 0, 0, 0},
9529 {0x68, 0x40, 0x40, 0, 0},
9530 {0x69, 0, 0, 0, 0},
9531 {0x6A, 0, 0, 0, 0},
9532 {0x6B, 0, 0, 0, 0},
9533 {0x6C, 0, 0, 0, 0},
9534 {0x6D, 0x1, 0x1, 0, 0},
9535 {0x6E, 0, 0, 0, 0},
9536 {0x6F, 0, 0, 0, 0},
9537 {0x70, 0x60, 0x60, 0, 0},
9538 {0x71, 0x66, 0x66, 0, 0},
9539 {0x72, 0xc, 0xc, 0, 0},
9540 {0x73, 0x66, 0x66, 0, 0},
9541 {0x74, 0x8f, 0x8f, 1, 1},
9542 {0x75, 0, 0, 0, 0},
9543 {0x76, 0xcc, 0xcc, 0, 0},
9544 {0x77, 0x1, 0x1, 0, 0},
9545 {0x78, 0x66, 0x66, 0, 0},
9546 {0x79, 0x66, 0x66, 0, 0},
9547 {0x7A, 0, 0, 0, 0},
9548 {0x7B, 0, 0, 0, 0},
9549 {0x7C, 0, 0, 0, 0},
9550 {0x7D, 0, 0, 0, 0},
9551 {0x7E, 0, 0, 0, 0},
9552 {0x7F, 0, 0, 0, 0},
9553 {0x80, 0, 0, 0, 0},
9554 {0x81, 0, 0, 0, 0},
9555 {0x82, 0, 0, 0, 0},
9556 {0x83, 0, 0, 0, 0},
9557 {0x84, 0, 0, 0, 0},
9558 {0x85, 0xff, 0xff, 0, 0},
9559 {0x86, 0, 0, 0, 0},
9560 {0x87, 0, 0, 0, 0},
9561 {0x88, 0, 0, 0, 0},
9562 {0x89, 0, 0, 0, 0},
9563 {0x8A, 0, 0, 0, 0},
9564 {0x8B, 0, 0, 0, 0},
9565 {0x8C, 0, 0, 0, 0},
9566 {0x8D, 0, 0, 0, 0},
9567 {0x8E, 0, 0, 0, 0},
9568 {0x8F, 0, 0, 0, 0},
9569 {0x90, 0, 0, 0, 0},
9570 {0x91, 0, 0, 0, 0},
9571 {0x92, 0, 0, 0, 0},
9572 {0x93, 0, 0, 0, 0},
9573 {0x94, 0, 0, 0, 0},
9574 {0x95, 0, 0, 0, 0},
9575 {0x96, 0, 0, 0, 0},
9576 {0x97, 0, 0, 0, 0},
9577 {0x98, 0, 0, 0, 0},
9578 {0x99, 0, 0, 0, 0},
9579 {0x9A, 0, 0, 0, 0},
9580 {0x9B, 0, 0, 0, 0},
9581 {0x9C, 0, 0, 0, 0},
9582 {0x9D, 0, 0, 0, 0},
9583 {0x9E, 0, 0, 0, 0},
9584 {0x9F, 0x6, 0x6, 0, 0},
9585 {0xA0, 0x66, 0x66, 0, 0},
9586 {0xA1, 0x66, 0x66, 0, 0},
9587 {0xA2, 0x66, 0x66, 0, 0},
9588 {0xA3, 0x66, 0x66, 0, 0},
9589 {0xA4, 0x66, 0x66, 0, 0},
9590 {0xA5, 0x66, 0x66, 0, 0},
9591 {0xA6, 0x66, 0x66, 0, 0},
9592 {0xA7, 0x66, 0x66, 0, 0},
9593 {0xA8, 0x66, 0x66, 0, 0},
9594 {0xA9, 0x66, 0x66, 0, 0},
9595 {0xAA, 0x66, 0x66, 0, 0},
9596 {0xAB, 0x66, 0x66, 0, 0},
9597 {0xAC, 0x66, 0x66, 0, 0},
9598 {0xAD, 0x66, 0x66, 0, 0},
9599 {0xAE, 0x66, 0x66, 0, 0},
9600 {0xAF, 0x66, 0x66, 0, 0},
9601 {0xB0, 0x66, 0x66, 0, 0},
9602 {0xB1, 0x66, 0x66, 0, 0},
9603 {0xB2, 0x66, 0x66, 0, 0},
9604 {0xB3, 0xa, 0xa, 0, 0},
9605 {0xB4, 0, 0, 0, 0},
9606 {0xB5, 0, 0, 0, 0},
9607 {0xB6, 0, 0, 0, 0},
9608 {0xFFFF, 0, 0, 0, 0}
9609};
9610
9611radio_regs_t regs_TX_2056_rev6[] = {
9612 {0x02, 0, 0, 0, 0},
9613 {0x03, 0, 0, 0, 0},
9614 {0x04, 0, 0, 0, 0},
9615 {0x05, 0, 0, 0, 0},
9616 {0x06, 0, 0, 0, 0},
9617 {0x07, 0, 0, 0, 0},
9618 {0x08, 0, 0, 0, 0},
9619 {0x09, 0, 0, 0, 0},
9620 {0x0A, 0, 0, 0, 0},
9621 {0x0B, 0, 0, 0, 0},
9622 {0x0C, 0, 0, 0, 0},
9623 {0x0D, 0, 0, 0, 0},
9624 {0x0E, 0, 0, 0, 0},
9625 {0x0F, 0, 0, 0, 0},
9626 {0x10, 0, 0, 0, 0},
9627 {0x11, 0, 0, 0, 0},
9628 {0x12, 0, 0, 0, 0},
9629 {0x13, 0, 0, 0, 0},
9630 {0x14, 0, 0, 0, 0},
9631 {0x15, 0, 0, 0, 0},
9632 {0x16, 0, 0, 0, 0},
9633 {0x17, 0, 0, 0, 0},
9634 {0x18, 0, 0, 0, 0},
9635 {0x19, 0, 0, 0, 0},
9636 {0x1A, 0, 0, 0, 0},
9637 {0x1B, 0, 0, 0, 0},
9638 {0x1C, 0, 0, 0, 0},
9639 {0x1D, 0, 0, 0, 0},
9640 {0x1E, 0, 0, 0, 0},
9641 {0x1F, 0, 0, 0, 0},
9642 {0x20, 0, 0, 0, 0},
9643 {0x21, 0x88, 0x88, 0, 0},
9644 {0x22, 0x88, 0x88, 0, 0},
9645 {0x23, 0x88, 0x88, 0, 0},
9646 {0x24, 0x88, 0x88, 0, 0},
9647 {0x25, 0xc, 0xc, 0, 0},
9648 {0x26, 0, 0, 0, 0},
9649 {0x27, 0x3, 0x3, 0, 0},
9650 {0x28, 0, 0, 0, 0},
9651 {0x29, 0x3, 0x3, 0, 0},
9652 {0x2A, 0x37, 0x37, 0, 0},
9653 {0x2B, 0x3, 0x3, 0, 0},
9654 {0x2C, 0, 0, 0, 0},
9655 {0x2D, 0, 0, 0, 0},
9656 {0x2E, 0x1, 0x1, 0, 0},
9657 {0x2F, 0x1, 0x1, 0, 0},
9658 {0x30, 0, 0, 0, 0},
9659 {0x31, 0, 0, 0, 0},
9660 {0x32, 0, 0, 0, 0},
9661 {0x33, 0x11, 0x11, 0, 0},
9662 {0x34, 0xee, 0xee, 1, 1},
9663 {0x35, 0, 0, 0, 0},
9664 {0x36, 0, 0, 0, 0},
9665 {0x37, 0x3, 0x3, 0, 0},
9666 {0x38, 0x50, 0x50, 1, 1},
9667 {0x39, 0, 0, 0, 0},
9668 {0x3A, 0x50, 0x50, 1, 1},
9669 {0x3B, 0, 0, 0, 0},
9670 {0x3C, 0x6e, 0x6e, 0, 0},
9671 {0x3D, 0xf0, 0xf0, 1, 1},
9672 {0x3E, 0, 0, 0, 0},
9673 {0x3F, 0, 0, 0, 0},
9674 {0x40, 0, 0, 0, 0},
9675 {0x41, 0x3, 0x3, 0, 0},
9676 {0x42, 0x3, 0x3, 0, 0},
9677 {0x43, 0, 0, 0, 0},
9678 {0x44, 0x1e, 0x1e, 0, 0},
9679 {0x45, 0, 0, 0, 0},
9680 {0x46, 0x6e, 0x6e, 0, 0},
9681 {0x47, 0xf0, 0xf0, 1, 1},
9682 {0x48, 0, 0, 0, 0},
9683 {0x49, 0x2, 0x2, 0, 0},
9684 {0x4A, 0xff, 0xff, 1, 1},
9685 {0x4B, 0xc, 0xc, 0, 0},
9686 {0x4C, 0, 0, 0, 0},
9687 {0x4D, 0x38, 0x38, 0, 0},
9688 {0x4E, 0x70, 0x70, 1, 1},
9689 {0x4F, 0x2, 0x2, 0, 0},
9690 {0x50, 0x88, 0x88, 0, 0},
9691 {0x51, 0xc, 0xc, 0, 0},
9692 {0x52, 0, 0, 0, 0},
9693 {0x53, 0x8, 0x8, 0, 0},
9694 {0x54, 0x70, 0x70, 1, 1},
9695 {0x55, 0x2, 0x2, 0, 0},
9696 {0x56, 0xff, 0xff, 1, 1},
9697 {0x57, 0, 0, 0, 0},
9698 {0x58, 0x83, 0x83, 0, 0},
9699 {0x59, 0x77, 0x77, 1, 1},
9700 {0x5A, 0, 0, 0, 0},
9701 {0x5B, 0x2, 0x2, 0, 0},
9702 {0x5C, 0x88, 0x88, 0, 0},
9703 {0x5D, 0, 0, 0, 0},
9704 {0x5E, 0x8, 0x8, 0, 0},
9705 {0x5F, 0x77, 0x77, 1, 1},
9706 {0x60, 0x1, 0x1, 0, 0},
9707 {0x61, 0, 0, 0, 0},
9708 {0x62, 0x7, 0x7, 0, 0},
9709 {0x63, 0, 0, 0, 0},
9710 {0x64, 0x7, 0x7, 0, 0},
9711 {0x65, 0, 0, 0, 0},
9712 {0x66, 0, 0, 0, 0},
9713 {0x67, 0, 0, 1, 1},
9714 {0x68, 0, 0, 0, 0},
9715 {0x69, 0xa, 0xa, 0, 0},
9716 {0x6A, 0, 0, 0, 0},
9717 {0x6B, 0, 0, 0, 0},
9718 {0x6C, 0, 0, 0, 0},
9719 {0x6D, 0, 0, 0, 0},
9720 {0x6E, 0, 0, 0, 0},
9721 {0x6F, 0, 0, 0, 0},
9722 {0x70, 0, 0, 0, 0},
9723 {0x71, 0x2, 0x2, 0, 0},
9724 {0x72, 0, 0, 0, 0},
9725 {0x73, 0, 0, 0, 0},
9726 {0x74, 0xe, 0xe, 0, 0},
9727 {0x75, 0xe, 0xe, 0, 0},
9728 {0x76, 0xe, 0xe, 0, 0},
9729 {0x77, 0x13, 0x13, 0, 0},
9730 {0x78, 0x13, 0x13, 0, 0},
9731 {0x79, 0x1b, 0x1b, 0, 0},
9732 {0x7A, 0x1b, 0x1b, 0, 0},
9733 {0x7B, 0x55, 0x55, 0, 0},
9734 {0x7C, 0x5b, 0x5b, 0, 0},
9735 {0x7D, 0x30, 0x30, 1, 1},
9736 {0x7E, 0, 0, 0, 0},
9737 {0x7F, 0, 0, 0, 0},
9738 {0x80, 0, 0, 0, 0},
9739 {0x81, 0, 0, 0, 0},
9740 {0x82, 0, 0, 0, 0},
9741 {0x83, 0, 0, 0, 0},
9742 {0x84, 0, 0, 0, 0},
9743 {0x85, 0, 0, 0, 0},
9744 {0x86, 0, 0, 0, 0},
9745 {0x87, 0, 0, 0, 0},
9746 {0x88, 0, 0, 0, 0},
9747 {0x89, 0, 0, 0, 0},
9748 {0x8A, 0, 0, 0, 0},
9749 {0x8B, 0, 0, 0, 0},
9750 {0x8C, 0, 0, 0, 0},
9751 {0x8D, 0, 0, 0, 0},
9752 {0x8E, 0, 0, 0, 0},
9753 {0x8F, 0, 0, 0, 0},
9754 {0x90, 0, 0, 0, 0},
9755 {0x91, 0, 0, 0, 0},
9756 {0x92, 0, 0, 0, 0},
9757 {0x93, 0x70, 0x70, 0, 0},
9758 {0x94, 0x70, 0x70, 0, 0},
9759 {0x95, 0x70, 0x70, 0, 0},
9760 {0x96, 0x70, 0x70, 0, 0},
9761 {0x97, 0x70, 0x70, 0, 0},
9762 {0x98, 0x70, 0x70, 0, 0},
9763 {0x99, 0x70, 0x70, 0, 0},
9764 {0x9A, 0x70, 0x70, 0, 0},
9765 {0xFFFF, 0, 0, 0, 0}
9766};
9767
9768radio_regs_t regs_RX_2056_rev6[] = {
9769 {0x02, 0, 0, 0, 0},
9770 {0x03, 0, 0, 0, 0},
9771 {0x04, 0, 0, 0, 0},
9772 {0x05, 0, 0, 0, 0},
9773 {0x06, 0, 0, 0, 0},
9774 {0x07, 0, 0, 0, 0},
9775 {0x08, 0, 0, 0, 0},
9776 {0x09, 0, 0, 0, 0},
9777 {0x0A, 0, 0, 0, 0},
9778 {0x0B, 0, 0, 0, 0},
9779 {0x0C, 0, 0, 0, 0},
9780 {0x0D, 0, 0, 0, 0},
9781 {0x0E, 0, 0, 0, 0},
9782 {0x0F, 0, 0, 0, 0},
9783 {0x10, 0, 0, 0, 0},
9784 {0x11, 0, 0, 0, 0},
9785 {0x12, 0, 0, 0, 0},
9786 {0x13, 0, 0, 0, 0},
9787 {0x14, 0, 0, 0, 0},
9788 {0x15, 0, 0, 0, 0},
9789 {0x16, 0, 0, 0, 0},
9790 {0x17, 0, 0, 0, 0},
9791 {0x18, 0, 0, 0, 0},
9792 {0x19, 0, 0, 0, 0},
9793 {0x1A, 0, 0, 0, 0},
9794 {0x1B, 0, 0, 0, 0},
9795 {0x1C, 0, 0, 0, 0},
9796 {0x1D, 0, 0, 0, 0},
9797 {0x1E, 0, 0, 0, 0},
9798 {0x1F, 0, 0, 0, 0},
9799 {0x20, 0x3, 0x3, 0, 0},
9800 {0x21, 0, 0, 0, 0},
9801 {0x22, 0, 0, 0, 0},
9802 {0x23, 0x90, 0x90, 0, 0},
9803 {0x24, 0x55, 0x55, 0, 0},
9804 {0x25, 0x15, 0x15, 0, 0},
9805 {0x26, 0x5, 0x5, 0, 0},
9806 {0x27, 0x15, 0x15, 0, 0},
9807 {0x28, 0x5, 0x5, 0, 0},
9808 {0x29, 0x20, 0x20, 0, 0},
9809 {0x2A, 0x11, 0x11, 0, 0},
9810 {0x2B, 0x90, 0x90, 0, 0},
9811 {0x2C, 0, 0, 0, 0},
9812 {0x2D, 0x88, 0x88, 0, 0},
9813 {0x2E, 0x32, 0x32, 0, 0},
9814 {0x2F, 0x77, 0x77, 0, 0},
9815 {0x30, 0x17, 0x17, 1, 1},
9816 {0x31, 0xff, 0xff, 1, 1},
9817 {0x32, 0x20, 0x20, 0, 0},
9818 {0x33, 0, 0, 0, 0},
9819 {0x34, 0x88, 0x88, 0, 0},
9820 {0x35, 0x32, 0x32, 0, 0},
9821 {0x36, 0x77, 0x77, 0, 0},
9822 {0x37, 0x17, 0x17, 1, 1},
9823 {0x38, 0xf0, 0xf0, 1, 1},
9824 {0x39, 0x20, 0x20, 0, 0},
9825 {0x3A, 0x8, 0x8, 0, 0},
9826 {0x3B, 0x55, 0x55, 1, 1},
9827 {0x3C, 0, 0, 0, 0},
9828 {0x3D, 0x88, 0x88, 1, 1},
9829 {0x3E, 0, 0, 0, 0},
9830 {0x3F, 0x44, 0x44, 0, 0},
9831 {0x40, 0x7, 0x7, 1, 1},
9832 {0x41, 0x6, 0x6, 0, 0},
9833 {0x42, 0x4, 0x4, 0, 0},
9834 {0x43, 0, 0, 0, 0},
9835 {0x44, 0x8, 0x8, 0, 0},
9836 {0x45, 0x55, 0x55, 1, 1},
9837 {0x46, 0, 0, 0, 0},
9838 {0x47, 0x11, 0x11, 0, 0},
9839 {0x48, 0, 0, 0, 0},
9840 {0x49, 0x44, 0x44, 0, 0},
9841 {0x4A, 0x7, 0x7, 0, 0},
9842 {0x4B, 0x6, 0x6, 0, 0},
9843 {0x4C, 0x4, 0x4, 0, 0},
9844 {0x4D, 0, 0, 0, 0},
9845 {0x4E, 0, 0, 0, 0},
9846 {0x4F, 0x26, 0x26, 1, 1},
9847 {0x50, 0x26, 0x26, 1, 1},
9848 {0x51, 0xf, 0xf, 1, 1},
9849 {0x52, 0xf, 0xf, 1, 1},
9850 {0x53, 0x44, 0x44, 0, 0},
9851 {0x54, 0, 0, 0, 0},
9852 {0x55, 0, 0, 0, 0},
9853 {0x56, 0x8, 0x8, 0, 0},
9854 {0x57, 0x8, 0x8, 0, 0},
9855 {0x58, 0x7, 0x7, 0, 0},
9856 {0x59, 0x22, 0x22, 0, 0},
9857 {0x5A, 0x22, 0x22, 0, 0},
9858 {0x5B, 0x2, 0x2, 0, 0},
9859 {0x5C, 0x4, 0x4, 1, 1},
9860 {0x5D, 0x7, 0x7, 0, 0},
9861 {0x5E, 0x55, 0x55, 0, 0},
9862 {0x5F, 0x23, 0x23, 0, 0},
9863 {0x60, 0x41, 0x41, 0, 0},
9864 {0x61, 0x1, 0x1, 0, 0},
9865 {0x62, 0xa, 0xa, 0, 0},
9866 {0x63, 0, 0, 0, 0},
9867 {0x64, 0, 0, 0, 0},
9868 {0x65, 0, 0, 0, 0},
9869 {0x66, 0, 0, 0, 0},
9870 {0x67, 0, 0, 0, 0},
9871 {0x68, 0, 0, 0, 0},
9872 {0x69, 0, 0, 0, 0},
9873 {0x6A, 0, 0, 0, 0},
9874 {0x6B, 0xc, 0xc, 0, 0},
9875 {0x6C, 0, 0, 0, 0},
9876 {0x6D, 0, 0, 0, 0},
9877 {0x6E, 0, 0, 0, 0},
9878 {0x6F, 0, 0, 0, 0},
9879 {0x70, 0, 0, 0, 0},
9880 {0x71, 0, 0, 0, 0},
9881 {0x72, 0x22, 0x22, 0, 0},
9882 {0x73, 0x22, 0x22, 0, 0},
9883 {0x74, 0, 0, 1, 1},
9884 {0x75, 0xa, 0xa, 0, 0},
9885 {0x76, 0x1, 0x1, 0, 0},
9886 {0x77, 0x22, 0x22, 0, 0},
9887 {0x78, 0x30, 0x30, 0, 0},
9888 {0x79, 0, 0, 0, 0},
9889 {0x7A, 0, 0, 0, 0},
9890 {0x7B, 0, 0, 0, 0},
9891 {0x7C, 0, 0, 0, 0},
9892 {0x7D, 0x5, 0x5, 1, 1},
9893 {0x7E, 0, 0, 0, 0},
9894 {0x7F, 0, 0, 0, 0},
9895 {0x80, 0, 0, 0, 0},
9896 {0x81, 0, 0, 0, 0},
9897 {0x82, 0, 0, 0, 0},
9898 {0x83, 0, 0, 0, 0},
9899 {0x84, 0, 0, 0, 0},
9900 {0x85, 0, 0, 0, 0},
9901 {0x86, 0, 0, 0, 0},
9902 {0x87, 0, 0, 0, 0},
9903 {0x88, 0, 0, 0, 0},
9904 {0x89, 0, 0, 0, 0},
9905 {0x8A, 0, 0, 0, 0},
9906 {0x8B, 0, 0, 0, 0},
9907 {0x8C, 0, 0, 0, 0},
9908 {0x8D, 0, 0, 0, 0},
9909 {0x8E, 0, 0, 0, 0},
9910 {0x8F, 0, 0, 0, 0},
9911 {0x90, 0, 0, 0, 0},
9912 {0x91, 0, 0, 0, 0},
9913 {0x92, 0, 0, 0, 0},
9914 {0x93, 0, 0, 0, 0},
9915 {0x94, 0, 0, 0, 0},
9916 {0xFFFF, 0, 0, 0, 0}
9917};
9918
9919radio_regs_t regs_SYN_2056_rev7[] = {
9920 {0x02, 0, 0, 0, 0},
9921 {0x03, 0, 0, 0, 0},
9922 {0x04, 0, 0, 0, 0},
9923 {0x05, 0, 0, 0, 0},
9924 {0x06, 0, 0, 0, 0},
9925 {0x07, 0, 0, 0, 0},
9926 {0x08, 0, 0, 0, 0},
9927 {0x09, 0x1, 0x1, 0, 0},
9928 {0x0A, 0, 0, 0, 0},
9929 {0x0B, 0, 0, 0, 0},
9930 {0x0C, 0, 0, 0, 0},
9931 {0x0D, 0, 0, 0, 0},
9932 {0x0E, 0, 0, 0, 0},
9933 {0x0F, 0, 0, 0, 0},
9934 {0x10, 0, 0, 0, 0},
9935 {0x11, 0, 0, 0, 0},
9936 {0x12, 0, 0, 0, 0},
9937 {0x13, 0, 0, 0, 0},
9938 {0x14, 0, 0, 0, 0},
9939 {0x15, 0, 0, 0, 0},
9940 {0x16, 0, 0, 0, 0},
9941 {0x17, 0, 0, 0, 0},
9942 {0x18, 0, 0, 0, 0},
9943 {0x19, 0, 0, 0, 0},
9944 {0x1A, 0, 0, 0, 0},
9945 {0x1B, 0, 0, 0, 0},
9946 {0x1C, 0, 0, 0, 0},
9947 {0x1D, 0, 0, 0, 0},
9948 {0x1E, 0, 0, 0, 0},
9949 {0x1F, 0, 0, 0, 0},
9950 {0x20, 0, 0, 0, 0},
9951 {0x21, 0, 0, 0, 0},
9952 {0x22, 0x60, 0x60, 0, 0},
9953 {0x23, 0x6, 0x6, 0, 0},
9954 {0x24, 0xc, 0xc, 0, 0},
9955 {0x25, 0, 0, 0, 0},
9956 {0x26, 0, 0, 0, 0},
9957 {0x27, 0, 0, 0, 0},
9958 {0x28, 0x1, 0x1, 0, 0},
9959 {0x29, 0, 0, 0, 0},
9960 {0x2A, 0, 0, 0, 0},
9961 {0x2B, 0, 0, 0, 0},
9962 {0x2C, 0, 0, 0, 0},
9963 {0x2D, 0, 0, 0, 0},
9964 {0x2E, 0, 0, 0, 0},
9965 {0x2F, 0x1f, 0x1f, 0, 0},
9966 {0x30, 0x15, 0x15, 0, 0},
9967 {0x31, 0xf, 0xf, 0, 0},
9968 {0x32, 0, 0, 0, 0},
9969 {0x33, 0, 0, 0, 0},
9970 {0x34, 0, 0, 0, 0},
9971 {0x35, 0, 0, 0, 0},
9972 {0x36, 0, 0, 0, 0},
9973 {0x37, 0, 0, 0, 0},
9974 {0x38, 0, 0, 0, 0},
9975 {0x39, 0, 0, 0, 0},
9976 {0x3A, 0, 0, 0, 0},
9977 {0x3B, 0, 0, 0, 0},
9978 {0x3C, 0x13, 0x13, 0, 0},
9979 {0x3D, 0xf, 0xf, 0, 0},
9980 {0x3E, 0x18, 0x18, 0, 0},
9981 {0x3F, 0, 0, 0, 0},
9982 {0x40, 0, 0, 0, 0},
9983 {0x41, 0x20, 0x20, 0, 0},
9984 {0x42, 0x20, 0x20, 0, 0},
9985 {0x43, 0, 0, 0, 0},
9986 {0x44, 0x77, 0x77, 0, 0},
9987 {0x45, 0x7, 0x7, 0, 0},
9988 {0x46, 0x1, 0x1, 0, 0},
9989 {0x47, 0x4, 0x4, 0, 0},
9990 {0x48, 0xf, 0xf, 0, 0},
9991 {0x49, 0x30, 0x30, 0, 0},
9992 {0x4A, 0x32, 0x32, 0, 0},
9993 {0x4B, 0xd, 0xd, 0, 0},
9994 {0x4C, 0xd, 0xd, 0, 0},
9995 {0x4D, 0x4, 0x4, 0, 0},
9996 {0x4E, 0x6, 0x6, 0, 0},
9997 {0x4F, 0x1, 0x1, 0, 0},
9998 {0x50, 0x1c, 0x1c, 0, 0},
9999 {0x51, 0x2, 0x2, 0, 0},
10000 {0x52, 0x2, 0x2, 0, 0},
10001 {0x53, 0xf7, 0xf7, 1, 1},
10002 {0x54, 0xb4, 0xb4, 0, 0},
10003 {0x55, 0xd2, 0xd2, 0, 0},
10004 {0x56, 0, 0, 0, 0},
10005 {0x57, 0, 0, 0, 0},
10006 {0x58, 0x4, 0x4, 0, 0},
10007 {0x59, 0x96, 0x96, 0, 0},
10008 {0x5A, 0x3e, 0x3e, 0, 0},
10009 {0x5B, 0x3e, 0x3e, 0, 0},
10010 {0x5C, 0x13, 0x13, 0, 0},
10011 {0x5D, 0x2, 0x2, 0, 0},
10012 {0x5E, 0, 0, 0, 0},
10013 {0x5F, 0x7, 0x7, 0, 0},
10014 {0x60, 0x7, 0x7, 1, 1},
10015 {0x61, 0x8, 0x8, 0, 0},
10016 {0x62, 0x3, 0x3, 0, 0},
10017 {0x63, 0, 0, 0, 0},
10018 {0x64, 0, 0, 0, 0},
10019 {0x65, 0, 0, 0, 0},
10020 {0x66, 0, 0, 0, 0},
10021 {0x67, 0, 0, 0, 0},
10022 {0x68, 0x40, 0x40, 0, 0},
10023 {0x69, 0, 0, 0, 0},
10024 {0x6A, 0, 0, 0, 0},
10025 {0x6B, 0, 0, 0, 0},
10026 {0x6C, 0, 0, 0, 0},
10027 {0x6D, 0x1, 0x1, 0, 0},
10028 {0x6E, 0, 0, 0, 0},
10029 {0x6F, 0, 0, 0, 0},
10030 {0x70, 0x60, 0x60, 0, 0},
10031 {0x71, 0x66, 0x66, 0, 0},
10032 {0x72, 0xc, 0xc, 0, 0},
10033 {0x73, 0x66, 0x66, 0, 0},
10034 {0x74, 0x8f, 0x8f, 1, 1},
10035 {0x75, 0, 0, 0, 0},
10036 {0x76, 0xcc, 0xcc, 0, 0},
10037 {0x77, 0x1, 0x1, 0, 0},
10038 {0x78, 0x66, 0x66, 0, 0},
10039 {0x79, 0x66, 0x66, 0, 0},
10040 {0x7A, 0, 0, 0, 0},
10041 {0x7B, 0, 0, 0, 0},
10042 {0x7C, 0, 0, 0, 0},
10043 {0x7D, 0, 0, 0, 0},
10044 {0x7E, 0, 0, 0, 0},
10045 {0x7F, 0, 0, 0, 0},
10046 {0x80, 0, 0, 0, 0},
10047 {0x81, 0, 0, 0, 0},
10048 {0x82, 0, 0, 0, 0},
10049 {0x83, 0, 0, 0, 0},
10050 {0x84, 0, 0, 0, 0},
10051 {0x85, 0xff, 0xff, 0, 0},
10052 {0x86, 0, 0, 0, 0},
10053 {0x87, 0, 0, 0, 0},
10054 {0x88, 0, 0, 0, 0},
10055 {0x89, 0, 0, 0, 0},
10056 {0x8A, 0, 0, 0, 0},
10057 {0x8B, 0, 0, 0, 0},
10058 {0x8C, 0, 0, 0, 0},
10059 {0x8D, 0, 0, 0, 0},
10060 {0x8E, 0, 0, 0, 0},
10061 {0x8F, 0, 0, 0, 0},
10062 {0x90, 0, 0, 0, 0},
10063 {0x91, 0, 0, 0, 0},
10064 {0x92, 0, 0, 0, 0},
10065 {0x93, 0, 0, 0, 0},
10066 {0x94, 0, 0, 0, 0},
10067 {0x95, 0, 0, 0, 0},
10068 {0x96, 0, 0, 0, 0},
10069 {0x97, 0, 0, 0, 0},
10070 {0x98, 0, 0, 0, 0},
10071 {0x99, 0, 0, 0, 0},
10072 {0x9A, 0, 0, 0, 0},
10073 {0x9B, 0, 0, 0, 0},
10074 {0x9C, 0, 0, 0, 0},
10075 {0x9D, 0, 0, 0, 0},
10076 {0x9E, 0, 0, 0, 0},
10077 {0x9F, 0x6, 0x6, 0, 0},
10078 {0xA0, 0x66, 0x66, 0, 0},
10079 {0xA1, 0x66, 0x66, 0, 0},
10080 {0xA2, 0x66, 0x66, 0, 0},
10081 {0xA3, 0x66, 0x66, 0, 0},
10082 {0xA4, 0x66, 0x66, 0, 0},
10083 {0xA5, 0x66, 0x66, 0, 0},
10084 {0xA6, 0x66, 0x66, 0, 0},
10085 {0xA7, 0x66, 0x66, 0, 0},
10086 {0xA8, 0x66, 0x66, 0, 0},
10087 {0xA9, 0x66, 0x66, 0, 0},
10088 {0xAA, 0x66, 0x66, 0, 0},
10089 {0xAB, 0x66, 0x66, 0, 0},
10090 {0xAC, 0x66, 0x66, 0, 0},
10091 {0xAD, 0x66, 0x66, 0, 0},
10092 {0xAE, 0x66, 0x66, 0, 0},
10093 {0xAF, 0x66, 0x66, 0, 0},
10094 {0xB0, 0x66, 0x66, 0, 0},
10095 {0xB1, 0x66, 0x66, 0, 0},
10096 {0xB2, 0x66, 0x66, 0, 0},
10097 {0xB3, 0xa, 0xa, 0, 0},
10098 {0xB4, 0, 0, 0, 0},
10099 {0xB5, 0, 0, 0, 0},
10100 {0xB6, 0, 0, 0, 0},
10101 {0xFFFF, 0, 0, 0, 0},
10102};
10103
10104radio_regs_t regs_TX_2056_rev7[] = {
10105 {0x02, 0, 0, 0, 0},
10106 {0x03, 0, 0, 0, 0},
10107 {0x04, 0, 0, 0, 0},
10108 {0x05, 0, 0, 0, 0},
10109 {0x06, 0, 0, 0, 0},
10110 {0x07, 0, 0, 0, 0},
10111 {0x08, 0, 0, 0, 0},
10112 {0x09, 0, 0, 0, 0},
10113 {0x0A, 0, 0, 0, 0},
10114 {0x0B, 0, 0, 0, 0},
10115 {0x0C, 0, 0, 0, 0},
10116 {0x0D, 0, 0, 0, 0},
10117 {0x0E, 0, 0, 0, 0},
10118 {0x0F, 0, 0, 0, 0},
10119 {0x10, 0, 0, 0, 0},
10120 {0x11, 0, 0, 0, 0},
10121 {0x12, 0, 0, 0, 0},
10122 {0x13, 0, 0, 0, 0},
10123 {0x14, 0, 0, 0, 0},
10124 {0x15, 0, 0, 0, 0},
10125 {0x16, 0, 0, 0, 0},
10126 {0x17, 0, 0, 0, 0},
10127 {0x18, 0, 0, 0, 0},
10128 {0x19, 0, 0, 0, 0},
10129 {0x1A, 0, 0, 0, 0},
10130 {0x1B, 0, 0, 0, 0},
10131 {0x1C, 0, 0, 0, 0},
10132 {0x1D, 0, 0, 0, 0},
10133 {0x1E, 0, 0, 0, 0},
10134 {0x1F, 0, 0, 0, 0},
10135 {0x20, 0, 0, 0, 0},
10136 {0x21, 0x88, 0x88, 0, 0},
10137 {0x22, 0x88, 0x88, 0, 0},
10138 {0x23, 0x88, 0x88, 0, 0},
10139 {0x24, 0x88, 0x88, 0, 0},
10140 {0x25, 0xc, 0xc, 0, 0},
10141 {0x26, 0, 0, 0, 0},
10142 {0x27, 0x3, 0x3, 0, 0},
10143 {0x28, 0, 0, 0, 0},
10144 {0x29, 0x3, 0x3, 0, 0},
10145 {0x2A, 0x37, 0x37, 0, 0},
10146 {0x2B, 0x3, 0x3, 0, 0},
10147 {0x2C, 0, 0, 0, 0},
10148 {0x2D, 0, 0, 0, 0},
10149 {0x2E, 0x1, 0x1, 0, 0},
10150 {0x2F, 0x1, 0x1, 0, 0},
10151 {0x30, 0, 0, 0, 0},
10152 {0x31, 0, 0, 0, 0},
10153 {0x32, 0, 0, 0, 0},
10154 {0x33, 0x11, 0x11, 0, 0},
10155 {0x34, 0xee, 0xee, 1, 1},
10156 {0x35, 0, 0, 0, 0},
10157 {0x36, 0, 0, 0, 0},
10158 {0x37, 0x3, 0x3, 0, 0},
10159 {0x38, 0x50, 0x50, 1, 1},
10160 {0x39, 0, 0, 0, 0},
10161 {0x3A, 0x50, 0x50, 1, 1},
10162 {0x3B, 0, 0, 0, 0},
10163 {0x3C, 0x6e, 0x6e, 0, 0},
10164 {0x3D, 0xf0, 0xf0, 1, 1},
10165 {0x3E, 0, 0, 0, 0},
10166 {0x3F, 0, 0, 0, 0},
10167 {0x40, 0, 0, 0, 0},
10168 {0x41, 0x3, 0x3, 0, 0},
10169 {0x42, 0x3, 0x3, 0, 0},
10170 {0x43, 0, 0, 0, 0},
10171 {0x44, 0x1e, 0x1e, 0, 0},
10172 {0x45, 0, 0, 0, 0},
10173 {0x46, 0x6e, 0x6e, 0, 0},
10174 {0x47, 0xf0, 0xf0, 1, 1},
10175 {0x48, 0, 0, 0, 0},
10176 {0x49, 0x2, 0x2, 0, 0},
10177 {0x4A, 0xff, 0xff, 1, 1},
10178 {0x4B, 0xc, 0xc, 0, 0},
10179 {0x4C, 0, 0, 0, 0},
10180 {0x4D, 0x38, 0x38, 0, 0},
10181 {0x4E, 0x70, 0x70, 1, 1},
10182 {0x4F, 0x2, 0x2, 0, 0},
10183 {0x50, 0x88, 0x88, 0, 0},
10184 {0x51, 0xc, 0xc, 0, 0},
10185 {0x52, 0, 0, 0, 0},
10186 {0x53, 0x8, 0x8, 0, 0},
10187 {0x54, 0x70, 0x70, 1, 1},
10188 {0x55, 0x2, 0x2, 0, 0},
10189 {0x56, 0xff, 0xff, 1, 1},
10190 {0x57, 0, 0, 0, 0},
10191 {0x58, 0x83, 0x83, 0, 0},
10192 {0x59, 0x77, 0x77, 1, 1},
10193 {0x5A, 0, 0, 0, 0},
10194 {0x5B, 0x2, 0x2, 0, 0},
10195 {0x5C, 0x88, 0x88, 0, 0},
10196 {0x5D, 0, 0, 0, 0},
10197 {0x5E, 0x8, 0x8, 0, 0},
10198 {0x5F, 0x77, 0x77, 1, 1},
10199 {0x60, 0x1, 0x1, 0, 0},
10200 {0x61, 0, 0, 0, 0},
10201 {0x62, 0x7, 0x7, 0, 0},
10202 {0x63, 0, 0, 0, 0},
10203 {0x64, 0x7, 0x7, 0, 0},
10204 {0x65, 0, 0, 0, 0},
10205 {0x66, 0, 0, 0, 0},
10206 {0x67, 0, 0, 1, 1},
10207 {0x68, 0, 0, 0, 0},
10208 {0x69, 0xa, 0xa, 0, 0},
10209 {0x6A, 0, 0, 0, 0},
10210 {0x6B, 0, 0, 0, 0},
10211 {0x6C, 0, 0, 0, 0},
10212 {0x6D, 0, 0, 0, 0},
10213 {0x6E, 0, 0, 0, 0},
10214 {0x6F, 0, 0, 0, 0},
10215 {0x70, 0, 0, 0, 0},
10216 {0x71, 0x2, 0x2, 0, 0},
10217 {0x72, 0, 0, 0, 0},
10218 {0x73, 0, 0, 0, 0},
10219 {0x74, 0xe, 0xe, 0, 0},
10220 {0x75, 0xe, 0xe, 0, 0},
10221 {0x76, 0xe, 0xe, 0, 0},
10222 {0x77, 0x13, 0x13, 0, 0},
10223 {0x78, 0x13, 0x13, 0, 0},
10224 {0x79, 0x1b, 0x1b, 0, 0},
10225 {0x7A, 0x1b, 0x1b, 0, 0},
10226 {0x7B, 0x55, 0x55, 0, 0},
10227 {0x7C, 0x5b, 0x5b, 0, 0},
10228 {0x7D, 0x30, 0x30, 1, 1},
10229 {0x7E, 0, 0, 0, 0},
10230 {0x7F, 0, 0, 0, 0},
10231 {0x80, 0, 0, 0, 0},
10232 {0x81, 0, 0, 0, 0},
10233 {0x82, 0, 0, 0, 0},
10234 {0x83, 0, 0, 0, 0},
10235 {0x84, 0, 0, 0, 0},
10236 {0x85, 0, 0, 0, 0},
10237 {0x86, 0, 0, 0, 0},
10238 {0x87, 0, 0, 0, 0},
10239 {0x88, 0, 0, 0, 0},
10240 {0x89, 0, 0, 0, 0},
10241 {0x8A, 0, 0, 0, 0},
10242 {0x8B, 0, 0, 0, 0},
10243 {0x8C, 0, 0, 0, 0},
10244 {0x8D, 0, 0, 0, 0},
10245 {0x8E, 0, 0, 0, 0},
10246 {0x8F, 0, 0, 0, 0},
10247 {0x90, 0, 0, 0, 0},
10248 {0x91, 0, 0, 0, 0},
10249 {0x92, 0, 0, 0, 0},
10250 {0x93, 0x70, 0x70, 0, 0},
10251 {0x94, 0x70, 0x70, 0, 0},
10252 {0x95, 0x71, 0x71, 1, 1},
10253 {0x96, 0x71, 0x71, 1, 1},
10254 {0x97, 0x72, 0x72, 1, 1},
10255 {0x98, 0x73, 0x73, 1, 1},
10256 {0x99, 0x74, 0x74, 1, 1},
10257 {0x9A, 0x75, 0x75, 1, 1},
10258 {0xFFFF, 0, 0, 0, 0},
10259};
10260
10261radio_regs_t regs_RX_2056_rev7[] = {
10262 {0x02, 0, 0, 0, 0},
10263 {0x03, 0, 0, 0, 0},
10264 {0x04, 0, 0, 0, 0},
10265 {0x05, 0, 0, 0, 0},
10266 {0x06, 0, 0, 0, 0},
10267 {0x07, 0, 0, 0, 0},
10268 {0x08, 0, 0, 0, 0},
10269 {0x09, 0, 0, 0, 0},
10270 {0x0A, 0, 0, 0, 0},
10271 {0x0B, 0, 0, 0, 0},
10272 {0x0C, 0, 0, 0, 0},
10273 {0x0D, 0, 0, 0, 0},
10274 {0x0E, 0, 0, 0, 0},
10275 {0x0F, 0, 0, 0, 0},
10276 {0x10, 0, 0, 0, 0},
10277 {0x11, 0, 0, 0, 0},
10278 {0x12, 0, 0, 0, 0},
10279 {0x13, 0, 0, 0, 0},
10280 {0x14, 0, 0, 0, 0},
10281 {0x15, 0, 0, 0, 0},
10282 {0x16, 0, 0, 0, 0},
10283 {0x17, 0, 0, 0, 0},
10284 {0x18, 0, 0, 0, 0},
10285 {0x19, 0, 0, 0, 0},
10286 {0x1A, 0, 0, 0, 0},
10287 {0x1B, 0, 0, 0, 0},
10288 {0x1C, 0, 0, 0, 0},
10289 {0x1D, 0, 0, 0, 0},
10290 {0x1E, 0, 0, 0, 0},
10291 {0x1F, 0, 0, 0, 0},
10292 {0x20, 0x3, 0x3, 0, 0},
10293 {0x21, 0, 0, 0, 0},
10294 {0x22, 0, 0, 0, 0},
10295 {0x23, 0x90, 0x90, 0, 0},
10296 {0x24, 0x55, 0x55, 0, 0},
10297 {0x25, 0x15, 0x15, 0, 0},
10298 {0x26, 0x5, 0x5, 0, 0},
10299 {0x27, 0x15, 0x15, 0, 0},
10300 {0x28, 0x5, 0x5, 0, 0},
10301 {0x29, 0x20, 0x20, 0, 0},
10302 {0x2A, 0x11, 0x11, 0, 0},
10303 {0x2B, 0x90, 0x90, 0, 0},
10304 {0x2C, 0, 0, 0, 0},
10305 {0x2D, 0x88, 0x88, 0, 0},
10306 {0x2E, 0x32, 0x32, 0, 0},
10307 {0x2F, 0x77, 0x77, 0, 0},
10308 {0x30, 0x17, 0x17, 1, 1},
10309 {0x31, 0xff, 0xff, 1, 1},
10310 {0x32, 0x20, 0x20, 0, 0},
10311 {0x33, 0, 0, 0, 0},
10312 {0x34, 0x88, 0x88, 0, 0},
10313 {0x35, 0x32, 0x32, 0, 0},
10314 {0x36, 0x77, 0x77, 0, 0},
10315 {0x37, 0x17, 0x17, 1, 1},
10316 {0x38, 0xf0, 0xf0, 1, 1},
10317 {0x39, 0x20, 0x20, 0, 0},
10318 {0x3A, 0x8, 0x8, 0, 0},
10319 {0x3B, 0x55, 0x55, 1, 1},
10320 {0x3C, 0, 0, 0, 0},
10321 {0x3D, 0x88, 0x88, 1, 1},
10322 {0x3E, 0, 0, 0, 0},
10323 {0x3F, 0, 0, 1, 1},
10324 {0x40, 0x7, 0x7, 1, 1},
10325 {0x41, 0x6, 0x6, 0, 0},
10326 {0x42, 0x4, 0x4, 0, 0},
10327 {0x43, 0, 0, 0, 0},
10328 {0x44, 0x8, 0x8, 0, 0},
10329 {0x45, 0x55, 0x55, 1, 1},
10330 {0x46, 0, 0, 0, 0},
10331 {0x47, 0x11, 0x11, 0, 0},
10332 {0x48, 0, 0, 0, 0},
10333 {0x49, 0, 0, 1, 1},
10334 {0x4A, 0x7, 0x7, 0, 0},
10335 {0x4B, 0x6, 0x6, 0, 0},
10336 {0x4C, 0x4, 0x4, 0, 0},
10337 {0x4D, 0, 0, 0, 0},
10338 {0x4E, 0, 0, 0, 0},
10339 {0x4F, 0x26, 0x26, 1, 1},
10340 {0x50, 0x26, 0x26, 1, 1},
10341 {0x51, 0xf, 0xf, 1, 1},
10342 {0x52, 0xf, 0xf, 1, 1},
10343 {0x53, 0x44, 0x44, 0, 0},
10344 {0x54, 0, 0, 0, 0},
10345 {0x55, 0, 0, 0, 0},
10346 {0x56, 0x8, 0x8, 0, 0},
10347 {0x57, 0x8, 0x8, 0, 0},
10348 {0x58, 0x7, 0x7, 0, 0},
10349 {0x59, 0x22, 0x22, 0, 0},
10350 {0x5A, 0x22, 0x22, 0, 0},
10351 {0x5B, 0x2, 0x2, 0, 0},
10352 {0x5C, 0x4, 0x4, 1, 1},
10353 {0x5D, 0x7, 0x7, 0, 0},
10354 {0x5E, 0x55, 0x55, 0, 0},
10355 {0x5F, 0x23, 0x23, 0, 0},
10356 {0x60, 0x41, 0x41, 0, 0},
10357 {0x61, 0x1, 0x1, 0, 0},
10358 {0x62, 0xa, 0xa, 0, 0},
10359 {0x63, 0, 0, 0, 0},
10360 {0x64, 0, 0, 0, 0},
10361 {0x65, 0, 0, 0, 0},
10362 {0x66, 0, 0, 0, 0},
10363 {0x67, 0, 0, 0, 0},
10364 {0x68, 0, 0, 0, 0},
10365 {0x69, 0, 0, 0, 0},
10366 {0x6A, 0, 0, 0, 0},
10367 {0x6B, 0xc, 0xc, 0, 0},
10368 {0x6C, 0, 0, 0, 0},
10369 {0x6D, 0, 0, 0, 0},
10370 {0x6E, 0, 0, 0, 0},
10371 {0x6F, 0, 0, 0, 0},
10372 {0x70, 0, 0, 0, 0},
10373 {0x71, 0, 0, 0, 0},
10374 {0x72, 0x22, 0x22, 0, 0},
10375 {0x73, 0x22, 0x22, 0, 0},
10376 {0x74, 0, 0, 1, 1},
10377 {0x75, 0xa, 0xa, 0, 0},
10378 {0x76, 0x1, 0x1, 0, 0},
10379 {0x77, 0x22, 0x22, 0, 0},
10380 {0x78, 0x30, 0x30, 0, 0},
10381 {0x79, 0, 0, 0, 0},
10382 {0x7A, 0, 0, 0, 0},
10383 {0x7B, 0, 0, 0, 0},
10384 {0x7C, 0, 0, 0, 0},
10385 {0x7D, 0, 0, 0, 0},
10386 {0x7E, 0, 0, 0, 0},
10387 {0x7F, 0, 0, 0, 0},
10388 {0x80, 0, 0, 0, 0},
10389 {0x81, 0, 0, 0, 0},
10390 {0x82, 0, 0, 0, 0},
10391 {0x83, 0, 0, 0, 0},
10392 {0x84, 0, 0, 0, 0},
10393 {0x85, 0, 0, 0, 0},
10394 {0x86, 0, 0, 0, 0},
10395 {0x87, 0, 0, 0, 0},
10396 {0x88, 0, 0, 0, 0},
10397 {0x89, 0, 0, 0, 0},
10398 {0x8A, 0, 0, 0, 0},
10399 {0x8B, 0, 0, 0, 0},
10400 {0x8C, 0, 0, 0, 0},
10401 {0x8D, 0, 0, 0, 0},
10402 {0x8E, 0, 0, 0, 0},
10403 {0x8F, 0, 0, 0, 0},
10404 {0x90, 0, 0, 0, 0},
10405 {0x91, 0, 0, 0, 0},
10406 {0x92, 0, 0, 0, 0},
10407 {0x93, 0, 0, 0, 0},
10408 {0x94, 0, 0, 0, 0},
10409 {0xFFFF, 0, 0, 0, 0},
10410};
10411
10412radio_regs_t regs_SYN_2056_rev8[] = {
10413 {0x02, 0, 0, 0, 0},
10414 {0x03, 0, 0, 0, 0},
10415 {0x04, 0, 0, 0, 0},
10416 {0x05, 0, 0, 0, 0},
10417 {0x06, 0, 0, 0, 0},
10418 {0x07, 0, 0, 0, 0},
10419 {0x08, 0, 0, 0, 0},
10420 {0x09, 0x1, 0x1, 0, 0},
10421 {0x0A, 0, 0, 0, 0},
10422 {0x0B, 0, 0, 0, 0},
10423 {0x0C, 0, 0, 0, 0},
10424 {0x0D, 0, 0, 0, 0},
10425 {0x0E, 0, 0, 0, 0},
10426 {0x0F, 0, 0, 0, 0},
10427 {0x10, 0, 0, 0, 0},
10428 {0x11, 0, 0, 0, 0},
10429 {0x12, 0, 0, 0, 0},
10430 {0x13, 0, 0, 0, 0},
10431 {0x14, 0, 0, 0, 0},
10432 {0x15, 0, 0, 0, 0},
10433 {0x16, 0, 0, 0, 0},
10434 {0x17, 0, 0, 0, 0},
10435 {0x18, 0, 0, 0, 0},
10436 {0x19, 0, 0, 0, 0},
10437 {0x1A, 0, 0, 0, 0},
10438 {0x1B, 0, 0, 0, 0},
10439 {0x1C, 0, 0, 0, 0},
10440 {0x1D, 0, 0, 0, 0},
10441 {0x1E, 0, 0, 0, 0},
10442 {0x1F, 0, 0, 0, 0},
10443 {0x20, 0, 0, 0, 0},
10444 {0x21, 0, 0, 0, 0},
10445 {0x22, 0x60, 0x60, 0, 0},
10446 {0x23, 0x6, 0x6, 0, 0},
10447 {0x24, 0xc, 0xc, 0, 0},
10448 {0x25, 0, 0, 0, 0},
10449 {0x26, 0, 0, 0, 0},
10450 {0x27, 0, 0, 0, 0},
10451 {0x28, 0x1, 0x1, 0, 0},
10452 {0x29, 0, 0, 0, 0},
10453 {0x2A, 0, 0, 0, 0},
10454 {0x2B, 0, 0, 0, 0},
10455 {0x2C, 0, 0, 0, 0},
10456 {0x2D, 0, 0, 0, 0},
10457 {0x2E, 0, 0, 0, 0},
10458 {0x2F, 0x1f, 0x1f, 0, 0},
10459 {0x30, 0x15, 0x15, 0, 0},
10460 {0x31, 0xf, 0xf, 0, 0},
10461 {0x32, 0, 0, 0, 0},
10462 {0x33, 0, 0, 0, 0},
10463 {0x34, 0, 0, 0, 0},
10464 {0x35, 0, 0, 0, 0},
10465 {0x36, 0, 0, 0, 0},
10466 {0x37, 0, 0, 0, 0},
10467 {0x38, 0, 0, 0, 0},
10468 {0x39, 0, 0, 0, 0},
10469 {0x3A, 0, 0, 0, 0},
10470 {0x3B, 0, 0, 0, 0},
10471 {0x3C, 0x13, 0x13, 0, 0},
10472 {0x3D, 0xf, 0xf, 0, 0},
10473 {0x3E, 0x18, 0x18, 0, 0},
10474 {0x3F, 0, 0, 0, 0},
10475 {0x40, 0, 0, 0, 0},
10476 {0x41, 0x20, 0x20, 0, 0},
10477 {0x42, 0x20, 0x20, 0, 0},
10478 {0x43, 0, 0, 0, 0},
10479 {0x44, 0x77, 0x77, 0, 0},
10480 {0x45, 0x7, 0x7, 0, 0},
10481 {0x46, 0x1, 0x1, 0, 0},
10482 {0x47, 0x4, 0x4, 0, 0},
10483 {0x48, 0xf, 0xf, 0, 0},
10484 {0x49, 0x30, 0x30, 0, 0},
10485 {0x4A, 0x32, 0x32, 0, 0},
10486 {0x4B, 0xd, 0xd, 0, 0},
10487 {0x4C, 0xd, 0xd, 0, 0},
10488 {0x4D, 0x4, 0x4, 0, 0},
10489 {0x4E, 0x6, 0x6, 0, 0},
10490 {0x4F, 0x1, 0x1, 0, 0},
10491 {0x50, 0x1c, 0x1c, 0, 0},
10492 {0x51, 0x2, 0x2, 0, 0},
10493 {0x52, 0x2, 0x2, 0, 0},
10494 {0x53, 0xf7, 0xf7, 1, 1},
10495 {0x54, 0xb4, 0xb4, 0, 0},
10496 {0x55, 0xd2, 0xd2, 0, 0},
10497 {0x56, 0, 0, 0, 0},
10498 {0x57, 0, 0, 0, 0},
10499 {0x58, 0x4, 0x4, 0, 0},
10500 {0x59, 0x96, 0x96, 0, 0},
10501 {0x5A, 0x3e, 0x3e, 0, 0},
10502 {0x5B, 0x3e, 0x3e, 0, 0},
10503 {0x5C, 0x13, 0x13, 0, 0},
10504 {0x5D, 0x2, 0x2, 0, 0},
10505 {0x5E, 0, 0, 0, 0},
10506 {0x5F, 0x7, 0x7, 0, 0},
10507 {0x60, 0x7, 0x7, 1, 1},
10508 {0x61, 0x8, 0x8, 0, 0},
10509 {0x62, 0x3, 0x3, 0, 0},
10510 {0x63, 0, 0, 0, 0},
10511 {0x64, 0, 0, 0, 0},
10512 {0x65, 0, 0, 0, 0},
10513 {0x66, 0, 0, 0, 0},
10514 {0x67, 0, 0, 0, 0},
10515 {0x68, 0x40, 0x40, 0, 0},
10516 {0x69, 0, 0, 0, 0},
10517 {0x6A, 0, 0, 0, 0},
10518 {0x6B, 0, 0, 0, 0},
10519 {0x6C, 0, 0, 0, 0},
10520 {0x6D, 0x1, 0x1, 0, 0},
10521 {0x6E, 0, 0, 0, 0},
10522 {0x6F, 0, 0, 0, 0},
10523 {0x70, 0x60, 0x60, 0, 0},
10524 {0x71, 0x66, 0x66, 0, 0},
10525 {0x72, 0xc, 0xc, 0, 0},
10526 {0x73, 0x66, 0x66, 0, 0},
10527 {0x74, 0x8f, 0x8f, 1, 1},
10528 {0x75, 0, 0, 0, 0},
10529 {0x76, 0xcc, 0xcc, 0, 0},
10530 {0x77, 0x1, 0x1, 0, 0},
10531 {0x78, 0x66, 0x66, 0, 0},
10532 {0x79, 0x66, 0x66, 0, 0},
10533 {0x7A, 0, 0, 0, 0},
10534 {0x7B, 0, 0, 0, 0},
10535 {0x7C, 0, 0, 0, 0},
10536 {0x7D, 0, 0, 0, 0},
10537 {0x7E, 0, 0, 0, 0},
10538 {0x7F, 0, 0, 0, 0},
10539 {0x80, 0, 0, 0, 0},
10540 {0x81, 0, 0, 0, 0},
10541 {0x82, 0, 0, 0, 0},
10542 {0x83, 0, 0, 0, 0},
10543 {0x84, 0, 0, 0, 0},
10544 {0x85, 0xff, 0xff, 0, 0},
10545 {0x86, 0, 0, 0, 0},
10546 {0x87, 0, 0, 0, 0},
10547 {0x88, 0, 0, 0, 0},
10548 {0x89, 0, 0, 0, 0},
10549 {0x8A, 0, 0, 0, 0},
10550 {0x8B, 0, 0, 0, 0},
10551 {0x8C, 0, 0, 0, 0},
10552 {0x8D, 0, 0, 0, 0},
10553 {0x8E, 0, 0, 0, 0},
10554 {0x8F, 0, 0, 0, 0},
10555 {0x90, 0, 0, 0, 0},
10556 {0x91, 0, 0, 0, 0},
10557 {0x92, 0, 0, 0, 0},
10558 {0x93, 0, 0, 0, 0},
10559 {0x94, 0, 0, 0, 0},
10560 {0x95, 0, 0, 0, 0},
10561 {0x96, 0, 0, 0, 0},
10562 {0x97, 0, 0, 0, 0},
10563 {0x98, 0, 0, 0, 0},
10564 {0x99, 0, 0, 0, 0},
10565 {0x9A, 0, 0, 0, 0},
10566 {0x9B, 0, 0, 0, 0},
10567 {0x9C, 0, 0, 0, 0},
10568 {0x9D, 0, 0, 0, 0},
10569 {0x9E, 0, 0, 0, 0},
10570 {0x9F, 0x6, 0x6, 0, 0},
10571 {0xA0, 0x66, 0x66, 0, 0},
10572 {0xA1, 0x66, 0x66, 0, 0},
10573 {0xA2, 0x66, 0x66, 0, 0},
10574 {0xA3, 0x66, 0x66, 0, 0},
10575 {0xA4, 0x66, 0x66, 0, 0},
10576 {0xA5, 0x66, 0x66, 0, 0},
10577 {0xA6, 0x66, 0x66, 0, 0},
10578 {0xA7, 0x66, 0x66, 0, 0},
10579 {0xA8, 0x66, 0x66, 0, 0},
10580 {0xA9, 0x66, 0x66, 0, 0},
10581 {0xAA, 0x66, 0x66, 0, 0},
10582 {0xAB, 0x66, 0x66, 0, 0},
10583 {0xAC, 0x66, 0x66, 0, 0},
10584 {0xAD, 0x66, 0x66, 0, 0},
10585 {0xAE, 0x66, 0x66, 0, 0},
10586 {0xAF, 0x66, 0x66, 0, 0},
10587 {0xB0, 0x66, 0x66, 0, 0},
10588 {0xB1, 0x66, 0x66, 0, 0},
10589 {0xB2, 0x66, 0x66, 0, 0},
10590 {0xB3, 0xa, 0xa, 0, 0},
10591 {0xB4, 0, 0, 0, 0},
10592 {0xB5, 0, 0, 0, 0},
10593 {0xB6, 0, 0, 0, 0},
10594 {0xFFFF, 0, 0, 0, 0},
10595};
10596
10597radio_regs_t regs_TX_2056_rev8[] = {
10598 {0x02, 0, 0, 0, 0},
10599 {0x03, 0, 0, 0, 0},
10600 {0x04, 0, 0, 0, 0},
10601 {0x05, 0, 0, 0, 0},
10602 {0x06, 0, 0, 0, 0},
10603 {0x07, 0, 0, 0, 0},
10604 {0x08, 0, 0, 0, 0},
10605 {0x09, 0, 0, 0, 0},
10606 {0x0A, 0, 0, 0, 0},
10607 {0x0B, 0, 0, 0, 0},
10608 {0x0C, 0, 0, 0, 0},
10609 {0x0D, 0, 0, 0, 0},
10610 {0x0E, 0, 0, 0, 0},
10611 {0x0F, 0, 0, 0, 0},
10612 {0x10, 0, 0, 0, 0},
10613 {0x11, 0, 0, 0, 0},
10614 {0x12, 0, 0, 0, 0},
10615 {0x13, 0, 0, 0, 0},
10616 {0x14, 0, 0, 0, 0},
10617 {0x15, 0, 0, 0, 0},
10618 {0x16, 0, 0, 0, 0},
10619 {0x17, 0, 0, 0, 0},
10620 {0x18, 0, 0, 0, 0},
10621 {0x19, 0, 0, 0, 0},
10622 {0x1A, 0, 0, 0, 0},
10623 {0x1B, 0, 0, 0, 0},
10624 {0x1C, 0, 0, 0, 0},
10625 {0x1D, 0, 0, 0, 0},
10626 {0x1E, 0, 0, 0, 0},
10627 {0x1F, 0, 0, 0, 0},
10628 {0x20, 0, 0, 0, 0},
10629 {0x21, 0x88, 0x88, 0, 0},
10630 {0x22, 0x88, 0x88, 0, 0},
10631 {0x23, 0x88, 0x88, 0, 0},
10632 {0x24, 0x88, 0x88, 0, 0},
10633 {0x25, 0xc, 0xc, 0, 0},
10634 {0x26, 0, 0, 0, 0},
10635 {0x27, 0x3, 0x3, 0, 0},
10636 {0x28, 0, 0, 0, 0},
10637 {0x29, 0x3, 0x3, 0, 0},
10638 {0x2A, 0x37, 0x37, 0, 0},
10639 {0x2B, 0x3, 0x3, 0, 0},
10640 {0x2C, 0, 0, 0, 0},
10641 {0x2D, 0, 0, 0, 0},
10642 {0x2E, 0x1, 0x1, 0, 0},
10643 {0x2F, 0x1, 0x1, 0, 0},
10644 {0x30, 0, 0, 0, 0},
10645 {0x31, 0, 0, 0, 0},
10646 {0x32, 0, 0, 0, 0},
10647 {0x33, 0x11, 0x11, 0, 0},
10648 {0x34, 0xee, 0xee, 1, 1},
10649 {0x35, 0, 0, 0, 0},
10650 {0x36, 0, 0, 0, 0},
10651 {0x37, 0x3, 0x3, 0, 0},
10652 {0x38, 0x50, 0x50, 1, 1},
10653 {0x39, 0, 0, 0, 0},
10654 {0x3A, 0x50, 0x50, 1, 1},
10655 {0x3B, 0, 0, 0, 0},
10656 {0x3C, 0x6e, 0x6e, 0, 0},
10657 {0x3D, 0xf0, 0xf0, 1, 1},
10658 {0x3E, 0, 0, 0, 0},
10659 {0x3F, 0, 0, 0, 0},
10660 {0x40, 0, 0, 0, 0},
10661 {0x41, 0x3, 0x3, 0, 0},
10662 {0x42, 0x3, 0x3, 0, 0},
10663 {0x43, 0, 0, 0, 0},
10664 {0x44, 0x1e, 0x1e, 0, 0},
10665 {0x45, 0, 0, 0, 0},
10666 {0x46, 0x6e, 0x6e, 0, 0},
10667 {0x47, 0xf0, 0xf0, 1, 1},
10668 {0x48, 0, 0, 0, 0},
10669 {0x49, 0x2, 0x2, 0, 0},
10670 {0x4A, 0xff, 0xff, 1, 1},
10671 {0x4B, 0xc, 0xc, 0, 0},
10672 {0x4C, 0, 0, 0, 0},
10673 {0x4D, 0x38, 0x38, 0, 0},
10674 {0x4E, 0x70, 0x70, 1, 1},
10675 {0x4F, 0x2, 0x2, 0, 0},
10676 {0x50, 0x88, 0x88, 0, 0},
10677 {0x51, 0xc, 0xc, 0, 0},
10678 {0x52, 0, 0, 0, 0},
10679 {0x53, 0x8, 0x8, 0, 0},
10680 {0x54, 0x70, 0x70, 1, 1},
10681 {0x55, 0x2, 0x2, 0, 0},
10682 {0x56, 0xff, 0xff, 1, 1},
10683 {0x57, 0, 0, 0, 0},
10684 {0x58, 0x83, 0x83, 0, 0},
10685 {0x59, 0x77, 0x77, 1, 1},
10686 {0x5A, 0, 0, 0, 0},
10687 {0x5B, 0x2, 0x2, 0, 0},
10688 {0x5C, 0x88, 0x88, 0, 0},
10689 {0x5D, 0, 0, 0, 0},
10690 {0x5E, 0x8, 0x8, 0, 0},
10691 {0x5F, 0x77, 0x77, 1, 1},
10692 {0x60, 0x1, 0x1, 0, 0},
10693 {0x61, 0, 0, 0, 0},
10694 {0x62, 0x7, 0x7, 0, 0},
10695 {0x63, 0, 0, 0, 0},
10696 {0x64, 0x7, 0x7, 0, 0},
10697 {0x65, 0, 0, 0, 0},
10698 {0x66, 0, 0, 0, 0},
10699 {0x67, 0, 0, 1, 1},
10700 {0x68, 0, 0, 0, 0},
10701 {0x69, 0xa, 0xa, 0, 0},
10702 {0x6A, 0, 0, 0, 0},
10703 {0x6B, 0, 0, 0, 0},
10704 {0x6C, 0, 0, 0, 0},
10705 {0x6D, 0, 0, 0, 0},
10706 {0x6E, 0, 0, 0, 0},
10707 {0x6F, 0, 0, 0, 0},
10708 {0x70, 0, 0, 0, 0},
10709 {0x71, 0x2, 0x2, 0, 0},
10710 {0x72, 0, 0, 0, 0},
10711 {0x73, 0, 0, 0, 0},
10712 {0x74, 0xe, 0xe, 0, 0},
10713 {0x75, 0xe, 0xe, 0, 0},
10714 {0x76, 0xe, 0xe, 0, 0},
10715 {0x77, 0x13, 0x13, 0, 0},
10716 {0x78, 0x13, 0x13, 0, 0},
10717 {0x79, 0x1b, 0x1b, 0, 0},
10718 {0x7A, 0x1b, 0x1b, 0, 0},
10719 {0x7B, 0x55, 0x55, 0, 0},
10720 {0x7C, 0x5b, 0x5b, 0, 0},
10721 {0x7D, 0x30, 0x30, 1, 1},
10722 {0x7E, 0, 0, 0, 0},
10723 {0x7F, 0, 0, 0, 0},
10724 {0x80, 0, 0, 0, 0},
10725 {0x81, 0, 0, 0, 0},
10726 {0x82, 0, 0, 0, 0},
10727 {0x83, 0, 0, 0, 0},
10728 {0x84, 0, 0, 0, 0},
10729 {0x85, 0, 0, 0, 0},
10730 {0x86, 0, 0, 0, 0},
10731 {0x87, 0, 0, 0, 0},
10732 {0x88, 0, 0, 0, 0},
10733 {0x89, 0, 0, 0, 0},
10734 {0x8A, 0, 0, 0, 0},
10735 {0x8B, 0, 0, 0, 0},
10736 {0x8C, 0, 0, 0, 0},
10737 {0x8D, 0, 0, 0, 0},
10738 {0x8E, 0, 0, 0, 0},
10739 {0x8F, 0, 0, 0, 0},
10740 {0x90, 0, 0, 0, 0},
10741 {0x91, 0, 0, 0, 0},
10742 {0x92, 0, 0, 0, 0},
10743 {0x93, 0x70, 0x70, 0, 0},
10744 {0x94, 0x70, 0x70, 0, 0},
10745 {0x95, 0x70, 0x70, 0, 0},
10746 {0x96, 0x70, 0x70, 0, 0},
10747 {0x97, 0x70, 0x70, 0, 0},
10748 {0x98, 0x70, 0x70, 0, 0},
10749 {0x99, 0x70, 0x70, 0, 0},
10750 {0x9A, 0x70, 0x70, 0, 0},
10751 {0xFFFF, 0, 0, 0, 0},
10752};
10753
10754radio_regs_t regs_RX_2056_rev8[] = {
10755 {0x02, 0, 0, 0, 0},
10756 {0x03, 0, 0, 0, 0},
10757 {0x04, 0, 0, 0, 0},
10758 {0x05, 0, 0, 0, 0},
10759 {0x06, 0, 0, 0, 0},
10760 {0x07, 0, 0, 0, 0},
10761 {0x08, 0, 0, 0, 0},
10762 {0x09, 0, 0, 0, 0},
10763 {0x0A, 0, 0, 0, 0},
10764 {0x0B, 0, 0, 0, 0},
10765 {0x0C, 0, 0, 0, 0},
10766 {0x0D, 0, 0, 0, 0},
10767 {0x0E, 0, 0, 0, 0},
10768 {0x0F, 0, 0, 0, 0},
10769 {0x10, 0, 0, 0, 0},
10770 {0x11, 0, 0, 0, 0},
10771 {0x12, 0, 0, 0, 0},
10772 {0x13, 0, 0, 0, 0},
10773 {0x14, 0, 0, 0, 0},
10774 {0x15, 0, 0, 0, 0},
10775 {0x16, 0, 0, 0, 0},
10776 {0x17, 0, 0, 0, 0},
10777 {0x18, 0, 0, 0, 0},
10778 {0x19, 0, 0, 0, 0},
10779 {0x1A, 0, 0, 0, 0},
10780 {0x1B, 0, 0, 0, 0},
10781 {0x1C, 0, 0, 0, 0},
10782 {0x1D, 0, 0, 0, 0},
10783 {0x1E, 0, 0, 0, 0},
10784 {0x1F, 0, 0, 0, 0},
10785 {0x20, 0x3, 0x3, 0, 0},
10786 {0x21, 0, 0, 0, 0},
10787 {0x22, 0, 0, 0, 0},
10788 {0x23, 0x90, 0x90, 0, 0},
10789 {0x24, 0x55, 0x55, 0, 0},
10790 {0x25, 0x15, 0x15, 0, 0},
10791 {0x26, 0x5, 0x5, 0, 0},
10792 {0x27, 0x15, 0x15, 0, 0},
10793 {0x28, 0x5, 0x5, 0, 0},
10794 {0x29, 0x20, 0x20, 0, 0},
10795 {0x2A, 0x11, 0x11, 0, 0},
10796 {0x2B, 0x90, 0x90, 0, 0},
10797 {0x2C, 0, 0, 0, 0},
10798 {0x2D, 0x88, 0x88, 0, 0},
10799 {0x2E, 0x32, 0x32, 0, 0},
10800 {0x2F, 0x77, 0x77, 0, 0},
10801 {0x30, 0x17, 0x17, 1, 1},
10802 {0x31, 0xff, 0xff, 1, 1},
10803 {0x32, 0x20, 0x20, 0, 0},
10804 {0x33, 0, 0, 0, 0},
10805 {0x34, 0x88, 0x88, 0, 0},
10806 {0x35, 0x32, 0x32, 0, 0},
10807 {0x36, 0x77, 0x77, 0, 0},
10808 {0x37, 0x17, 0x17, 1, 1},
10809 {0x38, 0xf0, 0xf0, 1, 1},
10810 {0x39, 0x20, 0x20, 0, 0},
10811 {0x3A, 0x8, 0x8, 0, 0},
10812 {0x3B, 0x55, 0x55, 1, 1},
10813 {0x3C, 0, 0, 0, 0},
10814 {0x3D, 0x88, 0x88, 1, 1},
10815 {0x3E, 0, 0, 0, 0},
10816 {0x3F, 0x44, 0x44, 0, 0},
10817 {0x40, 0x7, 0x7, 1, 1},
10818 {0x41, 0x6, 0x6, 0, 0},
10819 {0x42, 0x4, 0x4, 0, 0},
10820 {0x43, 0, 0, 0, 0},
10821 {0x44, 0x8, 0x8, 0, 0},
10822 {0x45, 0x55, 0x55, 1, 1},
10823 {0x46, 0, 0, 0, 0},
10824 {0x47, 0x11, 0x11, 0, 0},
10825 {0x48, 0, 0, 0, 0},
10826 {0x49, 0x44, 0x44, 0, 0},
10827 {0x4A, 0x7, 0x7, 0, 0},
10828 {0x4B, 0x6, 0x6, 0, 0},
10829 {0x4C, 0x4, 0x4, 0, 0},
10830 {0x4D, 0, 0, 0, 0},
10831 {0x4E, 0, 0, 0, 0},
10832 {0x4F, 0x26, 0x26, 1, 1},
10833 {0x50, 0x26, 0x26, 1, 1},
10834 {0x51, 0xf, 0xf, 1, 1},
10835 {0x52, 0xf, 0xf, 1, 1},
10836 {0x53, 0x44, 0x44, 0, 0},
10837 {0x54, 0, 0, 0, 0},
10838 {0x55, 0, 0, 0, 0},
10839 {0x56, 0x8, 0x8, 0, 0},
10840 {0x57, 0x8, 0x8, 0, 0},
10841 {0x58, 0x7, 0x7, 0, 0},
10842 {0x59, 0x22, 0x22, 0, 0},
10843 {0x5A, 0x22, 0x22, 0, 0},
10844 {0x5B, 0x2, 0x2, 0, 0},
10845 {0x5C, 0x4, 0x4, 1, 1},
10846 {0x5D, 0x7, 0x7, 0, 0},
10847 {0x5E, 0x55, 0x55, 0, 0},
10848 {0x5F, 0x23, 0x23, 0, 0},
10849 {0x60, 0x41, 0x41, 0, 0},
10850 {0x61, 0x1, 0x1, 0, 0},
10851 {0x62, 0xa, 0xa, 0, 0},
10852 {0x63, 0, 0, 0, 0},
10853 {0x64, 0, 0, 0, 0},
10854 {0x65, 0, 0, 0, 0},
10855 {0x66, 0, 0, 0, 0},
10856 {0x67, 0, 0, 0, 0},
10857 {0x68, 0, 0, 0, 0},
10858 {0x69, 0, 0, 0, 0},
10859 {0x6A, 0, 0, 0, 0},
10860 {0x6B, 0xc, 0xc, 0, 0},
10861 {0x6C, 0, 0, 0, 0},
10862 {0x6D, 0, 0, 0, 0},
10863 {0x6E, 0, 0, 0, 0},
10864 {0x6F, 0, 0, 0, 0},
10865 {0x70, 0, 0, 0, 0},
10866 {0x71, 0, 0, 0, 0},
10867 {0x72, 0x22, 0x22, 0, 0},
10868 {0x73, 0x22, 0x22, 0, 0},
10869 {0x74, 0, 0, 1, 1},
10870 {0x75, 0xa, 0xa, 0, 0},
10871 {0x76, 0x1, 0x1, 0, 0},
10872 {0x77, 0x22, 0x22, 0, 0},
10873 {0x78, 0x30, 0x30, 0, 0},
10874 {0x79, 0, 0, 0, 0},
10875 {0x7A, 0, 0, 0, 0},
10876 {0x7B, 0, 0, 0, 0},
10877 {0x7C, 0, 0, 0, 0},
10878 {0x7D, 0x5, 0x5, 1, 1},
10879 {0x7E, 0, 0, 0, 0},
10880 {0x7F, 0, 0, 0, 0},
10881 {0x80, 0, 0, 0, 0},
10882 {0x81, 0, 0, 0, 0},
10883 {0x82, 0, 0, 0, 0},
10884 {0x83, 0, 0, 0, 0},
10885 {0x84, 0, 0, 0, 0},
10886 {0x85, 0, 0, 0, 0},
10887 {0x86, 0, 0, 0, 0},
10888 {0x87, 0, 0, 0, 0},
10889 {0x88, 0, 0, 0, 0},
10890 {0x89, 0, 0, 0, 0},
10891 {0x8A, 0, 0, 0, 0},
10892 {0x8B, 0, 0, 0, 0},
10893 {0x8C, 0, 0, 0, 0},
10894 {0x8D, 0, 0, 0, 0},
10895 {0x8E, 0, 0, 0, 0},
10896 {0x8F, 0, 0, 0, 0},
10897 {0x90, 0, 0, 0, 0},
10898 {0x91, 0, 0, 0, 0},
10899 {0x92, 0, 0, 0, 0},
10900 {0x93, 0, 0, 0, 0},
10901 {0x94, 0, 0, 0, 0},
10902 {0xFFFF, 0, 0, 0, 0},
10903};
10904
10905radio_regs_t regs_SYN_2056_rev11[] = {
10906 {0x02, 0, 0, 0, 0},
10907 {0x03, 0, 0, 0, 0},
10908 {0x04, 0, 0, 0, 0},
10909 {0x05, 0, 0, 0, 0},
10910 {0x06, 0, 0, 0, 0},
10911 {0x07, 0, 0, 0, 0},
10912 {0x08, 0, 0, 0, 0},
10913 {0x09, 0x1, 0x1, 0, 0},
10914 {0x0A, 0, 0, 0, 0},
10915 {0x0B, 0, 0, 0, 0},
10916 {0x0C, 0, 0, 0, 0},
10917 {0x0D, 0, 0, 0, 0},
10918 {0x0E, 0, 0, 0, 0},
10919 {0x0F, 0, 0, 0, 0},
10920 {0x10, 0, 0, 0, 0},
10921 {0x11, 0, 0, 0, 0},
10922 {0x12, 0, 0, 0, 0},
10923 {0x13, 0, 0, 0, 0},
10924 {0x14, 0, 0, 0, 0},
10925 {0x15, 0, 0, 0, 0},
10926 {0x16, 0, 0, 0, 0},
10927 {0x17, 0, 0, 0, 0},
10928 {0x18, 0, 0, 0, 0},
10929 {0x19, 0, 0, 0, 0},
10930 {0x1A, 0, 0, 0, 0},
10931 {0x1B, 0, 0, 0, 0},
10932 {0x1C, 0, 0, 0, 0},
10933 {0x1D, 0, 0, 0, 0},
10934 {0x1E, 0, 0, 0, 0},
10935 {0x1F, 0, 0, 0, 0},
10936 {0x20, 0, 0, 0, 0},
10937 {0x21, 0, 0, 0, 0},
10938 {0x22, 0x60, 0x60, 0, 0},
10939 {0x23, 0x6, 0x6, 0, 0},
10940 {0x24, 0xc, 0xc, 0, 0},
10941 {0x25, 0, 0, 0, 0},
10942 {0x26, 0, 0, 0, 0},
10943 {0x27, 0, 0, 0, 0},
10944 {0x28, 0x1, 0x1, 0, 0},
10945 {0x29, 0, 0, 0, 0},
10946 {0x2A, 0, 0, 0, 0},
10947 {0x2B, 0, 0, 0, 0},
10948 {0x2C, 0, 0, 0, 0},
10949 {0x2D, 0, 0, 0, 0},
10950 {0x2E, 0, 0, 0, 0},
10951 {0x2F, 0x1f, 0x1f, 0, 0},
10952 {0x30, 0x15, 0x15, 0, 0},
10953 {0x31, 0xf, 0xf, 0, 0},
10954 {0x32, 0, 0, 0, 0},
10955 {0x33, 0, 0, 0, 0},
10956 {0x34, 0, 0, 0, 0},
10957 {0x35, 0, 0, 0, 0},
10958 {0x36, 0, 0, 0, 0},
10959 {0x37, 0, 0, 0, 0},
10960 {0x38, 0, 0, 0, 0},
10961 {0x39, 0, 0, 0, 0},
10962 {0x3A, 0, 0, 0, 0},
10963 {0x3B, 0, 0, 0, 0},
10964 {0x3C, 0x13, 0x13, 0, 0},
10965 {0x3D, 0xf, 0xf, 0, 0},
10966 {0x3E, 0x18, 0x18, 0, 0},
10967 {0x3F, 0, 0, 0, 0},
10968 {0x40, 0, 0, 0, 0},
10969 {0x41, 0x20, 0x20, 0, 0},
10970 {0x42, 0x20, 0x20, 0, 0},
10971 {0x43, 0, 0, 0, 0},
10972 {0x44, 0x77, 0x77, 0, 0},
10973 {0x45, 0x7, 0x7, 0, 0},
10974 {0x46, 0x1, 0x1, 0, 0},
10975 {0x47, 0x6, 0x6, 1, 1},
10976 {0x48, 0xf, 0xf, 0, 0},
10977 {0x49, 0x3f, 0x3f, 1, 1},
10978 {0x4A, 0x32, 0x32, 0, 0},
10979 {0x4B, 0x6, 0x6, 1, 1},
10980 {0x4C, 0x6, 0x6, 1, 1},
10981 {0x4D, 0x4, 0x4, 0, 0},
10982 {0x4E, 0x2b, 0x2b, 1, 1},
10983 {0x4F, 0x1, 0x1, 0, 0},
10984 {0x50, 0x1c, 0x1c, 0, 0},
10985 {0x51, 0x2, 0x2, 0, 0},
10986 {0x52, 0x2, 0x2, 0, 0},
10987 {0x53, 0xf7, 0xf7, 1, 1},
10988 {0x54, 0xb4, 0xb4, 0, 0},
10989 {0x55, 0xd2, 0xd2, 0, 0},
10990 {0x56, 0, 0, 0, 0},
10991 {0x57, 0, 0, 0, 0},
10992 {0x58, 0x4, 0x4, 0, 0},
10993 {0x59, 0x96, 0x96, 0, 0},
10994 {0x5A, 0x3e, 0x3e, 0, 0},
10995 {0x5B, 0x3e, 0x3e, 0, 0},
10996 {0x5C, 0x13, 0x13, 0, 0},
10997 {0x5D, 0x2, 0x2, 0, 0},
10998 {0x5E, 0, 0, 0, 0},
10999 {0x5F, 0x7, 0x7, 0, 0},
11000 {0x60, 0x7, 0x7, 1, 1},
11001 {0x61, 0x8, 0x8, 0, 0},
11002 {0x62, 0x3, 0x3, 0, 0},
11003 {0x63, 0, 0, 0, 0},
11004 {0x64, 0, 0, 0, 0},
11005 {0x65, 0, 0, 0, 0},
11006 {0x66, 0, 0, 0, 0},
11007 {0x67, 0, 0, 0, 0},
11008 {0x68, 0x40, 0x40, 0, 0},
11009 {0x69, 0, 0, 0, 0},
11010 {0x6A, 0, 0, 0, 0},
11011 {0x6B, 0, 0, 0, 0},
11012 {0x6C, 0, 0, 0, 0},
11013 {0x6D, 0x1, 0x1, 0, 0},
11014 {0x6E, 0, 0, 0, 0},
11015 {0x6F, 0, 0, 0, 0},
11016 {0x70, 0x60, 0x60, 0, 0},
11017 {0x71, 0x66, 0x66, 0, 0},
11018 {0x72, 0xc, 0xc, 0, 0},
11019 {0x73, 0x66, 0x66, 0, 0},
11020 {0x74, 0x8f, 0x8f, 1, 1},
11021 {0x75, 0, 0, 0, 0},
11022 {0x76, 0xcc, 0xcc, 0, 0},
11023 {0x77, 0x1, 0x1, 0, 0},
11024 {0x78, 0x66, 0x66, 0, 0},
11025 {0x79, 0x66, 0x66, 0, 0},
11026 {0x7A, 0, 0, 0, 0},
11027 {0x7B, 0, 0, 0, 0},
11028 {0x7C, 0, 0, 0, 0},
11029 {0x7D, 0, 0, 0, 0},
11030 {0x7E, 0, 0, 0, 0},
11031 {0x7F, 0, 0, 0, 0},
11032 {0x80, 0, 0, 0, 0},
11033 {0x81, 0, 0, 0, 0},
11034 {0x82, 0, 0, 0, 0},
11035 {0x83, 0, 0, 0, 0},
11036 {0x84, 0, 0, 0, 0},
11037 {0x85, 0xff, 0xff, 0, 0},
11038 {0x86, 0, 0, 0, 0},
11039 {0x87, 0, 0, 0, 0},
11040 {0x88, 0, 0, 0, 0},
11041 {0x89, 0, 0, 0, 0},
11042 {0x8A, 0, 0, 0, 0},
11043 {0x8B, 0, 0, 0, 0},
11044 {0x8C, 0, 0, 0, 0},
11045 {0x8D, 0, 0, 0, 0},
11046 {0x8E, 0, 0, 0, 0},
11047 {0x8F, 0, 0, 0, 0},
11048 {0x90, 0, 0, 0, 0},
11049 {0x91, 0, 0, 0, 0},
11050 {0x92, 0, 0, 0, 0},
11051 {0x93, 0, 0, 0, 0},
11052 {0x94, 0, 0, 0, 0},
11053 {0x95, 0, 0, 0, 0},
11054 {0x96, 0, 0, 0, 0},
11055 {0x97, 0, 0, 0, 0},
11056 {0x98, 0, 0, 0, 0},
11057 {0x99, 0, 0, 0, 0},
11058 {0x9A, 0, 0, 0, 0},
11059 {0x9B, 0, 0, 0, 0},
11060 {0x9C, 0, 0, 0, 0},
11061 {0x9D, 0, 0, 0, 0},
11062 {0x9E, 0, 0, 0, 0},
11063 {0x9F, 0x6, 0x6, 0, 0},
11064 {0xA0, 0x66, 0x66, 0, 0},
11065 {0xA1, 0x66, 0x66, 0, 0},
11066 {0xA2, 0x66, 0x66, 0, 0},
11067 {0xA3, 0x66, 0x66, 0, 0},
11068 {0xA4, 0x66, 0x66, 0, 0},
11069 {0xA5, 0x66, 0x66, 0, 0},
11070 {0xA6, 0x66, 0x66, 0, 0},
11071 {0xA7, 0x66, 0x66, 0, 0},
11072 {0xA8, 0x66, 0x66, 0, 0},
11073 {0xA9, 0x66, 0x66, 0, 0},
11074 {0xAA, 0x66, 0x66, 0, 0},
11075 {0xAB, 0x66, 0x66, 0, 0},
11076 {0xAC, 0x66, 0x66, 0, 0},
11077 {0xAD, 0x66, 0x66, 0, 0},
11078 {0xAE, 0x66, 0x66, 0, 0},
11079 {0xAF, 0x66, 0x66, 0, 0},
11080 {0xB0, 0x66, 0x66, 0, 0},
11081 {0xB1, 0x66, 0x66, 0, 0},
11082 {0xB2, 0x66, 0x66, 0, 0},
11083 {0xB3, 0xa, 0xa, 0, 0},
11084 {0xB4, 0, 0, 0, 0},
11085 {0xB5, 0, 0, 0, 0},
11086 {0xB6, 0, 0, 0, 0},
11087 {0xFFFF, 0, 0, 0, 0},
11088};
11089
11090radio_regs_t regs_TX_2056_rev11[] = {
11091 {0x02, 0, 0, 0, 0},
11092 {0x03, 0, 0, 0, 0},
11093 {0x04, 0, 0, 0, 0},
11094 {0x05, 0, 0, 0, 0},
11095 {0x06, 0, 0, 0, 0},
11096 {0x07, 0, 0, 0, 0},
11097 {0x08, 0, 0, 0, 0},
11098 {0x09, 0, 0, 0, 0},
11099 {0x0A, 0, 0, 0, 0},
11100 {0x0B, 0, 0, 0, 0},
11101 {0x0C, 0, 0, 0, 0},
11102 {0x0D, 0, 0, 0, 0},
11103 {0x0E, 0, 0, 0, 0},
11104 {0x0F, 0, 0, 0, 0},
11105 {0x10, 0, 0, 0, 0},
11106 {0x11, 0, 0, 0, 0},
11107 {0x12, 0, 0, 0, 0},
11108 {0x13, 0, 0, 0, 0},
11109 {0x14, 0, 0, 0, 0},
11110 {0x15, 0, 0, 0, 0},
11111 {0x16, 0, 0, 0, 0},
11112 {0x17, 0, 0, 0, 0},
11113 {0x18, 0, 0, 0, 0},
11114 {0x19, 0, 0, 0, 0},
11115 {0x1A, 0, 0, 0, 0},
11116 {0x1B, 0, 0, 0, 0},
11117 {0x1C, 0, 0, 0, 0},
11118 {0x1D, 0, 0, 0, 0},
11119 {0x1E, 0, 0, 0, 0},
11120 {0x1F, 0, 0, 0, 0},
11121 {0x20, 0, 0, 0, 0},
11122 {0x21, 0x88, 0x88, 0, 0},
11123 {0x22, 0x88, 0x88, 0, 0},
11124 {0x23, 0x88, 0x88, 0, 0},
11125 {0x24, 0x88, 0x88, 0, 0},
11126 {0x25, 0xc, 0xc, 0, 0},
11127 {0x26, 0, 0, 0, 0},
11128 {0x27, 0x3, 0x3, 0, 0},
11129 {0x28, 0, 0, 0, 0},
11130 {0x29, 0x3, 0x3, 0, 0},
11131 {0x2A, 0x37, 0x37, 0, 0},
11132 {0x2B, 0x3, 0x3, 0, 0},
11133 {0x2C, 0, 0, 0, 0},
11134 {0x2D, 0, 0, 0, 0},
11135 {0x2E, 0x1, 0x1, 0, 0},
11136 {0x2F, 0x1, 0x1, 0, 0},
11137 {0x30, 0, 0, 0, 0},
11138 {0x31, 0, 0, 0, 0},
11139 {0x32, 0, 0, 0, 0},
11140 {0x33, 0x11, 0x11, 0, 0},
11141 {0x34, 0xee, 0xee, 1, 1},
11142 {0x35, 0, 0, 0, 0},
11143 {0x36, 0, 0, 0, 0},
11144 {0x37, 0x3, 0x3, 0, 0},
11145 {0x38, 0x50, 0x50, 1, 1},
11146 {0x39, 0, 0, 0, 0},
11147 {0x3A, 0x50, 0x50, 1, 1},
11148 {0x3B, 0, 0, 0, 0},
11149 {0x3C, 0x6e, 0x6e, 0, 0},
11150 {0x3D, 0xf0, 0xf0, 1, 1},
11151 {0x3E, 0, 0, 0, 0},
11152 {0x3F, 0, 0, 0, 0},
11153 {0x40, 0, 0, 0, 0},
11154 {0x41, 0x3, 0x3, 0, 0},
11155 {0x42, 0x3, 0x3, 0, 0},
11156 {0x43, 0, 0, 0, 0},
11157 {0x44, 0x1e, 0x1e, 0, 0},
11158 {0x45, 0, 0, 0, 0},
11159 {0x46, 0x6e, 0x6e, 0, 0},
11160 {0x47, 0xf0, 0xf0, 1, 1},
11161 {0x48, 0, 0, 0, 0},
11162 {0x49, 0x2, 0x2, 0, 0},
11163 {0x4A, 0xff, 0xff, 1, 1},
11164 {0x4B, 0xc, 0xc, 0, 0},
11165 {0x4C, 0, 0, 0, 0},
11166 {0x4D, 0x38, 0x38, 0, 0},
11167 {0x4E, 0x70, 0x70, 1, 1},
11168 {0x4F, 0x2, 0x2, 0, 0},
11169 {0x50, 0x88, 0x88, 0, 0},
11170 {0x51, 0xc, 0xc, 0, 0},
11171 {0x52, 0, 0, 0, 0},
11172 {0x53, 0x8, 0x8, 0, 0},
11173 {0x54, 0x70, 0x70, 1, 1},
11174 {0x55, 0x2, 0x2, 0, 0},
11175 {0x56, 0xff, 0xff, 1, 1},
11176 {0x57, 0, 0, 0, 0},
11177 {0x58, 0x83, 0x83, 0, 0},
11178 {0x59, 0x77, 0x77, 1, 1},
11179 {0x5A, 0, 0, 0, 0},
11180 {0x5B, 0x2, 0x2, 0, 0},
11181 {0x5C, 0x88, 0x88, 0, 0},
11182 {0x5D, 0, 0, 0, 0},
11183 {0x5E, 0x8, 0x8, 0, 0},
11184 {0x5F, 0x77, 0x77, 1, 1},
11185 {0x60, 0x1, 0x1, 0, 0},
11186 {0x61, 0, 0, 0, 0},
11187 {0x62, 0x7, 0x7, 0, 0},
11188 {0x63, 0, 0, 0, 0},
11189 {0x64, 0x7, 0x7, 0, 0},
11190 {0x65, 0, 0, 0, 0},
11191 {0x66, 0, 0, 0, 0},
11192 {0x67, 0, 0, 1, 1},
11193 {0x68, 0, 0, 0, 0},
11194 {0x69, 0xa, 0xa, 0, 0},
11195 {0x6A, 0, 0, 0, 0},
11196 {0x6B, 0, 0, 0, 0},
11197 {0x6C, 0, 0, 0, 0},
11198 {0x6D, 0, 0, 0, 0},
11199 {0x6E, 0, 0, 0, 0},
11200 {0x6F, 0, 0, 0, 0},
11201 {0x70, 0, 0, 0, 0},
11202 {0x71, 0x2, 0x2, 0, 0},
11203 {0x72, 0, 0, 0, 0},
11204 {0x73, 0, 0, 0, 0},
11205 {0x74, 0xe, 0xe, 0, 0},
11206 {0x75, 0xe, 0xe, 0, 0},
11207 {0x76, 0xe, 0xe, 0, 0},
11208 {0x77, 0x13, 0x13, 0, 0},
11209 {0x78, 0x13, 0x13, 0, 0},
11210 {0x79, 0x1b, 0x1b, 0, 0},
11211 {0x7A, 0x1b, 0x1b, 0, 0},
11212 {0x7B, 0x55, 0x55, 0, 0},
11213 {0x7C, 0x5b, 0x5b, 0, 0},
11214 {0x7D, 0x30, 0x30, 1, 1},
11215 {0x7E, 0, 0, 0, 0},
11216 {0x7F, 0, 0, 0, 0},
11217 {0x80, 0, 0, 0, 0},
11218 {0x81, 0, 0, 0, 0},
11219 {0x82, 0, 0, 0, 0},
11220 {0x83, 0, 0, 0, 0},
11221 {0x84, 0, 0, 0, 0},
11222 {0x85, 0, 0, 0, 0},
11223 {0x86, 0, 0, 0, 0},
11224 {0x87, 0, 0, 0, 0},
11225 {0x88, 0, 0, 0, 0},
11226 {0x89, 0, 0, 0, 0},
11227 {0x8A, 0, 0, 0, 0},
11228 {0x8B, 0, 0, 0, 0},
11229 {0x8C, 0, 0, 0, 0},
11230 {0x8D, 0, 0, 0, 0},
11231 {0x8E, 0, 0, 0, 0},
11232 {0x8F, 0, 0, 0, 0},
11233 {0x90, 0, 0, 0, 0},
11234 {0x91, 0, 0, 0, 0},
11235 {0x92, 0, 0, 0, 0},
11236 {0x93, 0x70, 0x70, 0, 0},
11237 {0x94, 0x70, 0x70, 0, 0},
11238 {0x95, 0x70, 0x70, 0, 0},
11239 {0x96, 0x70, 0x70, 0, 0},
11240 {0x97, 0x70, 0x70, 0, 0},
11241 {0x98, 0x70, 0x70, 0, 0},
11242 {0x99, 0x70, 0x70, 0, 0},
11243 {0x9A, 0x70, 0x70, 0, 0},
11244 {0xFFFF, 0, 0, 0, 0},
11245};
11246
11247radio_regs_t regs_RX_2056_rev11[] = {
11248 {0x02, 0, 0, 0, 0},
11249 {0x03, 0, 0, 0, 0},
11250 {0x04, 0, 0, 0, 0},
11251 {0x05, 0, 0, 0, 0},
11252 {0x06, 0, 0, 0, 0},
11253 {0x07, 0, 0, 0, 0},
11254 {0x08, 0, 0, 0, 0},
11255 {0x09, 0, 0, 0, 0},
11256 {0x0A, 0, 0, 0, 0},
11257 {0x0B, 0, 0, 0, 0},
11258 {0x0C, 0, 0, 0, 0},
11259 {0x0D, 0, 0, 0, 0},
11260 {0x0E, 0, 0, 0, 0},
11261 {0x0F, 0, 0, 0, 0},
11262 {0x10, 0, 0, 0, 0},
11263 {0x11, 0, 0, 0, 0},
11264 {0x12, 0, 0, 0, 0},
11265 {0x13, 0, 0, 0, 0},
11266 {0x14, 0, 0, 0, 0},
11267 {0x15, 0, 0, 0, 0},
11268 {0x16, 0, 0, 0, 0},
11269 {0x17, 0, 0, 0, 0},
11270 {0x18, 0, 0, 0, 0},
11271 {0x19, 0, 0, 0, 0},
11272 {0x1A, 0, 0, 0, 0},
11273 {0x1B, 0, 0, 0, 0},
11274 {0x1C, 0, 0, 0, 0},
11275 {0x1D, 0, 0, 0, 0},
11276 {0x1E, 0, 0, 0, 0},
11277 {0x1F, 0, 0, 0, 0},
11278 {0x20, 0x3, 0x3, 0, 0},
11279 {0x21, 0, 0, 0, 0},
11280 {0x22, 0, 0, 0, 0},
11281 {0x23, 0x90, 0x90, 0, 0},
11282 {0x24, 0x55, 0x55, 0, 0},
11283 {0x25, 0x15, 0x15, 0, 0},
11284 {0x26, 0x5, 0x5, 0, 0},
11285 {0x27, 0x15, 0x15, 0, 0},
11286 {0x28, 0x5, 0x5, 0, 0},
11287 {0x29, 0x20, 0x20, 0, 0},
11288 {0x2A, 0x11, 0x11, 0, 0},
11289 {0x2B, 0x90, 0x90, 0, 0},
11290 {0x2C, 0, 0, 0, 0},
11291 {0x2D, 0x88, 0x88, 0, 0},
11292 {0x2E, 0x32, 0x32, 0, 0},
11293 {0x2F, 0x77, 0x77, 0, 0},
11294 {0x30, 0x17, 0x17, 1, 1},
11295 {0x31, 0xff, 0xff, 1, 1},
11296 {0x32, 0x20, 0x20, 0, 0},
11297 {0x33, 0, 0, 0, 0},
11298 {0x34, 0x88, 0x88, 0, 0},
11299 {0x35, 0x32, 0x32, 0, 0},
11300 {0x36, 0x77, 0x77, 0, 0},
11301 {0x37, 0x17, 0x17, 1, 1},
11302 {0x38, 0xf0, 0xf0, 1, 1},
11303 {0x39, 0x20, 0x20, 0, 0},
11304 {0x3A, 0x8, 0x8, 0, 0},
11305 {0x3B, 0x55, 0x55, 1, 1},
11306 {0x3C, 0, 0, 0, 0},
11307 {0x3D, 0x88, 0x88, 1, 1},
11308 {0x3E, 0, 0, 0, 0},
11309 {0x3F, 0x44, 0x44, 0, 0},
11310 {0x40, 0x7, 0x7, 1, 1},
11311 {0x41, 0x6, 0x6, 0, 0},
11312 {0x42, 0x4, 0x4, 0, 0},
11313 {0x43, 0, 0, 0, 0},
11314 {0x44, 0x8, 0x8, 0, 0},
11315 {0x45, 0x55, 0x55, 1, 1},
11316 {0x46, 0, 0, 0, 0},
11317 {0x47, 0x11, 0x11, 0, 0},
11318 {0x48, 0, 0, 0, 0},
11319 {0x49, 0x44, 0x44, 0, 0},
11320 {0x4A, 0x7, 0x7, 0, 0},
11321 {0x4B, 0x6, 0x6, 0, 0},
11322 {0x4C, 0x4, 0x4, 0, 0},
11323 {0x4D, 0, 0, 0, 0},
11324 {0x4E, 0, 0, 0, 0},
11325 {0x4F, 0x26, 0x26, 1, 1},
11326 {0x50, 0x26, 0x26, 1, 1},
11327 {0x51, 0xf, 0xf, 1, 1},
11328 {0x52, 0xf, 0xf, 1, 1},
11329 {0x53, 0x44, 0x44, 0, 0},
11330 {0x54, 0, 0, 0, 0},
11331 {0x55, 0, 0, 0, 0},
11332 {0x56, 0x8, 0x8, 0, 0},
11333 {0x57, 0x8, 0x8, 0, 0},
11334 {0x58, 0x7, 0x7, 0, 0},
11335 {0x59, 0x22, 0x22, 0, 0},
11336 {0x5A, 0x22, 0x22, 0, 0},
11337 {0x5B, 0x2, 0x2, 0, 0},
11338 {0x5C, 0x4, 0x4, 1, 1},
11339 {0x5D, 0x7, 0x7, 0, 0},
11340 {0x5E, 0x55, 0x55, 0, 0},
11341 {0x5F, 0x23, 0x23, 0, 0},
11342 {0x60, 0x41, 0x41, 0, 0},
11343 {0x61, 0x1, 0x1, 0, 0},
11344 {0x62, 0xa, 0xa, 0, 0},
11345 {0x63, 0, 0, 0, 0},
11346 {0x64, 0, 0, 0, 0},
11347 {0x65, 0, 0, 0, 0},
11348 {0x66, 0, 0, 0, 0},
11349 {0x67, 0, 0, 0, 0},
11350 {0x68, 0, 0, 0, 0},
11351 {0x69, 0, 0, 0, 0},
11352 {0x6A, 0, 0, 0, 0},
11353 {0x6B, 0xc, 0xc, 0, 0},
11354 {0x6C, 0, 0, 0, 0},
11355 {0x6D, 0, 0, 0, 0},
11356 {0x6E, 0, 0, 0, 0},
11357 {0x6F, 0, 0, 0, 0},
11358 {0x70, 0, 0, 0, 0},
11359 {0x71, 0, 0, 0, 0},
11360 {0x72, 0x22, 0x22, 0, 0},
11361 {0x73, 0x22, 0x22, 0, 0},
11362 {0x74, 0, 0, 1, 1},
11363 {0x75, 0xa, 0xa, 0, 0},
11364 {0x76, 0x1, 0x1, 0, 0},
11365 {0x77, 0x22, 0x22, 0, 0},
11366 {0x78, 0x30, 0x30, 0, 0},
11367 {0x79, 0, 0, 0, 0},
11368 {0x7A, 0, 0, 0, 0},
11369 {0x7B, 0, 0, 0, 0},
11370 {0x7C, 0, 0, 0, 0},
11371 {0x7D, 0x5, 0x5, 1, 1},
11372 {0x7E, 0, 0, 0, 0},
11373 {0x7F, 0, 0, 0, 0},
11374 {0x80, 0, 0, 0, 0},
11375 {0x81, 0, 0, 0, 0},
11376 {0x82, 0, 0, 0, 0},
11377 {0x83, 0, 0, 0, 0},
11378 {0x84, 0, 0, 0, 0},
11379 {0x85, 0, 0, 0, 0},
11380 {0x86, 0, 0, 0, 0},
11381 {0x87, 0, 0, 0, 0},
11382 {0x88, 0, 0, 0, 0},
11383 {0x89, 0, 0, 0, 0},
11384 {0x8A, 0, 0, 0, 0},
11385 {0x8B, 0, 0, 0, 0},
11386 {0x8C, 0, 0, 0, 0},
11387 {0x8D, 0, 0, 0, 0},
11388 {0x8E, 0, 0, 0, 0},
11389 {0x8F, 0, 0, 0, 0},
11390 {0x90, 0, 0, 0, 0},
11391 {0x91, 0, 0, 0, 0},
11392 {0x92, 0, 0, 0, 0},
11393 {0x93, 0, 0, 0, 0},
11394 {0x94, 0, 0, 0, 0},
11395 {0xFFFF, 0, 0, 0, 0},
11396};
11397
11398radio_20xx_regs_t regs_2057_rev4[] = {
11399 {0x00, 0x84, 0},
11400 {0x01, 0, 0},
11401 {0x02, 0x60, 0},
11402 {0x03, 0x1f, 0},
11403 {0x04, 0x4, 0},
11404 {0x05, 0x2, 0},
11405 {0x06, 0x1, 0},
11406 {0x07, 0x1, 0},
11407 {0x08, 0x1, 0},
11408 {0x09, 0x69, 0},
11409 {0x0A, 0x66, 0},
11410 {0x0B, 0x6, 0},
11411 {0x0C, 0x18, 0},
11412 {0x0D, 0x3, 0},
11413 {0x0E, 0x20, 1},
11414 {0x0F, 0x20, 0},
11415 {0x10, 0, 0},
11416 {0x11, 0x7c, 0},
11417 {0x12, 0x42, 0},
11418 {0x13, 0xbd, 0},
11419 {0x14, 0x7, 0},
11420 {0x15, 0xf7, 0},
11421 {0x16, 0x8, 0},
11422 {0x17, 0x17, 0},
11423 {0x18, 0x7, 0},
11424 {0x19, 0, 0},
11425 {0x1A, 0x2, 0},
11426 {0x1B, 0x13, 0},
11427 {0x1C, 0x3e, 0},
11428 {0x1D, 0x3e, 0},
11429 {0x1E, 0x96, 0},
11430 {0x1F, 0x4, 0},
11431 {0x20, 0, 0},
11432 {0x21, 0, 0},
11433 {0x22, 0x17, 0},
11434 {0x23, 0x4, 0},
11435 {0x24, 0x1, 0},
11436 {0x25, 0x6, 0},
11437 {0x26, 0x4, 0},
11438 {0x27, 0xd, 0},
11439 {0x28, 0xd, 0},
11440 {0x29, 0x30, 0},
11441 {0x2A, 0x32, 0},
11442 {0x2B, 0x8, 0},
11443 {0x2C, 0x1c, 0},
11444 {0x2D, 0x2, 0},
11445 {0x2E, 0x4, 0},
11446 {0x2F, 0x7f, 0},
11447 {0x30, 0x27, 0},
11448 {0x31, 0, 1},
11449 {0x32, 0, 1},
11450 {0x33, 0, 1},
11451 {0x34, 0, 0},
11452 {0x35, 0x26, 1},
11453 {0x36, 0x18, 0},
11454 {0x37, 0x7, 0},
11455 {0x38, 0x66, 0},
11456 {0x39, 0x66, 0},
11457 {0x3A, 0x66, 0},
11458 {0x3B, 0x66, 0},
11459 {0x3C, 0xff, 1},
11460 {0x3D, 0xff, 1},
11461 {0x3E, 0xff, 1},
11462 {0x3F, 0xff, 1},
11463 {0x40, 0x16, 0},
11464 {0x41, 0x7, 0},
11465 {0x42, 0x19, 0},
11466 {0x43, 0x7, 0},
11467 {0x44, 0x6, 0},
11468 {0x45, 0x3, 0},
11469 {0x46, 0x1, 0},
11470 {0x47, 0x7, 0},
11471 {0x48, 0x33, 0},
11472 {0x49, 0x5, 0},
11473 {0x4A, 0x77, 0},
11474 {0x4B, 0x66, 0},
11475 {0x4C, 0x66, 0},
11476 {0x4D, 0, 0},
11477 {0x4E, 0x4, 0},
11478 {0x4F, 0xc, 0},
11479 {0x50, 0, 0},
11480 {0x51, 0x75, 0},
11481 {0x56, 0x7, 0},
11482 {0x57, 0, 0},
11483 {0x58, 0, 0},
11484 {0x59, 0xa8, 0},
11485 {0x5A, 0, 0},
11486 {0x5B, 0x1f, 0},
11487 {0x5C, 0x30, 0},
11488 {0x5D, 0x1, 0},
11489 {0x5E, 0x30, 0},
11490 {0x5F, 0x70, 0},
11491 {0x60, 0, 0},
11492 {0x61, 0, 0},
11493 {0x62, 0x33, 1},
11494 {0x63, 0x19, 0},
11495 {0x64, 0x62, 0},
11496 {0x65, 0, 0},
11497 {0x66, 0x11, 0},
11498 {0x69, 0, 0},
11499 {0x6A, 0x7e, 0},
11500 {0x6B, 0x3f, 0},
11501 {0x6C, 0x7f, 0},
11502 {0x6D, 0x78, 0},
11503 {0x6E, 0xc8, 0},
11504 {0x6F, 0x88, 0},
11505 {0x70, 0x8, 0},
11506 {0x71, 0xf, 0},
11507 {0x72, 0xbc, 0},
11508 {0x73, 0x8, 0},
11509 {0x74, 0x60, 0},
11510 {0x75, 0x1e, 0},
11511 {0x76, 0x70, 0},
11512 {0x77, 0, 0},
11513 {0x78, 0, 0},
11514 {0x79, 0, 0},
11515 {0x7A, 0x33, 0},
11516 {0x7B, 0x1e, 0},
11517 {0x7C, 0x62, 0},
11518 {0x7D, 0x11, 0},
11519 {0x80, 0x3c, 0},
11520 {0x81, 0x9c, 0},
11521 {0x82, 0xa, 0},
11522 {0x83, 0x9d, 0},
11523 {0x84, 0xa, 0},
11524 {0x85, 0, 0},
11525 {0x86, 0x40, 0},
11526 {0x87, 0x40, 0},
11527 {0x88, 0x88, 0},
11528 {0x89, 0x10, 0},
11529 {0x8A, 0xf0, 1},
11530 {0x8B, 0x10, 1},
11531 {0x8C, 0xf0, 1},
11532 {0x8D, 0, 0},
11533 {0x8E, 0, 0},
11534 {0x8F, 0x10, 0},
11535 {0x90, 0x55, 0},
11536 {0x91, 0x3f, 1},
11537 {0x92, 0x36, 1},
11538 {0x93, 0, 0},
11539 {0x94, 0, 0},
11540 {0x95, 0, 0},
11541 {0x96, 0x87, 0},
11542 {0x97, 0x11, 0},
11543 {0x98, 0, 0},
11544 {0x99, 0x33, 0},
11545 {0x9A, 0x88, 0},
11546 {0x9B, 0, 0},
11547 {0x9C, 0x87, 0},
11548 {0x9D, 0x11, 0},
11549 {0x9E, 0, 0},
11550 {0x9F, 0x33, 0},
11551 {0xA0, 0x88, 0},
11552 {0xA1, 0xe1, 0},
11553 {0xA2, 0x3f, 0},
11554 {0xA3, 0x44, 0},
11555 {0xA4, 0x8c, 1},
11556 {0xA5, 0x6d, 0},
11557 {0xA6, 0x22, 0},
11558 {0xA7, 0xbe, 0},
11559 {0xA8, 0x55, 1},
11560 {0xA9, 0xc, 0},
11561 {0xAA, 0xc, 0},
11562 {0xAB, 0xaa, 0},
11563 {0xAC, 0x2, 0},
11564 {0xAD, 0, 0},
11565 {0xAE, 0x10, 0},
11566 {0xAF, 0x1, 1},
11567 {0xB0, 0, 0},
11568 {0xB1, 0, 0},
11569 {0xB2, 0x80, 0},
11570 {0xB3, 0x60, 0},
11571 {0xB4, 0x44, 0},
11572 {0xB5, 0x55, 0},
11573 {0xB6, 0x1, 0},
11574 {0xB7, 0x55, 0},
11575 {0xB8, 0x1, 0},
11576 {0xB9, 0x5, 0},
11577 {0xBA, 0x55, 0},
11578 {0xBB, 0x55, 0},
11579 {0xC1, 0, 0},
11580 {0xC2, 0, 0},
11581 {0xC3, 0, 0},
11582 {0xC4, 0, 0},
11583 {0xC5, 0, 0},
11584 {0xC6, 0, 0},
11585 {0xC7, 0, 0},
11586 {0xC8, 0, 0},
11587 {0xC9, 0, 0},
11588 {0xCA, 0, 0},
11589 {0xCB, 0, 0},
11590 {0xCC, 0, 0},
11591 {0xCD, 0, 0},
11592 {0xCE, 0x5e, 0},
11593 {0xCF, 0xc, 0},
11594 {0xD0, 0xc, 0},
11595 {0xD1, 0xc, 0},
11596 {0xD2, 0, 0},
11597 {0xD3, 0x2b, 0},
11598 {0xD4, 0xc, 0},
11599 {0xD5, 0, 0},
11600 {0xD6, 0x75, 0},
11601 {0xDB, 0x7, 0},
11602 {0xDC, 0, 0},
11603 {0xDD, 0, 0},
11604 {0xDE, 0xa8, 0},
11605 {0xDF, 0, 0},
11606 {0xE0, 0x1f, 0},
11607 {0xE1, 0x30, 0},
11608 {0xE2, 0x1, 0},
11609 {0xE3, 0x30, 0},
11610 {0xE4, 0x70, 0},
11611 {0xE5, 0, 0},
11612 {0xE6, 0, 0},
11613 {0xE7, 0x33, 0},
11614 {0xE8, 0x19, 0},
11615 {0xE9, 0x62, 0},
11616 {0xEA, 0, 0},
11617 {0xEB, 0x11, 0},
11618 {0xEE, 0, 0},
11619 {0xEF, 0x7e, 0},
11620 {0xF0, 0x3f, 0},
11621 {0xF1, 0x7f, 0},
11622 {0xF2, 0x78, 0},
11623 {0xF3, 0xc8, 0},
11624 {0xF4, 0x88, 0},
11625 {0xF5, 0x8, 0},
11626 {0xF6, 0xf, 0},
11627 {0xF7, 0xbc, 0},
11628 {0xF8, 0x8, 0},
11629 {0xF9, 0x60, 0},
11630 {0xFA, 0x1e, 0},
11631 {0xFB, 0x70, 0},
11632 {0xFC, 0, 0},
11633 {0xFD, 0, 0},
11634 {0xFE, 0, 0},
11635 {0xFF, 0x33, 0},
11636 {0x100, 0x1e, 0},
11637 {0x101, 0x62, 0},
11638 {0x102, 0x11, 0},
11639 {0x105, 0x3c, 0},
11640 {0x106, 0x9c, 0},
11641 {0x107, 0xa, 0},
11642 {0x108, 0x9d, 0},
11643 {0x109, 0xa, 0},
11644 {0x10A, 0, 0},
11645 {0x10B, 0x40, 0},
11646 {0x10C, 0x40, 0},
11647 {0x10D, 0x88, 0},
11648 {0x10E, 0x10, 0},
11649 {0x10F, 0xf0, 1},
11650 {0x110, 0x10, 1},
11651 {0x111, 0xf0, 1},
11652 {0x112, 0, 0},
11653 {0x113, 0, 0},
11654 {0x114, 0x10, 0},
11655 {0x115, 0x55, 0},
11656 {0x116, 0x3f, 1},
11657 {0x117, 0x36, 1},
11658 {0x118, 0, 0},
11659 {0x119, 0, 0},
11660 {0x11A, 0, 0},
11661 {0x11B, 0x87, 0},
11662 {0x11C, 0x11, 0},
11663 {0x11D, 0, 0},
11664 {0x11E, 0x33, 0},
11665 {0x11F, 0x88, 0},
11666 {0x120, 0, 0},
11667 {0x121, 0x87, 0},
11668 {0x122, 0x11, 0},
11669 {0x123, 0, 0},
11670 {0x124, 0x33, 0},
11671 {0x125, 0x88, 0},
11672 {0x126, 0xe1, 0},
11673 {0x127, 0x3f, 0},
11674 {0x128, 0x44, 0},
11675 {0x129, 0x8c, 1},
11676 {0x12A, 0x6d, 0},
11677 {0x12B, 0x22, 0},
11678 {0x12C, 0xbe, 0},
11679 {0x12D, 0x55, 1},
11680 {0x12E, 0xc, 0},
11681 {0x12F, 0xc, 0},
11682 {0x130, 0xaa, 0},
11683 {0x131, 0x2, 0},
11684 {0x132, 0, 0},
11685 {0x133, 0x10, 0},
11686 {0x134, 0x1, 1},
11687 {0x135, 0, 0},
11688 {0x136, 0, 0},
11689 {0x137, 0x80, 0},
11690 {0x138, 0x60, 0},
11691 {0x139, 0x44, 0},
11692 {0x13A, 0x55, 0},
11693 {0x13B, 0x1, 0},
11694 {0x13C, 0x55, 0},
11695 {0x13D, 0x1, 0},
11696 {0x13E, 0x5, 0},
11697 {0x13F, 0x55, 0},
11698 {0x140, 0x55, 0},
11699 {0x146, 0, 0},
11700 {0x147, 0, 0},
11701 {0x148, 0, 0},
11702 {0x149, 0, 0},
11703 {0x14A, 0, 0},
11704 {0x14B, 0, 0},
11705 {0x14C, 0, 0},
11706 {0x14D, 0, 0},
11707 {0x14E, 0, 0},
11708 {0x14F, 0, 0},
11709 {0x150, 0, 0},
11710 {0x151, 0, 0},
11711 {0x152, 0, 0},
11712 {0x153, 0, 0},
11713 {0x154, 0xc, 0},
11714 {0x155, 0xc, 0},
11715 {0x156, 0xc, 0},
11716 {0x157, 0, 0},
11717 {0x158, 0x2b, 0},
11718 {0x159, 0x84, 0},
11719 {0x15A, 0x15, 0},
11720 {0x15B, 0xf, 0},
11721 {0x15C, 0, 0},
11722 {0x15D, 0, 0},
11723 {0x15E, 0, 1},
11724 {0x15F, 0, 1},
11725 {0x160, 0, 1},
11726 {0x161, 0, 1},
11727 {0x162, 0, 1},
11728 {0x163, 0, 1},
11729 {0x164, 0, 0},
11730 {0x165, 0, 0},
11731 {0x166, 0, 0},
11732 {0x167, 0, 0},
11733 {0x168, 0, 0},
11734 {0x169, 0x2, 1},
11735 {0x16A, 0, 1},
11736 {0x16B, 0, 1},
11737 {0x16C, 0, 1},
11738 {0x16D, 0, 0},
11739 {0x170, 0, 0},
11740 {0x171, 0x77, 0},
11741 {0x172, 0x77, 0},
11742 {0x173, 0x77, 0},
11743 {0x174, 0x77, 0},
11744 {0x175, 0, 0},
11745 {0x176, 0x3, 0},
11746 {0x177, 0x37, 0},
11747 {0x178, 0x3, 0},
11748 {0x179, 0, 0},
11749 {0x17A, 0x21, 0},
11750 {0x17B, 0x21, 0},
11751 {0x17C, 0, 0},
11752 {0x17D, 0xaa, 0},
11753 {0x17E, 0, 0},
11754 {0x17F, 0xaa, 0},
11755 {0x180, 0, 0},
11756 {0x190, 0, 0},
11757 {0x191, 0x77, 0},
11758 {0x192, 0x77, 0},
11759 {0x193, 0x77, 0},
11760 {0x194, 0x77, 0},
11761 {0x195, 0, 0},
11762 {0x196, 0x3, 0},
11763 {0x197, 0x37, 0},
11764 {0x198, 0x3, 0},
11765 {0x199, 0, 0},
11766 {0x19A, 0x21, 0},
11767 {0x19B, 0x21, 0},
11768 {0x19C, 0, 0},
11769 {0x19D, 0xaa, 0},
11770 {0x19E, 0, 0},
11771 {0x19F, 0xaa, 0},
11772 {0x1A0, 0, 0},
11773 {0x1A1, 0x2, 0},
11774 {0x1A2, 0xf, 0},
11775 {0x1A3, 0xf, 0},
11776 {0x1A4, 0, 1},
11777 {0x1A5, 0, 1},
11778 {0x1A6, 0, 1},
11779 {0x1A7, 0x2, 0},
11780 {0x1A8, 0xf, 0},
11781 {0x1A9, 0xf, 0},
11782 {0x1AA, 0, 1},
11783 {0x1AB, 0, 1},
11784 {0x1AC, 0, 1},
11785 {0xFFFF, 0, 0},
11786};
11787
11788radio_20xx_regs_t regs_2057_rev5[] = {
11789 {0x00, 0, 1},
11790 {0x01, 0x57, 1},
11791 {0x02, 0x20, 1},
11792 {0x03, 0x1f, 0},
11793 {0x04, 0x4, 0},
11794 {0x05, 0x2, 0},
11795 {0x06, 0x1, 0},
11796 {0x07, 0x1, 0},
11797 {0x08, 0x1, 0},
11798 {0x09, 0x69, 0},
11799 {0x0A, 0x66, 0},
11800 {0x0B, 0x6, 0},
11801 {0x0C, 0x18, 0},
11802 {0x0D, 0x3, 0},
11803 {0x0E, 0x20, 0},
11804 {0x0F, 0x20, 0},
11805 {0x10, 0, 0},
11806 {0x11, 0x7c, 0},
11807 {0x12, 0x42, 0},
11808 {0x13, 0xbd, 0},
11809 {0x14, 0x7, 0},
11810 {0x15, 0x87, 0},
11811 {0x16, 0x8, 0},
11812 {0x17, 0x17, 0},
11813 {0x18, 0x7, 0},
11814 {0x19, 0, 0},
11815 {0x1A, 0x2, 0},
11816 {0x1B, 0x13, 0},
11817 {0x1C, 0x3e, 0},
11818 {0x1D, 0x3e, 0},
11819 {0x1E, 0x96, 0},
11820 {0x1F, 0x4, 0},
11821 {0x20, 0, 0},
11822 {0x21, 0, 0},
11823 {0x22, 0x17, 0},
11824 {0x23, 0x6, 1},
11825 {0x24, 0x1, 0},
11826 {0x25, 0x6, 0},
11827 {0x26, 0x4, 0},
11828 {0x27, 0xd, 0},
11829 {0x28, 0xd, 0},
11830 {0x29, 0x30, 0},
11831 {0x2A, 0x32, 0},
11832 {0x2B, 0x8, 0},
11833 {0x2C, 0x1c, 0},
11834 {0x2D, 0x2, 0},
11835 {0x2E, 0x4, 0},
11836 {0x2F, 0x7f, 0},
11837 {0x30, 0x27, 0},
11838 {0x31, 0, 1},
11839 {0x32, 0, 1},
11840 {0x33, 0, 1},
11841 {0x34, 0, 0},
11842 {0x35, 0x20, 0},
11843 {0x36, 0x18, 0},
11844 {0x37, 0x7, 0},
11845 {0x38, 0x66, 0},
11846 {0x39, 0x66, 0},
11847 {0x3C, 0xff, 0},
11848 {0x3D, 0xff, 0},
11849 {0x40, 0x16, 0},
11850 {0x41, 0x7, 0},
11851 {0x45, 0x3, 0},
11852 {0x46, 0x1, 0},
11853 {0x47, 0x7, 0},
11854 {0x4B, 0x66, 0},
11855 {0x4C, 0x66, 0},
11856 {0x4D, 0, 0},
11857 {0x4E, 0x4, 0},
11858 {0x4F, 0xc, 0},
11859 {0x50, 0, 0},
11860 {0x51, 0x70, 1},
11861 {0x56, 0x7, 0},
11862 {0x57, 0, 0},
11863 {0x58, 0, 0},
11864 {0x59, 0x88, 1},
11865 {0x5A, 0, 0},
11866 {0x5B, 0x1f, 0},
11867 {0x5C, 0x20, 1},
11868 {0x5D, 0x1, 0},
11869 {0x5E, 0x30, 0},
11870 {0x5F, 0x70, 0},
11871 {0x60, 0, 0},
11872 {0x61, 0, 0},
11873 {0x62, 0x33, 1},
11874 {0x63, 0xf, 1},
11875 {0x64, 0xf, 1},
11876 {0x65, 0, 0},
11877 {0x66, 0x11, 0},
11878 {0x80, 0x3c, 0},
11879 {0x81, 0x1, 1},
11880 {0x82, 0xa, 0},
11881 {0x85, 0, 0},
11882 {0x86, 0x40, 0},
11883 {0x87, 0x40, 0},
11884 {0x88, 0x88, 0},
11885 {0x89, 0x10, 0},
11886 {0x8A, 0xf0, 0},
11887 {0x8B, 0x10, 0},
11888 {0x8C, 0xf0, 0},
11889 {0x8F, 0x10, 0},
11890 {0x90, 0x55, 0},
11891 {0x91, 0x3f, 1},
11892 {0x92, 0x36, 1},
11893 {0x93, 0, 0},
11894 {0x94, 0, 0},
11895 {0x95, 0, 0},
11896 {0x96, 0x87, 0},
11897 {0x97, 0x11, 0},
11898 {0x98, 0, 0},
11899 {0x99, 0x33, 0},
11900 {0x9A, 0x88, 0},
11901 {0xA1, 0x20, 1},
11902 {0xA2, 0x3f, 0},
11903 {0xA3, 0x44, 0},
11904 {0xA4, 0x8c, 0},
11905 {0xA5, 0x6c, 0},
11906 {0xA6, 0x22, 0},
11907 {0xA7, 0xbe, 0},
11908 {0xA8, 0x55, 0},
11909 {0xAA, 0xc, 0},
11910 {0xAB, 0xaa, 0},
11911 {0xAC, 0x2, 0},
11912 {0xAD, 0, 0},
11913 {0xAE, 0x10, 0},
11914 {0xAF, 0x1, 0},
11915 {0xB0, 0, 0},
11916 {0xB1, 0, 0},
11917 {0xB2, 0x80, 0},
11918 {0xB3, 0x60, 0},
11919 {0xB4, 0x44, 0},
11920 {0xB5, 0x55, 0},
11921 {0xB6, 0x1, 0},
11922 {0xB7, 0x55, 0},
11923 {0xB8, 0x1, 0},
11924 {0xB9, 0x5, 0},
11925 {0xBA, 0x55, 0},
11926 {0xBB, 0x55, 0},
11927 {0xC3, 0, 0},
11928 {0xC4, 0, 0},
11929 {0xC5, 0, 0},
11930 {0xC6, 0, 0},
11931 {0xC7, 0, 0},
11932 {0xC8, 0, 0},
11933 {0xC9, 0, 0},
11934 {0xCA, 0, 0},
11935 {0xCB, 0, 0},
11936 {0xCD, 0, 0},
11937 {0xCE, 0x5e, 0},
11938 {0xCF, 0xc, 0},
11939 {0xD0, 0xc, 0},
11940 {0xD1, 0xc, 0},
11941 {0xD2, 0, 0},
11942 {0xD3, 0x2b, 0},
11943 {0xD4, 0xc, 0},
11944 {0xD5, 0, 0},
11945 {0xD6, 0x70, 1},
11946 {0xDB, 0x7, 0},
11947 {0xDC, 0, 0},
11948 {0xDD, 0, 0},
11949 {0xDE, 0x88, 1},
11950 {0xDF, 0, 0},
11951 {0xE0, 0x1f, 0},
11952 {0xE1, 0x20, 1},
11953 {0xE2, 0x1, 0},
11954 {0xE3, 0x30, 0},
11955 {0xE4, 0x70, 0},
11956 {0xE5, 0, 0},
11957 {0xE6, 0, 0},
11958 {0xE7, 0x33, 0},
11959 {0xE8, 0xf, 1},
11960 {0xE9, 0xf, 1},
11961 {0xEA, 0, 0},
11962 {0xEB, 0x11, 0},
11963 {0x105, 0x3c, 0},
11964 {0x106, 0x1, 1},
11965 {0x107, 0xa, 0},
11966 {0x10A, 0, 0},
11967 {0x10B, 0x40, 0},
11968 {0x10C, 0x40, 0},
11969 {0x10D, 0x88, 0},
11970 {0x10E, 0x10, 0},
11971 {0x10F, 0xf0, 0},
11972 {0x110, 0x10, 0},
11973 {0x111, 0xf0, 0},
11974 {0x114, 0x10, 0},
11975 {0x115, 0x55, 0},
11976 {0x116, 0x3f, 1},
11977 {0x117, 0x36, 1},
11978 {0x118, 0, 0},
11979 {0x119, 0, 0},
11980 {0x11A, 0, 0},
11981 {0x11B, 0x87, 0},
11982 {0x11C, 0x11, 0},
11983 {0x11D, 0, 0},
11984 {0x11E, 0x33, 0},
11985 {0x11F, 0x88, 0},
11986 {0x126, 0x20, 1},
11987 {0x127, 0x3f, 0},
11988 {0x128, 0x44, 0},
11989 {0x129, 0x8c, 0},
11990 {0x12A, 0x6c, 0},
11991 {0x12B, 0x22, 0},
11992 {0x12C, 0xbe, 0},
11993 {0x12D, 0x55, 0},
11994 {0x12F, 0xc, 0},
11995 {0x130, 0xaa, 0},
11996 {0x131, 0x2, 0},
11997 {0x132, 0, 0},
11998 {0x133, 0x10, 0},
11999 {0x134, 0x1, 0},
12000 {0x135, 0, 0},
12001 {0x136, 0, 0},
12002 {0x137, 0x80, 0},
12003 {0x138, 0x60, 0},
12004 {0x139, 0x44, 0},
12005 {0x13A, 0x55, 0},
12006 {0x13B, 0x1, 0},
12007 {0x13C, 0x55, 0},
12008 {0x13D, 0x1, 0},
12009 {0x13E, 0x5, 0},
12010 {0x13F, 0x55, 0},
12011 {0x140, 0x55, 0},
12012 {0x148, 0, 0},
12013 {0x149, 0, 0},
12014 {0x14A, 0, 0},
12015 {0x14B, 0, 0},
12016 {0x14C, 0, 0},
12017 {0x14D, 0, 0},
12018 {0x14E, 0, 0},
12019 {0x14F, 0, 0},
12020 {0x150, 0, 0},
12021 {0x154, 0xc, 0},
12022 {0x155, 0xc, 0},
12023 {0x156, 0xc, 0},
12024 {0x157, 0, 0},
12025 {0x158, 0x2b, 0},
12026 {0x159, 0x84, 0},
12027 {0x15A, 0x15, 0},
12028 {0x15B, 0xf, 0},
12029 {0x15C, 0, 0},
12030 {0x15D, 0, 0},
12031 {0x15E, 0, 1},
12032 {0x15F, 0, 1},
12033 {0x160, 0, 1},
12034 {0x161, 0, 1},
12035 {0x162, 0, 1},
12036 {0x163, 0, 1},
12037 {0x164, 0, 0},
12038 {0x165, 0, 0},
12039 {0x166, 0, 0},
12040 {0x167, 0, 0},
12041 {0x168, 0, 0},
12042 {0x169, 0, 0},
12043 {0x16A, 0, 1},
12044 {0x16B, 0, 1},
12045 {0x16C, 0, 1},
12046 {0x16D, 0, 0},
12047 {0x170, 0, 0},
12048 {0x171, 0x77, 0},
12049 {0x172, 0x77, 0},
12050 {0x173, 0x77, 0},
12051 {0x174, 0x77, 0},
12052 {0x175, 0, 0},
12053 {0x176, 0x3, 0},
12054 {0x177, 0x37, 0},
12055 {0x178, 0x3, 0},
12056 {0x179, 0, 0},
12057 {0x17B, 0x21, 0},
12058 {0x17C, 0, 0},
12059 {0x17D, 0xaa, 0},
12060 {0x17E, 0, 0},
12061 {0x190, 0, 0},
12062 {0x191, 0x77, 0},
12063 {0x192, 0x77, 0},
12064 {0x193, 0x77, 0},
12065 {0x194, 0x77, 0},
12066 {0x195, 0, 0},
12067 {0x196, 0x3, 0},
12068 {0x197, 0x37, 0},
12069 {0x198, 0x3, 0},
12070 {0x199, 0, 0},
12071 {0x19B, 0x21, 0},
12072 {0x19C, 0, 0},
12073 {0x19D, 0xaa, 0},
12074 {0x19E, 0, 0},
12075 {0x1A1, 0x2, 0},
12076 {0x1A2, 0xf, 0},
12077 {0x1A3, 0xf, 0},
12078 {0x1A4, 0, 1},
12079 {0x1A5, 0, 1},
12080 {0x1A6, 0, 1},
12081 {0x1A7, 0x2, 0},
12082 {0x1A8, 0xf, 0},
12083 {0x1A9, 0xf, 0},
12084 {0x1AA, 0, 1},
12085 {0x1AB, 0, 1},
12086 {0x1AC, 0, 1},
12087 {0x1AD, 0x84, 0},
12088 {0x1AE, 0x60, 0},
12089 {0x1AF, 0x47, 0},
12090 {0x1B0, 0x47, 0},
12091 {0x1B1, 0, 0},
12092 {0x1B2, 0, 0},
12093 {0x1B3, 0, 0},
12094 {0x1B4, 0, 0},
12095 {0x1B5, 0, 0},
12096 {0x1B6, 0, 0},
12097 {0x1B7, 0xc, 1},
12098 {0x1B8, 0, 0},
12099 {0x1B9, 0, 0},
12100 {0x1BA, 0, 0},
12101 {0x1BB, 0, 0},
12102 {0x1BC, 0, 0},
12103 {0x1BD, 0, 0},
12104 {0x1BE, 0, 0},
12105 {0x1BF, 0, 0},
12106 {0x1C0, 0, 0},
12107 {0x1C1, 0x1, 1},
12108 {0x1C2, 0x80, 1},
12109 {0x1C3, 0, 0},
12110 {0x1C4, 0, 0},
12111 {0x1C5, 0, 0},
12112 {0x1C6, 0, 0},
12113 {0x1C7, 0, 0},
12114 {0x1C8, 0, 0},
12115 {0x1C9, 0, 0},
12116 {0x1CA, 0, 0},
12117 {0xFFFF, 0, 0}
12118};
12119
12120radio_20xx_regs_t regs_2057_rev5v1[] = {
12121 {0x00, 0x15, 1},
12122 {0x01, 0x57, 1},
12123 {0x02, 0x20, 1},
12124 {0x03, 0x1f, 0},
12125 {0x04, 0x4, 0},
12126 {0x05, 0x2, 0},
12127 {0x06, 0x1, 0},
12128 {0x07, 0x1, 0},
12129 {0x08, 0x1, 0},
12130 {0x09, 0x69, 0},
12131 {0x0A, 0x66, 0},
12132 {0x0B, 0x6, 0},
12133 {0x0C, 0x18, 0},
12134 {0x0D, 0x3, 0},
12135 {0x0E, 0x20, 0},
12136 {0x0F, 0x20, 0},
12137 {0x10, 0, 0},
12138 {0x11, 0x7c, 0},
12139 {0x12, 0x42, 0},
12140 {0x13, 0xbd, 0},
12141 {0x14, 0x7, 0},
12142 {0x15, 0x87, 0},
12143 {0x16, 0x8, 0},
12144 {0x17, 0x17, 0},
12145 {0x18, 0x7, 0},
12146 {0x19, 0, 0},
12147 {0x1A, 0x2, 0},
12148 {0x1B, 0x13, 0},
12149 {0x1C, 0x3e, 0},
12150 {0x1D, 0x3e, 0},
12151 {0x1E, 0x96, 0},
12152 {0x1F, 0x4, 0},
12153 {0x20, 0, 0},
12154 {0x21, 0, 0},
12155 {0x22, 0x17, 0},
12156 {0x23, 0x6, 1},
12157 {0x24, 0x1, 0},
12158 {0x25, 0x6, 0},
12159 {0x26, 0x4, 0},
12160 {0x27, 0xd, 0},
12161 {0x28, 0xd, 0},
12162 {0x29, 0x30, 0},
12163 {0x2A, 0x32, 0},
12164 {0x2B, 0x8, 0},
12165 {0x2C, 0x1c, 0},
12166 {0x2D, 0x2, 0},
12167 {0x2E, 0x4, 0},
12168 {0x2F, 0x7f, 0},
12169 {0x30, 0x27, 0},
12170 {0x31, 0, 1},
12171 {0x32, 0, 1},
12172 {0x33, 0, 1},
12173 {0x34, 0, 0},
12174 {0x35, 0x20, 0},
12175 {0x36, 0x18, 0},
12176 {0x37, 0x7, 0},
12177 {0x38, 0x66, 0},
12178 {0x39, 0x66, 0},
12179 {0x3C, 0xff, 0},
12180 {0x3D, 0xff, 0},
12181 {0x40, 0x16, 0},
12182 {0x41, 0x7, 0},
12183 {0x45, 0x3, 0},
12184 {0x46, 0x1, 0},
12185 {0x47, 0x7, 0},
12186 {0x4B, 0x66, 0},
12187 {0x4C, 0x66, 0},
12188 {0x4D, 0, 0},
12189 {0x4E, 0x4, 0},
12190 {0x4F, 0xc, 0},
12191 {0x50, 0, 0},
12192 {0x51, 0x70, 1},
12193 {0x56, 0x7, 0},
12194 {0x57, 0, 0},
12195 {0x58, 0, 0},
12196 {0x59, 0x88, 1},
12197 {0x5A, 0, 0},
12198 {0x5B, 0x1f, 0},
12199 {0x5C, 0x20, 1},
12200 {0x5D, 0x1, 0},
12201 {0x5E, 0x30, 0},
12202 {0x5F, 0x70, 0},
12203 {0x60, 0, 0},
12204 {0x61, 0, 0},
12205 {0x62, 0x33, 1},
12206 {0x63, 0xf, 1},
12207 {0x64, 0xf, 1},
12208 {0x65, 0, 0},
12209 {0x66, 0x11, 0},
12210 {0x80, 0x3c, 0},
12211 {0x81, 0x1, 1},
12212 {0x82, 0xa, 0},
12213 {0x85, 0, 0},
12214 {0x86, 0x40, 0},
12215 {0x87, 0x40, 0},
12216 {0x88, 0x88, 0},
12217 {0x89, 0x10, 0},
12218 {0x8A, 0xf0, 0},
12219 {0x8B, 0x10, 0},
12220 {0x8C, 0xf0, 0},
12221 {0x8F, 0x10, 0},
12222 {0x90, 0x55, 0},
12223 {0x91, 0x3f, 1},
12224 {0x92, 0x36, 1},
12225 {0x93, 0, 0},
12226 {0x94, 0, 0},
12227 {0x95, 0, 0},
12228 {0x96, 0x87, 0},
12229 {0x97, 0x11, 0},
12230 {0x98, 0, 0},
12231 {0x99, 0x33, 0},
12232 {0x9A, 0x88, 0},
12233 {0xA1, 0x20, 1},
12234 {0xA2, 0x3f, 0},
12235 {0xA3, 0x44, 0},
12236 {0xA4, 0x8c, 0},
12237 {0xA5, 0x6c, 0},
12238 {0xA6, 0x22, 0},
12239 {0xA7, 0xbe, 0},
12240 {0xA8, 0x55, 0},
12241 {0xAA, 0xc, 0},
12242 {0xAB, 0xaa, 0},
12243 {0xAC, 0x2, 0},
12244 {0xAD, 0, 0},
12245 {0xAE, 0x10, 0},
12246 {0xAF, 0x1, 0},
12247 {0xB0, 0, 0},
12248 {0xB1, 0, 0},
12249 {0xB2, 0x80, 0},
12250 {0xB3, 0x60, 0},
12251 {0xB4, 0x44, 0},
12252 {0xB5, 0x55, 0},
12253 {0xB6, 0x1, 0},
12254 {0xB7, 0x55, 0},
12255 {0xB8, 0x1, 0},
12256 {0xB9, 0x5, 0},
12257 {0xBA, 0x55, 0},
12258 {0xBB, 0x55, 0},
12259 {0xC3, 0, 0},
12260 {0xC4, 0, 0},
12261 {0xC5, 0, 0},
12262 {0xC6, 0, 0},
12263 {0xC7, 0, 0},
12264 {0xC8, 0, 0},
12265 {0xC9, 0x1, 1},
12266 {0xCA, 0, 0},
12267 {0xCB, 0, 0},
12268 {0xCD, 0, 0},
12269 {0xCE, 0x5e, 0},
12270 {0xCF, 0xc, 0},
12271 {0xD0, 0xc, 0},
12272 {0xD1, 0xc, 0},
12273 {0xD2, 0, 0},
12274 {0xD3, 0x2b, 0},
12275 {0xD4, 0xc, 0},
12276 {0xD5, 0, 0},
12277 {0xD6, 0x70, 1},
12278 {0xDB, 0x7, 0},
12279 {0xDC, 0, 0},
12280 {0xDD, 0, 0},
12281 {0xDE, 0x88, 1},
12282 {0xDF, 0, 0},
12283 {0xE0, 0x1f, 0},
12284 {0xE1, 0x20, 1},
12285 {0xE2, 0x1, 0},
12286 {0xE3, 0x30, 0},
12287 {0xE4, 0x70, 0},
12288 {0xE5, 0, 0},
12289 {0xE6, 0, 0},
12290 {0xE7, 0x33, 0},
12291 {0xE8, 0xf, 1},
12292 {0xE9, 0xf, 1},
12293 {0xEA, 0, 0},
12294 {0xEB, 0x11, 0},
12295 {0x105, 0x3c, 0},
12296 {0x106, 0x1, 1},
12297 {0x107, 0xa, 0},
12298 {0x10A, 0, 0},
12299 {0x10B, 0x40, 0},
12300 {0x10C, 0x40, 0},
12301 {0x10D, 0x88, 0},
12302 {0x10E, 0x10, 0},
12303 {0x10F, 0xf0, 0},
12304 {0x110, 0x10, 0},
12305 {0x111, 0xf0, 0},
12306 {0x114, 0x10, 0},
12307 {0x115, 0x55, 0},
12308 {0x116, 0x3f, 1},
12309 {0x117, 0x36, 1},
12310 {0x118, 0, 0},
12311 {0x119, 0, 0},
12312 {0x11A, 0, 0},
12313 {0x11B, 0x87, 0},
12314 {0x11C, 0x11, 0},
12315 {0x11D, 0, 0},
12316 {0x11E, 0x33, 0},
12317 {0x11F, 0x88, 0},
12318 {0x126, 0x20, 1},
12319 {0x127, 0x3f, 0},
12320 {0x128, 0x44, 0},
12321 {0x129, 0x8c, 0},
12322 {0x12A, 0x6c, 0},
12323 {0x12B, 0x22, 0},
12324 {0x12C, 0xbe, 0},
12325 {0x12D, 0x55, 0},
12326 {0x12F, 0xc, 0},
12327 {0x130, 0xaa, 0},
12328 {0x131, 0x2, 0},
12329 {0x132, 0, 0},
12330 {0x133, 0x10, 0},
12331 {0x134, 0x1, 0},
12332 {0x135, 0, 0},
12333 {0x136, 0, 0},
12334 {0x137, 0x80, 0},
12335 {0x138, 0x60, 0},
12336 {0x139, 0x44, 0},
12337 {0x13A, 0x55, 0},
12338 {0x13B, 0x1, 0},
12339 {0x13C, 0x55, 0},
12340 {0x13D, 0x1, 0},
12341 {0x13E, 0x5, 0},
12342 {0x13F, 0x55, 0},
12343 {0x140, 0x55, 0},
12344 {0x148, 0, 0},
12345 {0x149, 0, 0},
12346 {0x14A, 0, 0},
12347 {0x14B, 0, 0},
12348 {0x14C, 0, 0},
12349 {0x14D, 0, 0},
12350 {0x14E, 0x1, 1},
12351 {0x14F, 0, 0},
12352 {0x150, 0, 0},
12353 {0x154, 0xc, 0},
12354 {0x155, 0xc, 0},
12355 {0x156, 0xc, 0},
12356 {0x157, 0, 0},
12357 {0x158, 0x2b, 0},
12358 {0x159, 0x84, 0},
12359 {0x15A, 0x15, 0},
12360 {0x15B, 0xf, 0},
12361 {0x15C, 0, 0},
12362 {0x15D, 0, 0},
12363 {0x15E, 0, 1},
12364 {0x15F, 0, 1},
12365 {0x160, 0, 1},
12366 {0x161, 0, 1},
12367 {0x162, 0, 1},
12368 {0x163, 0, 1},
12369 {0x164, 0, 0},
12370 {0x165, 0, 0},
12371 {0x166, 0, 0},
12372 {0x167, 0, 0},
12373 {0x168, 0, 0},
12374 {0x169, 0, 0},
12375 {0x16A, 0, 1},
12376 {0x16B, 0, 1},
12377 {0x16C, 0, 1},
12378 {0x16D, 0, 0},
12379 {0x170, 0, 0},
12380 {0x171, 0x77, 0},
12381 {0x172, 0x77, 0},
12382 {0x173, 0x77, 0},
12383 {0x174, 0x77, 0},
12384 {0x175, 0, 0},
12385 {0x176, 0x3, 0},
12386 {0x177, 0x37, 0},
12387 {0x178, 0x3, 0},
12388 {0x179, 0, 0},
12389 {0x17B, 0x21, 0},
12390 {0x17C, 0, 0},
12391 {0x17D, 0xaa, 0},
12392 {0x17E, 0, 0},
12393 {0x190, 0, 0},
12394 {0x191, 0x77, 0},
12395 {0x192, 0x77, 0},
12396 {0x193, 0x77, 0},
12397 {0x194, 0x77, 0},
12398 {0x195, 0, 0},
12399 {0x196, 0x3, 0},
12400 {0x197, 0x37, 0},
12401 {0x198, 0x3, 0},
12402 {0x199, 0, 0},
12403 {0x19B, 0x21, 0},
12404 {0x19C, 0, 0},
12405 {0x19D, 0xaa, 0},
12406 {0x19E, 0, 0},
12407 {0x1A1, 0x2, 0},
12408 {0x1A2, 0xf, 0},
12409 {0x1A3, 0xf, 0},
12410 {0x1A4, 0, 1},
12411 {0x1A5, 0, 1},
12412 {0x1A6, 0, 1},
12413 {0x1A7, 0x2, 0},
12414 {0x1A8, 0xf, 0},
12415 {0x1A9, 0xf, 0},
12416 {0x1AA, 0, 1},
12417 {0x1AB, 0, 1},
12418 {0x1AC, 0, 1},
12419 {0x1AD, 0x84, 0},
12420 {0x1AE, 0x60, 0},
12421 {0x1AF, 0x47, 0},
12422 {0x1B0, 0x47, 0},
12423 {0x1B1, 0, 0},
12424 {0x1B2, 0, 0},
12425 {0x1B3, 0, 0},
12426 {0x1B4, 0, 0},
12427 {0x1B5, 0, 0},
12428 {0x1B6, 0, 0},
12429 {0x1B7, 0xc, 1},
12430 {0x1B8, 0, 0},
12431 {0x1B9, 0, 0},
12432 {0x1BA, 0, 0},
12433 {0x1BB, 0, 0},
12434 {0x1BC, 0, 0},
12435 {0x1BD, 0, 0},
12436 {0x1BE, 0, 0},
12437 {0x1BF, 0, 0},
12438 {0x1C0, 0, 0},
12439 {0x1C1, 0x1, 1},
12440 {0x1C2, 0x80, 1},
12441 {0x1C3, 0, 0},
12442 {0x1C4, 0, 0},
12443 {0x1C5, 0, 0},
12444 {0x1C6, 0, 0},
12445 {0x1C7, 0, 0},
12446 {0x1C8, 0, 0},
12447 {0x1C9, 0, 0},
12448 {0x1CA, 0, 0},
12449 {0xFFFF, 0, 0}
12450};
12451
12452radio_20xx_regs_t regs_2057_rev7[] = {
12453 {0x00, 0, 1},
12454 {0x01, 0x57, 1},
12455 {0x02, 0x20, 1},
12456 {0x03, 0x1f, 0},
12457 {0x04, 0x4, 0},
12458 {0x05, 0x2, 0},
12459 {0x06, 0x1, 0},
12460 {0x07, 0x1, 0},
12461 {0x08, 0x1, 0},
12462 {0x09, 0x69, 0},
12463 {0x0A, 0x66, 0},
12464 {0x0B, 0x6, 0},
12465 {0x0C, 0x18, 0},
12466 {0x0D, 0x3, 0},
12467 {0x0E, 0x20, 0},
12468 {0x0F, 0x20, 0},
12469 {0x10, 0, 0},
12470 {0x11, 0x7c, 0},
12471 {0x12, 0x42, 0},
12472 {0x13, 0xbd, 0},
12473 {0x14, 0x7, 0},
12474 {0x15, 0x87, 0},
12475 {0x16, 0x8, 0},
12476 {0x17, 0x17, 0},
12477 {0x18, 0x7, 0},
12478 {0x19, 0, 0},
12479 {0x1A, 0x2, 0},
12480 {0x1B, 0x13, 0},
12481 {0x1C, 0x3e, 0},
12482 {0x1D, 0x3e, 0},
12483 {0x1E, 0x96, 0},
12484 {0x1F, 0x4, 0},
12485 {0x20, 0, 0},
12486 {0x21, 0, 0},
12487 {0x22, 0x17, 0},
12488 {0x23, 0x6, 0},
12489 {0x24, 0x1, 0},
12490 {0x25, 0x6, 0},
12491 {0x26, 0x4, 0},
12492 {0x27, 0xd, 0},
12493 {0x28, 0xd, 0},
12494 {0x29, 0x30, 0},
12495 {0x2A, 0x32, 0},
12496 {0x2B, 0x8, 0},
12497 {0x2C, 0x1c, 0},
12498 {0x2D, 0x2, 0},
12499 {0x2E, 0x4, 0},
12500 {0x2F, 0x7f, 0},
12501 {0x30, 0x27, 0},
12502 {0x31, 0, 1},
12503 {0x32, 0, 1},
12504 {0x33, 0, 1},
12505 {0x34, 0, 0},
12506 {0x35, 0x20, 0},
12507 {0x36, 0x18, 0},
12508 {0x37, 0x7, 0},
12509 {0x38, 0x66, 0},
12510 {0x39, 0x66, 0},
12511 {0x3A, 0x66, 0},
12512 {0x3B, 0x66, 0},
12513 {0x3C, 0xff, 0},
12514 {0x3D, 0xff, 0},
12515 {0x3E, 0xff, 0},
12516 {0x3F, 0xff, 0},
12517 {0x40, 0x16, 0},
12518 {0x41, 0x7, 0},
12519 {0x42, 0x19, 0},
12520 {0x43, 0x7, 0},
12521 {0x44, 0x6, 0},
12522 {0x45, 0x3, 0},
12523 {0x46, 0x1, 0},
12524 {0x47, 0x7, 0},
12525 {0x48, 0x33, 0},
12526 {0x49, 0x5, 0},
12527 {0x4A, 0x77, 0},
12528 {0x4B, 0x66, 0},
12529 {0x4C, 0x66, 0},
12530 {0x4D, 0, 0},
12531 {0x4E, 0x4, 0},
12532 {0x4F, 0xc, 0},
12533 {0x50, 0, 0},
12534 {0x51, 0x70, 1},
12535 {0x56, 0x7, 0},
12536 {0x57, 0, 0},
12537 {0x58, 0, 0},
12538 {0x59, 0x88, 1},
12539 {0x5A, 0, 0},
12540 {0x5B, 0x1f, 0},
12541 {0x5C, 0x20, 1},
12542 {0x5D, 0x1, 0},
12543 {0x5E, 0x30, 0},
12544 {0x5F, 0x70, 0},
12545 {0x60, 0, 0},
12546 {0x61, 0, 0},
12547 {0x62, 0x33, 1},
12548 {0x63, 0xf, 1},
12549 {0x64, 0x13, 1},
12550 {0x65, 0, 0},
12551 {0x66, 0xee, 1},
12552 {0x69, 0, 0},
12553 {0x6A, 0x7e, 0},
12554 {0x6B, 0x3f, 0},
12555 {0x6C, 0x7f, 0},
12556 {0x6D, 0x78, 0},
12557 {0x6E, 0x58, 1},
12558 {0x6F, 0x88, 0},
12559 {0x70, 0x8, 0},
12560 {0x71, 0xf, 0},
12561 {0x72, 0xbc, 0},
12562 {0x73, 0x8, 0},
12563 {0x74, 0x60, 0},
12564 {0x75, 0x13, 1},
12565 {0x76, 0x70, 0},
12566 {0x77, 0, 0},
12567 {0x78, 0, 0},
12568 {0x79, 0, 0},
12569 {0x7A, 0x33, 0},
12570 {0x7B, 0x13, 1},
12571 {0x7C, 0x14, 1},
12572 {0x7D, 0xee, 1},
12573 {0x80, 0x3c, 0},
12574 {0x81, 0x1, 1},
12575 {0x82, 0xa, 0},
12576 {0x83, 0x9d, 0},
12577 {0x84, 0xa, 0},
12578 {0x85, 0, 0},
12579 {0x86, 0x40, 0},
12580 {0x87, 0x40, 0},
12581 {0x88, 0x88, 0},
12582 {0x89, 0x10, 0},
12583 {0x8A, 0xf0, 0},
12584 {0x8B, 0x10, 0},
12585 {0x8C, 0xf0, 0},
12586 {0x8D, 0, 0},
12587 {0x8E, 0, 0},
12588 {0x8F, 0x10, 0},
12589 {0x90, 0x55, 0},
12590 {0x91, 0x3f, 1},
12591 {0x92, 0x36, 1},
12592 {0x93, 0, 0},
12593 {0x94, 0, 0},
12594 {0x95, 0, 0},
12595 {0x96, 0x87, 0},
12596 {0x97, 0x11, 0},
12597 {0x98, 0, 0},
12598 {0x99, 0x33, 0},
12599 {0x9A, 0x88, 0},
12600 {0x9B, 0, 0},
12601 {0x9C, 0x87, 0},
12602 {0x9D, 0x11, 0},
12603 {0x9E, 0, 0},
12604 {0x9F, 0x33, 0},
12605 {0xA0, 0x88, 0},
12606 {0xA1, 0x20, 1},
12607 {0xA2, 0x3f, 0},
12608 {0xA3, 0x44, 0},
12609 {0xA4, 0x8c, 0},
12610 {0xA5, 0x6c, 0},
12611 {0xA6, 0x22, 0},
12612 {0xA7, 0xbe, 0},
12613 {0xA8, 0x55, 0},
12614 {0xAA, 0xc, 0},
12615 {0xAB, 0xaa, 0},
12616 {0xAC, 0x2, 0},
12617 {0xAD, 0, 0},
12618 {0xAE, 0x10, 0},
12619 {0xAF, 0x1, 0},
12620 {0xB0, 0, 0},
12621 {0xB1, 0, 0},
12622 {0xB2, 0x80, 0},
12623 {0xB3, 0x60, 0},
12624 {0xB4, 0x44, 0},
12625 {0xB5, 0x55, 0},
12626 {0xB6, 0x1, 0},
12627 {0xB7, 0x55, 0},
12628 {0xB8, 0x1, 0},
12629 {0xB9, 0x5, 0},
12630 {0xBA, 0x55, 0},
12631 {0xBB, 0x55, 0},
12632 {0xC1, 0, 0},
12633 {0xC2, 0, 0},
12634 {0xC3, 0, 0},
12635 {0xC4, 0, 0},
12636 {0xC5, 0, 0},
12637 {0xC6, 0, 0},
12638 {0xC7, 0, 0},
12639 {0xC8, 0, 0},
12640 {0xC9, 0, 0},
12641 {0xCA, 0, 0},
12642 {0xCB, 0, 0},
12643 {0xCC, 0, 0},
12644 {0xCD, 0, 0},
12645 {0xCE, 0x5e, 0},
12646 {0xCF, 0xc, 0},
12647 {0xD0, 0xc, 0},
12648 {0xD1, 0xc, 0},
12649 {0xD2, 0, 0},
12650 {0xD3, 0x2b, 0},
12651 {0xD4, 0xc, 0},
12652 {0xD5, 0, 0},
12653 {0xD6, 0x70, 1},
12654 {0xDB, 0x7, 0},
12655 {0xDC, 0, 0},
12656 {0xDD, 0, 0},
12657 {0xDE, 0x88, 1},
12658 {0xDF, 0, 0},
12659 {0xE0, 0x1f, 0},
12660 {0xE1, 0x20, 1},
12661 {0xE2, 0x1, 0},
12662 {0xE3, 0x30, 0},
12663 {0xE4, 0x70, 0},
12664 {0xE5, 0, 0},
12665 {0xE6, 0, 0},
12666 {0xE7, 0x33, 0},
12667 {0xE8, 0xf, 1},
12668 {0xE9, 0x13, 1},
12669 {0xEA, 0, 0},
12670 {0xEB, 0xee, 1},
12671 {0xEE, 0, 0},
12672 {0xEF, 0x7e, 0},
12673 {0xF0, 0x3f, 0},
12674 {0xF1, 0x7f, 0},
12675 {0xF2, 0x78, 0},
12676 {0xF3, 0x58, 1},
12677 {0xF4, 0x88, 0},
12678 {0xF5, 0x8, 0},
12679 {0xF6, 0xf, 0},
12680 {0xF7, 0xbc, 0},
12681 {0xF8, 0x8, 0},
12682 {0xF9, 0x60, 0},
12683 {0xFA, 0x13, 1},
12684 {0xFB, 0x70, 0},
12685 {0xFC, 0, 0},
12686 {0xFD, 0, 0},
12687 {0xFE, 0, 0},
12688 {0xFF, 0x33, 0},
12689 {0x100, 0x13, 1},
12690 {0x101, 0x14, 1},
12691 {0x102, 0xee, 1},
12692 {0x105, 0x3c, 0},
12693 {0x106, 0x1, 1},
12694 {0x107, 0xa, 0},
12695 {0x108, 0x9d, 0},
12696 {0x109, 0xa, 0},
12697 {0x10A, 0, 0},
12698 {0x10B, 0x40, 0},
12699 {0x10C, 0x40, 0},
12700 {0x10D, 0x88, 0},
12701 {0x10E, 0x10, 0},
12702 {0x10F, 0xf0, 0},
12703 {0x110, 0x10, 0},
12704 {0x111, 0xf0, 0},
12705 {0x112, 0, 0},
12706 {0x113, 0, 0},
12707 {0x114, 0x10, 0},
12708 {0x115, 0x55, 0},
12709 {0x116, 0x3f, 1},
12710 {0x117, 0x36, 1},
12711 {0x118, 0, 0},
12712 {0x119, 0, 0},
12713 {0x11A, 0, 0},
12714 {0x11B, 0x87, 0},
12715 {0x11C, 0x11, 0},
12716 {0x11D, 0, 0},
12717 {0x11E, 0x33, 0},
12718 {0x11F, 0x88, 0},
12719 {0x120, 0, 0},
12720 {0x121, 0x87, 0},
12721 {0x122, 0x11, 0},
12722 {0x123, 0, 0},
12723 {0x124, 0x33, 0},
12724 {0x125, 0x88, 0},
12725 {0x126, 0x20, 1},
12726 {0x127, 0x3f, 0},
12727 {0x128, 0x44, 0},
12728 {0x129, 0x8c, 0},
12729 {0x12A, 0x6c, 0},
12730 {0x12B, 0x22, 0},
12731 {0x12C, 0xbe, 0},
12732 {0x12D, 0x55, 0},
12733 {0x12F, 0xc, 0},
12734 {0x130, 0xaa, 0},
12735 {0x131, 0x2, 0},
12736 {0x132, 0, 0},
12737 {0x133, 0x10, 0},
12738 {0x134, 0x1, 0},
12739 {0x135, 0, 0},
12740 {0x136, 0, 0},
12741 {0x137, 0x80, 0},
12742 {0x138, 0x60, 0},
12743 {0x139, 0x44, 0},
12744 {0x13A, 0x55, 0},
12745 {0x13B, 0x1, 0},
12746 {0x13C, 0x55, 0},
12747 {0x13D, 0x1, 0},
12748 {0x13E, 0x5, 0},
12749 {0x13F, 0x55, 0},
12750 {0x140, 0x55, 0},
12751 {0x146, 0, 0},
12752 {0x147, 0, 0},
12753 {0x148, 0, 0},
12754 {0x149, 0, 0},
12755 {0x14A, 0, 0},
12756 {0x14B, 0, 0},
12757 {0x14C, 0, 0},
12758 {0x14D, 0, 0},
12759 {0x14E, 0, 0},
12760 {0x14F, 0, 0},
12761 {0x150, 0, 0},
12762 {0x151, 0, 0},
12763 {0x154, 0xc, 0},
12764 {0x155, 0xc, 0},
12765 {0x156, 0xc, 0},
12766 {0x157, 0, 0},
12767 {0x158, 0x2b, 0},
12768 {0x159, 0x84, 0},
12769 {0x15A, 0x15, 0},
12770 {0x15B, 0xf, 0},
12771 {0x15C, 0, 0},
12772 {0x15D, 0, 0},
12773 {0x15E, 0, 1},
12774 {0x15F, 0, 1},
12775 {0x160, 0, 1},
12776 {0x161, 0, 1},
12777 {0x162, 0, 1},
12778 {0x163, 0, 1},
12779 {0x164, 0, 0},
12780 {0x165, 0, 0},
12781 {0x166, 0, 0},
12782 {0x167, 0, 0},
12783 {0x168, 0, 0},
12784 {0x169, 0, 0},
12785 {0x16A, 0, 1},
12786 {0x16B, 0, 1},
12787 {0x16C, 0, 1},
12788 {0x16D, 0, 0},
12789 {0x170, 0, 0},
12790 {0x171, 0x77, 0},
12791 {0x172, 0x77, 0},
12792 {0x173, 0x77, 0},
12793 {0x174, 0x77, 0},
12794 {0x175, 0, 0},
12795 {0x176, 0x3, 0},
12796 {0x177, 0x37, 0},
12797 {0x178, 0x3, 0},
12798 {0x179, 0, 0},
12799 {0x17A, 0x21, 0},
12800 {0x17B, 0x21, 0},
12801 {0x17C, 0, 0},
12802 {0x17D, 0xaa, 0},
12803 {0x17E, 0, 0},
12804 {0x17F, 0xaa, 0},
12805 {0x180, 0, 0},
12806 {0x190, 0, 0},
12807 {0x191, 0x77, 0},
12808 {0x192, 0x77, 0},
12809 {0x193, 0x77, 0},
12810 {0x194, 0x77, 0},
12811 {0x195, 0, 0},
12812 {0x196, 0x3, 0},
12813 {0x197, 0x37, 0},
12814 {0x198, 0x3, 0},
12815 {0x199, 0, 0},
12816 {0x19A, 0x21, 0},
12817 {0x19B, 0x21, 0},
12818 {0x19C, 0, 0},
12819 {0x19D, 0xaa, 0},
12820 {0x19E, 0, 0},
12821 {0x19F, 0xaa, 0},
12822 {0x1A0, 0, 0},
12823 {0x1A1, 0x2, 0},
12824 {0x1A2, 0xf, 0},
12825 {0x1A3, 0xf, 0},
12826 {0x1A4, 0, 1},
12827 {0x1A5, 0, 1},
12828 {0x1A6, 0, 1},
12829 {0x1A7, 0x2, 0},
12830 {0x1A8, 0xf, 0},
12831 {0x1A9, 0xf, 0},
12832 {0x1AA, 0, 1},
12833 {0x1AB, 0, 1},
12834 {0x1AC, 0, 1},
12835 {0x1AD, 0x84, 0},
12836 {0x1AE, 0x60, 0},
12837 {0x1AF, 0x47, 0},
12838 {0x1B0, 0x47, 0},
12839 {0x1B1, 0, 0},
12840 {0x1B2, 0, 0},
12841 {0x1B3, 0, 0},
12842 {0x1B4, 0, 0},
12843 {0x1B5, 0, 0},
12844 {0x1B6, 0, 0},
12845 {0x1B7, 0x5, 1},
12846 {0x1B8, 0, 0},
12847 {0x1B9, 0, 0},
12848 {0x1BA, 0, 0},
12849 {0x1BB, 0, 0},
12850 {0x1BC, 0, 0},
12851 {0x1BD, 0, 0},
12852 {0x1BE, 0, 0},
12853 {0x1BF, 0, 0},
12854 {0x1C0, 0, 0},
12855 {0x1C1, 0, 0},
12856 {0x1C2, 0xa0, 1},
12857 {0x1C3, 0, 0},
12858 {0x1C4, 0, 0},
12859 {0x1C5, 0, 0},
12860 {0x1C6, 0, 0},
12861 {0x1C7, 0, 0},
12862 {0x1C8, 0, 0},
12863 {0x1C9, 0, 0},
12864 {0x1CA, 0, 0},
12865 {0xFFFF, 0, 0}
12866};
12867
12868radio_20xx_regs_t regs_2057_rev8[] = {
12869 {0x00, 0x8, 1},
12870 {0x01, 0x57, 1},
12871 {0x02, 0x20, 1},
12872 {0x03, 0x1f, 0},
12873 {0x04, 0x4, 0},
12874 {0x05, 0x2, 0},
12875 {0x06, 0x1, 0},
12876 {0x07, 0x1, 0},
12877 {0x08, 0x1, 0},
12878 {0x09, 0x69, 0},
12879 {0x0A, 0x66, 0},
12880 {0x0B, 0x6, 0},
12881 {0x0C, 0x18, 0},
12882 {0x0D, 0x3, 0},
12883 {0x0E, 0x20, 0},
12884 {0x0F, 0x20, 0},
12885 {0x10, 0, 0},
12886 {0x11, 0x7c, 0},
12887 {0x12, 0x42, 0},
12888 {0x13, 0xbd, 0},
12889 {0x14, 0x7, 0},
12890 {0x15, 0x87, 0},
12891 {0x16, 0x8, 0},
12892 {0x17, 0x17, 0},
12893 {0x18, 0x7, 0},
12894 {0x19, 0, 0},
12895 {0x1A, 0x2, 0},
12896 {0x1B, 0x13, 0},
12897 {0x1C, 0x3e, 0},
12898 {0x1D, 0x3e, 0},
12899 {0x1E, 0x96, 0},
12900 {0x1F, 0x4, 0},
12901 {0x20, 0, 0},
12902 {0x21, 0, 0},
12903 {0x22, 0x17, 0},
12904 {0x23, 0x6, 0},
12905 {0x24, 0x1, 0},
12906 {0x25, 0x6, 0},
12907 {0x26, 0x4, 0},
12908 {0x27, 0xd, 0},
12909 {0x28, 0xd, 0},
12910 {0x29, 0x30, 0},
12911 {0x2A, 0x32, 0},
12912 {0x2B, 0x8, 0},
12913 {0x2C, 0x1c, 0},
12914 {0x2D, 0x2, 0},
12915 {0x2E, 0x4, 0},
12916 {0x2F, 0x7f, 0},
12917 {0x30, 0x27, 0},
12918 {0x31, 0, 1},
12919 {0x32, 0, 1},
12920 {0x33, 0, 1},
12921 {0x34, 0, 0},
12922 {0x35, 0x20, 0},
12923 {0x36, 0x18, 0},
12924 {0x37, 0x7, 0},
12925 {0x38, 0x66, 0},
12926 {0x39, 0x66, 0},
12927 {0x3A, 0x66, 0},
12928 {0x3B, 0x66, 0},
12929 {0x3C, 0xff, 0},
12930 {0x3D, 0xff, 0},
12931 {0x3E, 0xff, 0},
12932 {0x3F, 0xff, 0},
12933 {0x40, 0x16, 0},
12934 {0x41, 0x7, 0},
12935 {0x42, 0x19, 0},
12936 {0x43, 0x7, 0},
12937 {0x44, 0x6, 0},
12938 {0x45, 0x3, 0},
12939 {0x46, 0x1, 0},
12940 {0x47, 0x7, 0},
12941 {0x48, 0x33, 0},
12942 {0x49, 0x5, 0},
12943 {0x4A, 0x77, 0},
12944 {0x4B, 0x66, 0},
12945 {0x4C, 0x66, 0},
12946 {0x4D, 0, 0},
12947 {0x4E, 0x4, 0},
12948 {0x4F, 0xc, 0},
12949 {0x50, 0, 0},
12950 {0x51, 0x70, 1},
12951 {0x56, 0x7, 0},
12952 {0x57, 0, 0},
12953 {0x58, 0, 0},
12954 {0x59, 0x88, 1},
12955 {0x5A, 0, 0},
12956 {0x5B, 0x1f, 0},
12957 {0x5C, 0x20, 1},
12958 {0x5D, 0x1, 0},
12959 {0x5E, 0x30, 0},
12960 {0x5F, 0x70, 0},
12961 {0x60, 0, 0},
12962 {0x61, 0, 0},
12963 {0x62, 0x33, 1},
12964 {0x63, 0xf, 1},
12965 {0x64, 0xf, 1},
12966 {0x65, 0, 0},
12967 {0x66, 0x11, 0},
12968 {0x69, 0, 0},
12969 {0x6A, 0x7e, 0},
12970 {0x6B, 0x3f, 0},
12971 {0x6C, 0x7f, 0},
12972 {0x6D, 0x78, 0},
12973 {0x6E, 0x58, 1},
12974 {0x6F, 0x88, 0},
12975 {0x70, 0x8, 0},
12976 {0x71, 0xf, 0},
12977 {0x72, 0xbc, 0},
12978 {0x73, 0x8, 0},
12979 {0x74, 0x60, 0},
12980 {0x75, 0x13, 1},
12981 {0x76, 0x70, 0},
12982 {0x77, 0, 0},
12983 {0x78, 0, 0},
12984 {0x79, 0, 0},
12985 {0x7A, 0x33, 0},
12986 {0x7B, 0x13, 1},
12987 {0x7C, 0xf, 1},
12988 {0x7D, 0xee, 1},
12989 {0x80, 0x3c, 0},
12990 {0x81, 0x1, 1},
12991 {0x82, 0xa, 0},
12992 {0x83, 0x9d, 0},
12993 {0x84, 0xa, 0},
12994 {0x85, 0, 0},
12995 {0x86, 0x40, 0},
12996 {0x87, 0x40, 0},
12997 {0x88, 0x88, 0},
12998 {0x89, 0x10, 0},
12999 {0x8A, 0xf0, 0},
13000 {0x8B, 0x10, 0},
13001 {0x8C, 0xf0, 0},
13002 {0x8D, 0, 0},
13003 {0x8E, 0, 0},
13004 {0x8F, 0x10, 0},
13005 {0x90, 0x55, 0},
13006 {0x91, 0x3f, 1},
13007 {0x92, 0x36, 1},
13008 {0x93, 0, 0},
13009 {0x94, 0, 0},
13010 {0x95, 0, 0},
13011 {0x96, 0x87, 0},
13012 {0x97, 0x11, 0},
13013 {0x98, 0, 0},
13014 {0x99, 0x33, 0},
13015 {0x9A, 0x88, 0},
13016 {0x9B, 0, 0},
13017 {0x9C, 0x87, 0},
13018 {0x9D, 0x11, 0},
13019 {0x9E, 0, 0},
13020 {0x9F, 0x33, 0},
13021 {0xA0, 0x88, 0},
13022 {0xA1, 0x20, 1},
13023 {0xA2, 0x3f, 0},
13024 {0xA3, 0x44, 0},
13025 {0xA4, 0x8c, 0},
13026 {0xA5, 0x6c, 0},
13027 {0xA6, 0x22, 0},
13028 {0xA7, 0xbe, 0},
13029 {0xA8, 0x55, 0},
13030 {0xAA, 0xc, 0},
13031 {0xAB, 0xaa, 0},
13032 {0xAC, 0x2, 0},
13033 {0xAD, 0, 0},
13034 {0xAE, 0x10, 0},
13035 {0xAF, 0x1, 0},
13036 {0xB0, 0, 0},
13037 {0xB1, 0, 0},
13038 {0xB2, 0x80, 0},
13039 {0xB3, 0x60, 0},
13040 {0xB4, 0x44, 0},
13041 {0xB5, 0x55, 0},
13042 {0xB6, 0x1, 0},
13043 {0xB7, 0x55, 0},
13044 {0xB8, 0x1, 0},
13045 {0xB9, 0x5, 0},
13046 {0xBA, 0x55, 0},
13047 {0xBB, 0x55, 0},
13048 {0xC1, 0, 0},
13049 {0xC2, 0, 0},
13050 {0xC3, 0, 0},
13051 {0xC4, 0, 0},
13052 {0xC5, 0, 0},
13053 {0xC6, 0, 0},
13054 {0xC7, 0, 0},
13055 {0xC8, 0, 0},
13056 {0xC9, 0x1, 1},
13057 {0xCA, 0, 0},
13058 {0xCB, 0, 0},
13059 {0xCC, 0, 0},
13060 {0xCD, 0, 0},
13061 {0xCE, 0x5e, 0},
13062 {0xCF, 0xc, 0},
13063 {0xD0, 0xc, 0},
13064 {0xD1, 0xc, 0},
13065 {0xD2, 0, 0},
13066 {0xD3, 0x2b, 0},
13067 {0xD4, 0xc, 0},
13068 {0xD5, 0, 0},
13069 {0xD6, 0x70, 1},
13070 {0xDB, 0x7, 0},
13071 {0xDC, 0, 0},
13072 {0xDD, 0, 0},
13073 {0xDE, 0x88, 1},
13074 {0xDF, 0, 0},
13075 {0xE0, 0x1f, 0},
13076 {0xE1, 0x20, 1},
13077 {0xE2, 0x1, 0},
13078 {0xE3, 0x30, 0},
13079 {0xE4, 0x70, 0},
13080 {0xE5, 0, 0},
13081 {0xE6, 0, 0},
13082 {0xE7, 0x33, 0},
13083 {0xE8, 0xf, 1},
13084 {0xE9, 0xf, 1},
13085 {0xEA, 0, 0},
13086 {0xEB, 0x11, 0},
13087 {0xEE, 0, 0},
13088 {0xEF, 0x7e, 0},
13089 {0xF0, 0x3f, 0},
13090 {0xF1, 0x7f, 0},
13091 {0xF2, 0x78, 0},
13092 {0xF3, 0x58, 1},
13093 {0xF4, 0x88, 0},
13094 {0xF5, 0x8, 0},
13095 {0xF6, 0xf, 0},
13096 {0xF7, 0xbc, 0},
13097 {0xF8, 0x8, 0},
13098 {0xF9, 0x60, 0},
13099 {0xFA, 0x13, 1},
13100 {0xFB, 0x70, 0},
13101 {0xFC, 0, 0},
13102 {0xFD, 0, 0},
13103 {0xFE, 0, 0},
13104 {0xFF, 0x33, 0},
13105 {0x100, 0x13, 1},
13106 {0x101, 0xf, 1},
13107 {0x102, 0xee, 1},
13108 {0x105, 0x3c, 0},
13109 {0x106, 0x1, 1},
13110 {0x107, 0xa, 0},
13111 {0x108, 0x9d, 0},
13112 {0x109, 0xa, 0},
13113 {0x10A, 0, 0},
13114 {0x10B, 0x40, 0},
13115 {0x10C, 0x40, 0},
13116 {0x10D, 0x88, 0},
13117 {0x10E, 0x10, 0},
13118 {0x10F, 0xf0, 0},
13119 {0x110, 0x10, 0},
13120 {0x111, 0xf0, 0},
13121 {0x112, 0, 0},
13122 {0x113, 0, 0},
13123 {0x114, 0x10, 0},
13124 {0x115, 0x55, 0},
13125 {0x116, 0x3f, 1},
13126 {0x117, 0x36, 1},
13127 {0x118, 0, 0},
13128 {0x119, 0, 0},
13129 {0x11A, 0, 0},
13130 {0x11B, 0x87, 0},
13131 {0x11C, 0x11, 0},
13132 {0x11D, 0, 0},
13133 {0x11E, 0x33, 0},
13134 {0x11F, 0x88, 0},
13135 {0x120, 0, 0},
13136 {0x121, 0x87, 0},
13137 {0x122, 0x11, 0},
13138 {0x123, 0, 0},
13139 {0x124, 0x33, 0},
13140 {0x125, 0x88, 0},
13141 {0x126, 0x20, 1},
13142 {0x127, 0x3f, 0},
13143 {0x128, 0x44, 0},
13144 {0x129, 0x8c, 0},
13145 {0x12A, 0x6c, 0},
13146 {0x12B, 0x22, 0},
13147 {0x12C, 0xbe, 0},
13148 {0x12D, 0x55, 0},
13149 {0x12F, 0xc, 0},
13150 {0x130, 0xaa, 0},
13151 {0x131, 0x2, 0},
13152 {0x132, 0, 0},
13153 {0x133, 0x10, 0},
13154 {0x134, 0x1, 0},
13155 {0x135, 0, 0},
13156 {0x136, 0, 0},
13157 {0x137, 0x80, 0},
13158 {0x138, 0x60, 0},
13159 {0x139, 0x44, 0},
13160 {0x13A, 0x55, 0},
13161 {0x13B, 0x1, 0},
13162 {0x13C, 0x55, 0},
13163 {0x13D, 0x1, 0},
13164 {0x13E, 0x5, 0},
13165 {0x13F, 0x55, 0},
13166 {0x140, 0x55, 0},
13167 {0x146, 0, 0},
13168 {0x147, 0, 0},
13169 {0x148, 0, 0},
13170 {0x149, 0, 0},
13171 {0x14A, 0, 0},
13172 {0x14B, 0, 0},
13173 {0x14C, 0, 0},
13174 {0x14D, 0, 0},
13175 {0x14E, 0x1, 1},
13176 {0x14F, 0, 0},
13177 {0x150, 0, 0},
13178 {0x151, 0, 0},
13179 {0x154, 0xc, 0},
13180 {0x155, 0xc, 0},
13181 {0x156, 0xc, 0},
13182 {0x157, 0, 0},
13183 {0x158, 0x2b, 0},
13184 {0x159, 0x84, 0},
13185 {0x15A, 0x15, 0},
13186 {0x15B, 0xf, 0},
13187 {0x15C, 0, 0},
13188 {0x15D, 0, 0},
13189 {0x15E, 0, 1},
13190 {0x15F, 0, 1},
13191 {0x160, 0, 1},
13192 {0x161, 0, 1},
13193 {0x162, 0, 1},
13194 {0x163, 0, 1},
13195 {0x164, 0, 0},
13196 {0x165, 0, 0},
13197 {0x166, 0, 0},
13198 {0x167, 0, 0},
13199 {0x168, 0, 0},
13200 {0x169, 0, 0},
13201 {0x16A, 0, 1},
13202 {0x16B, 0, 1},
13203 {0x16C, 0, 1},
13204 {0x16D, 0, 0},
13205 {0x170, 0, 0},
13206 {0x171, 0x77, 0},
13207 {0x172, 0x77, 0},
13208 {0x173, 0x77, 0},
13209 {0x174, 0x77, 0},
13210 {0x175, 0, 0},
13211 {0x176, 0x3, 0},
13212 {0x177, 0x37, 0},
13213 {0x178, 0x3, 0},
13214 {0x179, 0, 0},
13215 {0x17A, 0x21, 0},
13216 {0x17B, 0x21, 0},
13217 {0x17C, 0, 0},
13218 {0x17D, 0xaa, 0},
13219 {0x17E, 0, 0},
13220 {0x17F, 0xaa, 0},
13221 {0x180, 0, 0},
13222 {0x190, 0, 0},
13223 {0x191, 0x77, 0},
13224 {0x192, 0x77, 0},
13225 {0x193, 0x77, 0},
13226 {0x194, 0x77, 0},
13227 {0x195, 0, 0},
13228 {0x196, 0x3, 0},
13229 {0x197, 0x37, 0},
13230 {0x198, 0x3, 0},
13231 {0x199, 0, 0},
13232 {0x19A, 0x21, 0},
13233 {0x19B, 0x21, 0},
13234 {0x19C, 0, 0},
13235 {0x19D, 0xaa, 0},
13236 {0x19E, 0, 0},
13237 {0x19F, 0xaa, 0},
13238 {0x1A0, 0, 0},
13239 {0x1A1, 0x2, 0},
13240 {0x1A2, 0xf, 0},
13241 {0x1A3, 0xf, 0},
13242 {0x1A4, 0, 1},
13243 {0x1A5, 0, 1},
13244 {0x1A6, 0, 1},
13245 {0x1A7, 0x2, 0},
13246 {0x1A8, 0xf, 0},
13247 {0x1A9, 0xf, 0},
13248 {0x1AA, 0, 1},
13249 {0x1AB, 0, 1},
13250 {0x1AC, 0, 1},
13251 {0x1AD, 0x84, 0},
13252 {0x1AE, 0x60, 0},
13253 {0x1AF, 0x47, 0},
13254 {0x1B0, 0x47, 0},
13255 {0x1B1, 0, 0},
13256 {0x1B2, 0, 0},
13257 {0x1B3, 0, 0},
13258 {0x1B4, 0, 0},
13259 {0x1B5, 0, 0},
13260 {0x1B6, 0, 0},
13261 {0x1B7, 0x5, 1},
13262 {0x1B8, 0, 0},
13263 {0x1B9, 0, 0},
13264 {0x1BA, 0, 0},
13265 {0x1BB, 0, 0},
13266 {0x1BC, 0, 0},
13267 {0x1BD, 0, 0},
13268 {0x1BE, 0, 0},
13269 {0x1BF, 0, 0},
13270 {0x1C0, 0, 0},
13271 {0x1C1, 0, 0},
13272 {0x1C2, 0xa0, 1},
13273 {0x1C3, 0, 0},
13274 {0x1C4, 0, 0},
13275 {0x1C5, 0, 0},
13276 {0x1C6, 0, 0},
13277 {0x1C7, 0, 0},
13278 {0x1C8, 0, 0},
13279 {0x1C9, 0, 0},
13280 {0x1CA, 0, 0},
13281 {0xFFFF, 0, 0}
13282};
13283
e59fe083 13284static s16 nphy_def_lnagains[] = { -2, 10, 19, 25 };
a9533e7e 13285
3e26416e
GKH
13286static s32 nphy_lnagain_est0[] = { -315, 40370 };
13287static s32 nphy_lnagain_est1[] = { -224, 23242 };
a9533e7e 13288
7d4df48e 13289static const u16 tbl_iqcal_gainparams_nphy[2][NPHY_IQCAL_NUMGAINS][8] = {
a9533e7e
HP
13290 {
13291 {0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69},
13292 {0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69},
13293 {0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68},
13294 {0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67},
13295 {0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66},
13296 {0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65},
13297 {0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65},
13298 {0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65},
13299 {0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65}
13300 },
13301 {
13302 {0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13303 {0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79},
13304 {0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79},
13305 {0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78},
13306 {0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78},
13307 {0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78},
13308 {0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78},
13309 {0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78},
13310 {0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78}
13311 }
13312};
13313
66cbd3ab 13314static const u32 nphy_tpc_txgain[] = {
a9533e7e
HP
13315 0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
13316 0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
13317 0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
13318 0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
13319 0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
13320 0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
13321 0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
13322 0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
13323 0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
13324 0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
13325 0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
13326 0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
13327 0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
13328 0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
13329 0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
13330 0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
13331 0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
13332 0x03902942, 0x03902844, 0x03902842, 0x03902744,
13333 0x03902742, 0x03902644, 0x03902642, 0x03902544,
13334 0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
13335 0x03802a42, 0x03802944, 0x03802942, 0x03802844,
13336 0x03802842, 0x03802744, 0x03802742, 0x03802644,
13337 0x03802642, 0x03802544, 0x03802542, 0x03802444,
13338 0x03802442, 0x03802344, 0x03802342, 0x03802244,
13339 0x03802242, 0x03802144, 0x03802142, 0x03802044,
13340 0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
13341 0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
13342 0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
13343 0x03801a42, 0x03801944, 0x03801942, 0x03801844,
13344 0x03801842, 0x03801744, 0x03801742, 0x03801644,
13345 0x03801642, 0x03801544, 0x03801542, 0x03801444,
13346 0x03801442, 0x03801344, 0x03801342, 0x00002b00
13347};
13348
7d4df48e 13349static const u16 nphy_tpc_loscale[] = {
a9533e7e
HP
13350 256, 256, 271, 271, 287, 256, 256, 271,
13351 271, 287, 287, 304, 304, 256, 256, 271,
13352 271, 287, 287, 304, 304, 322, 322, 341,
13353 341, 362, 362, 383, 383, 256, 256, 271,
13354 271, 287, 287, 304, 304, 322, 322, 256,
13355 256, 271, 271, 287, 287, 304, 304, 322,
13356 322, 341, 341, 362, 362, 256, 256, 271,
13357 271, 287, 287, 304, 304, 322, 322, 256,
13358 256, 271, 271, 287, 287, 304, 304, 322,
13359 322, 341, 341, 362, 362, 256, 256, 271,
13360 271, 287, 287, 304, 304, 322, 322, 341,
13361 341, 362, 362, 383, 383, 406, 406, 430,
13362 430, 455, 455, 482, 482, 511, 511, 541,
13363 541, 573, 573, 607, 607, 643, 643, 681,
13364 681, 722, 722, 764, 764, 810, 810, 858,
13365 858, 908, 908, 962, 962, 1019, 1019, 256
13366};
13367
66cbd3ab 13368static u32 nphy_tpc_txgain_ipa[] = {
a9533e7e
HP
13369 0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
13370 0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
13371 0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
13372 0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
13373 0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
13374 0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
13375 0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
13376 0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
13377 0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
13378 0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
13379 0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
13380 0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
13381 0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
13382 0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
13383 0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
13384 0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
13385 0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
13386 0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
13387 0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
13388 0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
13389 0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
13390 0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
13391 0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
13392 0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
13393 0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
13394 0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
13395 0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
13396 0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
13397 0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
13398 0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
13399 0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
13400 0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025
13401};
13402
66cbd3ab 13403static u32 nphy_tpc_txgain_ipa_rev5[] = {
a9533e7e
HP
13404 0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
13405 0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
13406 0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
13407 0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
13408 0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
13409 0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
13410 0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
13411 0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
13412 0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
13413 0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
13414 0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
13415 0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
13416 0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
13417 0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
13418 0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
13419 0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
13420 0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
13421 0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
13422 0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
13423 0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
13424 0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
13425 0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
13426 0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
13427 0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
13428 0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
13429 0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
13430 0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
13431 0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
13432 0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
13433 0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
13434 0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
13435 0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025
13436};
13437
66cbd3ab 13438static u32 nphy_tpc_txgain_ipa_rev6[] = {
a9533e7e
HP
13439 0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
13440 0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
13441 0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
13442 0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
13443 0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
13444 0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
13445 0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
13446 0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
13447 0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
13448 0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
13449 0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
13450 0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
13451 0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
13452 0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
13453 0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
13454 0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
13455 0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
13456 0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
13457 0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
13458 0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
13459 0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
13460 0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
13461 0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
13462 0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
13463 0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
13464 0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
13465 0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
13466 0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
13467 0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
13468 0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
13469 0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
13470 0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025
13471};
13472
66cbd3ab 13473static u32 nphy_tpc_txgain_ipa_2g_2057rev3[] = {
a9533e7e
HP
13474 0x70ff0040, 0x70f7003e, 0x70ef003b, 0x70e70039,
13475 0x70df0037, 0x70d70036, 0x70cf0033, 0x70c70032,
13476 0x70bf0031, 0x70b7002f, 0x70af002e, 0x70a7002d,
13477 0x709f002d, 0x7097002c, 0x708f002c, 0x7087002c,
13478 0x707f002b, 0x7077002c, 0x706f002c, 0x7067002d,
13479 0x705f002e, 0x705f002b, 0x705f0029, 0x7057002a,
13480 0x70570028, 0x704f002a, 0x7047002c, 0x7047002a,
13481 0x70470028, 0x70470026, 0x70470024, 0x70470022,
13482 0x7047001f, 0x70370027, 0x70370024, 0x70370022,
13483 0x70370020, 0x7037001f, 0x7037001d, 0x7037001b,
13484 0x7037001a, 0x70370018, 0x70370017, 0x7027001e,
13485 0x7027001d, 0x7027001a, 0x701f0024, 0x701f0022,
13486 0x701f0020, 0x701f001f, 0x701f001d, 0x701f001b,
13487 0x701f001a, 0x701f0018, 0x701f0017, 0x701f0015,
13488 0x701f0014, 0x701f0013, 0x701f0012, 0x701f0011,
13489 0x70170019, 0x70170018, 0x70170016, 0x70170015,
13490 0x70170014, 0x70170013, 0x70170012, 0x70170010,
13491 0x70170010, 0x7017000f, 0x700f001d, 0x700f001b,
13492 0x700f001a, 0x700f0018, 0x700f0017, 0x700f0015,
13493 0x700f0015, 0x700f0013, 0x700f0013, 0x700f0011,
13494 0x700f0010, 0x700f0010, 0x700f000f, 0x700f000e,
13495 0x700f000d, 0x700f000c, 0x700f000b, 0x700f000b,
13496 0x700f000b, 0x700f000a, 0x700f0009, 0x700f0009,
13497 0x700f0009, 0x700f0008, 0x700f0007, 0x700f0007,
13498 0x700f0006, 0x700f0006, 0x700f0006, 0x700f0006,
13499 0x700f0005, 0x700f0005, 0x700f0005, 0x700f0004,
13500 0x700f0004, 0x700f0004, 0x700f0004, 0x700f0004,
13501 0x700f0004, 0x700f0003, 0x700f0003, 0x700f0003,
13502 0x700f0003, 0x700f0002, 0x700f0002, 0x700f0002,
13503 0x700f0002, 0x700f0002, 0x700f0002, 0x700f0001,
13504 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001,
13505 0x700f0001, 0x700f0001, 0x700f0001, 0x700f0001
13506};
13507
66cbd3ab 13508static u32 nphy_tpc_txgain_ipa_2g_2057rev4n6[] = {
a9533e7e
HP
13509 0xf0ff0040, 0xf0f7003e, 0xf0ef003b, 0xf0e70039,
13510 0xf0df0037, 0xf0d70036, 0xf0cf0033, 0xf0c70032,
13511 0xf0bf0031, 0xf0b7002f, 0xf0af002e, 0xf0a7002d,
13512 0xf09f002d, 0xf097002c, 0xf08f002c, 0xf087002c,
13513 0xf07f002b, 0xf077002c, 0xf06f002c, 0xf067002d,
13514 0xf05f002e, 0xf05f002b, 0xf05f0029, 0xf057002a,
13515 0xf0570028, 0xf04f002a, 0xf047002c, 0xf047002a,
13516 0xf0470028, 0xf0470026, 0xf0470024, 0xf0470022,
13517 0xf047001f, 0xf0370027, 0xf0370024, 0xf0370022,
13518 0xf0370020, 0xf037001f, 0xf037001d, 0xf037001b,
13519 0xf037001a, 0xf0370018, 0xf0370017, 0xf027001e,
13520 0xf027001d, 0xf027001a, 0xf01f0024, 0xf01f0022,
13521 0xf01f0020, 0xf01f001f, 0xf01f001d, 0xf01f001b,
13522 0xf01f001a, 0xf01f0018, 0xf01f0017, 0xf01f0015,
13523 0xf01f0014, 0xf01f0013, 0xf01f0012, 0xf01f0011,
13524 0xf0170019, 0xf0170018, 0xf0170016, 0xf0170015,
13525 0xf0170014, 0xf0170013, 0xf0170012, 0xf0170010,
13526 0xf0170010, 0xf017000f, 0xf00f001d, 0xf00f001b,
13527 0xf00f001a, 0xf00f0018, 0xf00f0017, 0xf00f0015,
13528 0xf00f0015, 0xf00f0013, 0xf00f0013, 0xf00f0011,
13529 0xf00f0010, 0xf00f0010, 0xf00f000f, 0xf00f000e,
13530 0xf00f000d, 0xf00f000c, 0xf00f000b, 0xf00f000b,
13531 0xf00f000b, 0xf00f000a, 0xf00f0009, 0xf00f0009,
13532 0xf00f0009, 0xf00f0008, 0xf00f0007, 0xf00f0007,
13533 0xf00f0006, 0xf00f0006, 0xf00f0006, 0xf00f0006,
13534 0xf00f0005, 0xf00f0005, 0xf00f0005, 0xf00f0004,
13535 0xf00f0004, 0xf00f0004, 0xf00f0004, 0xf00f0004,
13536 0xf00f0004, 0xf00f0003, 0xf00f0003, 0xf00f0003,
13537 0xf00f0003, 0xf00f0002, 0xf00f0002, 0xf00f0002,
13538 0xf00f0002, 0xf00f0002, 0xf00f0002, 0xf00f0001,
13539 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001,
13540 0xf00f0001, 0xf00f0001, 0xf00f0001, 0xf00f0001
13541};
13542
66cbd3ab 13543static u32 nphy_tpc_txgain_ipa_2g_2057rev5[] = {
a9533e7e
HP
13544 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13545 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13546 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13547 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13548 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13549 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13550 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13551 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13552 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13553 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13554 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13555 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13556 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13557 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13558 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13559 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13560 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13561 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13562 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
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 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13575 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13576};
13577
66cbd3ab 13578static u32 nphy_tpc_txgain_ipa_2g_2057rev7[] = {
a9533e7e
HP
13579 0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
13580 0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
13581 0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
13582 0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
13583 0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
13584 0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
13585 0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
13586 0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
13587 0x30270027, 0x30270025, 0x30270023, 0x301f002c,
13588 0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
13589 0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
13590 0x30170028, 0x30170026, 0x30170024, 0x30170022,
13591 0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
13592 0x3017001a, 0x30170018, 0x30170017, 0x30170015,
13593 0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
13594 0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
13595 0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
13596 0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
13597 0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
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 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
13610 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715
13611};
13612
66cbd3ab 13613static u32 nphy_tpc_txgain_ipa_5g[] = {
a9533e7e
HP
13614 0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
13615 0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
13616 0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
13617 0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
13618 0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
13619 0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
13620 0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
13621 0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
13622 0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
13623 0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
13624 0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
13625 0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
13626 0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
13627 0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
13628 0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
13629 0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
13630 0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
13631 0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
13632 0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
13633 0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
13634 0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
13635 0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
13636 0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
13637 0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
13638 0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
13639 0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
13640 0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
13641 0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
13642 0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
13643 0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
13644 0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
13645 0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f
13646};
13647
66cbd3ab 13648static u32 nphy_tpc_txgain_ipa_5g_2057[] = {
a9533e7e
HP
13649 0x7f7f0044, 0x7f7f0040, 0x7f7f003c, 0x7f7f0039,
13650 0x7f7f0036, 0x7e7f003c, 0x7e7f0038, 0x7e7f0035,
13651 0x7d7f003c, 0x7d7f0039, 0x7d7f0036, 0x7d7f0033,
13652 0x7c7f003b, 0x7c7f0037, 0x7c7f0034, 0x7b7f003a,
13653 0x7b7f0036, 0x7b7f0033, 0x7a7f003c, 0x7a7f0039,
13654 0x7a7f0036, 0x7a7f0033, 0x797f003b, 0x797f0038,
13655 0x797f0035, 0x797f0032, 0x787f003b, 0x787f0038,
13656 0x787f0035, 0x787f0032, 0x777f003a, 0x777f0037,
13657 0x777f0034, 0x777f0031, 0x767f003a, 0x767f0036,
13658 0x767f0033, 0x767f0031, 0x757f003a, 0x757f0037,
13659 0x757f0034, 0x747f003c, 0x747f0039, 0x747f0036,
13660 0x747f0033, 0x737f003b, 0x737f0038, 0x737f0035,
13661 0x737f0032, 0x727f0039, 0x727f0036, 0x727f0033,
13662 0x727f0030, 0x717f003a, 0x717f0037, 0x717f0034,
13663 0x707f003b, 0x707f0038, 0x707f0035, 0x707f0032,
13664 0x707f002f, 0x707f002d, 0x707f002a, 0x707f0028,
13665 0x707f0025, 0x707f0023, 0x707f0021, 0x707f0020,
13666 0x707f001e, 0x707f001c, 0x707f001b, 0x707f0019,
13667 0x707f0018, 0x707f0016, 0x707f0015, 0x707f0014,
13668 0x707f0013, 0x707f0012, 0x707f0011, 0x707f0010,
13669 0x707f000f, 0x707f000e, 0x707f000d, 0x707f000d,
13670 0x707f000c, 0x707f000b, 0x707f000b, 0x707f000a,
13671 0x707f0009, 0x707f0009, 0x707f0008, 0x707f0008,
13672 0x707f0007, 0x707f0007, 0x707f0007, 0x707f0006,
13673 0x707f0006, 0x707f0006, 0x707f0005, 0x707f0005,
13674 0x707f0005, 0x707f0004, 0x707f0004, 0x707f0004,
13675 0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
13676 0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
13677 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13678 0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
13679 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
13680 0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001
13681};
13682
66cbd3ab 13683static u32 nphy_tpc_txgain_ipa_5g_2057rev7[] = {
a9533e7e
HP
13684 0x6f7f0031, 0x6f7f002e, 0x6f7f002c, 0x6f7f002a,
13685 0x6f7f0027, 0x6e7f002e, 0x6e7f002c, 0x6e7f002a,
13686 0x6d7f0030, 0x6d7f002d, 0x6d7f002a, 0x6d7f0028,
13687 0x6c7f0030, 0x6c7f002d, 0x6c7f002b, 0x6b7f002e,
13688 0x6b7f002c, 0x6b7f002a, 0x6b7f0027, 0x6a7f002e,
13689 0x6a7f002c, 0x6a7f002a, 0x697f0030, 0x697f002e,
13690 0x697f002b, 0x697f0029, 0x687f002f, 0x687f002d,
13691 0x687f002a, 0x687f0027, 0x677f002f, 0x677f002d,
13692 0x677f002a, 0x667f0031, 0x667f002e, 0x667f002c,
13693 0x667f002a, 0x657f0030, 0x657f002e, 0x657f002b,
13694 0x657f0029, 0x647f0030, 0x647f002d, 0x647f002b,
13695 0x647f0029, 0x637f002f, 0x637f002d, 0x637f002a,
13696 0x627f0030, 0x627f002d, 0x627f002b, 0x627f0029,
13697 0x617f0030, 0x617f002e, 0x617f002b, 0x617f0029,
13698 0x607f002f, 0x607f002d, 0x607f002a, 0x607f0027,
13699 0x607f0026, 0x607f0023, 0x607f0021, 0x607f0020,
13700 0x607f001e, 0x607f001c, 0x607f001a, 0x607f0019,
13701 0x607f0018, 0x607f0016, 0x607f0015, 0x607f0014,
13702 0x607f0012, 0x607f0012, 0x607f0011, 0x607f000f,
13703 0x607f000f, 0x607f000e, 0x607f000d, 0x607f000c,
13704 0x607f000c, 0x607f000b, 0x607f000b, 0x607f000a,
13705 0x607f0009, 0x607f0009, 0x607f0008, 0x607f0008,
13706 0x607f0008, 0x607f0007, 0x607f0007, 0x607f0006,
13707 0x607f0006, 0x607f0005, 0x607f0005, 0x607f0005,
13708 0x607f0005, 0x607f0005, 0x607f0004, 0x607f0004,
13709 0x607f0004, 0x607f0004, 0x607f0003, 0x607f0003,
13710 0x607f0003, 0x607f0003, 0x607f0002, 0x607f0002,
13711 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13712 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13713 0x607f0002, 0x607f0002, 0x607f0002, 0x607f0002,
13714 0x607f0002, 0x607f0001, 0x607f0001, 0x607f0001,
13715 0x607f0001, 0x607f0001, 0x607f0001, 0x607f0001
13716};
13717
562c8850 13718static s8 nphy_papd_pga_gain_delta_ipa_2g[] = {
a9533e7e
HP
13719 -114, -108, -98, -91, -84, -78, -70, -62,
13720 -54, -46, -39, -31, -23, -15, -8, 0
13721};
13722
562c8850 13723static s8 nphy_papd_pga_gain_delta_ipa_5g[] = {
a9533e7e
HP
13724 -100, -95, -89, -83, -77, -70, -63, -56,
13725 -48, -41, -33, -25, -19, -12, -6, 0
13726};
13727
e59fe083 13728static s16 nphy_papd_padgain_dlt_2g_2057rev3n4[] = {
a9533e7e
HP
13729 -159, -113, -86, -72, -62, -54, -48, -43,
13730 -39, -35, -31, -28, -25, -23, -20, -18,
13731 -17, -15, -13, -11, -10, -8, -7, -6,
13732 -5, -4, -3, -3, -2, -1, -1, 0
13733};
13734
e59fe083 13735static s16 nphy_papd_padgain_dlt_2g_2057rev5[] = {
a9533e7e
HP
13736 -109, -109, -82, -68, -58, -50, -44, -39,
13737 -35, -31, -28, -26, -23, -21, -19, -17,
13738 -16, -14, -13, -11, -10, -9, -8, -7,
13739 -5, -5, -4, -3, -2, -1, -1, 0
13740};
13741
e59fe083 13742static s16 nphy_papd_padgain_dlt_2g_2057rev7[] = {
a9533e7e
HP
13743 -122, -122, -95, -80, -69, -61, -54, -49,
13744 -43, -39, -35, -32, -28, -26, -23, -21,
13745 -18, -16, -15, -13, -11, -10, -8, -7,
13746 -6, -5, -4, -3, -2, -1, -1, 0
13747};
13748
562c8850 13749static s8 nphy_papd_pgagain_dlt_5g_2057[] = {
a9533e7e
HP
13750 -107, -101, -92, -85, -78, -71, -62, -55,
13751 -47, -39, -32, -24, -19, -12, -6, 0
13752};
13753
562c8850 13754static s8 nphy_papd_pgagain_dlt_5g_2057rev7[] = {
a9533e7e
HP
13755 -110, -104, -95, -88, -81, -74, -66, -58,
13756 -50, -44, -36, -28, -23, -15, -8, 0
13757};
13758
e868ab03 13759static u8 pad_gain_codes_used_2057rev5[] = {
a9533e7e
HP
13760 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
13761 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
13762};
13763
e868ab03 13764static u8 pad_gain_codes_used_2057rev7[] = {
a9533e7e
HP
13765 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
13766 5, 4, 3, 2, 1
13767};
13768
e868ab03 13769static u8 pad_all_gain_codes_2057[] = {
a9533e7e
HP
13770 31, 30, 29, 28, 27, 26, 25, 24, 23, 22,
13771 21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
13772 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,
13773 1, 0
13774};
13775
e868ab03 13776static u8 pga_all_gain_codes_2057[] = {
a9533e7e
HP
13777 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
13778};
13779
66cbd3ab 13780static u32 nphy_papd_scaltbl[] = {
a9533e7e
HP
13781 0x0ae2002f, 0x0a3b0032, 0x09a70035, 0x09220038,
13782 0x0887003c, 0x081f003f, 0x07a20043, 0x07340047,
13783 0x06d2004b, 0x067a004f, 0x06170054, 0x05bf0059,
13784 0x0571005e, 0x051e0064, 0x04d3006a, 0x04910070,
13785 0x044c0077, 0x040f007e, 0x03d90085, 0x03a1008d,
13786 0x036f0095, 0x033d009e, 0x030b00a8, 0x02e000b2,
13787 0x02b900bc, 0x029200c7, 0x026d00d3, 0x024900e0,
13788 0x022900ed, 0x020a00fb, 0x01ec010a, 0x01d0011a,
13789 0x01b7012a, 0x019e013c, 0x0187014f, 0x01720162,
13790 0x015d0177, 0x0149018e, 0x013701a5, 0x012601be,
13791 0x011501d9, 0x010501f5, 0x00f70212, 0x00e90232,
13792 0x00dc0253, 0x00d00276, 0x00c4029c, 0x00b902c3,
13793 0x00af02ed, 0x00a5031a, 0x009c0349, 0x0093037a,
13794 0x008b03af, 0x008303e7, 0x007c0422, 0x00750461,
13795 0x006e04a3, 0x006804ea, 0x00620534, 0x005d0583,
13796 0x005805d7, 0x0053062f, 0x004e068d, 0x004a06f1
13797};
13798
66cbd3ab 13799static u32 nphy_tpc_txgain_rev3[] = {
a9533e7e
HP
13800 0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
13801 0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
13802 0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
13803 0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
13804 0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
13805 0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
13806 0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
13807 0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
13808 0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
13809 0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
13810 0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
13811 0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
13812 0x19410044, 0x19410042, 0x19410040, 0x1941003e,
13813 0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
13814 0x18410044, 0x18410042, 0x18410040, 0x1841003e,
13815 0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
13816 0x17410044, 0x17410042, 0x17410040, 0x1741003e,
13817 0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
13818 0x16410044, 0x16410042, 0x16410040, 0x1641003e,
13819 0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
13820 0x15410044, 0x15410042, 0x15410040, 0x1541003e,
13821 0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
13822 0x14410044, 0x14410042, 0x14410040, 0x1441003e,
13823 0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
13824 0x13410044, 0x13410042, 0x13410040, 0x1341003e,
13825 0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
13826 0x12410044, 0x12410042, 0x12410040, 0x1241003e,
13827 0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
13828 0x11410044, 0x11410042, 0x11410040, 0x1141003e,
13829 0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
13830 0x10410044, 0x10410042, 0x10410040, 0x1041003e,
13831 0x1041003c, 0x1041003b, 0x10410039, 0x10410037
13832};
13833
66cbd3ab 13834static u32 nphy_tpc_txgain_HiPwrEPA[] = {
a9533e7e
HP
13835 0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
13836 0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
13837 0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
13838 0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
13839 0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
13840 0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
13841 0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
13842 0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
13843 0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
13844 0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
13845 0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
13846 0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
13847 0x09410044, 0x09410042, 0x09410040, 0x0941003e,
13848 0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
13849 0x08410044, 0x08410042, 0x08410040, 0x0841003e,
13850 0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
13851 0x07410044, 0x07410042, 0x07410040, 0x0741003e,
13852 0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
13853 0x06410044, 0x06410042, 0x06410040, 0x0641003e,
13854 0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
13855 0x05410044, 0x05410042, 0x05410040, 0x0541003e,
13856 0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
13857 0x04410044, 0x04410042, 0x04410040, 0x0441003e,
13858 0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
13859 0x03410044, 0x03410042, 0x03410040, 0x0341003e,
13860 0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
13861 0x02410044, 0x02410042, 0x02410040, 0x0241003e,
13862 0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
13863 0x01410044, 0x01410042, 0x01410040, 0x0141003e,
13864 0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
13865 0x00410044, 0x00410042, 0x00410040, 0x0041003e,
13866 0x0041003c, 0x0041003b, 0x00410039, 0x00410037
13867};
13868
66cbd3ab 13869static u32 nphy_tpc_txgain_epa_2057rev3[] = {
a9533e7e
HP
13870 0x80f90040, 0x80e10040, 0x80e1003c, 0x80c9003d,
13871 0x80b9003c, 0x80a9003d, 0x80a1003c, 0x8099003b,
13872 0x8091003b, 0x8089003a, 0x8081003a, 0x80790039,
13873 0x80710039, 0x8069003a, 0x8061003b, 0x8059003d,
13874 0x8051003f, 0x80490042, 0x8049003e, 0x8049003b,
13875 0x8041003e, 0x8041003b, 0x8039003e, 0x8039003b,
13876 0x80390038, 0x80390035, 0x8031003a, 0x80310036,
13877 0x80310033, 0x8029003a, 0x80290037, 0x80290034,
13878 0x80290031, 0x80210039, 0x80210036, 0x80210033,
13879 0x80210030, 0x8019003c, 0x80190039, 0x80190036,
13880 0x80190033, 0x80190030, 0x8019002d, 0x8019002b,
13881 0x80190028, 0x8011003a, 0x80110036, 0x80110033,
13882 0x80110030, 0x8011002e, 0x8011002b, 0x80110029,
13883 0x80110027, 0x80110024, 0x80110022, 0x80110020,
13884 0x8011001f, 0x8011001d, 0x8009003a, 0x80090037,
13885 0x80090034, 0x80090031, 0x8009002e, 0x8009002c,
13886 0x80090029, 0x80090027, 0x80090025, 0x80090023,
13887 0x80090021, 0x8009001f, 0x8009001d, 0x8009011d,
13888 0x8009021d, 0x8009031d, 0x8009041d, 0x8009051d,
13889 0x8009061d, 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 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d,
13901 0x8009071d, 0x8009071d, 0x8009071d, 0x8009071d
13902};
13903
66cbd3ab 13904static u32 nphy_tpc_txgain_epa_2057rev5[] = {
a9533e7e
HP
13905 0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
13906 0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
13907 0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
13908 0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
13909 0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
13910 0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
13911 0x10390038, 0x10390035, 0x1031003a, 0x10310036,
13912 0x10310033, 0x1029003a, 0x10290037, 0x10290034,
13913 0x10290031, 0x10210039, 0x10210036, 0x10210033,
13914 0x10210030, 0x1019003c, 0x10190039, 0x10190036,
13915 0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
13916 0x10190028, 0x1011003a, 0x10110036, 0x10110033,
13917 0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
13918 0x10110027, 0x10110024, 0x10110022, 0x10110020,
13919 0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
13920 0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
13921 0x10090029, 0x10090027, 0x10090025, 0x10090023,
13922 0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
13923 0x1009001a, 0x10090018, 0x10090017, 0x10090016,
13924 0x10090015, 0x10090013, 0x10090012, 0x10090011,
13925 0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
13926 0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
13927 0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
13928 0x10090008, 0x10090008, 0x10090007, 0x10090007,
13929 0x10090007, 0x10090006, 0x10090006, 0x10090005,
13930 0x10090005, 0x10090005, 0x10090005, 0x10090004,
13931 0x10090004, 0x10090004, 0x10090004, 0x10090003,
13932 0x10090003, 0x10090003, 0x10090003, 0x10090003,
13933 0x10090003, 0x10090002, 0x10090002, 0x10090002,
13934 0x10090002, 0x10090002, 0x10090002, 0x10090002,
13935 0x10090002, 0x10090002, 0x10090001, 0x10090001,
13936 0x10090001, 0x10090001, 0x10090001, 0x10090001
13937};
13938
66cbd3ab 13939static u32 nphy_tpc_5GHz_txgain_rev3[] = {
a9533e7e
HP
13940 0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
13941 0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
13942 0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
13943 0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
13944 0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
13945 0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
13946 0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
13947 0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
13948 0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
13949 0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
13950 0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
13951 0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
13952 0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
13953 0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
13954 0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
13955 0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
13956 0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
13957 0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
13958 0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
13959 0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
13960 0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
13961 0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
13962 0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
13963 0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
13964 0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
13965 0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
13966 0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
13967 0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
13968 0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
13969 0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
13970 0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
13971 0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037
13972};
13973
66cbd3ab 13974static u32 nphy_tpc_5GHz_txgain_rev4[] = {
a9533e7e
HP
13975 0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
13976 0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
13977 0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
13978 0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
13979 0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
13980 0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
13981 0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
13982 0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
13983 0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
13984 0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
13985 0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
13986 0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
13987 0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
13988 0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
13989 0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
13990 0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
13991 0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
13992 0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
13993 0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
13994 0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
13995 0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
13996 0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
13997 0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
13998 0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
13999 0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
14000 0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
14001 0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
14002 0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
14003 0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
14004 0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
14005 0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
14006 0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034
14007};
14008
66cbd3ab 14009static u32 nphy_tpc_5GHz_txgain_rev5[] = {
a9533e7e
HP
14010 0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
14011 0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
14012 0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
14013 0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
14014 0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
14015 0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
14016 0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
14017 0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
14018 0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
14019 0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
14020 0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
14021 0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
14022 0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
14023 0x09620039, 0x09620037, 0x09620035, 0x09620033,
14024 0x08620044, 0x08620042, 0x08620040, 0x0862003e,
14025 0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
14026 0x07620043, 0x07620042, 0x07620040, 0x0762003f,
14027 0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
14028 0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
14029 0x06620039, 0x06620037, 0x06620035, 0x06620033,
14030 0x05620046, 0x05620044, 0x05620042, 0x05620040,
14031 0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
14032 0x04620044, 0x04620042, 0x04620040, 0x0462003e,
14033 0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
14034 0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
14035 0x03620038, 0x03620037, 0x03620035, 0x03620033,
14036 0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
14037 0x02620046, 0x02620044, 0x02620043, 0x02620042,
14038 0x0162004a, 0x01620048, 0x01620046, 0x01620044,
14039 0x01620043, 0x01620042, 0x01620041, 0x01620040,
14040 0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
14041 0x0062003b, 0x00620039, 0x00620037, 0x00620035
14042};
14043
66cbd3ab 14044static u32 nphy_tpc_5GHz_txgain_HiPwrEPA[] = {
a9533e7e
HP
14045 0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
14046 0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
14047 0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
14048 0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
14049 0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
14050 0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
14051 0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
14052 0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
14053 0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
14054 0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
14055 0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
14056 0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
14057 0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
14058 0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
14059 0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
14060 0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
14061 0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
14062 0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
14063 0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
14064 0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
14065 0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
14066 0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
14067 0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
14068 0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
14069 0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
14070 0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
14071 0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
14072 0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
14073 0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
14074 0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
14075 0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
14076 0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
14077};
14078
e868ab03
GKH
14079static u8 ant_sw_ctrl_tbl_rev8_2o3[] = { 0x14, 0x18 };
14080static u8 ant_sw_ctrl_tbl_rev8[] = { 0x4, 0x8, 0x4, 0x8, 0x11, 0x12 };
14081static u8 ant_sw_ctrl_tbl_rev8_2057v7_core0[] = {
e5c4536f 14082 0x09, 0x0a, 0x15, 0x16, 0x09, 0x0a };
e868ab03 14083static u8 ant_sw_ctrl_tbl_rev8_2057v7_core1[] = {
e5c4536f 14084 0x09, 0x0a, 0x09, 0x0a, 0x15, 0x16 };
a9533e7e 14085
7cc4a4c0
JC
14086static bool wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
14087 chan_info_nphy_radio2057_t **t0,
14088 chan_info_nphy_radio205x_t **t1,
14089 chan_info_nphy_radio2057_rev5_t **t2,
14090 chan_info_nphy_2055_t **t3);
14091static void wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chans,
14092 const nphy_sfo_cfg_t *c);
14093
14094static void wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi,
7d4df48e 14095 u16 reduction_factr);
7cc4a4c0 14096static void wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *,
66cbd3ab 14097 u32 *buf);
e868ab03 14098static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr);
7cc4a4c0
JC
14099static void wlc_phy_txlpfbw_nphy(phy_info_t *pi);
14100static void wlc_phy_spurwar_nphy(phy_info_t *pi);
14101
14102static void wlc_phy_radio_preinit_2055(phy_info_t *pi);
14103static void wlc_phy_radio_init_2055(phy_info_t *pi);
14104static void wlc_phy_radio_postinit_2055(phy_info_t *pi);
14105static void wlc_phy_radio_preinit_205x(phy_info_t *pi);
14106static void wlc_phy_radio_init_2056(phy_info_t *pi);
14107static void wlc_phy_radio_postinit_2056(phy_info_t *pi);
14108static void wlc_phy_radio_init_2057(phy_info_t *pi);
14109static void wlc_phy_radio_postinit_2057(phy_info_t *pi);
14110static void wlc_phy_workarounds_nphy(phy_info_t *pi);
14111static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi);
14112static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi);
14113static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi);
14114static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi);
14115
14116static void wlc_phy_restore_rssical_nphy(phy_info_t *pi);
14117static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi);
14118static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi);
14119static int wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t tg,
e868ab03
GKH
14120 u8 type, bool d);
14121static void wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rxcore,
7d4df48e 14122 u16 *rg, u8 type);
3e26416e 14123static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble);
7cc4a4c0
JC
14124static void wlc_phy_savecal_nphy(phy_info_t *pi);
14125static void wlc_phy_restorecal_nphy(phy_info_t *pi);
14126static void wlc_phy_resetcca_nphy(phy_info_t *pi);
14127
14128static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi);
14129static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi);
14130static void wlc_phy_precal_txgain_nphy(phy_info_t *pi);
7d4df48e 14131static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core);
7cc4a4c0
JC
14132
14133static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi);
14134static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi);
14135static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi);
7d4df48e 14136static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi);
e868ab03 14137static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1);
66cbd3ab 14138static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi);
7cc4a4c0 14139
66cbd3ab
GKH
14140static void wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32,
14141 u32 e);
e868ab03 14142static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core);
7cc4a4c0 14143static void wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *,
e868ab03 14144 phy_cal_mode_t, u8);
7cc4a4c0
JC
14145static void wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi,
14146 nphy_papd_restore_state *state);
14147static void wlc_phy_papd_cal_setup_nphy(phy_info_t *pi,
e868ab03 14148 nphy_papd_restore_state *state, u8);
a9533e7e 14149
7d4df48e 14150static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals);
a9533e7e 14151
e868ab03
GKH
14152static void wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *evts,
14153 u8 *dlys, u8 len);
a9533e7e 14154
7d4df48e 14155static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset);
a9533e7e
HP
14156
14157static void
7d4df48e 14158wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
e868ab03
GKH
14159 u8 core_mask, u8 off,
14160 u8 override_id);
a9533e7e 14161
e868ab03 14162static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type);
7cc4a4c0 14163static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi);
a9533e7e 14164
7cc4a4c0 14165static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi);
e868ab03 14166static void wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max,
7d4df48e 14167 u16 *pwr_offset,
e868ab03
GKH
14168 u8 tmp_max_pwr, u8 rate_start,
14169 u8 rate_end);
a9533e7e 14170
7cc4a4c0
JC
14171static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi);
14172static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi);
14173static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi);
14174static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi);
a9533e7e 14175
7cc4a4c0 14176static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi);
e868ab03
GKH
14177static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core);
14178static void wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0,
14179 u8 idx1);
7cc4a4c0 14180static void wlc_phy_a4(phy_info_t *pi, bool full_cal);
a9533e7e 14181
7d4df48e 14182static u16 wlc_phy_radio205x_rcal(phy_info_t *pi);
a9533e7e 14183
7d4df48e 14184static u16 wlc_phy_radio2057_rccal(phy_info_t *pi);
a9533e7e 14185
66cbd3ab 14186static u16 wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz,
7d4df48e 14187 u16 max_val,
e868ab03 14188 u8 dac_test_mode);
3e26416e 14189static void wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
7d4df48e
GKH
14190 u16 num_samps);
14191static void wlc_phy_runsamples_nphy(phy_info_t *pi, u16 n, u16 lps,
14192 u16 wait, u8 iq, u8 dac_test_mode,
a9533e7e
HP
14193 bool modify_bbmult);
14194
7cc4a4c0 14195bool wlc_phy_bist_check_phy(wlc_phy_t *pih)
a9533e7e
HP
14196{
14197 phy_info_t *pi = (phy_info_t *) pih;
66cbd3ab 14198 u32 phybist0, phybist1, phybist2, phybist3, phybist4;
a9533e7e
HP
14199
14200 if (NREV_GE(pi->pubpi.phy_rev, 16))
0f0881b0 14201 return true;
a9533e7e
HP
14202
14203 phybist0 = read_phy_reg(pi, 0x0e);
14204 phybist1 = read_phy_reg(pi, 0x0f);
14205 phybist2 = read_phy_reg(pi, 0xea);
14206 phybist3 = read_phy_reg(pi, 0xeb);
14207 phybist4 = read_phy_reg(pi, 0x156);
14208
14209 if ((phybist0 == 0) && (phybist1 == 0x4000) && (phybist2 == 0x1fe0) &&
14210 (phybist3 == 0) && (phybist4 == 0)) {
0f0881b0 14211 return true;
a9533e7e
HP
14212 }
14213
0965ae88 14214 return false;
a9533e7e
HP
14215}
14216
a2627bc0
JC
14217static void WLBANDINITFN(wlc_phy_bphy_init_nphy) (phy_info_t *pi)
14218{
7d4df48e 14219 u16 addr, val;
a9533e7e 14220
a9533e7e
HP
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:
a9533e7e
HP
14368 break;
14369 }
14370
14371 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14372 for (idx = 0; idx < mimophytbl_info_sz_rev3_volatile; idx++) {
14373
14374 if (idx == ANT_SWCTRL_TBL_REV3_IDX) {
14375 antswctrllut = CHSPEC_IS2G(pi->radio_chanspec) ?
14376 pi->srom_fem2g.antswctrllut : pi->
14377 srom_fem5g.antswctrllut;
14378 switch (antswctrllut) {
14379 case 0:
14380 wlc_phy_write_table_nphy(pi,
14381 &mimophytbl_info_rev3_volatile
14382 [idx]);
14383 break;
14384 case 1:
14385 wlc_phy_write_table_nphy(pi,
14386 &mimophytbl_info_rev3_volatile1
14387 [idx]);
14388 break;
14389 case 2:
14390 wlc_phy_write_table_nphy(pi,
14391 &mimophytbl_info_rev3_volatile2
14392 [idx]);
14393 break;
14394 case 3:
14395 wlc_phy_write_table_nphy(pi,
14396 &mimophytbl_info_rev3_volatile3
14397 [idx]);
14398 break;
14399 default:
a9533e7e
HP
14400 break;
14401 }
14402 } else {
14403 wlc_phy_write_table_nphy(pi,
14404 &mimophytbl_info_rev3_volatile
14405 [idx]);
14406 }
14407 }
14408 } else {
14409 for (idx = 0; idx < mimophytbl_info_sz_rev0_volatile; idx++) {
14410 wlc_phy_write_table_nphy(pi,
14411 &mimophytbl_info_rev0_volatile
14412 [idx]);
14413 }
14414 }
14415}
14416
14417static void
7d4df48e 14418wlc_phy_write_txmacreg_nphy(phy_info_t *pi, u16 holdoff, u16 delay)
a9533e7e
HP
14419{
14420 write_phy_reg(pi, 0x77, holdoff);
14421 write_phy_reg(pi, 0xb4, delay);
14422}
14423
e868ab03 14424void wlc_phy_nphy_tkip_rifs_war(phy_info_t *pi, u8 rifs)
a9533e7e 14425{
7d4df48e 14426 u16 holdoff, delay;
a9533e7e
HP
14427
14428 if (rifs) {
14429
14430 holdoff = 0x10;
14431 delay = 0x258;
14432 } else {
14433
14434 holdoff = 0x15;
14435 delay = 0x320;
14436 }
14437
14438 wlc_phy_write_txmacreg_nphy(pi, holdoff, delay);
14439
14440 if (pi && pi->sh && (pi->sh->_rifs_phy != rifs)) {
14441 pi->sh->_rifs_phy = rifs;
14442 }
14443}
14444
7cc4a4c0 14445bool wlc_phy_attach_nphy(phy_info_t *pi)
a9533e7e
HP
14446{
14447 uint i;
14448
14449 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 6)) {
0f0881b0 14450 pi->phyhang_avoid = true;
a9533e7e
HP
14451 }
14452
14453 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14454
0f0881b0 14455 pi->nphy_gband_spurwar_en = true;
a9533e7e
HP
14456
14457 if (pi->sh->boardflags2 & BFL2_SPUR_WAR) {
0f0881b0 14458 pi->nphy_aband_spurwar_en = true;
a9533e7e
HP
14459 }
14460 }
14461 if (NREV_GE(pi->pubpi.phy_rev, 6) && NREV_LT(pi->pubpi.phy_rev, 7)) {
14462
14463 if (pi->sh->boardflags2 & BFL2_2G_SPUR_WAR) {
0f0881b0 14464 pi->nphy_gband_spurwar2_en = true;
a9533e7e
HP
14465 }
14466 }
14467
14468 pi->n_preamble_override = AUTO;
14469 if (NREV_IS(pi->pubpi.phy_rev, 3) || NREV_IS(pi->pubpi.phy_rev, 4))
14470 pi->n_preamble_override = WLC_N_PREAMBLE_MIXEDMODE;
14471
14472 pi->nphy_txrx_chain = AUTO;
14473 pi->phy_scraminit = AUTO;
14474
14475 pi->nphy_rxcalparams = 0x010100B5;
14476
14477 pi->nphy_perical = PHY_PERICAL_MPHASE;
14478 pi->mphase_cal_phase_id = MPHASE_CAL_STATE_IDLE;
14479 pi->mphase_txcal_numcmds = MPHASE_TXCAL_NUMCMDS;
14480
0f0881b0 14481 pi->nphy_gain_boost = true;
0965ae88
GKH
14482 pi->nphy_elna_gain_config = false;
14483 pi->radio_is_on = false;
a9533e7e
HP
14484
14485 for (i = 0; i < pi->pubpi.phy_corenum; i++) {
14486 pi->nphy_txpwrindex[i].index = AUTO;
14487 }
14488
14489 wlc_phy_txpwrctrl_config_nphy(pi);
14490 if (pi->nphy_txpwrctrl == PHY_TPC_HW_ON)
0f0881b0 14491 pi->hwpwrctrl_capable = true;
a9533e7e
HP
14492
14493 pi->pi_fptr.init = wlc_phy_init_nphy;
14494 pi->pi_fptr.calinit = wlc_phy_cal_init_nphy;
14495 pi->pi_fptr.chanset = wlc_phy_chanspec_set_nphy;
14496 pi->pi_fptr.txpwrrecalc = wlc_phy_txpower_recalc_target_nphy;
14497
14498 if (!wlc_phy_txpwr_srom_read_nphy(pi))
0965ae88 14499 return false;
a9533e7e 14500
0f0881b0 14501 return true;
a9533e7e
HP
14502}
14503
0d2f0724 14504static void wlc_phy_txpwrctrl_config_nphy(phy_info_t *pi)
a2627bc0 14505{
a9533e7e
HP
14506
14507 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14508 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
0f0881b0 14509 pi->phy_5g_pwrgain = true;
a9533e7e
HP
14510 return;
14511 }
14512
14513 pi->nphy_txpwrctrl = PHY_TPC_HW_OFF;
0965ae88 14514 pi->phy_5g_pwrgain = false;
a9533e7e
HP
14515
14516 if ((pi->sh->boardflags2 & BFL2_TXPWRCTRL_EN) &&
14517 NREV_GE(pi->pubpi.phy_rev, 2) && (pi->sh->sromrev >= 4))
14518 pi->nphy_txpwrctrl = PHY_TPC_HW_ON;
14519 else if ((pi->sh->sromrev >= 4)
14520 && (pi->sh->boardflags2 & BFL2_5G_PWRGAIN))
0f0881b0 14521 pi->phy_5g_pwrgain = true;
a9533e7e
HP
14522}
14523
a2627bc0
JC
14524void WLBANDINITFN(wlc_phy_init_nphy) (phy_info_t *pi)
14525{
7d4df48e
GKH
14526 u16 val;
14527 u16 clip1_ths[2];
a9533e7e 14528 nphy_txgains_t target_gain;
e868ab03 14529 u8 tx_pwr_ctrl_state;
0965ae88 14530 bool do_nphy_cal = false;
a9533e7e
HP
14531 uint core;
14532 uint origidx, intr_val;
14533 d11regs_t *regs;
66cbd3ab 14534 u32 d11_clk_ctl_st;
a9533e7e
HP
14535
14536 core = 0;
14537
14538 if (!(pi->measure_hold & PHY_HOLD_FOR_SCAN)) {
14539 pi->measure_hold |= PHY_HOLD_FOR_NOT_ASSOC;
14540 }
14541
14542 if ((ISNPHY(pi)) && (NREV_GE(pi->pubpi.phy_rev, 5)) &&
14543 ((pi->sh->chippkg == BCM4717_PKG_ID) ||
14544 (pi->sh->chippkg == BCM4718_PKG_ID))) {
14545 if ((pi->sh->boardflags & BFL_EXTLNA) &&
14546 (CHSPEC_IS2G(pi->radio_chanspec))) {
0686acf7 14547 ai_corereg(pi->sh->sih, SI_CC_IDX,
ce0f1b8c 14548 offsetof(chipcregs_t, chipcontrol), 0x40,
a9533e7e
HP
14549 0x40);
14550 }
14551 }
14552
dfa26436 14553 if ((!PHY_IPA(pi)) && (pi->sh->chip == BCM5357_CHIP_ID)) {
a9533e7e
HP
14554 si_pmu_chipcontrol(pi->sh->sih, 1, CCTRL5357_EXTPA,
14555 CCTRL5357_EXTPA);
14556 }
14557
14558 if ((pi->nphy_gband_spurwar2_en) && CHSPEC_IS2G(pi->radio_chanspec) &&
14559 CHSPEC_IS40(pi->radio_chanspec)) {
14560
b21c892d 14561 regs = (d11regs_t *) ai_switch_core(pi->sh->sih, D11_CORE_ID,
a9533e7e 14562 &origidx, &intr_val);
ff31c54c
AS
14563 d11_clk_ctl_st = R_REG(&regs->clk_ctl_st);
14564 AND_REG(&regs->clk_ctl_st,
a9533e7e
HP
14565 ~(CCS_FORCEHT | CCS_HTAREQ));
14566
ff31c54c 14567 W_REG(&regs->clk_ctl_st, d11_clk_ctl_st);
a9533e7e 14568
b21c892d 14569 ai_restore_core(pi->sh->sih, origidx, intr_val);
a9533e7e
HP
14570 }
14571
14572 pi->use_int_tx_iqlo_cal_nphy =
14573 (PHY_IPA(pi) ||
14574 (NREV_GE(pi->pubpi.phy_rev, 7) ||
14575 (NREV_GE(pi->pubpi.phy_rev, 5)
14576 && pi->sh->boardflags2 & BFL2_INTERNDET_TXIQCAL)));
14577
0965ae88 14578 pi->internal_tx_iqlo_cal_tapoff_intpa_nphy = false;
a9533e7e
HP
14579
14580 pi->nphy_deaf_count = 0;
14581
14582 wlc_phy_tbl_init_nphy(pi);
14583
0965ae88
GKH
14584 pi->nphy_crsminpwr_adjusted = false;
14585 pi->nphy_noisevars_adjusted = false;
a9533e7e
HP
14586
14587 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14588 write_phy_reg(pi, 0xe7, 0);
14589 write_phy_reg(pi, 0xec, 0);
14590 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14591 write_phy_reg(pi, 0x342, 0);
14592 write_phy_reg(pi, 0x343, 0);
14593 write_phy_reg(pi, 0x346, 0);
14594 write_phy_reg(pi, 0x347, 0);
14595 }
14596 write_phy_reg(pi, 0xe5, 0);
14597 write_phy_reg(pi, 0xe6, 0);
14598 } else {
14599 write_phy_reg(pi, 0xec, 0);
14600 }
14601
14602 write_phy_reg(pi, 0x91, 0);
14603 write_phy_reg(pi, 0x92, 0);
14604 if (NREV_LT(pi->pubpi.phy_rev, 6)) {
14605 write_phy_reg(pi, 0x93, 0);
14606 write_phy_reg(pi, 0x94, 0);
14607 }
14608
14609 and_phy_reg(pi, 0xa1, ~3);
14610
14611 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14612 write_phy_reg(pi, 0x8f, 0);
14613 write_phy_reg(pi, 0xa5, 0);
14614 } else {
14615 write_phy_reg(pi, 0xa5, 0);
14616 }
14617
14618 if (NREV_IS(pi->pubpi.phy_rev, 2))
14619 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
14620 else if (NREV_LT(pi->pubpi.phy_rev, 2))
14621 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
14622
14623 write_phy_reg(pi, 0x203, 32);
14624 write_phy_reg(pi, 0x201, 32);
14625
14626 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD)
14627 write_phy_reg(pi, 0x20d, 160);
14628 else
14629 write_phy_reg(pi, 0x20d, 184);
14630
14631 write_phy_reg(pi, 0x13a, 200);
14632
14633 write_phy_reg(pi, 0x70, 80);
14634
14635 write_phy_reg(pi, 0x1ff, 48);
14636
14637 if (NREV_LT(pi->pubpi.phy_rev, 8)) {
14638 wlc_phy_update_mimoconfig_nphy(pi, pi->n_preamble_override);
14639 }
14640
14641 wlc_phy_stf_chain_upd_nphy(pi);
14642
14643 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
14644 write_phy_reg(pi, 0x180, 0xaa8);
14645 write_phy_reg(pi, 0x181, 0x9a4);
14646 }
14647
14648 if (PHY_IPA(pi)) {
14649 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
14650
14651 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
14652 0x29b, (0x1 << 0), (1) << 0);
14653
14654 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x298 :
14655 0x29c, (0x1ff << 7),
14656 (pi->nphy_papd_epsilon_offset[core]) << 7);
14657
14658 }
14659
14660 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
14661 } else {
14662
14663 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
14664 wlc_phy_extpa_set_tx_digi_filts_nphy(pi);
14665 }
14666 }
14667
14668 wlc_phy_workarounds_nphy(pi);
14669
14670 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14671
14672 val = read_phy_reg(pi, 0x01);
14673 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
14674 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14675 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14676
14677 wlapi_bmac_macphyclk_set(pi->sh->physhim, ON);
14678
14679 wlc_phy_pa_override_nphy(pi, OFF);
14680 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
14681 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14682 wlc_phy_pa_override_nphy(pi, ON);
14683
14684 wlc_phy_classifier_nphy(pi, 0, 0);
14685 wlc_phy_clip_det_nphy(pi, 0, clip1_ths);
14686
14687 if (CHSPEC_IS2G(pi->radio_chanspec))
14688 wlc_phy_bphy_init_nphy(pi);
14689
14690 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
14691 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
14692
14693 wlc_phy_txpwr_fixpower_nphy(pi);
14694
14695 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
14696
14697 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
14698
14699 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
66cbd3ab 14700 u32 *tx_pwrctrl_tbl = NULL;
7d4df48e 14701 u16 idx;
e59fe083
GKH
14702 s16 pga_gn = 0;
14703 s16 pad_gn = 0;
3e26416e 14704 s32 rfpwr_offset = 0;
a9533e7e
HP
14705
14706 if (PHY_IPA(pi)) {
14707 tx_pwrctrl_tbl = wlc_phy_get_ipa_gaintbl_nphy(pi);
14708 } else {
14709 if (CHSPEC_IS5G(pi->radio_chanspec)) {
14710 if NREV_IS
14711 (pi->pubpi.phy_rev, 3) {
14712 tx_pwrctrl_tbl =
14713 nphy_tpc_5GHz_txgain_rev3;
14714 } else if NREV_IS
14715 (pi->pubpi.phy_rev, 4) {
14716 tx_pwrctrl_tbl =
14717 (pi->srom_fem5g.extpagain == 3) ?
14718 nphy_tpc_5GHz_txgain_HiPwrEPA :
14719 nphy_tpc_5GHz_txgain_rev4;
14720 } else {
14721 tx_pwrctrl_tbl =
14722 nphy_tpc_5GHz_txgain_rev5;
14723 }
14724
14725 } else {
14726 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14727 if (pi->pubpi.radiorev == 5) {
14728 tx_pwrctrl_tbl =
14729 nphy_tpc_txgain_epa_2057rev5;
14730 } else if (pi->pubpi.radiorev == 3) {
14731 tx_pwrctrl_tbl =
14732 nphy_tpc_txgain_epa_2057rev3;
14733 }
14734
14735 } else {
14736 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
14737 (pi->srom_fem2g.extpagain == 3)) {
14738 tx_pwrctrl_tbl =
14739 nphy_tpc_txgain_HiPwrEPA;
14740 } else {
14741 tx_pwrctrl_tbl =
14742 nphy_tpc_txgain_rev3;
14743 }
14744 }
14745 }
14746 }
14747
14748 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14749 192, 32, tx_pwrctrl_tbl);
14750 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14751 192, 32, tx_pwrctrl_tbl);
14752
7d4df48e 14753 pi->nphy_gmval = (u16) ((*tx_pwrctrl_tbl >> 16) & 0x7000);
a9533e7e
HP
14754
14755 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14756
14757 for (idx = 0; idx < 128; idx++) {
14758 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14759 pad_gn = (tx_pwrctrl_tbl[idx] >> 19) & 0x1f;
14760
14761 if (CHSPEC_IS2G(pi->radio_chanspec)) {
14762 if ((pi->pubpi.radiorev == 3) ||
14763 (pi->pubpi.radiorev == 4) ||
14764 (pi->pubpi.radiorev == 6)) {
e59fe083 14765 rfpwr_offset = (s16)
a9533e7e
HP
14766 nphy_papd_padgain_dlt_2g_2057rev3n4
14767 [pad_gn];
14768 } else if (pi->pubpi.radiorev == 5) {
e59fe083 14769 rfpwr_offset = (s16)
a9533e7e
HP
14770 nphy_papd_padgain_dlt_2g_2057rev5
14771 [pad_gn];
14772 } else if ((pi->pubpi.radiorev == 7)
14773 || (pi->pubpi.radiorev ==
14774 8)) {
e59fe083 14775 rfpwr_offset = (s16)
a9533e7e
HP
14776 nphy_papd_padgain_dlt_2g_2057rev7
14777 [pad_gn];
a9533e7e 14778 }
a9533e7e
HP
14779 } else {
14780 if ((pi->pubpi.radiorev == 3) ||
14781 (pi->pubpi.radiorev == 4) ||
14782 (pi->pubpi.radiorev == 6)) {
e59fe083 14783 rfpwr_offset = (s16)
a9533e7e
HP
14784 nphy_papd_pgagain_dlt_5g_2057
14785 [pga_gn];
14786 } else if ((pi->pubpi.radiorev == 7)
14787 || (pi->pubpi.radiorev ==
14788 8)) {
e59fe083 14789 rfpwr_offset = (s16)
a9533e7e
HP
14790 nphy_papd_pgagain_dlt_5g_2057rev7
14791 [pga_gn];
a9533e7e
HP
14792 }
14793 }
14794 wlc_phy_table_write_nphy(pi,
14795 NPHY_TBL_ID_CORE1TXPWRCTL,
14796 1, 576 + idx, 32,
14797 &rfpwr_offset);
14798 wlc_phy_table_write_nphy(pi,
14799 NPHY_TBL_ID_CORE2TXPWRCTL,
14800 1, 576 + idx, 32,
14801 &rfpwr_offset);
14802 }
14803 } else {
14804
14805 for (idx = 0; idx < 128; idx++) {
14806 pga_gn = (tx_pwrctrl_tbl[idx] >> 24) & 0xf;
14807 if (CHSPEC_IS2G(pi->radio_chanspec)) {
e59fe083 14808 rfpwr_offset = (s16)
a9533e7e
HP
14809 nphy_papd_pga_gain_delta_ipa_2g
14810 [pga_gn];
14811 } else {
e59fe083 14812 rfpwr_offset = (s16)
a9533e7e
HP
14813 nphy_papd_pga_gain_delta_ipa_5g
14814 [pga_gn];
14815 }
14816
14817 wlc_phy_table_write_nphy(pi,
14818 NPHY_TBL_ID_CORE1TXPWRCTL,
14819 1, 576 + idx, 32,
14820 &rfpwr_offset);
14821 wlc_phy_table_write_nphy(pi,
14822 NPHY_TBL_ID_CORE2TXPWRCTL,
14823 1, 576 + idx, 32,
14824 &rfpwr_offset);
14825 }
14826
14827 }
14828 } else {
14829
14830 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 128,
14831 192, 32, nphy_tpc_txgain);
14832 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 128,
14833 192, 32, nphy_tpc_txgain);
14834 }
14835
14836 if (pi->sh->phyrxchain != 0x3) {
14837 wlc_phy_rxcore_setstate_nphy((wlc_phy_t *) pi,
14838 pi->sh->phyrxchain);
14839 }
14840
14841 if (PHY_PERICAL_MPHASE_PENDING(pi)) {
14842 wlc_phy_cal_perical_mphase_restart(pi);
14843 }
14844
14845 if (!NORADIO_ENAB(pi->pubpi)) {
0965ae88 14846 bool do_rssi_cal = false;
a9533e7e
HP
14847
14848 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14849 do_rssi_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14850 (pi->nphy_rssical_chanspec_2G == 0) :
14851 (pi->nphy_rssical_chanspec_5G == 0);
14852
14853 if (do_rssi_cal) {
14854 wlc_phy_rssi_cal_nphy(pi);
14855 } else {
14856 wlc_phy_restore_rssical_nphy(pi);
14857 }
14858 } else {
14859 wlc_phy_rssi_cal_nphy(pi);
14860 }
14861
14862 if (!SCAN_RM_IN_PROGRESS(pi)) {
14863 do_nphy_cal = (CHSPEC_IS2G(pi->radio_chanspec)) ?
14864 (pi->nphy_iqcal_chanspec_2G == 0) :
14865 (pi->nphy_iqcal_chanspec_5G == 0);
14866 }
14867
14868 if (!pi->do_initcal)
0965ae88 14869 do_nphy_cal = false;
a9533e7e
HP
14870
14871 if (do_nphy_cal) {
14872
14873 target_gain = wlc_phy_get_tx_gain_nphy(pi);
14874
14875 if (pi->antsel_type == ANTSEL_2x3)
0f0881b0 14876 wlc_phy_antsel_init((wlc_phy_t *) pi, true);
a9533e7e
HP
14877
14878 if (pi->nphy_perical != PHY_PERICAL_MPHASE) {
14879 wlc_phy_rssi_cal_nphy(pi);
14880
14881 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14882 pi->nphy_cal_orig_pwr_idx[0] =
14883 pi->nphy_txpwrindex[PHY_CORE_0].
14884 index_internal;
14885 pi->nphy_cal_orig_pwr_idx[1] =
14886 pi->nphy_txpwrindex[PHY_CORE_1].
14887 index_internal;
14888
14889 wlc_phy_precal_txgain_nphy(pi);
14890 target_gain =
14891 wlc_phy_get_tx_gain_nphy(pi);
14892 }
14893
14894 if (wlc_phy_cal_txiqlo_nphy
a1c5ad81 14895 (pi, target_gain, true, false) == 0) {
a9533e7e
HP
14896 if (wlc_phy_cal_rxiq_nphy
14897 (pi, target_gain, 2,
a1c5ad81 14898 false) == 0) {
a9533e7e
HP
14899 wlc_phy_savecal_nphy(pi);
14900
14901 }
14902 }
14903 } else if (pi->mphase_cal_phase_id ==
14904 MPHASE_CAL_STATE_IDLE) {
14905
14906 wlc_phy_cal_perical((wlc_phy_t *) pi,
14907 PHY_PERICAL_PHYINIT);
14908 }
14909 } else {
14910 wlc_phy_restorecal_nphy(pi);
14911 }
14912 }
14913
14914 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
14915
14916 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
14917
14918 wlc_phy_nphy_tkip_rifs_war(pi, pi->sh->_rifs_phy);
14919
14920 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LE(pi->pubpi.phy_rev, 6))
14921
14922 write_phy_reg(pi, 0x70, 50);
14923
14924 wlc_phy_txlpfbw_nphy(pi);
14925
14926 wlc_phy_spurwar_nphy(pi);
14927
14928}
14929
3e26416e 14930static void wlc_phy_update_mimoconfig_nphy(phy_info_t *pi, s32 preamble)
a9533e7e 14931{
0965ae88 14932 bool gf_preamble = false;
7d4df48e 14933 u16 val;
a9533e7e
HP
14934
14935 if (preamble == WLC_N_PREAMBLE_GF) {
0f0881b0 14936 gf_preamble = true;
a9533e7e
HP
14937 }
14938
14939 val = read_phy_reg(pi, 0xed);
14940
14941 val |= RX_GF_MM_AUTO;
14942 val &= ~RX_GF_OR_MM;
14943 if (gf_preamble)
14944 val |= RX_GF_OR_MM;
14945
14946 write_phy_reg(pi, 0xed, val);
14947}
14948
7cc4a4c0 14949static void wlc_phy_resetcca_nphy(phy_info_t *pi)
a9533e7e 14950{
7d4df48e 14951 u16 val;
a9533e7e 14952
a9533e7e
HP
14953 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
14954
14955 val = read_phy_reg(pi, 0x01);
14956 write_phy_reg(pi, 0x01, val | BBCFG_RESETCCA);
7383141b 14957 udelay(1);
a9533e7e
HP
14958 write_phy_reg(pi, 0x01, val & (~BBCFG_RESETCCA));
14959
14960 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
14961
14962 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
14963}
14964
7cc4a4c0 14965void wlc_phy_pa_override_nphy(phy_info_t *pi, bool en)
a9533e7e 14966{
7d4df48e 14967 u16 rfctrlintc_override_val;
a9533e7e
HP
14968
14969 if (!en) {
14970
14971 pi->rfctrlIntc1_save = read_phy_reg(pi, 0x91);
14972 pi->rfctrlIntc2_save = read_phy_reg(pi, 0x92);
14973
14974 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
14975 rfctrlintc_override_val = 0x1480;
14976 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
14977 rfctrlintc_override_val =
14978 CHSPEC_IS5G(pi->radio_chanspec) ? 0x600 : 0x480;
14979 } else {
14980 rfctrlintc_override_val =
14981 CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
14982 }
14983
14984 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
14985 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
14986 } else {
14987
14988 write_phy_reg(pi, 0x91, pi->rfctrlIntc1_save);
14989 write_phy_reg(pi, 0x92, pi->rfctrlIntc2_save);
14990 }
14991
14992}
14993
7cc4a4c0 14994void wlc_phy_stf_chain_upd_nphy(phy_info_t *pi)
a9533e7e
HP
14995{
14996
7d4df48e 14997 u16 txrx_chain =
a9533e7e 14998 (NPHY_RfseqCoreActv_TxRxChain0 | NPHY_RfseqCoreActv_TxRxChain1);
0965ae88 14999 bool CoreActv_override = false;
a9533e7e
HP
15000
15001 if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN0) {
15002 txrx_chain = NPHY_RfseqCoreActv_TxRxChain0;
0f0881b0 15003 CoreActv_override = true;
a9533e7e
HP
15004
15005 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15006 and_phy_reg(pi, 0xa0, ~0x20);
15007 }
15008 } else if (pi->nphy_txrx_chain == WLC_N_TXRX_CHAIN1) {
15009 txrx_chain = NPHY_RfseqCoreActv_TxRxChain1;
0f0881b0 15010 CoreActv_override = true;
a9533e7e
HP
15011
15012 if (NREV_LE(pi->pubpi.phy_rev, 2)) {
15013 or_phy_reg(pi, 0xa0, 0x20);
15014 }
15015 }
15016
15017 mod_phy_reg(pi, 0xa2, ((0xf << 0) | (0xf << 4)), txrx_chain);
15018
15019 if (CoreActv_override) {
15020
15021 pi->nphy_perical = PHY_PERICAL_DISABLE;
15022 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
15023 } else {
15024 pi->nphy_perical = PHY_PERICAL_MPHASE;
15025 and_phy_reg(pi, 0xa1, ~NPHY_RfseqMode_CoreActv_override);
15026 }
15027}
15028
e868ab03 15029void wlc_phy_rxcore_setstate_nphy(wlc_phy_t *pih, u8 rxcore_bitmask)
a9533e7e 15030{
7d4df48e
GKH
15031 u16 regval;
15032 u16 tbl_buf[16];
a9533e7e
HP
15033 uint i;
15034 phy_info_t *pi = (phy_info_t *) pih;
7d4df48e 15035 u16 tbl_opcode;
a9533e7e
HP
15036 bool suspend;
15037
15038 pi->sh->phyrxchain = rxcore_bitmask;
15039
15040 if (!pi->sh->clk)
15041 return;
15042
15043 suspend =
ff31c54c 15044 (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
a9533e7e
HP
15045 if (!suspend)
15046 wlapi_suspend_mac_and_wait(pi->sh->physhim);
15047
15048 if (pi->phyhang_avoid)
0f0881b0 15049 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
15050
15051 regval = read_phy_reg(pi, 0xa2);
15052 regval &= ~(0xf << 4);
7d4df48e 15053 regval |= ((u16) (rxcore_bitmask & 0x3)) << 4;
a9533e7e
HP
15054 write_phy_reg(pi, 0xa2, regval);
15055
15056 if ((rxcore_bitmask & 0x3) != 0x3) {
15057
15058 write_phy_reg(pi, 0x20e, 1);
15059
15060 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15061 if (pi->rx2tx_biasentry == -1) {
15062 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ,
8d3d6a69 15063 ARRAY_SIZE(tbl_buf), 80,
a9533e7e
HP
15064 16, tbl_buf);
15065
8d3d6a69 15066 for (i = 0; i < ARRAY_SIZE(tbl_buf); i++) {
a9533e7e
HP
15067 if (tbl_buf[i] ==
15068 NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS) {
15069
e868ab03 15070 pi->rx2tx_biasentry = (u8) i;
a9533e7e
HP
15071 tbl_opcode =
15072 NPHY_REV3_RFSEQ_CMD_NOP;
15073 wlc_phy_table_write_nphy(pi,
15074 NPHY_TBL_ID_RFSEQ,
15075 1, i,
15076 16,
15077 &tbl_opcode);
15078 break;
15079 } else if (tbl_buf[i] ==
15080 NPHY_REV3_RFSEQ_CMD_END) {
15081 break;
15082 }
15083 }
15084 }
15085 }
15086 } else {
15087
15088 write_phy_reg(pi, 0x20e, 30);
15089
15090 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15091 if (pi->rx2tx_biasentry != -1) {
15092 tbl_opcode = NPHY_REV3_RFSEQ_CMD_CLR_RXRX_BIAS;
15093 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15094 1, pi->rx2tx_biasentry,
15095 16, &tbl_opcode);
15096 pi->rx2tx_biasentry = -1;
15097 }
15098 }
15099 }
15100
15101 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
15102
15103 if (pi->phyhang_avoid)
0965ae88 15104 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
15105
15106 if (!suspend)
15107 wlapi_enable_mac(pi->sh->physhim);
15108}
15109
e868ab03 15110u8 wlc_phy_rxcore_getstate_nphy(wlc_phy_t *pih)
a9533e7e 15111{
7d4df48e 15112 u16 regval, rxen_bits;
a9533e7e
HP
15113 phy_info_t *pi = (phy_info_t *) pih;
15114
15115 regval = read_phy_reg(pi, 0xa2);
15116 rxen_bits = (regval >> 4) & 0xf;
15117
e868ab03 15118 return (u8) rxen_bits;
a9533e7e
HP
15119}
15120
7cc4a4c0 15121bool wlc_phy_n_txpower_ipa_ison(phy_info_t *pi)
a9533e7e
HP
15122{
15123 return PHY_IPA(pi);
15124}
15125
7cc4a4c0 15126static void wlc_phy_txpwr_limit_to_tbl_nphy(phy_info_t *pi)
a9533e7e 15127{
e868ab03 15128 u8 idx, idx2, i, delta_ind;
a9533e7e
HP
15129
15130 for (idx = TXP_FIRST_CCK; idx <= TXP_LAST_CCK; idx++) {
15131 pi->adj_pwr_tbl_nphy[idx] = pi->tx_power_offset[idx];
15132 }
15133
15134 for (i = 0; i < 4; i++) {
15135 idx2 = 0;
15136
15137 delta_ind = 0;
15138
15139 switch (i) {
15140 case 0:
15141
15142 if (CHSPEC_IS40(pi->radio_chanspec)
15143 && NPHY_IS_SROM_REINTERPRET) {
15144 idx = TXP_FIRST_MCS_40_SISO;
15145 } else {
15146 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15147 TXP_FIRST_OFDM_40_SISO : TXP_FIRST_OFDM;
15148 delta_ind = 1;
15149 }
15150 break;
15151
15152 case 1:
15153
15154 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15155 TXP_FIRST_MCS_40_CDD : TXP_FIRST_MCS_20_CDD;
15156 break;
15157
15158 case 2:
15159
15160 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15161 TXP_FIRST_MCS_40_STBC : TXP_FIRST_MCS_20_STBC;
15162 break;
15163
15164 case 3:
15165
15166 idx = (CHSPEC_IS40(pi->radio_chanspec)) ?
15167 TXP_FIRST_MCS_40_SDM : TXP_FIRST_MCS_20_SDM;
15168 break;
15169 }
15170
15171 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15172 pi->tx_power_offset[idx];
15173 idx = idx + delta_ind;
15174 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15175 pi->tx_power_offset[idx];
15176 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15177 pi->tx_power_offset[idx];
15178 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15179 pi->tx_power_offset[idx++];
15180
15181 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15182 pi->tx_power_offset[idx++];
15183 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15184 pi->tx_power_offset[idx];
15185 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15186 pi->tx_power_offset[idx];
15187 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15188 pi->tx_power_offset[idx++];
15189
15190 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15191 pi->tx_power_offset[idx++];
15192 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15193 pi->tx_power_offset[idx];
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
15199 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15200 pi->tx_power_offset[idx];
15201 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15202 pi->tx_power_offset[idx++];
15203 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15204 pi->tx_power_offset[idx];
15205 idx = idx + 1 - delta_ind;
15206 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15207 pi->tx_power_offset[idx];
15208
15209 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15210 pi->tx_power_offset[idx];
15211 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15212 pi->tx_power_offset[idx];
15213 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15214 pi->tx_power_offset[idx];
15215 pi->adj_pwr_tbl_nphy[4 + 4 * (idx2++) + i] =
15216 pi->tx_power_offset[idx];
15217 }
15218}
15219
7cc4a4c0 15220void wlc_phy_cal_init_nphy(phy_info_t *pi)
a9533e7e
HP
15221{
15222}
15223
e868ab03 15224static void wlc_phy_war_force_trsw_to_R_cliplo_nphy(phy_info_t *pi, u8 core)
a9533e7e
HP
15225{
15226 if (core == PHY_CORE_0) {
15227 write_phy_reg(pi, 0x38, 0x4);
15228 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15229 write_phy_reg(pi, 0x37, 0x0060);
15230 } else {
15231 write_phy_reg(pi, 0x37, 0x1080);
15232 }
15233 } else if (core == PHY_CORE_1) {
15234 write_phy_reg(pi, 0x2ae, 0x4);
15235 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15236 write_phy_reg(pi, 0x2ad, 0x0060);
15237 } else {
15238 write_phy_reg(pi, 0x2ad, 0x1080);
15239 }
15240 }
15241}
15242
e868ab03 15243static void wlc_phy_war_txchain_upd_nphy(phy_info_t *pi, u8 txchain)
a9533e7e 15244{
e868ab03 15245 u8 txchain0, txchain1;
a9533e7e
HP
15246
15247 txchain0 = txchain & 0x1;
15248 txchain1 = (txchain & 0x2) >> 1;
15249 if (!txchain0) {
15250 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
15251 }
15252
15253 if (!txchain1) {
15254 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
15255 }
15256}
15257
7cc4a4c0 15258static void wlc_phy_workarounds_nphy(phy_info_t *pi)
a9533e7e 15259{
e868ab03 15260 u8 rfseq_rx2tx_events[] = {
a9533e7e
HP
15261 NPHY_RFSEQ_CMD_NOP,
15262 NPHY_RFSEQ_CMD_RXG_FBW,
15263 NPHY_RFSEQ_CMD_TR_SWITCH,
15264 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
15265 NPHY_RFSEQ_CMD_RXPD_TXPD,
15266 NPHY_RFSEQ_CMD_TX_GAIN,
15267 NPHY_RFSEQ_CMD_EXT_PA
15268 };
e868ab03
GKH
15269 u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
15270 u8 rfseq_tx2rx_events[] = {
a9533e7e
HP
15271 NPHY_RFSEQ_CMD_NOP,
15272 NPHY_RFSEQ_CMD_EXT_PA,
15273 NPHY_RFSEQ_CMD_TX_GAIN,
15274 NPHY_RFSEQ_CMD_RXPD_TXPD,
15275 NPHY_RFSEQ_CMD_TR_SWITCH,
15276 NPHY_RFSEQ_CMD_RXG_FBW,
15277 NPHY_RFSEQ_CMD_CLR_HIQ_DIS
15278 };
e868ab03
GKH
15279 u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
15280 u8 rfseq_tx2rx_events_rev3[] = {
a9533e7e
HP
15281 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15282 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15283 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15284 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15285 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15286 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15287 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15288 NPHY_REV3_RFSEQ_CMD_END
15289 };
e868ab03
GKH
15290 u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };
15291 u8 rfseq_rx2tx_events_rev3[] = {
a9533e7e
HP
15292 NPHY_REV3_RFSEQ_CMD_NOP,
15293 NPHY_REV3_RFSEQ_CMD_RXG_FBW,
15294 NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
15295 NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,
15296 NPHY_REV3_RFSEQ_CMD_RXPD_TXPD,
15297 NPHY_REV3_RFSEQ_CMD_TX_GAIN,
15298 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15299 NPHY_REV3_RFSEQ_CMD_EXT_PA,
15300 NPHY_REV3_RFSEQ_CMD_END
15301 };
e868ab03 15302 u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 };
a9533e7e 15303
e868ab03 15304 u8 rfseq_rx2tx_events_rev3_ipa[] = {
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_CLR_RXRX_BIAS,
15312 NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
15313 NPHY_REV3_RFSEQ_CMD_END
15314 };
e868ab03 15315 u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
7d4df48e 15316 u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
a9533e7e 15317
e59fe083
GKH
15318 s16 alpha0, alpha1, alpha2;
15319 s16 beta0, beta1, beta2;
66cbd3ab 15320 u32 leg_data_weights, ht_data_weights, nss1_data_weights,
a9533e7e 15321 stbc_data_weights;
e868ab03 15322 u8 chan_freq_range = 0;
7d4df48e
GKH
15323 u16 dac_control = 0x0002;
15324 u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
15325 u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
15326 u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15327 u16 aux_adc_vmid_rev3[] = { 0xa2, 0xb4, 0xb4, 0x89 };
15328 u16 *aux_adc_vmid;
15329 u16 aux_adc_gain_rev7[] = { 0x02, 0x02, 0x02, 0x02 };
15330 u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
15331 u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
15332 u16 *aux_adc_gain;
15333 u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
15334 u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
3e26416e
GKH
15335 s32 min_nvar_val = 0x18d;
15336 s32 min_nvar_offset_6mbps = 20;
e868ab03
GKH
15337 u8 pdetrange;
15338 u8 triso;
7d4df48e
GKH
15339 u16 regval;
15340 u16 afectrl_adc_ctrl1_rev7 = 0x20;
15341 u16 afectrl_adc_ctrl2_rev7 = 0x0;
15342 u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;
15343 u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
15344 u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
15345 u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
15346 u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15347 u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
15348 u16 ipalvlshift_3p3_war_en = 0;
15349 u16 rccal_bcap_val, rccal_scap_val;
15350 u16 rccal_tx20_11b_bcap = 0;
15351 u16 rccal_tx20_11b_scap = 0;
15352 u16 rccal_tx20_11n_bcap = 0;
15353 u16 rccal_tx20_11n_scap = 0;
15354 u16 rccal_tx40_11n_bcap = 0;
15355 u16 rccal_tx40_11n_scap = 0;
15356 u16 rx2tx_lpf_rc_lut_tx20_11b = 0;
15357 u16 rx2tx_lpf_rc_lut_tx20_11n = 0;
15358 u16 rx2tx_lpf_rc_lut_tx40_11n = 0;
15359 u16 tx_lpf_bw_ofdm_20mhz = 0;
15360 u16 tx_lpf_bw_ofdm_40mhz = 0;
15361 u16 tx_lpf_bw_11b = 0;
15362 u16 ipa2g_mainbias, ipa2g_casconv, ipa2g_biasfilt;
15363 u16 txgm_idac_bleed = 0;
0965ae88 15364 bool rccal_ovrd = false;
7d4df48e 15365 u16 freq;
a9533e7e
HP
15366 int coreNum;
15367
15368 if (CHSPEC_IS5G(pi->radio_chanspec)) {
15369 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 0);
15370 } else {
15371 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_cck_en, 1);
15372 }
15373
15374 if (pi->phyhang_avoid)
0f0881b0 15375 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
15376
15377 if (!ISSIM_ENAB(pi->sh->sih)) {
15378 or_phy_reg(pi, 0xb1, NPHY_IQFlip_ADC1 | NPHY_IQFlip_ADC2);
15379 }
15380
15381 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
15382
15383 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
15384 mod_phy_reg(pi, 0x221, (0x1 << 4), (1 << 4));
15385
15386 mod_phy_reg(pi, 0x160, (0x7f << 0), (32 << 0));
15387 mod_phy_reg(pi, 0x160, (0x7f << 8), (39 << 8));
15388 mod_phy_reg(pi, 0x161, (0x7f << 0), (46 << 0));
15389 mod_phy_reg(pi, 0x161, (0x7f << 8), (51 << 8));
15390 mod_phy_reg(pi, 0x162, (0x7f << 0), (55 << 0));
15391 mod_phy_reg(pi, 0x162, (0x7f << 8), (58 << 8));
15392 mod_phy_reg(pi, 0x163, (0x7f << 0), (60 << 0));
15393 mod_phy_reg(pi, 0x163, (0x7f << 8), (62 << 8));
15394 mod_phy_reg(pi, 0x164, (0x7f << 0), (62 << 0));
15395 mod_phy_reg(pi, 0x164, (0x7f << 8), (63 << 8));
15396 mod_phy_reg(pi, 0x165, (0x7f << 0), (63 << 0));
15397 mod_phy_reg(pi, 0x165, (0x7f << 8), (64 << 8));
15398 mod_phy_reg(pi, 0x166, (0x7f << 0), (64 << 0));
15399 mod_phy_reg(pi, 0x166, (0x7f << 8), (64 << 8));
15400 mod_phy_reg(pi, 0x167, (0x7f << 0), (64 << 0));
15401 mod_phy_reg(pi, 0x167, (0x7f << 8), (64 << 8));
15402 }
15403
15404 if (NREV_LE(pi->pubpi.phy_rev, 8)) {
15405 write_phy_reg(pi, 0x23f, 0x1b0);
15406 write_phy_reg(pi, 0x240, 0x1b0);
15407 }
15408
15409 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
15410 mod_phy_reg(pi, 0xbd, (0xff << 0), (114 << 0));
15411 }
15412
15413 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15414 &dac_control);
15415 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15416 &dac_control);
15417
15418 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15419 1, 0, 32, &leg_data_weights);
15420 leg_data_weights = leg_data_weights & 0xffffff;
15421 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15422 1, 0, 32, &leg_data_weights);
15423
15424 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15425 2, 0x15e, 16,
15426 rfseq_rx2tx_dacbufpu_rev7);
15427 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x16e, 16,
15428 rfseq_rx2tx_dacbufpu_rev7);
15429
15430 if (PHY_IPA(pi)) {
15431 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15432 rfseq_rx2tx_events_rev3_ipa,
15433 rfseq_rx2tx_dlys_rev3_ipa,
15434 sizeof
15435 (rfseq_rx2tx_events_rev3_ipa) /
15436 sizeof
15437 (rfseq_rx2tx_events_rev3_ipa
15438 [0]));
15439 }
15440
15441 mod_phy_reg(pi, 0x299, (0x3 << 14), (0x1 << 14));
15442 mod_phy_reg(pi, 0x29d, (0x3 << 14), (0x1 << 14));
15443
15444 tx_lpf_bw_ofdm_20mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x154);
15445 tx_lpf_bw_ofdm_40mhz = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x159);
15446 tx_lpf_bw_11b = wlc_phy_read_lpf_bw_ctl_nphy(pi, 0x152);
15447
15448 if (PHY_IPA(pi)) {
15449
15450 if (((pi->pubpi.radiorev == 5)
15451 && (CHSPEC_IS40(pi->radio_chanspec) == 1))
15452 || (pi->pubpi.radiorev == 7)
15453 || (pi->pubpi.radiorev == 8)) {
15454
15455 rccal_bcap_val =
15456 read_radio_reg(pi,
15457 RADIO_2057_RCCAL_BCAP_VAL);
15458 rccal_scap_val =
15459 read_radio_reg(pi,
15460 RADIO_2057_RCCAL_SCAP_VAL);
15461
15462 rccal_tx20_11b_bcap = rccal_bcap_val;
15463 rccal_tx20_11b_scap = rccal_scap_val;
15464
15465 if ((pi->pubpi.radiorev == 5) &&
15466 (CHSPEC_IS40(pi->radio_chanspec) == 1)) {
15467
15468 rccal_tx20_11n_bcap = rccal_bcap_val;
15469 rccal_tx20_11n_scap = rccal_scap_val;
15470 rccal_tx40_11n_bcap = 0xc;
15471 rccal_tx40_11n_scap = 0xc;
15472
0f0881b0 15473 rccal_ovrd = true;
a9533e7e
HP
15474
15475 } else if ((pi->pubpi.radiorev == 7)
15476 || (pi->pubpi.radiorev == 8)) {
15477
15478 tx_lpf_bw_ofdm_20mhz = 4;
15479 tx_lpf_bw_11b = 1;
15480
15481 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15482 rccal_tx20_11n_bcap = 0xc;
15483 rccal_tx20_11n_scap = 0xc;
15484 rccal_tx40_11n_bcap = 0xa;
15485 rccal_tx40_11n_scap = 0xa;
15486 } else {
15487 rccal_tx20_11n_bcap = 0x14;
15488 rccal_tx20_11n_scap = 0x14;
15489 rccal_tx40_11n_bcap = 0xf;
15490 rccal_tx40_11n_scap = 0xf;
15491 }
15492
0f0881b0 15493 rccal_ovrd = true;
a9533e7e
HP
15494 }
15495 }
15496
15497 } else {
15498
15499 if (pi->pubpi.radiorev == 5) {
15500
15501 tx_lpf_bw_ofdm_20mhz = 1;
15502 tx_lpf_bw_ofdm_40mhz = 3;
15503
15504 rccal_bcap_val =
15505 read_radio_reg(pi,
15506 RADIO_2057_RCCAL_BCAP_VAL);
15507 rccal_scap_val =
15508 read_radio_reg(pi,
15509 RADIO_2057_RCCAL_SCAP_VAL);
15510
15511 rccal_tx20_11b_bcap = rccal_bcap_val;
15512 rccal_tx20_11b_scap = rccal_scap_val;
15513
15514 rccal_tx20_11n_bcap = 0x13;
15515 rccal_tx20_11n_scap = 0x11;
15516 rccal_tx40_11n_bcap = 0x13;
15517 rccal_tx40_11n_scap = 0x11;
15518
0f0881b0 15519 rccal_ovrd = true;
a9533e7e
HP
15520 }
15521 }
15522
15523 if (rccal_ovrd) {
15524
15525 rx2tx_lpf_rc_lut_tx20_11b = (rccal_tx20_11b_bcap << 8) |
15526 (rccal_tx20_11b_scap << 3) | tx_lpf_bw_11b;
15527 rx2tx_lpf_rc_lut_tx20_11n = (rccal_tx20_11n_bcap << 8) |
15528 (rccal_tx20_11n_scap << 3) | tx_lpf_bw_ofdm_20mhz;
15529 rx2tx_lpf_rc_lut_tx40_11n = (rccal_tx40_11n_bcap << 8) |
15530 (rccal_tx40_11n_scap << 3) | tx_lpf_bw_ofdm_40mhz;
15531
15532 for (coreNum = 0; coreNum <= 1; coreNum++) {
15533 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15534 1,
15535 0x152 + coreNum * 0x10,
15536 16,
15537 &rx2tx_lpf_rc_lut_tx20_11b);
15538 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15539 1,
15540 0x153 + coreNum * 0x10,
15541 16,
15542 &rx2tx_lpf_rc_lut_tx20_11n);
15543 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15544 1,
15545 0x154 + coreNum * 0x10,
15546 16,
15547 &rx2tx_lpf_rc_lut_tx20_11n);
15548 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15549 1,
15550 0x155 + coreNum * 0x10,
15551 16,
15552 &rx2tx_lpf_rc_lut_tx40_11n);
15553 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15554 1,
15555 0x156 + coreNum * 0x10,
15556 16,
15557 &rx2tx_lpf_rc_lut_tx40_11n);
15558 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15559 1,
15560 0x157 + coreNum * 0x10,
15561 16,
15562 &rx2tx_lpf_rc_lut_tx40_11n);
15563 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15564 1,
15565 0x158 + coreNum * 0x10,
15566 16,
15567 &rx2tx_lpf_rc_lut_tx40_11n);
15568 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
15569 1,
15570 0x159 + coreNum * 0x10,
15571 16,
15572 &rx2tx_lpf_rc_lut_tx40_11n);
15573 }
15574
15575 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
15576 1, 0x3, 0,
15577 NPHY_REV7_RFCTRLOVERRIDE_ID2);
15578 }
15579
15580 if (!NORADIO_ENAB(pi->pubpi)) {
15581 write_phy_reg(pi, 0x32f, 0x3);
15582 }
15583
15584 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
15585 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
15586 1, 0x3, 0,
15587 NPHY_REV7_RFCTRLOVERRIDE_ID0);
15588 }
15589
15590 if ((pi->pubpi.radiorev == 3) || (pi->pubpi.radiorev == 4) ||
15591 (pi->pubpi.radiorev == 6)) {
15592 if ((pi->sh->sromrev >= 8)
15593 && (pi->sh->boardflags2 & BFL2_IPALVLSHIFT_3P3))
15594 ipalvlshift_3p3_war_en = 1;
15595
15596 if (ipalvlshift_3p3_war_en) {
15597 write_radio_reg(pi, RADIO_2057_GPAIO_CONFIG,
15598 0x5);
15599 write_radio_reg(pi, RADIO_2057_GPAIO_SEL1,
15600 0x30);
15601 write_radio_reg(pi, RADIO_2057_GPAIO_SEL0, 0x0);
15602 or_radio_reg(pi,
15603 RADIO_2057_RXTXBIAS_CONFIG_CORE0,
15604 0x1);
15605 or_radio_reg(pi,
15606 RADIO_2057_RXTXBIAS_CONFIG_CORE1,
15607 0x1);
15608
15609 ipa2g_mainbias = 0x1f;
15610
15611 ipa2g_casconv = 0x6f;
15612
15613 ipa2g_biasfilt = 0xaa;
15614 } else {
15615
15616 ipa2g_mainbias = 0x2b;
15617
15618 ipa2g_casconv = 0x7f;
15619
15620 ipa2g_biasfilt = 0xee;
15621 }
15622
15623 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15624 for (coreNum = 0; coreNum <= 1; coreNum++) {
15625 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15626 coreNum, IPA2G_IMAIN,
15627 ipa2g_mainbias);
15628 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15629 coreNum, IPA2G_CASCONV,
15630 ipa2g_casconv);
15631 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15632 coreNum,
15633 IPA2G_BIAS_FILTER,
15634 ipa2g_biasfilt);
15635 }
15636 }
15637 }
15638
15639 if (PHY_IPA(pi)) {
15640 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15641 if ((pi->pubpi.radiorev == 3)
15642 || (pi->pubpi.radiorev == 4)
15643 || (pi->pubpi.radiorev == 6)) {
15644
15645 txgm_idac_bleed = 0x7f;
15646 }
15647
15648 for (coreNum = 0; coreNum <= 1; coreNum++) {
15649 if (txgm_idac_bleed != 0)
15650 WRITE_RADIO_REG4(pi, RADIO_2057,
15651 CORE, coreNum,
15652 TXGM_IDAC_BLEED,
15653 txgm_idac_bleed);
15654 }
15655
15656 if (pi->pubpi.radiorev == 5) {
15657
15658 for (coreNum = 0; coreNum <= 1;
15659 coreNum++) {
15660 WRITE_RADIO_REG4(pi, RADIO_2057,
15661 CORE, coreNum,
15662 IPA2G_CASCONV,
15663 0x13);
15664 WRITE_RADIO_REG4(pi, RADIO_2057,
15665 CORE, coreNum,
15666 IPA2G_IMAIN,
15667 0x1f);
15668 WRITE_RADIO_REG4(pi, RADIO_2057,
15669 CORE, coreNum,
15670 IPA2G_BIAS_FILTER,
15671 0xee);
15672 WRITE_RADIO_REG4(pi, RADIO_2057,
15673 CORE, coreNum,
15674 PAD2G_IDACS,
15675 0x8a);
15676 WRITE_RADIO_REG4(pi, RADIO_2057,
15677 CORE, coreNum,
15678 PAD_BIAS_FILTER_BWS,
15679 0x3e);
15680 }
15681
15682 } else if ((pi->pubpi.radiorev == 7)
15683 || (pi->pubpi.radiorev == 8)) {
15684
15685 if (CHSPEC_IS40(pi->radio_chanspec) ==
15686 0) {
15687 WRITE_RADIO_REG4(pi, RADIO_2057,
15688 CORE, 0,
15689 IPA2G_IMAIN,
15690 0x14);
15691 WRITE_RADIO_REG4(pi, RADIO_2057,
15692 CORE, 1,
15693 IPA2G_IMAIN,
15694 0x12);
15695 } else {
15696 WRITE_RADIO_REG4(pi, RADIO_2057,
15697 CORE, 0,
15698 IPA2G_IMAIN,
15699 0x16);
15700 WRITE_RADIO_REG4(pi, RADIO_2057,
15701 CORE, 1,
15702 IPA2G_IMAIN,
15703 0x16);
15704 }
15705 }
15706
15707 } else {
15708 freq =
15709 CHAN5G_FREQ(CHSPEC_CHANNEL
15710 (pi->radio_chanspec));
15711 if (((freq >= 5180) && (freq <= 5230))
15712 || ((freq >= 5745) && (freq <= 5805))) {
15713 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15714 0, IPA5G_BIAS_FILTER,
15715 0xff);
15716 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15717 1, IPA5G_BIAS_FILTER,
15718 0xff);
15719 }
15720 }
15721 } else {
15722
15723 if (pi->pubpi.radiorev != 5) {
15724 for (coreNum = 0; coreNum <= 1; coreNum++) {
15725 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15726 coreNum,
15727 TXMIX2G_TUNE_BOOST_PU,
15728 0x61);
15729 WRITE_RADIO_REG4(pi, RADIO_2057, CORE,
15730 coreNum,
15731 TXGM_IDAC_BLEED, 0x70);
15732 }
15733 }
15734 }
15735
15736 if (pi->pubpi.radiorev == 4) {
15737 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15738 0x05, 16,
15739 &afectrl_adc_ctrl1_rev7);
15740 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15741 0x15, 16,
15742 &afectrl_adc_ctrl1_rev7);
15743
15744 for (coreNum = 0; coreNum <= 1; coreNum++) {
15745 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15746 AFE_VCM_CAL_MASTER, 0x0);
15747 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15748 AFE_SET_VCM_I, 0x3f);
15749 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
15750 AFE_SET_VCM_Q, 0x3f);
15751 }
15752 } else {
15753 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
15754 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
15755 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
15756 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
15757
15758 mod_phy_reg(pi, 0xa6, (0x1 << 0), 0);
15759 mod_phy_reg(pi, 0x8f, (0x1 << 0), (0x1 << 0));
15760 mod_phy_reg(pi, 0xa7, (0x1 << 0), 0);
15761 mod_phy_reg(pi, 0xa5, (0x1 << 0), (0x1 << 0));
15762
15763 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15764 0x05, 16,
15765 &afectrl_adc_ctrl2_rev7);
15766 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1,
15767 0x15, 16,
15768 &afectrl_adc_ctrl2_rev7);
15769
15770 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
15771 mod_phy_reg(pi, 0x8f, (0x1 << 2), 0);
15772 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
15773 mod_phy_reg(pi, 0xa5, (0x1 << 2), 0);
15774 }
15775
15776 write_phy_reg(pi, 0x6a, 0x2);
15777
15778 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 256, 32,
15779 &min_nvar_offset_6mbps);
15780
15781 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x138, 16,
15782 &rfseq_pktgn_lpf_hpc_rev7);
15783
15784 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x141, 16,
15785 &rfseq_pktgn_lpf_h_hpc_rev7);
15786
15787 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 3, 0x133, 16,
15788 &rfseq_htpktgn_lpf_hpc_rev7);
15789
15790 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x146, 16,
15791 &rfseq_cckpktgn_lpf_hpc_rev7);
15792
15793 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x123, 16,
15794 &rfseq_tx2rx_lpf_h_hpc_rev7);
15795
15796 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1, 0x12A, 16,
15797 &rfseq_rx2tx_lpf_h_hpc_rev7);
15798
15799 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15800 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15801 32, &min_nvar_val);
15802 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15803 127, 32, &min_nvar_val);
15804 } else {
15805 min_nvar_val = noise_var_tbl_rev7[3];
15806 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15807 32, &min_nvar_val);
15808
15809 min_nvar_val = noise_var_tbl_rev7[127];
15810 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15811 127, 32, &min_nvar_val);
15812 }
15813
15814 wlc_phy_workarounds_nphy_gainctrl(pi);
15815
15816 pdetrange =
15817 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15818 pdetrange : pi->srom_fem2g.pdetrange;
15819
15820 if (pdetrange == 0) {
15821 chan_freq_range =
15822 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15823 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15824 aux_adc_vmid_rev7_core0[3] = 0x70;
15825 aux_adc_vmid_rev7_core1[3] = 0x70;
15826 aux_adc_gain_rev7[3] = 2;
15827 } else {
15828 aux_adc_vmid_rev7_core0[3] = 0x80;
15829 aux_adc_vmid_rev7_core1[3] = 0x80;
15830 aux_adc_gain_rev7[3] = 3;
15831 }
15832 } else if (pdetrange == 1) {
15833 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15834 aux_adc_vmid_rev7_core0[3] = 0x7c;
15835 aux_adc_vmid_rev7_core1[3] = 0x7c;
15836 aux_adc_gain_rev7[3] = 2;
15837 } else {
15838 aux_adc_vmid_rev7_core0[3] = 0x8c;
15839 aux_adc_vmid_rev7_core1[3] = 0x8c;
15840 aux_adc_gain_rev7[3] = 1;
15841 }
15842 } else if (pdetrange == 2) {
15843 if (pi->pubpi.radioid == BCM2057_ID) {
15844 if ((pi->pubpi.radiorev == 5)
15845 || (pi->pubpi.radiorev == 7)
15846 || (pi->pubpi.radiorev == 8)) {
15847 if (chan_freq_range ==
15848 WL_CHAN_FREQ_RANGE_2G) {
15849 aux_adc_vmid_rev7_core0[3] =
15850 0x8c;
15851 aux_adc_vmid_rev7_core1[3] =
15852 0x8c;
15853 aux_adc_gain_rev7[3] = 0;
15854 } else {
15855 aux_adc_vmid_rev7_core0[3] =
15856 0x96;
15857 aux_adc_vmid_rev7_core1[3] =
15858 0x96;
15859 aux_adc_gain_rev7[3] = 0;
15860 }
15861 }
15862 }
15863
15864 } else if (pdetrange == 3) {
15865 if (chan_freq_range == WL_CHAN_FREQ_RANGE_2G) {
15866 aux_adc_vmid_rev7_core0[3] = 0x89;
15867 aux_adc_vmid_rev7_core1[3] = 0x89;
15868 aux_adc_gain_rev7[3] = 0;
15869 }
15870
15871 } else if (pdetrange == 5) {
15872
15873 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
15874 aux_adc_vmid_rev7_core0[3] = 0x80;
15875 aux_adc_vmid_rev7_core1[3] = 0x80;
15876 aux_adc_gain_rev7[3] = 3;
15877 } else {
15878 aux_adc_vmid_rev7_core0[3] = 0x70;
15879 aux_adc_vmid_rev7_core1[3] = 0x70;
15880 aux_adc_gain_rev7[3] = 2;
15881 }
15882 }
15883
15884 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x08, 16,
15885 &aux_adc_vmid_rev7_core0);
15886 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x18, 16,
15887 &aux_adc_vmid_rev7_core1);
15888 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x0c, 16,
15889 &aux_adc_gain_rev7);
15890 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4, 0x1c, 16,
15891 &aux_adc_gain_rev7);
15892
15893 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
15894
15895 write_phy_reg(pi, 0x23f, 0x1f8);
15896 write_phy_reg(pi, 0x240, 0x1f8);
15897
15898 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15899 1, 0, 32, &leg_data_weights);
15900 leg_data_weights = leg_data_weights & 0xffffff;
15901 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
15902 1, 0, 32, &leg_data_weights);
15903
15904 alpha0 = 293;
15905 alpha1 = 435;
15906 alpha2 = 261;
15907 beta0 = 366;
15908 beta1 = 205;
15909 beta2 = 32;
15910 write_phy_reg(pi, 0x145, alpha0);
15911 write_phy_reg(pi, 0x146, alpha1);
15912 write_phy_reg(pi, 0x147, alpha2);
15913 write_phy_reg(pi, 0x148, beta0);
15914 write_phy_reg(pi, 0x149, beta1);
15915 write_phy_reg(pi, 0x14a, beta2);
15916
15917 write_phy_reg(pi, 0x38, 0xC);
15918 write_phy_reg(pi, 0x2ae, 0xC);
15919
15920 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX,
15921 rfseq_tx2rx_events_rev3,
15922 rfseq_tx2rx_dlys_rev3,
15923 sizeof(rfseq_tx2rx_events_rev3) /
15924 sizeof(rfseq_tx2rx_events_rev3[0]));
15925
15926 if (PHY_IPA(pi)) {
15927 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15928 rfseq_rx2tx_events_rev3_ipa,
15929 rfseq_rx2tx_dlys_rev3_ipa,
15930 sizeof
15931 (rfseq_rx2tx_events_rev3_ipa) /
15932 sizeof
15933 (rfseq_rx2tx_events_rev3_ipa
15934 [0]));
15935 }
15936
15937 if ((pi->sh->hw_phyrxchain != 0x3) &&
15938 (pi->sh->hw_phyrxchain != pi->sh->hw_phytxchain)) {
15939
15940 if (PHY_IPA(pi)) {
15941 rfseq_rx2tx_dlys_rev3[5] = 59;
15942 rfseq_rx2tx_dlys_rev3[6] = 1;
15943 rfseq_rx2tx_events_rev3[7] =
15944 NPHY_REV3_RFSEQ_CMD_END;
15945 }
15946
15947 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX,
15948 rfseq_rx2tx_events_rev3,
15949 rfseq_rx2tx_dlys_rev3,
15950 sizeof(rfseq_rx2tx_events_rev3) /
15951 sizeof(rfseq_rx2tx_events_rev3
15952 [0]));
15953 }
15954
15955 if (CHSPEC_IS2G(pi->radio_chanspec)) {
15956 write_phy_reg(pi, 0x6a, 0x2);
15957 } else {
15958 write_phy_reg(pi, 0x6a, 0x9c40);
15959 }
15960
15961 mod_phy_reg(pi, 0x294, (0xf << 8), (7 << 8));
15962
15963 if (CHSPEC_IS40(pi->radio_chanspec) == 0) {
15964 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15965 32, &min_nvar_val);
15966 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15967 127, 32, &min_nvar_val);
15968 } else {
15969 min_nvar_val = noise_var_tbl_rev3[3];
15970 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1, 3,
15971 32, &min_nvar_val);
15972
15973 min_nvar_val = noise_var_tbl_rev3[127];
15974 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
15975 127, 32, &min_nvar_val);
15976 }
15977
15978 wlc_phy_workarounds_nphy_gainctrl(pi);
15979
15980 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x00, 16,
15981 &dac_control);
15982 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x10, 16,
15983 &dac_control);
15984
15985 pdetrange =
15986 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
15987 pdetrange : pi->srom_fem2g.pdetrange;
15988
15989 if (pdetrange == 0) {
15990 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
15991 aux_adc_vmid = aux_adc_vmid_rev4;
15992 aux_adc_gain = aux_adc_gain_rev4;
15993 } else {
15994 aux_adc_vmid = aux_adc_vmid_rev3;
15995 aux_adc_gain = aux_adc_gain_rev3;
15996 }
15997 chan_freq_range =
15998 wlc_phy_get_chan_freq_range_nphy(pi, 0);
15999 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16000 switch (chan_freq_range) {
16001 case WL_CHAN_FREQ_RANGE_5GL:
16002 aux_adc_vmid[3] = 0x89;
16003 aux_adc_gain[3] = 0;
16004 break;
16005 case WL_CHAN_FREQ_RANGE_5GM:
16006 aux_adc_vmid[3] = 0x89;
16007 aux_adc_gain[3] = 0;
16008 break;
16009 case WL_CHAN_FREQ_RANGE_5GH:
16010 aux_adc_vmid[3] = 0x89;
16011 aux_adc_gain[3] = 0;
16012 break;
16013 default:
16014 break;
16015 }
16016 }
16017 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16018 0x08, 16, aux_adc_vmid);
16019 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16020 0x18, 16, aux_adc_vmid);
16021 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16022 0x0c, 16, aux_adc_gain);
16023 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16024 0x1c, 16, aux_adc_gain);
16025 } else if (pdetrange == 1) {
16026 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16027 0x08, 16, sk_adc_vmid);
16028 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16029 0x18, 16, sk_adc_vmid);
16030 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16031 0x0c, 16, sk_adc_gain);
16032 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16033 0x1c, 16, sk_adc_gain);
16034 } else if (pdetrange == 2) {
16035
7d4df48e
GKH
16036 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x74 };
16037 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x04 };
a9533e7e
HP
16038
16039 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16040 chan_freq_range =
16041 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16042 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16043 bcm_adc_vmid[3] = 0x8e;
16044 bcm_adc_gain[3] = 0x03;
16045 } else {
16046 bcm_adc_vmid[3] = 0x94;
16047 bcm_adc_gain[3] = 0x03;
16048 }
16049 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16050 bcm_adc_vmid[3] = 0x84;
16051 bcm_adc_gain[3] = 0x02;
16052 }
16053
16054 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16055 0x08, 16, bcm_adc_vmid);
16056 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16057 0x18, 16, bcm_adc_vmid);
16058 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16059 0x0c, 16, bcm_adc_gain);
16060 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16061 0x1c, 16, bcm_adc_gain);
16062 } else if (pdetrange == 3) {
16063 chan_freq_range =
16064 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16065 if ((NREV_GE(pi->pubpi.phy_rev, 4))
16066 && (chan_freq_range == WL_CHAN_FREQ_RANGE_2G)) {
16067
7d4df48e 16068 u16 auxadc_vmid[] = {
e5c4536f 16069 0xa2, 0xb4, 0xb4, 0x270 };
7d4df48e 16070 u16 auxadc_gain[] = {
e5c4536f 16071 0x02, 0x02, 0x02, 0x00 };
a9533e7e
HP
16072
16073 wlc_phy_table_write_nphy(pi,
16074 NPHY_TBL_ID_AFECTRL, 4,
16075 0x08, 16, auxadc_vmid);
16076 wlc_phy_table_write_nphy(pi,
16077 NPHY_TBL_ID_AFECTRL, 4,
16078 0x18, 16, auxadc_vmid);
16079 wlc_phy_table_write_nphy(pi,
16080 NPHY_TBL_ID_AFECTRL, 4,
16081 0x0c, 16, auxadc_gain);
16082 wlc_phy_table_write_nphy(pi,
16083 NPHY_TBL_ID_AFECTRL, 4,
16084 0x1c, 16, auxadc_gain);
16085 }
16086 } else if ((pdetrange == 4) || (pdetrange == 5)) {
7d4df48e
GKH
16087 u16 bcm_adc_vmid[] = { 0xa2, 0xb4, 0xb4, 0x0 };
16088 u16 bcm_adc_gain[] = { 0x02, 0x02, 0x02, 0x0 };
16089 u16 Vmid[2], Av[2];
a9533e7e
HP
16090
16091 chan_freq_range =
16092 wlc_phy_get_chan_freq_range_nphy(pi, 0);
16093 if (chan_freq_range != WL_CHAN_FREQ_RANGE_2G) {
16094 Vmid[0] = (pdetrange == 4) ? 0x8e : 0x89;
16095 Vmid[1] = (pdetrange == 4) ? 0x96 : 0x89;
16096 Av[0] = (pdetrange == 4) ? 2 : 0;
16097 Av[1] = (pdetrange == 4) ? 2 : 0;
16098 } else {
16099 Vmid[0] = (pdetrange == 4) ? 0x89 : 0x74;
16100 Vmid[1] = (pdetrange == 4) ? 0x8b : 0x70;
16101 Av[0] = (pdetrange == 4) ? 2 : 0;
16102 Av[1] = (pdetrange == 4) ? 2 : 0;
16103 }
16104
16105 bcm_adc_vmid[3] = Vmid[0];
16106 bcm_adc_gain[3] = Av[0];
16107 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16108 0x08, 16, bcm_adc_vmid);
16109 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16110 0x0c, 16, bcm_adc_gain);
16111
16112 bcm_adc_vmid[3] = Vmid[1];
16113 bcm_adc_gain[3] = Av[1];
16114 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16115 0x18, 16, bcm_adc_vmid);
16116 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 4,
16117 0x1c, 16, bcm_adc_gain);
a9533e7e
HP
16118 }
16119
16120 write_radio_reg(pi,
16121 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX0),
16122 0x0);
16123 write_radio_reg(pi,
16124 (RADIO_2056_RX_MIXA_MAST_BIAS | RADIO_2056_RX1),
16125 0x0);
16126
16127 write_radio_reg(pi,
16128 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX0),
16129 0x6);
16130 write_radio_reg(pi,
16131 (RADIO_2056_RX_MIXA_BIAS_MAIN | RADIO_2056_RX1),
16132 0x6);
16133
16134 write_radio_reg(pi,
16135 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX0),
16136 0x7);
16137 write_radio_reg(pi,
16138 (RADIO_2056_RX_MIXA_BIAS_AUX | RADIO_2056_RX1),
16139 0x7);
16140
16141 write_radio_reg(pi,
16142 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX0),
16143 0x88);
16144 write_radio_reg(pi,
16145 (RADIO_2056_RX_MIXA_LOB_BIAS | RADIO_2056_RX1),
16146 0x88);
16147
16148 write_radio_reg(pi,
16149 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX0),
16150 0x0);
16151 write_radio_reg(pi,
16152 (RADIO_2056_RX_MIXA_CMFB_IDAC | RADIO_2056_RX1),
16153 0x0);
16154
16155 write_radio_reg(pi,
16156 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX0),
16157 0x0);
16158 write_radio_reg(pi,
16159 (RADIO_2056_RX_MIXG_CMFB_IDAC | RADIO_2056_RX1),
16160 0x0);
16161
16162 triso =
16163 (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.
16164 triso : pi->srom_fem2g.triso;
16165 if (triso == 7) {
16166 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_0);
16167 wlc_phy_war_force_trsw_to_R_cliplo_nphy(pi, PHY_CORE_1);
16168 }
16169
16170 wlc_phy_war_txchain_upd_nphy(pi, pi->sh->hw_phytxchain);
16171
16172 if (((pi->sh->boardflags2 & BFL2_APLL_WAR) &&
16173 (CHSPEC_IS5G(pi->radio_chanspec))) ||
16174 (((pi->sh->boardflags2 & BFL2_GPLL_WAR) ||
16175 (pi->sh->boardflags2 & BFL2_GPLL_WAR2)) &&
16176 (CHSPEC_IS2G(pi->radio_chanspec)))) {
16177 nss1_data_weights = 0x00088888;
16178 ht_data_weights = 0x00088888;
16179 stbc_data_weights = 0x00088888;
16180 } else {
16181 nss1_data_weights = 0x88888888;
16182 ht_data_weights = 0x88888888;
16183 stbc_data_weights = 0x88888888;
16184 }
16185 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16186 1, 1, 32, &nss1_data_weights);
16187 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16188 1, 2, 32, &ht_data_weights);
16189 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CMPMETRICDATAWEIGHTTBL,
16190 1, 3, 32, &stbc_data_weights);
16191
16192 if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16193 if (CHSPEC_IS5G(pi->radio_chanspec)) {
16194 write_radio_reg(pi,
16195 RADIO_2056_TX_GMBB_IDAC |
16196 RADIO_2056_TX0, 0x70);
16197 write_radio_reg(pi,
16198 RADIO_2056_TX_GMBB_IDAC |
16199 RADIO_2056_TX1, 0x70);
16200 }
16201 }
16202
16203 if (!pi->edcrs_threshold_lock) {
16204 write_phy_reg(pi, 0x224, 0x3eb);
16205 write_phy_reg(pi, 0x225, 0x3eb);
16206 write_phy_reg(pi, 0x226, 0x341);
16207 write_phy_reg(pi, 0x227, 0x341);
16208 write_phy_reg(pi, 0x228, 0x42b);
16209 write_phy_reg(pi, 0x229, 0x42b);
16210 write_phy_reg(pi, 0x22a, 0x381);
16211 write_phy_reg(pi, 0x22b, 0x381);
16212 write_phy_reg(pi, 0x22c, 0x42b);
16213 write_phy_reg(pi, 0x22d, 0x42b);
16214 write_phy_reg(pi, 0x22e, 0x381);
16215 write_phy_reg(pi, 0x22f, 0x381);
16216 }
16217
16218 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16219
16220 if (pi->sh->boardflags2 & BFL2_SINGLEANT_CCK) {
16221 wlapi_bmac_mhf(pi->sh->physhim, MHF4,
16222 MHF4_BPHY_TXCORE0,
16223 MHF4_BPHY_TXCORE0, WLC_BAND_ALL);
16224 }
16225 }
16226 } else {
16227
16228 if (pi->sh->boardflags2 & BFL2_SKWRKFEM_BRD ||
16229 (pi->sh->boardtype == 0x8b)) {
16230 uint i;
e868ab03 16231 u8 war_dlys[] = { 1, 6, 6, 2, 4, 20, 1 };
8d3d6a69 16232 for (i = 0; i < ARRAY_SIZE(rfseq_rx2tx_dlys); i++)
a9533e7e
HP
16233 rfseq_rx2tx_dlys[i] = war_dlys[i];
16234 }
16235
16236 if (CHSPEC_IS5G(pi->radio_chanspec) && pi->phy_5g_pwrgain) {
16237 and_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0xf7);
16238 and_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0xf7);
16239 } else {
16240 or_radio_reg(pi, RADIO_2055_CORE1_TX_RF_SPARE, 0x8);
16241 or_radio_reg(pi, RADIO_2055_CORE2_TX_RF_SPARE, 0x8);
16242 }
16243
16244 regval = 0x000a;
16245 wlc_phy_table_write_nphy(pi, 8, 1, 0, 16, &regval);
16246 wlc_phy_table_write_nphy(pi, 8, 1, 0x10, 16, &regval);
16247
16248 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16249 regval = 0xcdaa;
16250 wlc_phy_table_write_nphy(pi, 8, 1, 0x02, 16, &regval);
16251 wlc_phy_table_write_nphy(pi, 8, 1, 0x12, 16, &regval);
16252 }
16253
16254 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16255 regval = 0x0000;
16256 wlc_phy_table_write_nphy(pi, 8, 1, 0x08, 16, &regval);
16257 wlc_phy_table_write_nphy(pi, 8, 1, 0x18, 16, &regval);
16258
16259 regval = 0x7aab;
16260 wlc_phy_table_write_nphy(pi, 8, 1, 0x07, 16, &regval);
16261 wlc_phy_table_write_nphy(pi, 8, 1, 0x17, 16, &regval);
16262
16263 regval = 0x0800;
16264 wlc_phy_table_write_nphy(pi, 8, 1, 0x06, 16, &regval);
16265 wlc_phy_table_write_nphy(pi, 8, 1, 0x16, 16, &regval);
16266 }
16267
16268 write_phy_reg(pi, 0xf8, 0x02d8);
16269 write_phy_reg(pi, 0xf9, 0x0301);
16270 write_phy_reg(pi, 0xfa, 0x02d8);
16271 write_phy_reg(pi, 0xfb, 0x0301);
16272
16273 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX, rfseq_rx2tx_events,
16274 rfseq_rx2tx_dlys,
16275 sizeof(rfseq_rx2tx_events) /
16276 sizeof(rfseq_rx2tx_events[0]));
16277
16278 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_TX2RX, rfseq_tx2rx_events,
16279 rfseq_tx2rx_dlys,
16280 sizeof(rfseq_tx2rx_events) /
16281 sizeof(rfseq_tx2rx_events[0]));
16282
16283 wlc_phy_workarounds_nphy_gainctrl(pi);
16284
16285 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
16286
16287 if (read_phy_reg(pi, 0xa0) & NPHY_MLenable)
16288 wlapi_bmac_mhf(pi->sh->physhim, MHF3,
16289 MHF3_NPHY_MLADV_WAR,
16290 MHF3_NPHY_MLADV_WAR,
16291 WLC_BAND_ALL);
16292
16293 } else if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16294 write_phy_reg(pi, 0x1e3, 0x0);
16295 write_phy_reg(pi, 0x1e4, 0x0);
16296 }
16297
16298 if (NREV_LT(pi->pubpi.phy_rev, 2))
16299 mod_phy_reg(pi, 0x90, (0x1 << 7), 0);
16300
16301 alpha0 = 293;
16302 alpha1 = 435;
16303 alpha2 = 261;
16304 beta0 = 366;
16305 beta1 = 205;
16306 beta2 = 32;
16307 write_phy_reg(pi, 0x145, alpha0);
16308 write_phy_reg(pi, 0x146, alpha1);
16309 write_phy_reg(pi, 0x147, alpha2);
16310 write_phy_reg(pi, 0x148, beta0);
16311 write_phy_reg(pi, 0x149, beta1);
16312 write_phy_reg(pi, 0x14a, beta2);
16313
16314 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
16315 mod_phy_reg(pi, 0x142, (0xf << 12), 0);
16316
16317 write_phy_reg(pi, 0x192, 0xb5);
16318 write_phy_reg(pi, 0x193, 0xa4);
16319 write_phy_reg(pi, 0x194, 0x0);
16320 }
16321
16322 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16323 mod_phy_reg(pi, 0x221,
16324 NPHY_FORCESIG_DECODEGATEDCLKS,
16325 NPHY_FORCESIG_DECODEGATEDCLKS);
16326 }
16327 }
16328
16329 if (pi->phyhang_avoid)
0965ae88 16330 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
16331}
16332
7cc4a4c0 16333static void wlc_phy_workarounds_nphy_gainctrl(phy_info_t *pi)
a9533e7e 16334{
7d4df48e 16335 u16 w1th, hpf_code, currband;
a9533e7e 16336 int ctr;
e868ab03 16337 u8 rfseq_updategainu_events[] = {
a9533e7e
HP
16338 NPHY_RFSEQ_CMD_RX_GAIN,
16339 NPHY_RFSEQ_CMD_CLR_HIQ_DIS,
16340 NPHY_RFSEQ_CMD_SET_HPF_BW
16341 };
e868ab03 16342 u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
562c8850
GKH
16343 s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
16344 s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
16345 s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
16346 s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
16347 s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
16348 s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
16349 s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
16350 s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
16351 s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
16352 s8 *lna1_gain_db = NULL;
16353 s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
16354 s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
16355 s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
16356 s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
16357 s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
16358 s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
16359 s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
16360 s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
16361 s8 *lna2_gain_db = NULL;
16362 s8 tiaG_gain_db[] = {
e5c4536f 16363 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
562c8850 16364 s8 tiaA_gain_db[] = {
e5c4536f 16365 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 };
562c8850 16366 s8 tiaA_gain_db_rev4[] = {
e5c4536f 16367 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850 16368 s8 tiaA_gain_db_rev5[] = {
e5c4536f 16369 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850 16370 s8 tiaA_gain_db_rev6[] = {
e5c4536f 16371 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
562c8850
GKH
16372 s8 *tia_gain_db;
16373 s8 tiaG_gainbits[] = {
e5c4536f 16374 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
562c8850 16375 s8 tiaA_gainbits[] = {
e5c4536f 16376 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 };
562c8850 16377 s8 tiaA_gainbits_rev4[] = {
e5c4536f 16378 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850 16379 s8 tiaA_gainbits_rev5[] = {
e5c4536f 16380 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850 16381 s8 tiaA_gainbits_rev6[] = {
e5c4536f 16382 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
562c8850
GKH
16383 s8 *tia_gainbits;
16384 s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
16385 s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
7d4df48e
GKH
16386 u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
16387 u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
16388 u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
16389 u16 rfseqG_init_gain_rev5_elna[] = {
e5c4536f 16390 0x013f, 0x013f, 0x013f, 0x013f };
7d4df48e
GKH
16391 u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
16392 u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
16393 u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
16394 u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
16395 u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
16396 u16 rfseqA_init_gain_rev4_elna[] = {
e5c4536f 16397 0x314f, 0x314f, 0x314f, 0x314f };
7d4df48e
GKH
16398 u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
16399 u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
16400 u16 *rfseq_init_gain;
16401 u16 initG_gaincode = 0x627e;
16402 u16 initG_gaincode_rev4 = 0x527e;
16403 u16 initG_gaincode_rev5 = 0x427e;
16404 u16 initG_gaincode_rev5_elna = 0x027e;
16405 u16 initG_gaincode_rev6 = 0x527e;
16406 u16 initG_gaincode_rev6_224B0 = 0x427e;
16407 u16 initG_gaincode_rev6_elna = 0x127e;
16408 u16 initA_gaincode = 0x52de;
16409 u16 initA_gaincode_rev4 = 0x629e;
16410 u16 initA_gaincode_rev4_elna = 0x329e;
16411 u16 initA_gaincode_rev5 = 0x729e;
16412 u16 initA_gaincode_rev6 = 0x729e;
16413 u16 init_gaincode;
16414 u16 clip1hiG_gaincode = 0x107e;
16415 u16 clip1hiG_gaincode_rev4 = 0x007e;
16416 u16 clip1hiG_gaincode_rev5 = 0x1076;
16417 u16 clip1hiG_gaincode_rev6 = 0x007e;
16418 u16 clip1hiA_gaincode = 0x00de;
16419 u16 clip1hiA_gaincode_rev4 = 0x029e;
16420 u16 clip1hiA_gaincode_rev5 = 0x029e;
16421 u16 clip1hiA_gaincode_rev6 = 0x029e;
16422 u16 clip1hi_gaincode;
16423 u16 clip1mdG_gaincode = 0x0066;
16424 u16 clip1mdA_gaincode = 0x00ca;
16425 u16 clip1mdA_gaincode_rev4 = 0x1084;
16426 u16 clip1mdA_gaincode_rev5 = 0x2084;
16427 u16 clip1mdA_gaincode_rev6 = 0x2084;
16428 u16 clip1md_gaincode = 0;
16429 u16 clip1loG_gaincode = 0x0074;
16430 u16 clip1loG_gaincode_rev5[] = {
a9533e7e
HP
16431 0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
16432 };
7d4df48e 16433 u16 clip1loG_gaincode_rev6[] = {
a9533e7e
HP
16434 0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
16435 };
7d4df48e
GKH
16436 u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
16437 u16 clip1loA_gaincode = 0x00cc;
16438 u16 clip1loA_gaincode_rev4 = 0x0086;
16439 u16 clip1loA_gaincode_rev5 = 0x2086;
16440 u16 clip1loA_gaincode_rev6 = 0x2086;
16441 u16 clip1lo_gaincode;
e868ab03
GKH
16442 u8 crsminG_th = 0x18;
16443 u8 crsminG_th_rev5 = 0x18;
16444 u8 crsminG_th_rev6 = 0x18;
16445 u8 crsminA_th = 0x1e;
16446 u8 crsminA_th_rev4 = 0x24;
16447 u8 crsminA_th_rev5 = 0x24;
16448 u8 crsminA_th_rev6 = 0x24;
16449 u8 crsmin_th;
16450 u8 crsminlG_th = 0x18;
16451 u8 crsminlG_th_rev5 = 0x18;
16452 u8 crsminlG_th_rev6 = 0x18;
16453 u8 crsminlA_th = 0x1e;
16454 u8 crsminlA_th_rev4 = 0x24;
16455 u8 crsminlA_th_rev5 = 0x24;
16456 u8 crsminlA_th_rev6 = 0x24;
16457 u8 crsminl_th = 0;
16458 u8 crsminuG_th = 0x18;
16459 u8 crsminuG_th_rev5 = 0x18;
16460 u8 crsminuG_th_rev6 = 0x18;
16461 u8 crsminuA_th = 0x1e;
16462 u8 crsminuA_th_rev4 = 0x24;
16463 u8 crsminuA_th_rev5 = 0x24;
16464 u8 crsminuA_th_rev6 = 0x24;
16465 u8 crsminuA_th_rev6_224B0 = 0x2d;
16466 u8 crsminu_th;
7d4df48e
GKH
16467 u16 nbclipG_th = 0x20d;
16468 u16 nbclipG_th_rev4 = 0x1a1;
16469 u16 nbclipG_th_rev5 = 0x1d0;
16470 u16 nbclipG_th_rev6 = 0x1d0;
16471 u16 nbclipA_th = 0x1a1;
16472 u16 nbclipA_th_rev4 = 0x107;
16473 u16 nbclipA_th_rev5 = 0x0a9;
16474 u16 nbclipA_th_rev6 = 0x0f0;
16475 u16 nbclip_th = 0;
e868ab03
GKH
16476 u8 w1clipG_th = 5;
16477 u8 w1clipG_th_rev5 = 9;
16478 u8 w1clipG_th_rev6 = 5;
16479 u8 w1clipA_th = 25, w1clip_th;
16480 u8 rssi_gain_default = 0x50;
16481 u8 rssiG_gain_rev6_224B0 = 0x50;
16482 u8 rssiA_gain_rev5 = 0x90;
16483 u8 rssiA_gain_rev6 = 0x90;
16484 u8 rssi_gain;
7d4df48e 16485 u16 regval[21];
e868ab03 16486 u8 triso;
a9533e7e
HP
16487
16488 triso = (CHSPEC_IS5G(pi->radio_chanspec)) ? pi->srom_fem5g.triso :
16489 pi->srom_fem2g.triso;
16490
16491 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
16492 if (pi->pubpi.radiorev == 5) {
16493
16494 wlc_phy_workarounds_nphy_gainctrl_2057_rev5(pi);
16495 } else if (pi->pubpi.radiorev == 7) {
16496 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16497
16498 mod_phy_reg(pi, 0x283, (0xff << 0), (0x44 << 0));
16499 mod_phy_reg(pi, 0x280, (0xff << 0), (0x44 << 0));
16500
16501 } else if ((pi->pubpi.radiorev == 3)
16502 || (pi->pubpi.radiorev == 8)) {
16503 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16504
16505 if (pi->pubpi.radiorev == 8) {
16506 mod_phy_reg(pi, 0x283,
16507 (0xff << 0), (0x44 << 0));
16508 mod_phy_reg(pi, 0x280,
16509 (0xff << 0), (0x44 << 0));
16510 }
16511 } else {
16512 wlc_phy_workarounds_nphy_gainctrl_2057_rev6(pi);
16513 }
16514 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
16515
16516 mod_phy_reg(pi, 0xa0, (0x1 << 6), (1 << 6));
16517
16518 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16519 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16520
16521 currband =
16522 read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
16523 if (currband == 0) {
16524 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16525 if (pi->pubpi.radiorev == 11) {
16526 lna1_gain_db = lna1G_gain_db_rev6_224B0;
16527 lna2_gain_db = lna2G_gain_db_rev6_224B0;
16528 rfseq_init_gain =
16529 rfseqG_init_gain_rev6_224B0;
16530 init_gaincode =
16531 initG_gaincode_rev6_224B0;
16532 clip1hi_gaincode =
16533 clip1hiG_gaincode_rev6;
16534 clip1lo_gaincode =
16535 clip1loG_gaincode_rev6_224B0;
16536 nbclip_th = nbclipG_th_rev6;
16537 w1clip_th = w1clipG_th_rev6;
16538 crsmin_th = crsminG_th_rev6;
16539 crsminl_th = crsminlG_th_rev6;
16540 crsminu_th = crsminuG_th_rev6;
16541 rssi_gain = rssiG_gain_rev6_224B0;
16542 } else {
16543 lna1_gain_db = lna1G_gain_db_rev6;
16544 lna2_gain_db = lna2G_gain_db_rev6;
16545 if (pi->sh->boardflags & BFL_EXTLNA) {
16546
16547 rfseq_init_gain =
16548 rfseqG_init_gain_rev6_elna;
16549 init_gaincode =
16550 initG_gaincode_rev6_elna;
16551 } else {
16552 rfseq_init_gain =
16553 rfseqG_init_gain_rev6;
16554 init_gaincode =
16555 initG_gaincode_rev6;
16556 }
16557 clip1hi_gaincode =
16558 clip1hiG_gaincode_rev6;
16559 switch (triso) {
16560 case 0:
16561 clip1lo_gaincode =
16562 clip1loG_gaincode_rev6[0];
16563 break;
16564 case 1:
16565 clip1lo_gaincode =
16566 clip1loG_gaincode_rev6[1];
16567 break;
16568 case 2:
16569 clip1lo_gaincode =
16570 clip1loG_gaincode_rev6[2];
16571 break;
16572 case 3:
16573 default:
16574
16575 clip1lo_gaincode =
16576 clip1loG_gaincode_rev6[3];
16577 break;
16578 case 4:
16579 clip1lo_gaincode =
16580 clip1loG_gaincode_rev6[4];
16581 break;
16582 case 5:
16583 clip1lo_gaincode =
16584 clip1loG_gaincode_rev6[5];
16585 break;
16586 case 6:
16587 clip1lo_gaincode =
16588 clip1loG_gaincode_rev6[6];
16589 break;
16590 case 7:
16591 clip1lo_gaincode =
16592 clip1loG_gaincode_rev6[7];
16593 break;
16594 }
16595 nbclip_th = nbclipG_th_rev6;
16596 w1clip_th = w1clipG_th_rev6;
16597 crsmin_th = crsminG_th_rev6;
16598 crsminl_th = crsminlG_th_rev6;
16599 crsminu_th = crsminuG_th_rev6;
16600 rssi_gain = rssi_gain_default;
16601 }
16602 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16603 lna1_gain_db = lna1G_gain_db_rev5;
16604 lna2_gain_db = lna2G_gain_db_rev5;
16605 if (pi->sh->boardflags & BFL_EXTLNA) {
16606
16607 rfseq_init_gain =
16608 rfseqG_init_gain_rev5_elna;
16609 init_gaincode =
16610 initG_gaincode_rev5_elna;
16611 } else {
16612 rfseq_init_gain = rfseqG_init_gain_rev5;
16613 init_gaincode = initG_gaincode_rev5;
16614 }
16615 clip1hi_gaincode = clip1hiG_gaincode_rev5;
16616 switch (triso) {
16617 case 0:
16618 clip1lo_gaincode =
16619 clip1loG_gaincode_rev5[0];
16620 break;
16621 case 1:
16622 clip1lo_gaincode =
16623 clip1loG_gaincode_rev5[1];
16624 break;
16625 case 2:
16626 clip1lo_gaincode =
16627 clip1loG_gaincode_rev5[2];
16628 break;
16629 case 3:
16630
16631 clip1lo_gaincode =
16632 clip1loG_gaincode_rev5[3];
16633 break;
16634 case 4:
16635 clip1lo_gaincode =
16636 clip1loG_gaincode_rev5[4];
16637 break;
16638 case 5:
16639 clip1lo_gaincode =
16640 clip1loG_gaincode_rev5[5];
16641 break;
16642 case 6:
16643 clip1lo_gaincode =
16644 clip1loG_gaincode_rev5[6];
16645 break;
16646 case 7:
16647 clip1lo_gaincode =
16648 clip1loG_gaincode_rev5[7];
16649 break;
16650 default:
16651 clip1lo_gaincode =
16652 clip1loG_gaincode_rev5[3];
16653 break;
16654 }
16655 nbclip_th = nbclipG_th_rev5;
16656 w1clip_th = w1clipG_th_rev5;
16657 crsmin_th = crsminG_th_rev5;
16658 crsminl_th = crsminlG_th_rev5;
16659 crsminu_th = crsminuG_th_rev5;
16660 rssi_gain = rssi_gain_default;
16661 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16662 lna1_gain_db = lna1G_gain_db_rev4;
16663 lna2_gain_db = lna2G_gain_db;
16664 rfseq_init_gain = rfseqG_init_gain_rev4;
16665 init_gaincode = initG_gaincode_rev4;
16666 clip1hi_gaincode = clip1hiG_gaincode_rev4;
16667 clip1lo_gaincode = clip1loG_gaincode;
16668 nbclip_th = nbclipG_th_rev4;
16669 w1clip_th = w1clipG_th;
16670 crsmin_th = crsminG_th;
16671 crsminl_th = crsminlG_th;
16672 crsminu_th = crsminuG_th;
16673 rssi_gain = rssi_gain_default;
16674 } else {
16675 lna1_gain_db = lna1G_gain_db;
16676 lna2_gain_db = lna2G_gain_db;
16677 rfseq_init_gain = rfseqG_init_gain;
16678 init_gaincode = initG_gaincode;
16679 clip1hi_gaincode = clip1hiG_gaincode;
16680 clip1lo_gaincode = clip1loG_gaincode;
16681 nbclip_th = nbclipG_th;
16682 w1clip_th = w1clipG_th;
16683 crsmin_th = crsminG_th;
16684 crsminl_th = crsminlG_th;
16685 crsminu_th = crsminuG_th;
16686 rssi_gain = rssi_gain_default;
16687 }
16688 tia_gain_db = tiaG_gain_db;
16689 tia_gainbits = tiaG_gainbits;
16690 clip1md_gaincode = clip1mdG_gaincode;
16691 } else {
16692 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
16693 lna1_gain_db = lna1A_gain_db_rev6;
16694 lna2_gain_db = lna2A_gain_db_rev6;
16695 tia_gain_db = tiaA_gain_db_rev6;
16696 tia_gainbits = tiaA_gainbits_rev6;
16697 rfseq_init_gain = rfseqA_init_gain_rev6;
16698 init_gaincode = initA_gaincode_rev6;
16699 clip1hi_gaincode = clip1hiA_gaincode_rev6;
16700 clip1md_gaincode = clip1mdA_gaincode_rev6;
16701 clip1lo_gaincode = clip1loA_gaincode_rev6;
16702 crsmin_th = crsminA_th_rev6;
16703 crsminl_th = crsminlA_th_rev6;
16704 if ((pi->pubpi.radiorev == 11) &&
16705 (CHSPEC_IS40(pi->radio_chanspec) == 0)) {
16706 crsminu_th = crsminuA_th_rev6_224B0;
16707 } else {
16708 crsminu_th = crsminuA_th_rev6;
16709 }
16710 nbclip_th = nbclipA_th_rev6;
16711 rssi_gain = rssiA_gain_rev6;
16712 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
16713 lna1_gain_db = lna1A_gain_db_rev5;
16714 lna2_gain_db = lna2A_gain_db_rev5;
16715 tia_gain_db = tiaA_gain_db_rev5;
16716 tia_gainbits = tiaA_gainbits_rev5;
16717 rfseq_init_gain = rfseqA_init_gain_rev5;
16718 init_gaincode = initA_gaincode_rev5;
16719 clip1hi_gaincode = clip1hiA_gaincode_rev5;
16720 clip1md_gaincode = clip1mdA_gaincode_rev5;
16721 clip1lo_gaincode = clip1loA_gaincode_rev5;
16722 crsmin_th = crsminA_th_rev5;
16723 crsminl_th = crsminlA_th_rev5;
16724 crsminu_th = crsminuA_th_rev5;
16725 nbclip_th = nbclipA_th_rev5;
16726 rssi_gain = rssiA_gain_rev5;
16727 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
16728 lna1_gain_db = lna1A_gain_db_rev4;
16729 lna2_gain_db = lna2A_gain_db_rev4;
16730 tia_gain_db = tiaA_gain_db_rev4;
16731 tia_gainbits = tiaA_gainbits_rev4;
16732 if (pi->sh->boardflags & BFL_EXTLNA_5GHz) {
16733
16734 rfseq_init_gain =
16735 rfseqA_init_gain_rev4_elna;
16736 init_gaincode =
16737 initA_gaincode_rev4_elna;
16738 } else {
16739 rfseq_init_gain = rfseqA_init_gain_rev4;
16740 init_gaincode = initA_gaincode_rev4;
16741 }
16742 clip1hi_gaincode = clip1hiA_gaincode_rev4;
16743 clip1md_gaincode = clip1mdA_gaincode_rev4;
16744 clip1lo_gaincode = clip1loA_gaincode_rev4;
16745 crsmin_th = crsminA_th_rev4;
16746 crsminl_th = crsminlA_th_rev4;
16747 crsminu_th = crsminuA_th_rev4;
16748 nbclip_th = nbclipA_th_rev4;
16749 rssi_gain = rssi_gain_default;
16750 } else {
16751 lna1_gain_db = lna1A_gain_db;
16752 lna2_gain_db = lna2A_gain_db;
16753 tia_gain_db = tiaA_gain_db;
16754 tia_gainbits = tiaA_gainbits;
16755 rfseq_init_gain = rfseqA_init_gain;
16756 init_gaincode = initA_gaincode;
16757 clip1hi_gaincode = clip1hiA_gaincode;
16758 clip1md_gaincode = clip1mdA_gaincode;
16759 clip1lo_gaincode = clip1loA_gaincode;
16760 crsmin_th = crsminA_th;
16761 crsminl_th = crsminlA_th;
16762 crsminu_th = crsminuA_th;
16763 nbclip_th = nbclipA_th;
16764 rssi_gain = rssi_gain_default;
16765 }
16766 w1clip_th = w1clipA_th;
16767 }
16768
16769 write_radio_reg(pi,
16770 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16771 RADIO_2056_RX0), 0x17);
16772 write_radio_reg(pi,
16773 (RADIO_2056_RX_BIASPOLE_LNAG1_IDAC |
16774 RADIO_2056_RX1), 0x17);
16775
16776 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX0),
16777 0xf0);
16778 write_radio_reg(pi, (RADIO_2056_RX_LNAG2_IDAC | RADIO_2056_RX1),
16779 0xf0);
16780
16781 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX0),
16782 0x0);
16783 write_radio_reg(pi, (RADIO_2056_RX_RSSI_POLE | RADIO_2056_RX1),
16784 0x0);
16785
16786 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX0),
16787 rssi_gain);
16788 write_radio_reg(pi, (RADIO_2056_RX_RSSI_GAIN | RADIO_2056_RX1),
16789 rssi_gain);
16790
16791 write_radio_reg(pi,
16792 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16793 RADIO_2056_RX0), 0x17);
16794 write_radio_reg(pi,
16795 (RADIO_2056_RX_BIASPOLE_LNAA1_IDAC |
16796 RADIO_2056_RX1), 0x17);
16797
16798 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX0),
16799 0xFF);
16800 write_radio_reg(pi, (RADIO_2056_RX_LNAA2_IDAC | RADIO_2056_RX1),
16801 0xFF);
16802
16803 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8,
16804 8, lna1_gain_db);
16805 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8,
16806 8, lna1_gain_db);
16807
16808 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
16809 8, lna2_gain_db);
16810 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
16811 8, lna2_gain_db);
16812
16813 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20,
16814 8, tia_gain_db);
16815 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20,
16816 8, tia_gain_db);
16817
16818 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20,
16819 8, tia_gainbits);
16820 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20,
16821 8, tia_gainbits);
16822
16823 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 6, 0x40,
16824 8, &lpf_gain_db);
16825 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 6, 0x40,
16826 8, &lpf_gain_db);
16827 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 6, 0x40,
16828 8, &lpf_gainbits);
16829 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 6, 0x40,
16830 8, &lpf_gainbits);
16831
16832 write_phy_reg(pi, 0x20, init_gaincode);
16833 write_phy_reg(pi, 0x2a7, init_gaincode);
16834
16835 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
16836 pi->pubpi.phy_corenum, 0x106, 16,
16837 rfseq_init_gain);
16838
16839 write_phy_reg(pi, 0x22, clip1hi_gaincode);
16840 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
16841
16842 write_phy_reg(pi, 0x24, clip1md_gaincode);
16843 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
16844
16845 write_phy_reg(pi, 0x37, clip1lo_gaincode);
16846 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
16847
16848 mod_phy_reg(pi, 0x27d, (0xff << 0), (crsmin_th << 0));
16849 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
16850 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
16851
16852 write_phy_reg(pi, 0x2b, nbclip_th);
16853 write_phy_reg(pi, 0x41, nbclip_th);
16854
16855 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1clip_th << 0));
16856 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1clip_th << 0));
16857
16858 write_phy_reg(pi, 0x150, 0x809c);
16859
16860 } else {
16861
16862 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16863 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16864
16865 write_phy_reg(pi, 0x2b, 0x84);
16866 write_phy_reg(pi, 0x41, 0x84);
16867
16868 if (CHSPEC_IS20(pi->radio_chanspec)) {
16869 write_phy_reg(pi, 0x6b, 0x2b);
16870 write_phy_reg(pi, 0x6c, 0x2b);
16871 write_phy_reg(pi, 0x6d, 0x9);
16872 write_phy_reg(pi, 0x6e, 0x9);
16873 }
16874
16875 w1th = NPHY_RSSICAL_W1_TARGET - 4;
16876 mod_phy_reg(pi, 0x27, (0x3f << 0), (w1th << 0));
16877 mod_phy_reg(pi, 0x3d, (0x3f << 0), (w1th << 0));
16878
16879 if (CHSPEC_IS20(pi->radio_chanspec)) {
16880 mod_phy_reg(pi, 0x1c, (0x1f << 0), (0x1 << 0));
16881 mod_phy_reg(pi, 0x32, (0x1f << 0), (0x1 << 0));
16882
16883 mod_phy_reg(pi, 0x1d, (0x1f << 0), (0x1 << 0));
16884 mod_phy_reg(pi, 0x33, (0x1f << 0), (0x1 << 0));
16885 }
16886
16887 write_phy_reg(pi, 0x150, 0x809c);
16888
16889 if (pi->nphy_gain_boost)
16890 if ((CHSPEC_IS2G(pi->radio_chanspec)) &&
16891 (CHSPEC_IS40(pi->radio_chanspec)))
16892 hpf_code = 4;
16893 else
16894 hpf_code = 5;
16895 else if (CHSPEC_IS40(pi->radio_chanspec))
16896 hpf_code = 6;
16897 else
16898 hpf_code = 7;
16899
16900 mod_phy_reg(pi, 0x20, (0x1f << 7), (hpf_code << 7));
16901 mod_phy_reg(pi, 0x36, (0x1f << 7), (hpf_code << 7));
16902
16903 for (ctr = 0; ctr < 4; ctr++) {
16904 regval[ctr] = (hpf_code << 8) | 0x7c;
16905 }
16906 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16907
16908 wlc_phy_adjust_lnagaintbl_nphy(pi);
16909
16910 if (pi->nphy_elna_gain_config) {
16911 regval[0] = 0;
16912 regval[1] = 1;
16913 regval[2] = 1;
16914 regval[3] = 1;
16915 wlc_phy_table_write_nphy(pi, 2, 4, 8, 16, regval);
16916 wlc_phy_table_write_nphy(pi, 3, 4, 8, 16, regval);
16917
16918 for (ctr = 0; ctr < 4; ctr++) {
16919 regval[ctr] = (hpf_code << 8) | 0x74;
16920 }
16921 wlc_phy_table_write_nphy(pi, 7, 4, 0x106, 16, regval);
16922 }
16923
16924 if (NREV_IS(pi->pubpi.phy_rev, 2)) {
16925 for (ctr = 0; ctr < 21; ctr++) {
16926 regval[ctr] = 3 * ctr;
16927 }
16928 wlc_phy_table_write_nphy(pi, 0, 21, 32, 16, regval);
16929 wlc_phy_table_write_nphy(pi, 1, 21, 32, 16, regval);
16930
16931 for (ctr = 0; ctr < 21; ctr++) {
7d4df48e 16932 regval[ctr] = (u16) ctr;
a9533e7e
HP
16933 }
16934 wlc_phy_table_write_nphy(pi, 2, 21, 32, 16, regval);
16935 wlc_phy_table_write_nphy(pi, 3, 21, 32, 16, regval);
16936 }
16937
16938 wlc_phy_set_rfseq_nphy(pi, NPHY_RFSEQ_UPDATEGAINU,
16939 rfseq_updategainu_events,
16940 rfseq_updategainu_dlys,
16941 sizeof(rfseq_updategainu_events) /
16942 sizeof(rfseq_updategainu_events[0]));
16943
16944 mod_phy_reg(pi, 0x153, (0xff << 8), (90 << 8));
16945
16946 if (CHSPEC_IS2G(pi->radio_chanspec))
16947 mod_phy_reg(pi,
16948 (NPHY_TO_BPHY_OFF + BPHY_OPTIONAL_MODES),
16949 0x7f, 0x4);
16950 }
16951}
16952
7cc4a4c0 16953static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(phy_info_t *pi)
a9533e7e 16954{
562c8850
GKH
16955 s8 lna1_gain_db[] = { 8, 13, 17, 22 };
16956 s8 lna2_gain_db[] = { -2, 7, 11, 15 };
16957 s8 tia_gain_db[] = { -4, -1, 2, 5, 5, 5, 5, 5, 5, 5 };
16958 s8 tia_gainbits[] = {
e5c4536f 16959 0x0, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
a9533e7e
HP
16960
16961 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
16962 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
16963
16964 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
16965
16966 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3c << 0));
16967 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3c << 0));
16968
16969 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x8, 8,
16970 lna1_gain_db);
16971 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x8, 8,
16972 lna1_gain_db);
16973
16974 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10, 8,
16975 lna2_gain_db);
16976 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10, 8,
16977 lna2_gain_db);
16978
16979 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
16980 tia_gain_db);
16981 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
16982 tia_gain_db);
16983
16984 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
16985 tia_gainbits);
16986 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
16987 tia_gainbits);
16988
16989 write_phy_reg(pi, 0x37, 0x74);
16990 write_phy_reg(pi, 0x2ad, 0x74);
16991 write_phy_reg(pi, 0x38, 0x18);
16992 write_phy_reg(pi, 0x2ae, 0x18);
16993
16994 write_phy_reg(pi, 0x2b, 0xe8);
16995 write_phy_reg(pi, 0x41, 0xe8);
16996
16997 if (CHSPEC_IS20(pi->radio_chanspec)) {
16998
16999 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x12 << 0));
17000 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x12 << 0));
17001 } else {
17002
17003 mod_phy_reg(pi, 0x300, (0x3f << 0), (0x10 << 0));
17004 mod_phy_reg(pi, 0x301, (0x3f << 0), (0x10 << 0));
17005 }
17006}
17007
7cc4a4c0 17008static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(phy_info_t *pi)
a9533e7e 17009{
7d4df48e 17010 u16 currband;
562c8850
GKH
17011 s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
17012 s8 *lna1_gain_db = NULL;
17013 s8 *lna1_gain_db_2 = NULL;
17014 s8 *lna2_gain_db = NULL;
17015 s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
17016 s8 *tia_gain_db;
17017 s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
17018 s8 *tia_gainbits;
7d4df48e
GKH
17019 u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
17020 u16 *rfseq_init_gain;
17021 u16 init_gaincode;
17022 u16 clip1hi_gaincode;
17023 u16 clip1md_gaincode = 0;
17024 u16 clip1md_gaincode_B;
17025 u16 clip1lo_gaincode;
17026 u16 clip1lo_gaincode_B;
e868ab03
GKH
17027 u8 crsminl_th = 0;
17028 u8 crsminu_th;
7d4df48e 17029 u16 nbclip_th = 0;
e868ab03 17030 u8 w1clip_th;
7d4df48e 17031 u16 freq;
562c8850 17032 s8 nvar_baseline_offset0 = 0, nvar_baseline_offset1 = 0;
e868ab03 17033 u8 chg_nbclip_th = 0;
a9533e7e
HP
17034
17035 mod_phy_reg(pi, 0x1c, (0x1 << 13), (1 << 13));
17036 mod_phy_reg(pi, 0x32, (0x1 << 13), (1 << 13));
17037
17038 currband = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
17039 if (currband == 0) {
17040
17041 lna1_gain_db = lna1G_gain_db_rev7;
17042
17043 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17044 lna1_gain_db);
17045 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17046 lna1_gain_db);
17047
17048 mod_phy_reg(pi, 0x283, (0xff << 0), (0x40 << 0));
17049
17050 if (CHSPEC_IS40(pi->radio_chanspec)) {
17051 mod_phy_reg(pi, 0x280, (0xff << 0), (0x3e << 0));
17052 mod_phy_reg(pi, 0x283, (0xff << 0), (0x3e << 0));
17053 }
17054
17055 mod_phy_reg(pi, 0x289, (0xff << 0), (0x46 << 0));
17056
17057 if (CHSPEC_IS20(pi->radio_chanspec)) {
17058 mod_phy_reg(pi, 0x300, (0x3f << 0), (13 << 0));
17059 mod_phy_reg(pi, 0x301, (0x3f << 0), (13 << 0));
17060 }
17061 } else {
17062
17063 init_gaincode = 0x9e;
17064 clip1hi_gaincode = 0x9e;
17065 clip1md_gaincode_B = 0x24;
17066 clip1lo_gaincode = 0x8a;
17067 clip1lo_gaincode_B = 8;
17068 rfseq_init_gain = rfseqA_init_gain_rev7;
17069
17070 tia_gain_db = tiaA_gain_db_rev7;
17071 tia_gainbits = tiaA_gainbits_rev7;
17072
17073 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
17074 if (CHSPEC_IS20(pi->radio_chanspec)) {
17075
17076 w1clip_th = 25;
17077 clip1md_gaincode = 0x82;
17078
17079 if ((freq <= 5080) || (freq == 5825)) {
17080
562c8850
GKH
17081 s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
17082 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17083 11, 17, 22, 25 };
562c8850 17084 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
a9533e7e
HP
17085
17086 crsminu_th = 0x3e;
17087 lna1_gain_db = lna1A_gain_db_rev7;
17088 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17089 lna2_gain_db = lna2A_gain_db_rev7;
17090 } else if ((freq >= 5500) && (freq <= 5700)) {
17091
562c8850
GKH
17092 s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
17093 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17094 12, 18, 22, 26 };
562c8850 17095 s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
a9533e7e
HP
17096
17097 crsminu_th = 0x45;
17098 clip1md_gaincode_B = 0x14;
17099 nbclip_th = 0xff;
17100 chg_nbclip_th = 1;
17101 lna1_gain_db = lna1A_gain_db_rev7;
17102 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17103 lna2_gain_db = lna2A_gain_db_rev7;
17104 } else {
17105
562c8850
GKH
17106 s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
17107 s8 lna1A_gain_db_2_rev7[] = {
e5c4536f 17108 12, 18, 22, 26 };
562c8850 17109 s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
a9533e7e
HP
17110
17111 crsminu_th = 0x41;
17112 lna1_gain_db = lna1A_gain_db_rev7;
17113 lna1_gain_db_2 = lna1A_gain_db_2_rev7;
17114 lna2_gain_db = lna2A_gain_db_rev7;
17115 }
17116
17117 if (freq <= 4920) {
17118 nvar_baseline_offset0 = 5;
17119 nvar_baseline_offset1 = 5;
17120 } else if ((freq > 4920) && (freq <= 5320)) {
17121 nvar_baseline_offset0 = 3;
17122 nvar_baseline_offset1 = 5;
17123 } else if ((freq > 5320) && (freq <= 5700)) {
17124 nvar_baseline_offset0 = 3;
17125 nvar_baseline_offset1 = 2;
17126 } else {
17127 nvar_baseline_offset0 = 4;
17128 nvar_baseline_offset1 = 0;
17129 }
17130 } else {
17131
17132 crsminu_th = 0x3a;
17133 crsminl_th = 0x3a;
17134 w1clip_th = 20;
17135
17136 if ((freq >= 4920) && (freq <= 5320)) {
17137 nvar_baseline_offset0 = 4;
17138 nvar_baseline_offset1 = 5;
17139 } else if ((freq > 5320) && (freq <= 5550)) {
17140 nvar_baseline_offset0 = 4;
17141 nvar_baseline_offset1 = 2;
17142 } else {
17143 nvar_baseline_offset0 = 5;
17144 nvar_baseline_offset1 = 3;
17145 }
17146 }
17147
17148 write_phy_reg(pi, 0x20, init_gaincode);
17149 write_phy_reg(pi, 0x2a7, init_gaincode);
17150
17151 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
17152 pi->pubpi.phy_corenum, 0x106, 16,
17153 rfseq_init_gain);
17154
17155 write_phy_reg(pi, 0x22, clip1hi_gaincode);
17156 write_phy_reg(pi, 0x2a9, clip1hi_gaincode);
17157
17158 write_phy_reg(pi, 0x36, clip1md_gaincode_B);
17159 write_phy_reg(pi, 0x2ac, clip1md_gaincode_B);
17160
17161 write_phy_reg(pi, 0x37, clip1lo_gaincode);
17162 write_phy_reg(pi, 0x2ad, clip1lo_gaincode);
17163 write_phy_reg(pi, 0x38, clip1lo_gaincode_B);
17164 write_phy_reg(pi, 0x2ae, clip1lo_gaincode_B);
17165
17166 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 10, 0x20, 8,
17167 tia_gain_db);
17168 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 10, 0x20, 8,
17169 tia_gain_db);
17170
17171 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS1, 10, 0x20, 8,
17172 tia_gainbits);
17173 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAINBITS2, 10, 0x20, 8,
17174 tia_gainbits);
17175
17176 mod_phy_reg(pi, 0x283, (0xff << 0), (crsminu_th << 0));
17177
17178 if (chg_nbclip_th == 1) {
17179 write_phy_reg(pi, 0x2b, nbclip_th);
17180 write_phy_reg(pi, 0x41, nbclip_th);
17181 }
17182
17183 mod_phy_reg(pi, 0x300, (0x3f << 0), (w1clip_th << 0));
17184 mod_phy_reg(pi, 0x301, (0x3f << 0), (w1clip_th << 0));
17185
17186 mod_phy_reg(pi, 0x2e4,
17187 (0x3f << 0), (nvar_baseline_offset0 << 0));
17188
17189 mod_phy_reg(pi, 0x2e4,
17190 (0x3f << 6), (nvar_baseline_offset1 << 6));
17191
17192 if (CHSPEC_IS20(pi->radio_chanspec)) {
17193
17194 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 8, 8,
17195 lna1_gain_db);
17196 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 8, 8,
17197 lna1_gain_db_2);
17198
17199 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN1, 4, 0x10,
17200 8, lna2_gain_db);
17201 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_GAIN2, 4, 0x10,
17202 8, lna2_gain_db);
17203
17204 write_phy_reg(pi, 0x24, clip1md_gaincode);
17205 write_phy_reg(pi, 0x2ab, clip1md_gaincode);
17206 } else {
17207 mod_phy_reg(pi, 0x280, (0xff << 0), (crsminl_th << 0));
17208 }
17209
17210 }
17211
17212}
17213
7cc4a4c0 17214static void wlc_phy_adjust_lnagaintbl_nphy(phy_info_t *pi)
a9533e7e
HP
17215{
17216 uint core;
17217 int ctr;
e59fe083 17218 s16 gain_delta[2];
e868ab03 17219 u8 curr_channel;
7d4df48e
GKH
17220 u16 minmax_gain[2];
17221 u16 regval[4];
a9533e7e
HP
17222
17223 if (pi->phyhang_avoid)
0f0881b0 17224 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
17225
17226 if (pi->nphy_gain_boost) {
17227 if ((CHSPEC_IS2G(pi->radio_chanspec))) {
17228
17229 gain_delta[0] = 6;
17230 gain_delta[1] = 6;
17231 } else {
17232
17233 curr_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17234 gain_delta[0] =
e59fe083 17235 (s16)
a9533e7e
HP
17236 PHY_HW_ROUND(((nphy_lnagain_est0[0] *
17237 curr_channel) +
17238 nphy_lnagain_est0[1]), 13);
17239 gain_delta[1] =
e59fe083 17240 (s16)
a9533e7e
HP
17241 PHY_HW_ROUND(((nphy_lnagain_est1[0] *
17242 curr_channel) +
17243 nphy_lnagain_est1[1]), 13);
17244 }
17245 } else {
17246
17247 gain_delta[0] = 0;
17248 gain_delta[1] = 0;
17249 }
17250
17251 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
17252 if (pi->nphy_elna_gain_config) {
17253
17254 regval[0] = nphy_def_lnagains[2] + gain_delta[core];
17255 regval[1] = nphy_def_lnagains[3] + gain_delta[core];
17256 regval[2] = nphy_def_lnagains[3] + gain_delta[core];
17257 regval[3] = nphy_def_lnagains[3] + gain_delta[core];
17258 } else {
17259 for (ctr = 0; ctr < 4; ctr++) {
17260 regval[ctr] =
17261 nphy_def_lnagains[ctr] + gain_delta[core];
17262 }
17263 }
17264 wlc_phy_table_write_nphy(pi, core, 4, 8, 16, regval);
17265
17266 minmax_gain[core] =
7d4df48e 17267 (u16) (nphy_def_lnagains[2] + gain_delta[core] + 4);
a9533e7e
HP
17268 }
17269
17270 mod_phy_reg(pi, 0x1e, (0xff << 0), (minmax_gain[0] << 0));
17271 mod_phy_reg(pi, 0x34, (0xff << 0), (minmax_gain[1] << 0));
17272
17273 if (pi->phyhang_avoid)
0965ae88 17274 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
17275}
17276
7cc4a4c0 17277void wlc_phy_switch_radio_nphy(phy_info_t *pi, bool on)
a9533e7e
HP
17278{
17279 if (on) {
17280 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17281 if (!pi->radio_is_on) {
17282 wlc_phy_radio_preinit_205x(pi);
17283 wlc_phy_radio_init_2057(pi);
17284 wlc_phy_radio_postinit_2057(pi);
17285 }
17286
17287 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17288 pi->radio_chanspec);
17289 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17290 wlc_phy_radio_preinit_205x(pi);
17291 wlc_phy_radio_init_2056(pi);
17292 wlc_phy_radio_postinit_2056(pi);
17293
17294 wlc_phy_chanspec_set((wlc_phy_t *) pi,
17295 pi->radio_chanspec);
17296 } else {
17297 wlc_phy_radio_preinit_2055(pi);
17298 wlc_phy_radio_init_2055(pi);
17299 wlc_phy_radio_postinit_2055(pi);
17300 }
17301
0f0881b0 17302 pi->radio_is_on = true;
a9533e7e
HP
17303
17304 } else {
17305
17306 if (NREV_GE(pi->pubpi.phy_rev, 3)
17307 && NREV_LT(pi->pubpi.phy_rev, 7)) {
17308 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17309 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x0);
17310
17311 write_radio_reg(pi,
17312 RADIO_2056_TX_PADA_BOOST_TUNE |
17313 RADIO_2056_TX0, 0);
17314 write_radio_reg(pi,
17315 RADIO_2056_TX_PADG_BOOST_TUNE |
17316 RADIO_2056_TX0, 0);
17317 write_radio_reg(pi,
17318 RADIO_2056_TX_PGAA_BOOST_TUNE |
17319 RADIO_2056_TX0, 0);
17320 write_radio_reg(pi,
17321 RADIO_2056_TX_PGAG_BOOST_TUNE |
17322 RADIO_2056_TX0, 0);
17323 mod_radio_reg(pi,
17324 RADIO_2056_TX_MIXA_BOOST_TUNE |
17325 RADIO_2056_TX0, 0xf0, 0);
17326 write_radio_reg(pi,
17327 RADIO_2056_TX_MIXG_BOOST_TUNE |
17328 RADIO_2056_TX0, 0);
17329
17330 write_radio_reg(pi,
17331 RADIO_2056_TX_PADA_BOOST_TUNE |
17332 RADIO_2056_TX1, 0);
17333 write_radio_reg(pi,
17334 RADIO_2056_TX_PADG_BOOST_TUNE |
17335 RADIO_2056_TX1, 0);
17336 write_radio_reg(pi,
17337 RADIO_2056_TX_PGAA_BOOST_TUNE |
17338 RADIO_2056_TX1, 0);
17339 write_radio_reg(pi,
17340 RADIO_2056_TX_PGAG_BOOST_TUNE |
17341 RADIO_2056_TX1, 0);
17342 mod_radio_reg(pi,
17343 RADIO_2056_TX_MIXA_BOOST_TUNE |
17344 RADIO_2056_TX1, 0xf0, 0);
17345 write_radio_reg(pi,
17346 RADIO_2056_TX_MIXG_BOOST_TUNE |
17347 RADIO_2056_TX1, 0);
17348
0965ae88 17349 pi->radio_is_on = false;
a9533e7e
HP
17350 }
17351
17352 if (NREV_GE(pi->pubpi.phy_rev, 8)) {
17353 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
0965ae88 17354 pi->radio_is_on = false;
a9533e7e
HP
17355 }
17356
17357 }
17358}
17359
7cc4a4c0 17360static void wlc_phy_radio_preinit_2055(phy_info_t *pi)
a9533e7e
HP
17361{
17362
17363 and_phy_reg(pi, 0x78, ~RFCC_POR_FORCE);
17364 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU | RFCC_OE_POR_FORCE);
17365
17366 or_phy_reg(pi, 0x78, RFCC_POR_FORCE);
17367}
17368
7cc4a4c0 17369static void wlc_phy_radio_init_2055(phy_info_t *pi)
a9533e7e
HP
17370{
17371 wlc_phy_init_radio_regs(pi, regs_2055, RADIO_DEFAULT_CORE);
17372}
17373
7cc4a4c0 17374static void wlc_phy_radio_postinit_2055(phy_info_t *pi)
a9533e7e
HP
17375{
17376
17377 and_radio_reg(pi, RADIO_2055_MASTER_CNTRL1,
17378 ~(RADIO_2055_JTAGCTRL_MASK | RADIO_2055_JTAGSYNC_MASK));
17379
17380 if (((pi->sh->sromrev >= 4)
17381 && !(pi->sh->boardflags2 & BFL2_RXBB_INT_REG_DIS))
17382 || ((pi->sh->sromrev < 4))) {
17383 and_radio_reg(pi, RADIO_2055_CORE1_RXBB_REGULATOR, 0x7F);
17384 and_radio_reg(pi, RADIO_2055_CORE2_RXBB_REGULATOR, 0x7F);
17385 }
17386
17387 mod_radio_reg(pi, RADIO_2055_RRCCAL_N_OPT_SEL, 0x3F, 0x2C);
17388 write_radio_reg(pi, RADIO_2055_CAL_MISC, 0x3C);
17389
17390 and_radio_reg(pi, RADIO_2055_CAL_MISC,
17391 ~(RADIO_2055_RRCAL_START | RADIO_2055_RRCAL_RST_N));
17392
17393 or_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL, RADIO_2055_CAL_LPO_ENABLE);
17394
17395 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_RST_N);
17396
7383141b 17397 udelay(1000);
a9533e7e
HP
17398
17399 or_radio_reg(pi, RADIO_2055_CAL_MISC, RADIO_2055_RRCAL_START);
17400
17401 SPINWAIT(((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17402 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE), 2000);
17403
be2fee08
RV
17404 if (WARN((read_radio_reg(pi, RADIO_2055_CAL_COUNTER_OUT2) &
17405 RADIO_2055_RCAL_DONE) != RADIO_2055_RCAL_DONE,
17406 "HW error: radio calibration1\n"))
17407 return;
a9533e7e
HP
17408
17409 and_radio_reg(pi, RADIO_2055_CAL_LPO_CNTRL,
17410 ~(RADIO_2055_CAL_LPO_ENABLE));
17411
17412 wlc_phy_chanspec_set((wlc_phy_t *) pi, pi->radio_chanspec);
17413
17414 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_LPF, 9);
17415 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_LPF, 9);
17416
17417 write_radio_reg(pi, RADIO_2055_CORE1_RXBB_MIDAC_HIPAS, 0x83);
17418 write_radio_reg(pi, RADIO_2055_CORE2_RXBB_MIDAC_HIPAS, 0x83);
17419
17420 mod_radio_reg(pi, RADIO_2055_CORE1_LNA_GAINBST,
17421 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17422 mod_radio_reg(pi, RADIO_2055_CORE2_LNA_GAINBST,
17423 RADIO_2055_GAINBST_VAL_MASK, RADIO_2055_GAINBST_CODE);
17424 if (pi->nphy_gain_boost) {
17425 and_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17426 ~(RADIO_2055_GAINBST_DISABLE));
17427 and_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17428 ~(RADIO_2055_GAINBST_DISABLE));
17429 } else {
17430 or_radio_reg(pi, RADIO_2055_CORE1_RXRF_SPC1,
17431 RADIO_2055_GAINBST_DISABLE);
17432 or_radio_reg(pi, RADIO_2055_CORE2_RXRF_SPC1,
17433 RADIO_2055_GAINBST_DISABLE);
17434 }
17435
7383141b 17436 udelay(2);
a9533e7e
HP
17437}
17438
7cc4a4c0 17439static void wlc_phy_radio_preinit_205x(phy_info_t *pi)
a9533e7e
HP
17440{
17441
17442 and_phy_reg(pi, 0x78, ~RFCC_CHIP0_PU);
17443 and_phy_reg(pi, 0x78, RFCC_OE_POR_FORCE);
17444
17445 or_phy_reg(pi, 0x78, ~RFCC_OE_POR_FORCE);
17446 or_phy_reg(pi, 0x78, RFCC_CHIP0_PU);
17447
17448}
17449
7cc4a4c0 17450static void wlc_phy_radio_init_2056(phy_info_t *pi)
a9533e7e
HP
17451{
17452 radio_regs_t *regs_SYN_2056_ptr = NULL;
17453 radio_regs_t *regs_TX_2056_ptr = NULL;
17454 radio_regs_t *regs_RX_2056_ptr = NULL;
17455
17456 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17457 regs_SYN_2056_ptr = regs_SYN_2056;
17458 regs_TX_2056_ptr = regs_TX_2056;
17459 regs_RX_2056_ptr = regs_RX_2056;
17460 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17461 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17462 regs_TX_2056_ptr = regs_TX_2056_A1;
17463 regs_RX_2056_ptr = regs_RX_2056_A1;
17464 } else {
17465 switch (pi->pubpi.radiorev) {
17466 case 5:
17467 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17468 regs_TX_2056_ptr = regs_TX_2056_rev5;
17469 regs_RX_2056_ptr = regs_RX_2056_rev5;
17470 break;
17471
17472 case 6:
17473 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17474 regs_TX_2056_ptr = regs_TX_2056_rev6;
17475 regs_RX_2056_ptr = regs_RX_2056_rev6;
17476 break;
17477
17478 case 7:
17479 case 9:
17480 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17481 regs_TX_2056_ptr = regs_TX_2056_rev7;
17482 regs_RX_2056_ptr = regs_RX_2056_rev7;
17483 break;
17484
17485 case 8:
17486 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17487 regs_TX_2056_ptr = regs_TX_2056_rev8;
17488 regs_RX_2056_ptr = regs_RX_2056_rev8;
17489 break;
17490
17491 case 11:
17492 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17493 regs_TX_2056_ptr = regs_TX_2056_rev11;
17494 regs_RX_2056_ptr = regs_RX_2056_rev11;
17495 break;
17496
17497 default:
a9533e7e
HP
17498 break;
17499 }
17500 }
17501
7d4df48e 17502 wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
a9533e7e 17503
7d4df48e 17504 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
a9533e7e 17505
7d4df48e 17506 wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
a9533e7e 17507
7d4df48e 17508 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
a9533e7e 17509
7d4df48e 17510 wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);
a9533e7e
HP
17511}
17512
7cc4a4c0 17513static void wlc_phy_radio_postinit_2056(phy_info_t *pi)
a9533e7e
HP
17514{
17515 mod_radio_reg(pi, RADIO_2056_SYN_COM_CTRL, 0xb, 0xb);
17516
17517 mod_radio_reg(pi, RADIO_2056_SYN_COM_PU, 0x2, 0x2);
17518 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x2);
7383141b 17519 udelay(1000);
a9533e7e
HP
17520 mod_radio_reg(pi, RADIO_2056_SYN_COM_RESET, 0x2, 0x0);
17521
17522 if ((pi->sh->boardflags2 & BFL2_LEGACY)
17523 || (pi->sh->boardflags2 & BFL2_XTALBUFOUTEN)) {
17524
17525 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xf4, 0x0);
17526 } else {
17527
17528 mod_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2, 0xfc, 0x0);
17529 }
17530
17531 mod_radio_reg(pi, RADIO_2056_SYN_RCCAL_CTRL0, 0x1, 0x0);
17532
17533 if (pi->phy_init_por) {
17534 wlc_phy_radio205x_rcal(pi);
17535 }
17536}
17537
7cc4a4c0 17538static void wlc_phy_radio_init_2057(phy_info_t *pi)
a9533e7e
HP
17539{
17540 radio_20xx_regs_t *regs_2057_ptr = NULL;
17541
17542 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17543
17544 regs_2057_ptr = regs_2057_rev4;
17545 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17546 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17547 switch (pi->pubpi.radiorev) {
17548 case 5:
17549
17550 if (pi->pubpi.radiover == 0x0) {
17551
17552 regs_2057_ptr = regs_2057_rev5;
17553
17554 } else if (pi->pubpi.radiover == 0x1) {
17555
17556 regs_2057_ptr = regs_2057_rev5v1;
17557 } else {
a9533e7e
HP
17558 break;
17559 }
17560
17561 case 7:
17562
17563 regs_2057_ptr = regs_2057_rev7;
17564 break;
17565
17566 case 8:
17567
17568 regs_2057_ptr = regs_2057_rev8;
17569 break;
17570
17571 default:
a9533e7e
HP
17572 break;
17573 }
a9533e7e
HP
17574 }
17575
17576 wlc_phy_init_radio_regs_allbands(pi, regs_2057_ptr);
17577}
17578
7cc4a4c0 17579static void wlc_phy_radio_postinit_2057(phy_info_t *pi)
a9533e7e
HP
17580{
17581
17582 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x1, 0x1);
17583
dfa26436 17584 if (pi->sh->chip == !BCM6362_CHIP_ID) {
a9533e7e
HP
17585
17586 mod_radio_reg(pi, RADIO_2057_XTALPUOVR_PINCTRL, 0x2, 0x2);
17587 }
17588
17589 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x78);
17590 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x80);
7383141b 17591 mdelay(2);
a9533e7e
HP
17592 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x78, 0x0);
17593 mod_radio_reg(pi, RADIO_2057_XTAL_CONFIG2, 0x80, 0x0);
17594
17595 if (pi->phy_init_por) {
17596 wlc_phy_radio205x_rcal(pi);
17597 wlc_phy_radio2057_rccal(pi);
17598 }
17599
17600 mod_radio_reg(pi, RADIO_2057_RFPLL_MASTER, 0x8, 0x0);
17601}
17602
17603static bool
7cc4a4c0
JC
17604wlc_phy_chan2freq_nphy(phy_info_t *pi, uint channel, int *f,
17605 chan_info_nphy_radio2057_t **t0,
17606 chan_info_nphy_radio205x_t **t1,
17607 chan_info_nphy_radio2057_rev5_t **t2,
17608 chan_info_nphy_2055_t **t3)
a9533e7e
HP
17609{
17610 uint i;
17611 chan_info_nphy_radio2057_t *chan_info_tbl_p_0 = NULL;
17612 chan_info_nphy_radio205x_t *chan_info_tbl_p_1 = NULL;
17613 chan_info_nphy_radio2057_rev5_t *chan_info_tbl_p_2 = NULL;
66cbd3ab 17614 u32 tbl_len = 0;
a9533e7e
HP
17615
17616 int freq = 0;
17617
17618 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
17619
17620 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
17621
17622 chan_info_tbl_p_0 = chan_info_nphyrev7_2057_rev4;
8d3d6a69 17623 tbl_len = ARRAY_SIZE(chan_info_nphyrev7_2057_rev4);
a9533e7e
HP
17624
17625 } else if (NREV_IS(pi->pubpi.phy_rev, 8)
17626 || NREV_IS(pi->pubpi.phy_rev, 9)) {
17627 switch (pi->pubpi.radiorev) {
17628
17629 case 5:
17630
17631 if (pi->pubpi.radiover == 0x0) {
17632
17633 chan_info_tbl_p_2 =
17634 chan_info_nphyrev8_2057_rev5;
17635 tbl_len =
8d3d6a69 17636 ARRAY_SIZE
a9533e7e
HP
17637 (chan_info_nphyrev8_2057_rev5);
17638
17639 } else if (pi->pubpi.radiover == 0x1) {
17640
17641 chan_info_tbl_p_2 =
17642 chan_info_nphyrev9_2057_rev5v1;
17643 tbl_len =
8d3d6a69 17644 ARRAY_SIZE
a9533e7e
HP
17645 (chan_info_nphyrev9_2057_rev5v1);
17646
17647 }
17648 break;
17649
17650 case 7:
17651 chan_info_tbl_p_0 =
17652 chan_info_nphyrev8_2057_rev7;
17653 tbl_len =
8d3d6a69 17654 ARRAY_SIZE(chan_info_nphyrev8_2057_rev7);
a9533e7e
HP
17655 break;
17656
17657 case 8:
17658 chan_info_tbl_p_0 =
17659 chan_info_nphyrev8_2057_rev8;
17660 tbl_len =
8d3d6a69 17661 ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
a9533e7e
HP
17662 break;
17663
17664 default:
17665 if (NORADIO_ENAB(pi->pubpi)) {
17666 goto fail;
17667 }
17668 break;
17669 }
17670 } else if (NREV_IS(pi->pubpi.phy_rev, 16)) {
17671
17672 chan_info_tbl_p_0 = chan_info_nphyrev8_2057_rev8;
8d3d6a69 17673 tbl_len = ARRAY_SIZE(chan_info_nphyrev8_2057_rev8);
a9533e7e
HP
17674 } else {
17675 goto fail;
17676 }
17677
17678 for (i = 0; i < tbl_len; i++) {
17679 if (pi->pubpi.radiorev == 5) {
17680
17681 if (chan_info_tbl_p_2[i].chan == channel)
17682 break;
17683 } else {
17684
17685 if (chan_info_tbl_p_0[i].chan == channel)
17686 break;
17687 }
17688 }
17689
17690 if (i >= tbl_len) {
a9533e7e
HP
17691 goto fail;
17692 }
17693 if (pi->pubpi.radiorev == 5) {
17694 *t2 = &chan_info_tbl_p_2[i];
17695 freq = chan_info_tbl_p_2[i].freq;
17696 } else {
17697 *t0 = &chan_info_tbl_p_0[i];
17698 freq = chan_info_tbl_p_0[i].freq;
17699 }
17700
17701 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
17702 if (NREV_IS(pi->pubpi.phy_rev, 3)) {
17703 chan_info_tbl_p_1 = chan_info_nphyrev3_2056;
8d3d6a69 17704 tbl_len = ARRAY_SIZE(chan_info_nphyrev3_2056);
a9533e7e
HP
17705 } else if (NREV_IS(pi->pubpi.phy_rev, 4)) {
17706 chan_info_tbl_p_1 = chan_info_nphyrev4_2056_A1;
8d3d6a69 17707 tbl_len = ARRAY_SIZE(chan_info_nphyrev4_2056_A1);
a9533e7e
HP
17708 } else if (NREV_IS(pi->pubpi.phy_rev, 5)
17709 || NREV_IS(pi->pubpi.phy_rev, 6)) {
17710 switch (pi->pubpi.radiorev) {
17711 case 5:
17712 chan_info_tbl_p_1 = chan_info_nphyrev5_2056v5;
8d3d6a69 17713 tbl_len = ARRAY_SIZE(chan_info_nphyrev5_2056v5);
a9533e7e
HP
17714 break;
17715 case 6:
17716 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v6;
8d3d6a69 17717 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v6);
a9533e7e
HP
17718 break;
17719 case 7:
17720 case 9:
17721 chan_info_tbl_p_1 = chan_info_nphyrev5n6_2056v7;
17722 tbl_len =
8d3d6a69 17723 ARRAY_SIZE(chan_info_nphyrev5n6_2056v7);
a9533e7e
HP
17724 break;
17725 case 8:
17726 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v8;
8d3d6a69 17727 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v8);
a9533e7e
HP
17728 break;
17729 case 11:
17730 chan_info_tbl_p_1 = chan_info_nphyrev6_2056v11;
8d3d6a69 17731 tbl_len = ARRAY_SIZE(chan_info_nphyrev6_2056v11);
a9533e7e
HP
17732 break;
17733 default:
17734 if (NORADIO_ENAB(pi->pubpi)) {
17735 goto fail;
17736 }
17737 break;
17738 }
17739 }
17740
17741 for (i = 0; i < tbl_len; i++) {
17742 if (chan_info_tbl_p_1[i].chan == channel)
17743 break;
17744 }
17745
17746 if (i >= tbl_len) {
a9533e7e
HP
17747 goto fail;
17748 }
17749 *t1 = &chan_info_tbl_p_1[i];
17750 freq = chan_info_tbl_p_1[i].freq;
17751
17752 } else {
8d3d6a69 17753 for (i = 0; i < ARRAY_SIZE(chan_info_nphy_2055); i++)
a9533e7e
HP
17754 if (chan_info_nphy_2055[i].chan == channel)
17755 break;
17756
8d3d6a69 17757 if (i >= ARRAY_SIZE(chan_info_nphy_2055)) {
a9533e7e
HP
17758 goto fail;
17759 }
17760 *t3 = &chan_info_nphy_2055[i];
17761 freq = chan_info_nphy_2055[i].freq;
17762 }
17763
17764 *f = freq;
0f0881b0 17765 return true;
a9533e7e
HP
17766
17767 fail:
17768 *f = WL_CHAN_FREQ_RANGE_2G;
0965ae88 17769 return false;
a9533e7e
HP
17770}
17771
e868ab03 17772u8 wlc_phy_get_chan_freq_range_nphy(phy_info_t *pi, uint channel)
a9533e7e
HP
17773{
17774 int freq;
17775 chan_info_nphy_radio2057_t *t0 = NULL;
17776 chan_info_nphy_radio205x_t *t1 = NULL;
17777 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
17778 chan_info_nphy_2055_t *t3 = NULL;
17779
17780 if (NORADIO_ENAB(pi->pubpi))
17781 return WL_CHAN_FREQ_RANGE_2G;
17782
17783 if (channel == 0)
17784 channel = CHSPEC_CHANNEL(pi->radio_chanspec);
17785
17786 wlc_phy_chan2freq_nphy(pi, channel, &freq, &t0, &t1, &t2, &t3);
17787
17788 if (CHSPEC_IS2G(pi->radio_chanspec))
17789 return WL_CHAN_FREQ_RANGE_2G;
17790
17791 if ((freq >= BASE_LOW_5G_CHAN) && (freq < BASE_MID_5G_CHAN)) {
17792 return WL_CHAN_FREQ_RANGE_5GL;
17793 } else if ((freq >= BASE_MID_5G_CHAN) && (freq < BASE_HIGH_5G_CHAN)) {
17794 return WL_CHAN_FREQ_RANGE_5GM;
17795 } else {
17796 return WL_CHAN_FREQ_RANGE_5GH;
17797 }
17798}
17799
17800static void
7cc4a4c0 17801wlc_phy_chanspec_radio2055_setup(phy_info_t *pi, chan_info_nphy_2055_t *ci)
a9533e7e
HP
17802{
17803
17804 write_radio_reg(pi, RADIO_2055_PLL_REF, ci->RF_pll_ref);
17805 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD0, ci->RF_rf_pll_mod0);
17806 write_radio_reg(pi, RADIO_2055_RF_PLL_MOD1, ci->RF_rf_pll_mod1);
17807 write_radio_reg(pi, RADIO_2055_VCO_CAP_TAIL, ci->RF_vco_cap_tail);
17808
17809 WLC_PHY_WAR_PR51571(pi);
17810
17811 write_radio_reg(pi, RADIO_2055_VCO_CAL1, ci->RF_vco_cal1);
17812 write_radio_reg(pi, RADIO_2055_VCO_CAL2, ci->RF_vco_cal2);
17813 write_radio_reg(pi, RADIO_2055_PLL_LF_C1, ci->RF_pll_lf_c1);
17814 write_radio_reg(pi, RADIO_2055_PLL_LF_R1, ci->RF_pll_lf_r1);
17815
17816 WLC_PHY_WAR_PR51571(pi);
17817
17818 write_radio_reg(pi, RADIO_2055_PLL_LF_C2, ci->RF_pll_lf_c2);
17819 write_radio_reg(pi, RADIO_2055_LGBUF_CEN_BUF, ci->RF_lgbuf_cen_buf);
17820 write_radio_reg(pi, RADIO_2055_LGEN_TUNE1, ci->RF_lgen_tune1);
17821 write_radio_reg(pi, RADIO_2055_LGEN_TUNE2, ci->RF_lgen_tune2);
17822
17823 WLC_PHY_WAR_PR51571(pi);
17824
17825 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_A_TUNE,
17826 ci->RF_core1_lgbuf_a_tune);
17827 write_radio_reg(pi, RADIO_2055_CORE1_LGBUF_G_TUNE,
17828 ci->RF_core1_lgbuf_g_tune);
17829 write_radio_reg(pi, RADIO_2055_CORE1_RXRF_REG1, ci->RF_core1_rxrf_reg1);
17830 write_radio_reg(pi, RADIO_2055_CORE1_TX_PGA_PAD_TN,
17831 ci->RF_core1_tx_pga_pad_tn);
17832
17833 WLC_PHY_WAR_PR51571(pi);
17834
17835 write_radio_reg(pi, RADIO_2055_CORE1_TX_MX_BGTRIM,
17836 ci->RF_core1_tx_mx_bgtrim);
17837 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_A_TUNE,
17838 ci->RF_core2_lgbuf_a_tune);
17839 write_radio_reg(pi, RADIO_2055_CORE2_LGBUF_G_TUNE,
17840 ci->RF_core2_lgbuf_g_tune);
17841 write_radio_reg(pi, RADIO_2055_CORE2_RXRF_REG1, ci->RF_core2_rxrf_reg1);
17842
17843 WLC_PHY_WAR_PR51571(pi);
17844
17845 write_radio_reg(pi, RADIO_2055_CORE2_TX_PGA_PAD_TN,
17846 ci->RF_core2_tx_pga_pad_tn);
17847 write_radio_reg(pi, RADIO_2055_CORE2_TX_MX_BGTRIM,
17848 ci->RF_core2_tx_mx_bgtrim);
17849
7383141b 17850 udelay(50);
a9533e7e
HP
17851
17852 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x05);
17853 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x45);
17854
17855 WLC_PHY_WAR_PR51571(pi);
17856
17857 write_radio_reg(pi, RADIO_2055_VCO_CAL10, 0x65);
17858
7383141b 17859 udelay(300);
a9533e7e
HP
17860}
17861
17862static void
7cc4a4c0
JC
17863wlc_phy_chanspec_radio2056_setup(phy_info_t *pi,
17864 const chan_info_nphy_radio205x_t *ci)
a9533e7e
HP
17865{
17866 radio_regs_t *regs_SYN_2056_ptr = NULL;
17867
17868 write_radio_reg(pi,
17869 RADIO_2056_SYN_PLL_VCOCAL1 | RADIO_2056_SYN,
17870 ci->RF_SYN_pll_vcocal1);
17871 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL2 | RADIO_2056_SYN,
17872 ci->RF_SYN_pll_vcocal2);
17873 write_radio_reg(pi, RADIO_2056_SYN_PLL_REFDIV | RADIO_2056_SYN,
17874 ci->RF_SYN_pll_refdiv);
17875 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD2 | RADIO_2056_SYN,
17876 ci->RF_SYN_pll_mmd2);
17877 write_radio_reg(pi, RADIO_2056_SYN_PLL_MMD1 | RADIO_2056_SYN,
17878 ci->RF_SYN_pll_mmd1);
17879 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
17880 ci->RF_SYN_pll_loopfilter1);
17881 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
17882 ci->RF_SYN_pll_loopfilter2);
17883 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER3 | RADIO_2056_SYN,
17884 ci->RF_SYN_pll_loopfilter3);
17885 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
17886 ci->RF_SYN_pll_loopfilter4);
17887 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER5 | RADIO_2056_SYN,
17888 ci->RF_SYN_pll_loopfilter5);
17889 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR27 | RADIO_2056_SYN,
17890 ci->RF_SYN_reserved_addr27);
17891 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR28 | RADIO_2056_SYN,
17892 ci->RF_SYN_reserved_addr28);
17893 write_radio_reg(pi, RADIO_2056_SYN_RESERVED_ADDR29 | RADIO_2056_SYN,
17894 ci->RF_SYN_reserved_addr29);
17895 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_VCOBUF1 | RADIO_2056_SYN,
17896 ci->RF_SYN_logen_VCOBUF1);
17897 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_MIXER2 | RADIO_2056_SYN,
17898 ci->RF_SYN_logen_MIXER2);
17899 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF3 | RADIO_2056_SYN,
17900 ci->RF_SYN_logen_BUF3);
17901 write_radio_reg(pi, RADIO_2056_SYN_LOGEN_BUF4 | RADIO_2056_SYN,
17902 ci->RF_SYN_logen_BUF4);
17903
17904 write_radio_reg(pi,
17905 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX0,
17906 ci->RF_RX0_lnaa_tune);
17907 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX0,
17908 ci->RF_RX0_lnag_tune);
17909 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX0,
17910 ci->RF_TX0_intpaa_boost_tune);
17911 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX0,
17912 ci->RF_TX0_intpag_boost_tune);
17913 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX0,
17914 ci->RF_TX0_pada_boost_tune);
17915 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX0,
17916 ci->RF_TX0_padg_boost_tune);
17917 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX0,
17918 ci->RF_TX0_pgaa_boost_tune);
17919 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX0,
17920 ci->RF_TX0_pgag_boost_tune);
17921 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX0,
17922 ci->RF_TX0_mixa_boost_tune);
17923 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX0,
17924 ci->RF_TX0_mixg_boost_tune);
17925
17926 write_radio_reg(pi,
17927 RADIO_2056_RX_LNAA_TUNE | RADIO_2056_RX1,
17928 ci->RF_RX1_lnaa_tune);
17929 write_radio_reg(pi, RADIO_2056_RX_LNAG_TUNE | RADIO_2056_RX1,
17930 ci->RF_RX1_lnag_tune);
17931 write_radio_reg(pi, RADIO_2056_TX_INTPAA_BOOST_TUNE | RADIO_2056_TX1,
17932 ci->RF_TX1_intpaa_boost_tune);
17933 write_radio_reg(pi, RADIO_2056_TX_INTPAG_BOOST_TUNE | RADIO_2056_TX1,
17934 ci->RF_TX1_intpag_boost_tune);
17935 write_radio_reg(pi, RADIO_2056_TX_PADA_BOOST_TUNE | RADIO_2056_TX1,
17936 ci->RF_TX1_pada_boost_tune);
17937 write_radio_reg(pi, RADIO_2056_TX_PADG_BOOST_TUNE | RADIO_2056_TX1,
17938 ci->RF_TX1_padg_boost_tune);
17939 write_radio_reg(pi, RADIO_2056_TX_PGAA_BOOST_TUNE | RADIO_2056_TX1,
17940 ci->RF_TX1_pgaa_boost_tune);
17941 write_radio_reg(pi, RADIO_2056_TX_PGAG_BOOST_TUNE | RADIO_2056_TX1,
17942 ci->RF_TX1_pgag_boost_tune);
17943 write_radio_reg(pi, RADIO_2056_TX_MIXA_BOOST_TUNE | RADIO_2056_TX1,
17944 ci->RF_TX1_mixa_boost_tune);
17945 write_radio_reg(pi, RADIO_2056_TX_MIXG_BOOST_TUNE | RADIO_2056_TX1,
17946 ci->RF_TX1_mixg_boost_tune);
17947
17948 if (NREV_IS(pi->pubpi.phy_rev, 3))
17949 regs_SYN_2056_ptr = regs_SYN_2056;
17950 else if (NREV_IS(pi->pubpi.phy_rev, 4))
17951 regs_SYN_2056_ptr = regs_SYN_2056_A1;
17952 else {
17953 switch (pi->pubpi.radiorev) {
17954 case 5:
17955 regs_SYN_2056_ptr = regs_SYN_2056_rev5;
17956 break;
17957 case 6:
17958 regs_SYN_2056_ptr = regs_SYN_2056_rev6;
17959 break;
17960 case 7:
17961 case 9:
17962 regs_SYN_2056_ptr = regs_SYN_2056_rev7;
17963 break;
17964 case 8:
17965 regs_SYN_2056_ptr = regs_SYN_2056_rev8;
17966 break;
17967 case 11:
17968 regs_SYN_2056_ptr = regs_SYN_2056_rev11;
17969 break;
17970 }
17971 }
17972 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17973 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17974 RADIO_2056_SYN,
7d4df48e 17975 (u16) regs_SYN_2056_ptr[0x49 - 2].init_g);
a9533e7e
HP
17976 } else {
17977 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
17978 RADIO_2056_SYN,
7d4df48e 17979 (u16) regs_SYN_2056_ptr[0x49 - 2].init_a);
a9533e7e
HP
17980 }
17981
17982 if (pi->sh->boardflags2 & BFL2_GPLL_WAR) {
17983 if (CHSPEC_IS2G(pi->radio_chanspec)) {
17984 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
17985 RADIO_2056_SYN, 0x1f);
17986 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
17987 RADIO_2056_SYN, 0x1f);
17988
dfa26436
AS
17989 if ((pi->sh->chip == BCM4716_CHIP_ID) ||
17990 (pi->sh->chip == BCM47162_CHIP_ID)) {
a9533e7e
HP
17991
17992 write_radio_reg(pi,
17993 RADIO_2056_SYN_PLL_LOOPFILTER4 |
17994 RADIO_2056_SYN, 0x14);
17995 write_radio_reg(pi,
17996 RADIO_2056_SYN_PLL_CP2 |
17997 RADIO_2056_SYN, 0x00);
17998 } else {
17999 write_radio_reg(pi,
18000 RADIO_2056_SYN_PLL_LOOPFILTER4 |
18001 RADIO_2056_SYN, 0xb);
18002 write_radio_reg(pi,
18003 RADIO_2056_SYN_PLL_CP2 |
18004 RADIO_2056_SYN, 0x14);
18005 }
18006 }
18007 }
18008
18009 if ((pi->sh->boardflags2 & BFL2_GPLL_WAR2) &&
18010 (CHSPEC_IS2G(pi->radio_chanspec))) {
18011 write_radio_reg(pi,
18012 RADIO_2056_SYN_PLL_LOOPFILTER1 | RADIO_2056_SYN,
18013 0x1f);
18014 write_radio_reg(pi,
18015 RADIO_2056_SYN_PLL_LOOPFILTER2 | RADIO_2056_SYN,
18016 0x1f);
18017 write_radio_reg(pi,
18018 RADIO_2056_SYN_PLL_LOOPFILTER4 | RADIO_2056_SYN,
18019 0xb);
18020 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 | RADIO_2056_SYN,
18021 0x20);
18022 }
18023
18024 if (pi->sh->boardflags2 & BFL2_APLL_WAR) {
18025 if (CHSPEC_IS5G(pi->radio_chanspec)) {
18026 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER1 |
18027 RADIO_2056_SYN, 0x1f);
18028 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 |
18029 RADIO_2056_SYN, 0x1f);
18030 write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER4 |
18031 RADIO_2056_SYN, 0x5);
18032 write_radio_reg(pi, RADIO_2056_SYN_PLL_CP2 |
18033 RADIO_2056_SYN, 0xc);
18034 }
18035 }
18036
18037 if (PHY_IPA(pi) && CHSPEC_IS2G(pi->radio_chanspec)) {
7d4df48e
GKH
18038 u16 pag_boost_tune;
18039 u16 padg_boost_tune;
18040 u16 pgag_boost_tune;
18041 u16 mixg_boost_tune;
18042 u16 bias, cascbias;
a9533e7e
HP
18043 uint core;
18044
18045 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18046
18047 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
18048
18049 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18050 PADG_IDAC, 0xcc);
18051
dfa26436
AS
18052 if ((pi->sh->chip == BCM4716_CHIP_ID) ||
18053 (pi->sh->chip ==
a9533e7e
HP
18054 BCM47162_CHIP_ID)) {
18055 bias = 0x40;
18056 cascbias = 0x45;
18057 pag_boost_tune = 0x5;
18058 pgag_boost_tune = 0x33;
18059 padg_boost_tune = 0x77;
18060 mixg_boost_tune = 0x55;
18061 } else {
18062 bias = 0x25;
18063 cascbias = 0x20;
18064
dfa26436 18065 if ((pi->sh->chip ==
a9533e7e 18066 BCM43224_CHIP_ID)
dfa26436 18067 || (pi->sh->chip ==
a9533e7e 18068 BCM43225_CHIP_ID)
dfa26436 18069 || (pi->sh->chip ==
a9533e7e
HP
18070 BCM43421_CHIP_ID)) {
18071 if (pi->sh->chippkg ==
18072 BCM43224_FAB_SMIC) {
18073 bias = 0x2a;
18074 cascbias = 0x38;
18075 }
18076 }
18077
18078 pag_boost_tune = 0x4;
18079 pgag_boost_tune = 0x03;
18080 padg_boost_tune = 0x77;
18081 mixg_boost_tune = 0x65;
18082 }
18083
18084 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18085 INTPAG_IMAIN_STAT, bias);
18086 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18087 INTPAG_IAUX_STAT, bias);
18088 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18089 INTPAG_CASCBIAS, cascbias);
18090
18091 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18092 INTPAG_BOOST_TUNE,
18093 pag_boost_tune);
18094 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18095 PGAG_BOOST_TUNE,
18096 pgag_boost_tune);
18097 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18098 PADG_BOOST_TUNE,
18099 padg_boost_tune);
18100 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18101 MIXG_BOOST_TUNE,
18102 mixg_boost_tune);
18103 } else {
18104
18105 bias = IS40MHZ(pi) ? 0x40 : 0x20;
18106
18107 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18108 INTPAG_IMAIN_STAT, bias);
18109 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18110 INTPAG_IAUX_STAT, bias);
18111 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18112 INTPAG_CASCBIAS, 0x30);
18113 }
18114 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, PA_SPARE1,
18115 0xee);
18116 }
18117 }
18118
18119 if (PHY_IPA(pi) && NREV_IS(pi->pubpi.phy_rev, 6)
18120 && CHSPEC_IS5G(pi->radio_chanspec)) {
7d4df48e
GKH
18121 u16 paa_boost_tune;
18122 u16 pada_boost_tune;
18123 u16 pgaa_boost_tune;
18124 u16 mixa_boost_tune;
18125 u16 freq, pabias, cascbias;
a9533e7e
HP
18126 uint core;
18127
18128 freq = CHAN5G_FREQ(CHSPEC_CHANNEL(pi->radio_chanspec));
18129
18130 if (freq < 5150) {
18131
18132 paa_boost_tune = 0xa;
18133 pada_boost_tune = 0x77;
18134 pgaa_boost_tune = 0xf;
18135 mixa_boost_tune = 0xf;
18136 } else if (freq < 5340) {
18137
18138 paa_boost_tune = 0x8;
18139 pada_boost_tune = 0x77;
18140 pgaa_boost_tune = 0xfb;
18141 mixa_boost_tune = 0xf;
18142 } else if (freq < 5650) {
18143
18144 paa_boost_tune = 0x0;
18145 pada_boost_tune = 0x77;
18146 pgaa_boost_tune = 0xb;
18147 mixa_boost_tune = 0xf;
18148 } else {
18149
18150 paa_boost_tune = 0x0;
18151 pada_boost_tune = 0x77;
18152 if (freq != 5825) {
18153 pgaa_boost_tune = -(int)(freq - 18) / 36 + 168;
18154 } else {
18155 pgaa_boost_tune = 6;
18156 }
18157 mixa_boost_tune = 0xf;
18158 }
18159
18160 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
18161 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18162 INTPAA_BOOST_TUNE, paa_boost_tune);
18163 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18164 PADA_BOOST_TUNE, pada_boost_tune);
18165 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18166 PGAA_BOOST_TUNE, pgaa_boost_tune);
18167 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18168 MIXA_BOOST_TUNE, mixa_boost_tune);
18169
18170 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18171 TXSPARE1, 0x30);
18172 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18173 PA_SPARE2, 0xee);
18174
18175 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18176 PADA_CASCBIAS, 0x3);
18177
18178 cascbias = 0x30;
18179
dfa26436
AS
18180 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
18181 (pi->sh->chip == BCM43225_CHIP_ID) ||
18182 (pi->sh->chip == BCM43421_CHIP_ID)) {
a9533e7e
HP
18183 if (pi->sh->chippkg == BCM43224_FAB_SMIC) {
18184 cascbias = 0x35;
18185 }
18186 }
18187
18188 pabias = (pi->phy_pabias == 0) ? 0x30 : pi->phy_pabias;
18189
18190 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18191 INTPAA_IAUX_STAT, pabias);
18192 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18193 INTPAA_IMAIN_STAT, pabias);
18194 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
18195 INTPAA_CASCBIAS, cascbias);
18196 }
18197 }
18198
7383141b 18199 udelay(50);
a9533e7e
HP
18200
18201 wlc_phy_radio205x_vcocal_nphy(pi);
18202}
18203
7cc4a4c0 18204void wlc_phy_radio205x_vcocal_nphy(phy_info_t *pi)
a9533e7e
HP
18205{
18206 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18207 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x0);
18208 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04, 0x0);
18209 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_CAL_RESETN, 0x04,
18210 (1 << 2));
18211 mod_radio_reg(pi, RADIO_2057_RFPLL_MISC_EN, 0x01, 0x01);
18212 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18213 write_radio_reg(pi, RADIO_2056_SYN_PLL_VCOCAL12, 0x0);
18214 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18215 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x18);
18216 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x38);
18217 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST3, 0x39);
18218 }
18219
7383141b 18220 udelay(300);
a9533e7e
HP
18221}
18222
18223#define MAX_205x_RCAL_WAITLOOPS 10000
18224
7d4df48e 18225static u16 wlc_phy_radio205x_rcal(phy_info_t *pi)
a9533e7e 18226{
7d4df48e 18227 u16 rcal_reg = 0;
a9533e7e
HP
18228 int i;
18229
18230 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
18231
18232 if (pi->pubpi.radiorev == 5) {
18233
18234 and_phy_reg(pi, 0x342, ~(0x1 << 1));
18235
7383141b 18236 udelay(10);
a9533e7e
HP
18237
18238 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x1);
18239 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18240 0x1);
18241 }
18242 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x1);
18243
7383141b 18244 udelay(10);
a9533e7e
HP
18245
18246 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x3, 0x3);
18247
18248 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18249 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS);
18250 if (rcal_reg & 0x1) {
18251 break;
18252 }
7383141b 18253 udelay(100);
a9533e7e
HP
18254 }
18255
be2fee08
RV
18256 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18257 "HW error: radio calib2"))
18258 return 0;
a9533e7e
HP
18259
18260 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x2, 0x0);
18261
18262 rcal_reg = read_radio_reg(pi, RADIO_2057_RCAL_STATUS) & 0x3e;
18263
18264 mod_radio_reg(pi, RADIO_2057_RCAL_CONFIG, 0x1, 0x0);
18265 if (pi->pubpi.radiorev == 5) {
18266
18267 mod_radio_reg(pi, RADIO_2057_IQTEST_SEL_PU, 0x1, 0x0);
18268 mod_radio_reg(pi, RADIO_2057v7_IQTEST_SEL_PU2, 0x2,
18269 0x0);
18270 }
18271
18272 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18273
18274 mod_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x3c,
18275 rcal_reg);
18276 mod_radio_reg(pi, RADIO_2057_BANDGAP_RCAL_TRIM, 0xf0,
18277 rcal_reg << 2);
18278 }
18279
18280 } else if (NREV_IS(pi->pubpi.phy_rev, 3)) {
7d4df48e 18281 u16 savereg;
a9533e7e
HP
18282
18283 savereg =
18284 read_radio_reg(pi,
18285 RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN);
18286 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18287 savereg | 0x7);
7383141b 18288 udelay(10);
a9533e7e
HP
18289
18290 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18291 0x1);
7383141b 18292 udelay(10);
a9533e7e
HP
18293
18294 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18295 0x9);
18296
18297 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18298 rcal_reg = read_radio_reg(pi,
18299 RADIO_2056_SYN_RCAL_CODE_OUT |
18300 RADIO_2056_SYN);
18301 if (rcal_reg & 0x80) {
18302 break;
18303 }
7383141b 18304 udelay(100);
a9533e7e
HP
18305 }
18306
be2fee08
RV
18307 if (WARN(i == MAX_205x_RCAL_WAITLOOPS,
18308 "HW error: radio calib3"))
18309 return 0;
a9533e7e
HP
18310
18311 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18312 0x1);
18313
18314 rcal_reg =
18315 read_radio_reg(pi,
18316 RADIO_2056_SYN_RCAL_CODE_OUT |
18317 RADIO_2056_SYN);
18318
18319 write_radio_reg(pi, RADIO_2056_SYN_RCAL_MASTER | RADIO_2056_SYN,
18320 0x0);
18321
18322 write_radio_reg(pi, RADIO_2056_SYN_PLL_MAST2 | RADIO_2056_SYN,
18323 savereg);
18324
90ea2296 18325 return rcal_reg & 0x1f;
a9533e7e 18326 }
90ea2296 18327 return rcal_reg & 0x3e;
a9533e7e
HP
18328}
18329
18330static void
7cc4a4c0
JC
18331wlc_phy_chanspec_radio2057_setup(phy_info_t *pi,
18332 const chan_info_nphy_radio2057_t *ci,
18333 const chan_info_nphy_radio2057_rev5_t *ci2)
a9533e7e
HP
18334{
18335 int coreNum;
7d4df48e
GKH
18336 u16 txmix2g_tune_boost_pu = 0;
18337 u16 pad2g_tune_pus = 0;
a9533e7e
HP
18338
18339 if (pi->pubpi.radiorev == 5) {
18340
18341 write_radio_reg(pi,
18342 RADIO_2057_VCOCAL_COUNTVAL0,
18343 ci2->RF_vcocal_countval0);
18344 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18345 ci2->RF_vcocal_countval1);
18346 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18347 ci2->RF_rfpll_refmaster_sparextalsize);
18348 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18349 ci2->RF_rfpll_loopfilter_r1);
18350 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18351 ci2->RF_rfpll_loopfilter_c2);
18352 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18353 ci2->RF_rfpll_loopfilter_c1);
18354 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC,
18355 ci2->RF_cp_kpd_idac);
18356 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci2->RF_rfpll_mmd0);
18357 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci2->RF_rfpll_mmd1);
18358 write_radio_reg(pi,
18359 RADIO_2057_VCOBUF_TUNE, ci2->RF_vcobuf_tune);
18360 write_radio_reg(pi,
18361 RADIO_2057_LOGEN_MX2G_TUNE,
18362 ci2->RF_logen_mx2g_tune);
18363 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18364 ci2->RF_logen_indbuf2g_tune);
18365
18366 write_radio_reg(pi,
18367 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18368 ci2->RF_txmix2g_tune_boost_pu_core0);
18369 write_radio_reg(pi,
18370 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18371 ci2->RF_pad2g_tune_pus_core0);
18372 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18373 ci2->RF_lna2g_tune_core0);
18374
18375 write_radio_reg(pi,
18376 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18377 ci2->RF_txmix2g_tune_boost_pu_core1);
18378 write_radio_reg(pi,
18379 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18380 ci2->RF_pad2g_tune_pus_core1);
18381 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18382 ci2->RF_lna2g_tune_core1);
18383
18384 } else {
18385
18386 write_radio_reg(pi,
18387 RADIO_2057_VCOCAL_COUNTVAL0,
18388 ci->RF_vcocal_countval0);
18389 write_radio_reg(pi, RADIO_2057_VCOCAL_COUNTVAL1,
18390 ci->RF_vcocal_countval1);
18391 write_radio_reg(pi, RADIO_2057_RFPLL_REFMASTER_SPAREXTALSIZE,
18392 ci->RF_rfpll_refmaster_sparextalsize);
18393 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18394 ci->RF_rfpll_loopfilter_r1);
18395 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18396 ci->RF_rfpll_loopfilter_c2);
18397 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18398 ci->RF_rfpll_loopfilter_c1);
18399 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, ci->RF_cp_kpd_idac);
18400 write_radio_reg(pi, RADIO_2057_RFPLL_MMD0, ci->RF_rfpll_mmd0);
18401 write_radio_reg(pi, RADIO_2057_RFPLL_MMD1, ci->RF_rfpll_mmd1);
18402 write_radio_reg(pi, RADIO_2057_VCOBUF_TUNE, ci->RF_vcobuf_tune);
18403 write_radio_reg(pi,
18404 RADIO_2057_LOGEN_MX2G_TUNE,
18405 ci->RF_logen_mx2g_tune);
18406 write_radio_reg(pi, RADIO_2057_LOGEN_MX5G_TUNE,
18407 ci->RF_logen_mx5g_tune);
18408 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF2G_TUNE,
18409 ci->RF_logen_indbuf2g_tune);
18410 write_radio_reg(pi, RADIO_2057_LOGEN_INDBUF5G_TUNE,
18411 ci->RF_logen_indbuf5g_tune);
18412
18413 write_radio_reg(pi,
18414 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
18415 ci->RF_txmix2g_tune_boost_pu_core0);
18416 write_radio_reg(pi,
18417 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
18418 ci->RF_pad2g_tune_pus_core0);
18419 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE0,
18420 ci->RF_pga_boost_tune_core0);
18421 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE0,
18422 ci->RF_txmix5g_boost_tune_core0);
18423 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE0,
18424 ci->RF_pad5g_tune_misc_pus_core0);
18425 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE0,
18426 ci->RF_lna2g_tune_core0);
18427 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE0,
18428 ci->RF_lna5g_tune_core0);
18429
18430 write_radio_reg(pi,
18431 RADIO_2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
18432 ci->RF_txmix2g_tune_boost_pu_core1);
18433 write_radio_reg(pi,
18434 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
18435 ci->RF_pad2g_tune_pus_core1);
18436 write_radio_reg(pi, RADIO_2057_PGA_BOOST_TUNE_CORE1,
18437 ci->RF_pga_boost_tune_core1);
18438 write_radio_reg(pi, RADIO_2057_TXMIX5G_BOOST_TUNE_CORE1,
18439 ci->RF_txmix5g_boost_tune_core1);
18440 write_radio_reg(pi, RADIO_2057_PAD5G_TUNE_MISC_PUS_CORE1,
18441 ci->RF_pad5g_tune_misc_pus_core1);
18442 write_radio_reg(pi, RADIO_2057_LNA2G_TUNE_CORE1,
18443 ci->RF_lna2g_tune_core1);
18444 write_radio_reg(pi, RADIO_2057_LNA5G_TUNE_CORE1,
18445 ci->RF_lna5g_tune_core1);
18446 }
18447
18448 if ((pi->pubpi.radiorev <= 4) || (pi->pubpi.radiorev == 6)) {
18449
18450 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18451 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18452 0x3f);
18453 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18454 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18455 0x8);
18456 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18457 0x8);
18458 } else {
18459 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18460 0x1f);
18461 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18462 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18463 0x8);
18464 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18465 0x8);
18466 }
18467 } else if ((pi->pubpi.radiorev == 5) || (pi->pubpi.radiorev == 7) ||
18468 (pi->pubpi.radiorev == 8)) {
18469
18470 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18471 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18472 0x1b);
18473 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x30);
18474 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18475 0xa);
18476 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18477 0xa);
18478 } else {
18479 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_R1,
18480 0x1f);
18481 write_radio_reg(pi, RADIO_2057_CP_KPD_IDAC, 0x3f);
18482 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C1,
18483 0x8);
18484 write_radio_reg(pi, RADIO_2057_RFPLL_LOOPFILTER_C2,
18485 0x8);
18486 }
18487
18488 }
18489
18490 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18491 if (PHY_IPA(pi)) {
18492 if (pi->pubpi.radiorev == 3) {
18493 txmix2g_tune_boost_pu = 0x6b;
18494 }
18495
18496 if (pi->pubpi.radiorev == 5)
18497 pad2g_tune_pus = 0x73;
18498
18499 } else {
18500 if (pi->pubpi.radiorev != 5) {
18501 pad2g_tune_pus = 0x3;
18502
18503 txmix2g_tune_boost_pu = 0x61;
18504 }
18505 }
18506
18507 for (coreNum = 0; coreNum <= 1; coreNum++) {
18508
18509 if (txmix2g_tune_boost_pu != 0)
18510 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18511 TXMIX2G_TUNE_BOOST_PU,
18512 txmix2g_tune_boost_pu);
18513
18514 if (pad2g_tune_pus != 0)
18515 WRITE_RADIO_REG4(pi, RADIO_2057, CORE, coreNum,
18516 PAD2G_TUNE_PUS,
18517 pad2g_tune_pus);
18518 }
18519 }
18520
7383141b 18521 udelay(50);
a9533e7e
HP
18522
18523 wlc_phy_radio205x_vcocal_nphy(pi);
18524}
18525
7d4df48e 18526static u16 wlc_phy_radio2057_rccal(phy_info_t *pi)
a9533e7e 18527{
7d4df48e 18528 u16 rccal_valid;
a9533e7e
HP
18529 int i;
18530 bool chip43226_6362A0;
18531
18532 chip43226_6362A0 = ((pi->pubpi.radiorev == 3)
18533 || (pi->pubpi.radiorev == 4)
18534 || (pi->pubpi.radiorev == 6));
18535
18536 rccal_valid = 0;
18537 if (chip43226_6362A0) {
18538 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x61);
18539 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xc0);
18540 } else {
18541 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x61);
18542
18543 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xe9);
18544 }
18545 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18546 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18547
18548 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18549 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18550 if (rccal_valid & 0x2) {
18551 break;
18552 }
7383141b 18553 udelay(500);
a9533e7e
HP
18554 }
18555
a9533e7e
HP
18556 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18557
18558 rccal_valid = 0;
18559 if (chip43226_6362A0) {
18560 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x69);
18561 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18562 } else {
18563 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x69);
18564
18565 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xd5);
18566 }
18567 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18568 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18569
18570 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18571 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18572 if (rccal_valid & 0x2) {
18573 break;
18574 }
7383141b 18575 udelay(500);
a9533e7e
HP
18576 }
18577
a9533e7e
HP
18578 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18579
18580 rccal_valid = 0;
18581 if (chip43226_6362A0) {
18582 write_radio_reg(pi, RADIO_2057_RCCAL_MASTER, 0x73);
18583
18584 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x28);
18585 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0xb0);
18586 } else {
18587 write_radio_reg(pi, RADIO_2057v7_RCCAL_MASTER, 0x73);
18588 write_radio_reg(pi, RADIO_2057_RCCAL_X1, 0x6e);
18589 write_radio_reg(pi, RADIO_2057_RCCAL_TRC0, 0x99);
18590 }
18591 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x55);
18592
18593 for (i = 0; i < MAX_205x_RCAL_WAITLOOPS; i++) {
18594 rccal_valid = read_radio_reg(pi, RADIO_2057_RCCAL_DONE_OSCCAP);
18595 if (rccal_valid & 0x2) {
18596 break;
18597 }
7383141b 18598 udelay(500);
a9533e7e
HP
18599 }
18600
be2fee08
RV
18601 if (WARN(!(rccal_valid & 0x2), "HW error: radio calib4"))
18602 return 0;
a9533e7e
HP
18603
18604 write_radio_reg(pi, RADIO_2057_RCCAL_START_R1_Q1_P1, 0x15);
18605
90ea2296 18606 return rccal_valid;
a9533e7e
HP
18607}
18608
18609static void
7d4df48e 18610wlc_phy_adjust_rx_analpfbw_nphy(phy_info_t *pi, u16 reduction_factr)
a9533e7e
HP
18611{
18612 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18613 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18614 CHSPEC_IS40(pi->radio_chanspec)) {
18615 if (!pi->nphy_anarxlpf_adjusted) {
18616 write_radio_reg(pi,
18617 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18618 RADIO_2056_RX0),
18619 ((pi->nphy_rccal_value +
18620 reduction_factr) | 0x80));
18621
0f0881b0 18622 pi->nphy_anarxlpf_adjusted = true;
a9533e7e
HP
18623 }
18624 } else {
18625 if (pi->nphy_anarxlpf_adjusted) {
18626 write_radio_reg(pi,
18627 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
18628 RADIO_2056_RX0),
18629 (pi->nphy_rccal_value | 0x80));
18630
0965ae88 18631 pi->nphy_anarxlpf_adjusted = false;
a9533e7e
HP
18632 }
18633 }
18634 }
18635}
18636
18637static void
7cc4a4c0 18638wlc_phy_adjust_min_noisevar_nphy(phy_info_t *pi, int ntones, int *tone_id_buf,
66cbd3ab 18639 u32 *noise_var_buf)
a9533e7e
HP
18640{
18641 int i;
66cbd3ab 18642 u32 offset;
a9533e7e
HP
18643 int tone_id;
18644 int tbllen =
18645 CHSPEC_IS40(pi->
18646 radio_chanspec) ? NPHY_NOISEVAR_TBLLEN40 :
18647 NPHY_NOISEVAR_TBLLEN20;
18648
18649 if (pi->nphy_noisevars_adjusted) {
18650 for (i = 0; i < pi->nphy_saved_noisevars.bufcount; i++) {
18651 tone_id = pi->nphy_saved_noisevars.tone_id[i];
18652 offset = (tone_id >= 0) ?
18653 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18654 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18655 offset, 32,
18656 (void *)&pi->
18657 nphy_saved_noisevars.
18658 min_noise_vars[i]);
18659 }
18660
18661 pi->nphy_saved_noisevars.bufcount = 0;
0965ae88 18662 pi->nphy_noisevars_adjusted = false;
a9533e7e
HP
18663 }
18664
18665 if ((noise_var_buf != NULL) && (tone_id_buf != NULL)) {
18666 pi->nphy_saved_noisevars.bufcount = 0;
18667
18668 for (i = 0; i < ntones; i++) {
18669 tone_id = tone_id_buf[i];
18670 offset = (tone_id >= 0) ?
18671 ((tone_id * 2) + 1) : (tbllen + (tone_id * 2) + 1);
18672 pi->nphy_saved_noisevars.tone_id[i] = tone_id;
18673 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18674 offset, 32,
18675 &pi->nphy_saved_noisevars.
18676 min_noise_vars[i]);
18677 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_NOISEVAR, 1,
18678 offset, 32,
18679 (void *)&noise_var_buf[i]);
18680 pi->nphy_saved_noisevars.bufcount++;
18681 }
18682
0f0881b0 18683 pi->nphy_noisevars_adjusted = true;
a9533e7e
HP
18684 }
18685}
18686
e868ab03 18687static void wlc_phy_adjust_crsminpwr_nphy(phy_info_t *pi, u8 minpwr)
a9533e7e 18688{
7d4df48e 18689 u16 regval;
a9533e7e
HP
18690
18691 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18692 if ((CHSPEC_CHANNEL(pi->radio_chanspec) == 11) &&
18693 CHSPEC_IS40(pi->radio_chanspec)) {
18694 if (!pi->nphy_crsminpwr_adjusted) {
18695 regval = read_phy_reg(pi, 0x27d);
18696 pi->nphy_crsminpwr[0] = regval & 0xff;
18697 regval &= 0xff00;
7d4df48e 18698 regval |= (u16) minpwr;
a9533e7e
HP
18699 write_phy_reg(pi, 0x27d, regval);
18700
18701 regval = read_phy_reg(pi, 0x280);
18702 pi->nphy_crsminpwr[1] = regval & 0xff;
18703 regval &= 0xff00;
7d4df48e 18704 regval |= (u16) minpwr;
a9533e7e
HP
18705 write_phy_reg(pi, 0x280, regval);
18706
18707 regval = read_phy_reg(pi, 0x283);
18708 pi->nphy_crsminpwr[2] = regval & 0xff;
18709 regval &= 0xff00;
7d4df48e 18710 regval |= (u16) minpwr;
a9533e7e
HP
18711 write_phy_reg(pi, 0x283, regval);
18712
0f0881b0 18713 pi->nphy_crsminpwr_adjusted = true;
a9533e7e
HP
18714 }
18715 } else {
18716 if (pi->nphy_crsminpwr_adjusted) {
18717 regval = read_phy_reg(pi, 0x27d);
18718 regval &= 0xff00;
18719 regval |= pi->nphy_crsminpwr[0];
18720 write_phy_reg(pi, 0x27d, regval);
18721
18722 regval = read_phy_reg(pi, 0x280);
18723 regval &= 0xff00;
18724 regval |= pi->nphy_crsminpwr[1];
18725 write_phy_reg(pi, 0x280, regval);
18726
18727 regval = read_phy_reg(pi, 0x283);
18728 regval &= 0xff00;
18729 regval |= pi->nphy_crsminpwr[2];
18730 write_phy_reg(pi, 0x283, regval);
18731
0965ae88 18732 pi->nphy_crsminpwr_adjusted = false;
a9533e7e
HP
18733 }
18734 }
18735 }
18736}
18737
7cc4a4c0 18738static void wlc_phy_txlpfbw_nphy(phy_info_t *pi)
a9533e7e 18739{
e868ab03 18740 u8 tx_lpf_bw = 0;
a9533e7e
HP
18741
18742 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
18743 if (CHSPEC_IS40(pi->radio_chanspec)) {
18744 tx_lpf_bw = 3;
18745 } else {
18746 tx_lpf_bw = 1;
18747 }
18748
18749 if (PHY_IPA(pi)) {
18750 if (CHSPEC_IS40(pi->radio_chanspec)) {
18751 tx_lpf_bw = 5;
18752 } else {
18753 tx_lpf_bw = 4;
18754 }
18755 }
18756 write_phy_reg(pi, 0xe8,
18757 (tx_lpf_bw << 0) |
18758 (tx_lpf_bw << 3) |
18759 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18760
18761 if (PHY_IPA(pi)) {
18762
18763 if (CHSPEC_IS40(pi->radio_chanspec)) {
18764 tx_lpf_bw = 4;
18765 } else {
18766 tx_lpf_bw = 1;
18767 }
18768
18769 write_phy_reg(pi, 0xe9,
18770 (tx_lpf_bw << 0) |
18771 (tx_lpf_bw << 3) |
18772 (tx_lpf_bw << 6) | (tx_lpf_bw << 9));
18773 }
18774 }
18775}
18776
7cc4a4c0 18777static void wlc_phy_spurwar_nphy(phy_info_t *pi)
a9533e7e 18778{
7d4df48e 18779 u16 cur_channel = 0;
a9533e7e 18780 int nphy_adj_tone_id_buf[] = { 57, 58 };
66cbd3ab 18781 u32 nphy_adj_noise_var_buf[] = { 0x3ff, 0x3ff };
0965ae88 18782 bool isAdjustNoiseVar = false;
a9533e7e 18783 uint numTonesAdjust = 0;
66cbd3ab 18784 u32 tempval = 0;
a9533e7e
HP
18785
18786 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
18787 if (pi->phyhang_avoid)
0f0881b0 18788 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
18789
18790 cur_channel = CHSPEC_CHANNEL(pi->radio_chanspec);
18791
18792 if (pi->nphy_gband_spurwar_en) {
18793
18794 wlc_phy_adjust_rx_analpfbw_nphy(pi,
18795 NPHY_ANARXLPFBW_REDUCTIONFACT);
18796
18797 if (CHSPEC_IS2G(pi->radio_chanspec)) {
18798 if ((cur_channel == 11)
18799 && CHSPEC_IS40(pi->radio_chanspec)) {
18800
18801 wlc_phy_adjust_min_noisevar_nphy(pi, 2,
18802 nphy_adj_tone_id_buf,
18803 nphy_adj_noise_var_buf);
18804 } else {
18805
18806 wlc_phy_adjust_min_noisevar_nphy(pi, 0,
18807 NULL,
18808 NULL);
18809 }
18810 }
18811 wlc_phy_adjust_crsminpwr_nphy(pi,
18812 NPHY_ADJUSTED_MINCRSPOWER);
18813 }
18814
18815 if ((pi->nphy_gband_spurwar2_en)
18816 && CHSPEC_IS2G(pi->radio_chanspec)) {
18817
18818 if (CHSPEC_IS40(pi->radio_chanspec)) {
18819 switch (cur_channel) {
18820 case 3:
18821 nphy_adj_tone_id_buf[0] = 57;
18822 nphy_adj_tone_id_buf[1] = 58;
18823 nphy_adj_noise_var_buf[0] = 0x22f;
18824 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18825 isAdjustNoiseVar = true;
a9533e7e
HP
18826 break;
18827 case 4:
18828 nphy_adj_tone_id_buf[0] = 41;
18829 nphy_adj_tone_id_buf[1] = 42;
18830 nphy_adj_noise_var_buf[0] = 0x22f;
18831 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18832 isAdjustNoiseVar = true;
a9533e7e
HP
18833 break;
18834 case 5:
18835 nphy_adj_tone_id_buf[0] = 25;
18836 nphy_adj_tone_id_buf[1] = 26;
18837 nphy_adj_noise_var_buf[0] = 0x24f;
18838 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18839 isAdjustNoiseVar = true;
a9533e7e
HP
18840 break;
18841 case 6:
18842 nphy_adj_tone_id_buf[0] = 9;
18843 nphy_adj_tone_id_buf[1] = 10;
18844 nphy_adj_noise_var_buf[0] = 0x22f;
18845 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18846 isAdjustNoiseVar = true;
a9533e7e
HP
18847 break;
18848 case 7:
18849 nphy_adj_tone_id_buf[0] = 121;
18850 nphy_adj_tone_id_buf[1] = 122;
18851 nphy_adj_noise_var_buf[0] = 0x18f;
18852 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18853 isAdjustNoiseVar = true;
a9533e7e
HP
18854 break;
18855 case 8:
18856 nphy_adj_tone_id_buf[0] = 105;
18857 nphy_adj_tone_id_buf[1] = 106;
18858 nphy_adj_noise_var_buf[0] = 0x22f;
18859 nphy_adj_noise_var_buf[1] = 0x25f;
0f0881b0 18860 isAdjustNoiseVar = true;
a9533e7e
HP
18861 break;
18862 case 9:
18863 nphy_adj_tone_id_buf[0] = 89;
18864 nphy_adj_tone_id_buf[1] = 90;
18865 nphy_adj_noise_var_buf[0] = 0x22f;
18866 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18867 isAdjustNoiseVar = true;
a9533e7e
HP
18868 break;
18869 case 10:
18870 nphy_adj_tone_id_buf[0] = 73;
18871 nphy_adj_tone_id_buf[1] = 74;
18872 nphy_adj_noise_var_buf[0] = 0x22f;
18873 nphy_adj_noise_var_buf[1] = 0x24f;
0f0881b0 18874 isAdjustNoiseVar = true;
a9533e7e
HP
18875 break;
18876 default:
0965ae88 18877 isAdjustNoiseVar = false;
a9533e7e
HP
18878 break;
18879 }
18880 }
18881
18882 if (isAdjustNoiseVar) {
18883 numTonesAdjust = sizeof(nphy_adj_tone_id_buf) /
18884 sizeof(nphy_adj_tone_id_buf[0]);
18885
18886 wlc_phy_adjust_min_noisevar_nphy(pi,
18887 numTonesAdjust,
18888 nphy_adj_tone_id_buf,
18889 nphy_adj_noise_var_buf);
18890
18891 tempval = 0;
18892
18893 } else {
18894
18895 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18896 NULL);
18897 }
18898 }
18899
18900 if ((pi->nphy_aband_spurwar_en) &&
18901 (CHSPEC_IS5G(pi->radio_chanspec))) {
18902 switch (cur_channel) {
18903 case 54:
18904 nphy_adj_tone_id_buf[0] = 32;
18905 nphy_adj_noise_var_buf[0] = 0x25f;
18906 break;
18907 case 38:
18908 case 102:
18909 case 118:
dfa26436 18910 if ((pi->sh->chip == BCM4716_CHIP_ID) &&
a9533e7e
HP
18911 (pi->sh->chippkg == BCM4717_PKG_ID)) {
18912 nphy_adj_tone_id_buf[0] = 32;
18913 nphy_adj_noise_var_buf[0] = 0x21f;
18914 } else {
18915 nphy_adj_tone_id_buf[0] = 0;
18916 nphy_adj_noise_var_buf[0] = 0x0;
18917 }
18918 break;
18919 case 134:
18920 nphy_adj_tone_id_buf[0] = 32;
18921 nphy_adj_noise_var_buf[0] = 0x21f;
18922 break;
18923 case 151:
18924 nphy_adj_tone_id_buf[0] = 16;
18925 nphy_adj_noise_var_buf[0] = 0x23f;
18926 break;
18927 case 153:
18928 case 161:
18929 nphy_adj_tone_id_buf[0] = 48;
18930 nphy_adj_noise_var_buf[0] = 0x23f;
18931 break;
18932 default:
18933 nphy_adj_tone_id_buf[0] = 0;
18934 nphy_adj_noise_var_buf[0] = 0x0;
18935 break;
18936 }
18937
18938 if (nphy_adj_tone_id_buf[0]
18939 && nphy_adj_noise_var_buf[0]) {
18940 wlc_phy_adjust_min_noisevar_nphy(pi, 1,
18941 nphy_adj_tone_id_buf,
18942 nphy_adj_noise_var_buf);
18943 } else {
18944 wlc_phy_adjust_min_noisevar_nphy(pi, 0, NULL,
18945 NULL);
18946 }
18947 }
18948
18949 if (pi->phyhang_avoid)
0965ae88 18950 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
18951 }
18952}
18953
18954static void
7cc4a4c0
JC
18955wlc_phy_chanspec_nphy_setup(phy_info_t *pi, chanspec_t chanspec,
18956 const nphy_sfo_cfg_t *ci)
a9533e7e 18957{
7d4df48e 18958 u16 val;
a9533e7e
HP
18959
18960 val = read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand;
18961 if (CHSPEC_IS5G(chanspec) && !val) {
18962
ff31c54c
AS
18963 val = R_REG(&pi->regs->psm_phy_hdr_param);
18964 W_REG(&pi->regs->psm_phy_hdr_param,
a9533e7e
HP
18965 (val | MAC_PHY_FORCE_CLK));
18966
18967 or_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
18968 (BBCFG_RESETCCA | BBCFG_RESETRX));
18969
ff31c54c 18970 W_REG(&pi->regs->psm_phy_hdr_param, val);
a9533e7e
HP
18971
18972 or_phy_reg(pi, 0x09, NPHY_BandControl_currentBand);
18973 } else if (!CHSPEC_IS5G(chanspec) && val) {
18974
18975 and_phy_reg(pi, 0x09, ~NPHY_BandControl_currentBand);
18976
ff31c54c
AS
18977 val = R_REG(&pi->regs->psm_phy_hdr_param);
18978 W_REG(&pi->regs->psm_phy_hdr_param,
a9533e7e
HP
18979 (val | MAC_PHY_FORCE_CLK));
18980
18981 and_phy_reg(pi, (NPHY_TO_BPHY_OFF + BPHY_BB_CONFIG),
7d4df48e 18982 (u16) (~(BBCFG_RESETCCA | BBCFG_RESETRX)));
a9533e7e 18983
ff31c54c 18984 W_REG(&pi->regs->psm_phy_hdr_param, val);
a9533e7e
HP
18985 }
18986
18987 write_phy_reg(pi, 0x1ce, ci->PHY_BW1a);
18988 write_phy_reg(pi, 0x1cf, ci->PHY_BW2);
18989 write_phy_reg(pi, 0x1d0, ci->PHY_BW3);
18990
18991 write_phy_reg(pi, 0x1d1, ci->PHY_BW4);
18992 write_phy_reg(pi, 0x1d2, ci->PHY_BW5);
18993 write_phy_reg(pi, 0x1d3, ci->PHY_BW6);
18994
18995 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
18996 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en, 0);
18997
18998 or_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, 0x800);
18999 } else {
19000 wlc_phy_classifier_nphy(pi, NPHY_ClassifierCtrl_ofdm_en,
19001 NPHY_ClassifierCtrl_ofdm_en);
19002
19003 if (CHSPEC_IS2G(chanspec))
19004 and_phy_reg(pi, NPHY_TO_BPHY_OFF + BPHY_TEST, ~0x840);
19005 }
19006
19007 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
19008 wlc_phy_txpwr_fixpower_nphy(pi);
19009 }
19010
19011 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
19012
19013 wlc_phy_adjust_lnagaintbl_nphy(pi);
19014 }
19015
19016 wlc_phy_txlpfbw_nphy(pi);
19017
19018 if (NREV_GE(pi->pubpi.phy_rev, 3)
19019 && (pi->phy_spuravoid != SPURAVOID_DISABLE)) {
e868ab03 19020 u8 spuravoid = 0;
a9533e7e
HP
19021
19022 val = CHSPEC_CHANNEL(chanspec);
19023 if (!CHSPEC_IS40(pi->radio_chanspec)) {
19024 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19025 if ((val == 13) || (val == 14) || (val == 153)) {
19026 spuravoid = 1;
19027 }
19028 } else {
19029
19030 if (((val >= 5) && (val <= 8)) || (val == 13)
19031 || (val == 14)) {
19032 spuravoid = 1;
19033 }
19034 }
19035 } else {
19036 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19037 if (val == 54) {
19038 spuravoid = 1;
19039 }
19040 } else {
19041
19042 if (pi->nphy_aband_spurwar_en &&
19043 ((val == 38) || (val == 102)
19044 || (val == 118))) {
dfa26436 19045 if ((pi->sh->chip ==
a9533e7e
HP
19046 BCM4716_CHIP_ID)
19047 && (pi->sh->chippkg ==
19048 BCM4717_PKG_ID)) {
19049 spuravoid = 0;
19050 } else {
19051 spuravoid = 1;
19052 }
19053 }
19054 }
19055 }
19056
19057 if (pi->phy_spuravoid == SPURAVOID_FORCEON)
19058 spuravoid = 1;
19059
dfa26436
AS
19060 if ((pi->sh->chip == BCM4716_CHIP_ID) ||
19061 (pi->sh->chip == BCM47162_CHIP_ID)) {
26bcc181 19062 si_pmu_spuravoid(pi->sh->sih, spuravoid);
a9533e7e 19063 } else {
0965ae88 19064 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, false);
26bcc181 19065 si_pmu_spuravoid(pi->sh->sih, spuravoid);
0f0881b0 19066 wlapi_bmac_core_phypll_ctl(pi->sh->physhim, true);
a9533e7e
HP
19067 }
19068
dfa26436
AS
19069 if ((pi->sh->chip == BCM43224_CHIP_ID) ||
19070 (pi->sh->chip == BCM43225_CHIP_ID) ||
19071 (pi->sh->chip == BCM43421_CHIP_ID)) {
a9533e7e
HP
19072
19073 if (spuravoid == 1) {
19074
ff31c54c 19075 W_REG(&pi->regs->tsf_clk_frac_l,
a9533e7e 19076 0x5341);
ff31c54c 19077 W_REG(&pi->regs->tsf_clk_frac_h,
a9533e7e
HP
19078 0x8);
19079 } else {
19080
ff31c54c 19081 W_REG(&pi->regs->tsf_clk_frac_l,
a9533e7e 19082 0x8889);
ff31c54c 19083 W_REG(&pi->regs->tsf_clk_frac_h,
a9533e7e
HP
19084 0x8);
19085 }
19086 }
19087
dfa26436
AS
19088 if (!((pi->sh->chip == BCM4716_CHIP_ID) ||
19089 (pi->sh->chip == BCM47162_CHIP_ID))) {
a9533e7e
HP
19090 wlapi_bmac_core_phypll_reset(pi->sh->physhim);
19091 }
19092
19093 mod_phy_reg(pi, 0x01, (0x1 << 15),
19094 ((spuravoid > 0) ? (0x1 << 15) : 0));
19095
19096 wlc_phy_resetcca_nphy(pi);
19097
19098 pi->phy_isspuravoid = (spuravoid > 0);
19099 }
19100
19101 if (NREV_LT(pi->pubpi.phy_rev, 7))
19102 write_phy_reg(pi, 0x17e, 0x3830);
19103
19104 wlc_phy_spurwar_nphy(pi);
19105}
19106
7cc4a4c0 19107void wlc_phy_chanspec_set_nphy(phy_info_t *pi, chanspec_t chanspec)
a9533e7e
HP
19108{
19109 int freq;
19110 chan_info_nphy_radio2057_t *t0 = NULL;
19111 chan_info_nphy_radio205x_t *t1 = NULL;
19112 chan_info_nphy_radio2057_rev5_t *t2 = NULL;
19113 chan_info_nphy_2055_t *t3 = NULL;
19114
19115 if (NORADIO_ENAB(pi->pubpi)) {
19116 return;
19117 }
19118
19119 if (!wlc_phy_chan2freq_nphy
19120 (pi, CHSPEC_CHANNEL(chanspec), &freq, &t0, &t1, &t2, &t3))
19121 return;
19122
19123 wlc_phy_chanspec_radio_set((wlc_phy_t *) pi, chanspec);
19124
19125 if (CHSPEC_BW(chanspec) != pi->bw)
19126 wlapi_bmac_bw_set(pi->sh->physhim, CHSPEC_BW(chanspec));
19127
19128 if (CHSPEC_IS40(chanspec)) {
19129 if (CHSPEC_SB_UPPER(chanspec)) {
19130 or_phy_reg(pi, 0xa0, BPHY_BAND_SEL_UP20);
19131 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19132 or_phy_reg(pi, 0x310, PRIM_SEL_UP20);
19133 }
19134 } else {
19135 and_phy_reg(pi, 0xa0, ~BPHY_BAND_SEL_UP20);
19136 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19137 and_phy_reg(pi, 0x310,
19138 (~PRIM_SEL_UP20 & 0xffff));
19139 }
19140 }
19141 }
19142
19143 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19144 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19145
19146 if ((pi->pubpi.radiorev <= 4)
19147 || (pi->pubpi.radiorev == 6)) {
19148 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE0,
19149 0x2,
19150 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19151 : 0));
19152 mod_radio_reg(pi, RADIO_2057_TIA_CONFIG_CORE1,
19153 0x2,
19154 (CHSPEC_IS5G(chanspec) ? (1 << 1)
19155 : 0));
19156 }
19157
19158 wlc_phy_chanspec_radio2057_setup(pi, t0, t2);
19159 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19160 (pi->pubpi.radiorev ==
19161 5) ? (const nphy_sfo_cfg_t
19162 *)&(t2->
19163 PHY_BW1a)
19164 : (const nphy_sfo_cfg_t *)
19165 &(t0->PHY_BW1a));
19166
19167 } else {
19168
19169 mod_radio_reg(pi,
19170 RADIO_2056_SYN_COM_CTRL | RADIO_2056_SYN,
19171 0x4,
19172 (CHSPEC_IS5G(chanspec) ? (0x1 << 2) : 0));
19173 wlc_phy_chanspec_radio2056_setup(pi, t1);
19174
19175 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19176 (const nphy_sfo_cfg_t *)
19177 &(t1->PHY_BW1a));
19178 }
19179
19180 } else {
19181
19182 mod_radio_reg(pi, RADIO_2055_MASTER_CNTRL1, 0x70,
19183 (CHSPEC_IS5G(chanspec) ? (0x02 << 4)
19184 : (0x05 << 4)));
19185
19186 wlc_phy_chanspec_radio2055_setup(pi, t3);
19187 wlc_phy_chanspec_nphy_setup(pi, chanspec,
19188 (const nphy_sfo_cfg_t *)&(t3->
19189 PHY_BW1a));
19190 }
19191
19192}
19193
7cc4a4c0 19194static void wlc_phy_savecal_nphy(phy_info_t *pi)
a9533e7e
HP
19195{
19196 void *tbl_ptr;
19197 int coreNum;
7d4df48e 19198 u16 *txcal_radio_regs = NULL;
a9533e7e
HP
19199
19200 if (pi->phyhang_avoid)
0f0881b0 19201 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
19202
19203 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19204
19205 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19206 &pi->calibration_cache.
19207 rxcal_coeffs_2G);
19208
19209 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19210 txcal_radio_regs =
19211 pi->calibration_cache.txcal_radio_regs_2G;
19212 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19213
19214 pi->calibration_cache.txcal_radio_regs_2G[0] =
19215 read_radio_reg(pi,
19216 RADIO_2056_TX_LOFT_FINE_I |
19217 RADIO_2056_TX0);
19218 pi->calibration_cache.txcal_radio_regs_2G[1] =
19219 read_radio_reg(pi,
19220 RADIO_2056_TX_LOFT_FINE_Q |
19221 RADIO_2056_TX0);
19222 pi->calibration_cache.txcal_radio_regs_2G[2] =
19223 read_radio_reg(pi,
19224 RADIO_2056_TX_LOFT_FINE_I |
19225 RADIO_2056_TX1);
19226 pi->calibration_cache.txcal_radio_regs_2G[3] =
19227 read_radio_reg(pi,
19228 RADIO_2056_TX_LOFT_FINE_Q |
19229 RADIO_2056_TX1);
19230
19231 pi->calibration_cache.txcal_radio_regs_2G[4] =
19232 read_radio_reg(pi,
19233 RADIO_2056_TX_LOFT_COARSE_I |
19234 RADIO_2056_TX0);
19235 pi->calibration_cache.txcal_radio_regs_2G[5] =
19236 read_radio_reg(pi,
19237 RADIO_2056_TX_LOFT_COARSE_Q |
19238 RADIO_2056_TX0);
19239 pi->calibration_cache.txcal_radio_regs_2G[6] =
19240 read_radio_reg(pi,
19241 RADIO_2056_TX_LOFT_COARSE_I |
19242 RADIO_2056_TX1);
19243 pi->calibration_cache.txcal_radio_regs_2G[7] =
19244 read_radio_reg(pi,
19245 RADIO_2056_TX_LOFT_COARSE_Q |
19246 RADIO_2056_TX1);
19247 } else {
19248 pi->calibration_cache.txcal_radio_regs_2G[0] =
19249 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19250 pi->calibration_cache.txcal_radio_regs_2G[1] =
19251 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19252 pi->calibration_cache.txcal_radio_regs_2G[2] =
19253 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19254 pi->calibration_cache.txcal_radio_regs_2G[3] =
19255 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19256 }
19257
19258 pi->nphy_iqcal_chanspec_2G = pi->radio_chanspec;
19259 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19260 } else {
19261
19262 wlc_phy_rx_iq_coeffs_nphy(pi, 0,
19263 &pi->calibration_cache.
19264 rxcal_coeffs_5G);
19265
19266 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19267 txcal_radio_regs =
19268 pi->calibration_cache.txcal_radio_regs_5G;
19269 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19270
19271 pi->calibration_cache.txcal_radio_regs_5G[0] =
19272 read_radio_reg(pi,
19273 RADIO_2056_TX_LOFT_FINE_I |
19274 RADIO_2056_TX0);
19275 pi->calibration_cache.txcal_radio_regs_5G[1] =
19276 read_radio_reg(pi,
19277 RADIO_2056_TX_LOFT_FINE_Q |
19278 RADIO_2056_TX0);
19279 pi->calibration_cache.txcal_radio_regs_5G[2] =
19280 read_radio_reg(pi,
19281 RADIO_2056_TX_LOFT_FINE_I |
19282 RADIO_2056_TX1);
19283 pi->calibration_cache.txcal_radio_regs_5G[3] =
19284 read_radio_reg(pi,
19285 RADIO_2056_TX_LOFT_FINE_Q |
19286 RADIO_2056_TX1);
19287
19288 pi->calibration_cache.txcal_radio_regs_5G[4] =
19289 read_radio_reg(pi,
19290 RADIO_2056_TX_LOFT_COARSE_I |
19291 RADIO_2056_TX0);
19292 pi->calibration_cache.txcal_radio_regs_5G[5] =
19293 read_radio_reg(pi,
19294 RADIO_2056_TX_LOFT_COARSE_Q |
19295 RADIO_2056_TX0);
19296 pi->calibration_cache.txcal_radio_regs_5G[6] =
19297 read_radio_reg(pi,
19298 RADIO_2056_TX_LOFT_COARSE_I |
19299 RADIO_2056_TX1);
19300 pi->calibration_cache.txcal_radio_regs_5G[7] =
19301 read_radio_reg(pi,
19302 RADIO_2056_TX_LOFT_COARSE_Q |
19303 RADIO_2056_TX1);
19304 } else {
19305 pi->calibration_cache.txcal_radio_regs_5G[0] =
19306 read_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL);
19307 pi->calibration_cache.txcal_radio_regs_5G[1] =
19308 read_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL);
19309 pi->calibration_cache.txcal_radio_regs_5G[2] =
19310 read_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM);
19311 pi->calibration_cache.txcal_radio_regs_5G[3] =
19312 read_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM);
19313 }
19314
19315 pi->nphy_iqcal_chanspec_5G = pi->radio_chanspec;
19316 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19317 }
19318 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19319 for (coreNum = 0; coreNum <= 1; coreNum++) {
19320
19321 txcal_radio_regs[2 * coreNum] =
19322 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19323 LOFT_FINE_I);
19324 txcal_radio_regs[2 * coreNum + 1] =
19325 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19326 LOFT_FINE_Q);
19327
19328 txcal_radio_regs[2 * coreNum + 4] =
19329 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19330 LOFT_COARSE_I);
19331 txcal_radio_regs[2 * coreNum + 5] =
19332 READ_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19333 LOFT_COARSE_Q);
19334 }
19335 }
19336
19337 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 8, 80, 16, tbl_ptr);
19338
19339 if (pi->phyhang_avoid)
0965ae88 19340 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
19341}
19342
7cc4a4c0 19343static void wlc_phy_restorecal_nphy(phy_info_t *pi)
a9533e7e 19344{
7d4df48e
GKH
19345 u16 *loft_comp;
19346 u16 txcal_coeffs_bphy[4];
19347 u16 *tbl_ptr;
a9533e7e 19348 int coreNum;
7d4df48e 19349 u16 *txcal_radio_regs = NULL;
a9533e7e
HP
19350
19351 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19352 if (pi->nphy_iqcal_chanspec_2G == 0)
19353 return;
19354
19355 tbl_ptr = pi->calibration_cache.txcal_coeffs_2G;
19356 loft_comp = &pi->calibration_cache.txcal_coeffs_2G[5];
19357 } else {
19358 if (pi->nphy_iqcal_chanspec_5G == 0)
19359 return;
19360
19361 tbl_ptr = pi->calibration_cache.txcal_coeffs_5G;
19362 loft_comp = &pi->calibration_cache.txcal_coeffs_5G[5];
19363 }
19364
19365 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80, 16,
19366 (void *)tbl_ptr);
19367
19368 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19369 txcal_coeffs_bphy[0] = tbl_ptr[0];
19370 txcal_coeffs_bphy[1] = tbl_ptr[1];
19371 txcal_coeffs_bphy[2] = tbl_ptr[2];
19372 txcal_coeffs_bphy[3] = tbl_ptr[3];
19373 } else {
19374 txcal_coeffs_bphy[0] = 0;
19375 txcal_coeffs_bphy[1] = 0;
19376 txcal_coeffs_bphy[2] = 0;
19377 txcal_coeffs_bphy[3] = 0;
19378 }
19379
19380 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88, 16,
19381 txcal_coeffs_bphy);
19382
19383 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85, 16, loft_comp);
19384
19385 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93, 16, loft_comp);
19386
19387 if (NREV_LT(pi->pubpi.phy_rev, 2))
19388 wlc_phy_tx_iq_war_nphy(pi);
19389
19390 if (CHSPEC_IS2G(pi->radio_chanspec)) {
19391 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19392 txcal_radio_regs =
19393 pi->calibration_cache.txcal_radio_regs_2G;
19394 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19395
19396 write_radio_reg(pi,
19397 RADIO_2056_TX_LOFT_FINE_I |
19398 RADIO_2056_TX0,
19399 pi->calibration_cache.
19400 txcal_radio_regs_2G[0]);
19401 write_radio_reg(pi,
19402 RADIO_2056_TX_LOFT_FINE_Q |
19403 RADIO_2056_TX0,
19404 pi->calibration_cache.
19405 txcal_radio_regs_2G[1]);
19406 write_radio_reg(pi,
19407 RADIO_2056_TX_LOFT_FINE_I |
19408 RADIO_2056_TX1,
19409 pi->calibration_cache.
19410 txcal_radio_regs_2G[2]);
19411 write_radio_reg(pi,
19412 RADIO_2056_TX_LOFT_FINE_Q |
19413 RADIO_2056_TX1,
19414 pi->calibration_cache.
19415 txcal_radio_regs_2G[3]);
19416
19417 write_radio_reg(pi,
19418 RADIO_2056_TX_LOFT_COARSE_I |
19419 RADIO_2056_TX0,
19420 pi->calibration_cache.
19421 txcal_radio_regs_2G[4]);
19422 write_radio_reg(pi,
19423 RADIO_2056_TX_LOFT_COARSE_Q |
19424 RADIO_2056_TX0,
19425 pi->calibration_cache.
19426 txcal_radio_regs_2G[5]);
19427 write_radio_reg(pi,
19428 RADIO_2056_TX_LOFT_COARSE_I |
19429 RADIO_2056_TX1,
19430 pi->calibration_cache.
19431 txcal_radio_regs_2G[6]);
19432 write_radio_reg(pi,
19433 RADIO_2056_TX_LOFT_COARSE_Q |
19434 RADIO_2056_TX1,
19435 pi->calibration_cache.
19436 txcal_radio_regs_2G[7]);
19437 } else {
19438 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19439 pi->calibration_cache.
19440 txcal_radio_regs_2G[0]);
19441 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19442 pi->calibration_cache.
19443 txcal_radio_regs_2G[1]);
19444 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19445 pi->calibration_cache.
19446 txcal_radio_regs_2G[2]);
19447 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19448 pi->calibration_cache.
19449 txcal_radio_regs_2G[3]);
19450 }
19451
19452 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19453 &pi->calibration_cache.
19454 rxcal_coeffs_2G);
19455 } else {
19456 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19457 txcal_radio_regs =
19458 pi->calibration_cache.txcal_radio_regs_5G;
19459 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
19460
19461 write_radio_reg(pi,
19462 RADIO_2056_TX_LOFT_FINE_I |
19463 RADIO_2056_TX0,
19464 pi->calibration_cache.
19465 txcal_radio_regs_5G[0]);
19466 write_radio_reg(pi,
19467 RADIO_2056_TX_LOFT_FINE_Q |
19468 RADIO_2056_TX0,
19469 pi->calibration_cache.
19470 txcal_radio_regs_5G[1]);
19471 write_radio_reg(pi,
19472 RADIO_2056_TX_LOFT_FINE_I |
19473 RADIO_2056_TX1,
19474 pi->calibration_cache.
19475 txcal_radio_regs_5G[2]);
19476 write_radio_reg(pi,
19477 RADIO_2056_TX_LOFT_FINE_Q |
19478 RADIO_2056_TX1,
19479 pi->calibration_cache.
19480 txcal_radio_regs_5G[3]);
19481
19482 write_radio_reg(pi,
19483 RADIO_2056_TX_LOFT_COARSE_I |
19484 RADIO_2056_TX0,
19485 pi->calibration_cache.
19486 txcal_radio_regs_5G[4]);
19487 write_radio_reg(pi,
19488 RADIO_2056_TX_LOFT_COARSE_Q |
19489 RADIO_2056_TX0,
19490 pi->calibration_cache.
19491 txcal_radio_regs_5G[5]);
19492 write_radio_reg(pi,
19493 RADIO_2056_TX_LOFT_COARSE_I |
19494 RADIO_2056_TX1,
19495 pi->calibration_cache.
19496 txcal_radio_regs_5G[6]);
19497 write_radio_reg(pi,
19498 RADIO_2056_TX_LOFT_COARSE_Q |
19499 RADIO_2056_TX1,
19500 pi->calibration_cache.
19501 txcal_radio_regs_5G[7]);
19502 } else {
19503 write_radio_reg(pi, RADIO_2055_CORE1_TX_VOS_CNCL,
19504 pi->calibration_cache.
19505 txcal_radio_regs_5G[0]);
19506 write_radio_reg(pi, RADIO_2055_CORE2_TX_VOS_CNCL,
19507 pi->calibration_cache.
19508 txcal_radio_regs_5G[1]);
19509 write_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM,
19510 pi->calibration_cache.
19511 txcal_radio_regs_5G[2]);
19512 write_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM,
19513 pi->calibration_cache.
19514 txcal_radio_regs_5G[3]);
19515 }
19516
19517 wlc_phy_rx_iq_coeffs_nphy(pi, 1,
19518 &pi->calibration_cache.
19519 rxcal_coeffs_5G);
19520 }
19521
19522 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19523 for (coreNum = 0; coreNum <= 1; coreNum++) {
19524
19525 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19526 LOFT_FINE_I,
19527 txcal_radio_regs[2 * coreNum]);
19528 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19529 LOFT_FINE_Q,
19530 txcal_radio_regs[2 * coreNum + 1]);
19531
19532 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19533 LOFT_COARSE_I,
19534 txcal_radio_regs[2 * coreNum + 4]);
19535 WRITE_RADIO_REG3(pi, RADIO_2057, TX, coreNum,
19536 LOFT_COARSE_Q,
19537 txcal_radio_regs[2 * coreNum + 5]);
19538 }
19539 }
19540}
19541
7cc4a4c0 19542void wlc_phy_antsel_init(wlc_phy_t *ppi, bool lut_init)
a9533e7e
HP
19543{
19544 phy_info_t *pi = (phy_info_t *) ppi;
7d4df48e 19545 u16 mask = 0xfc00;
66cbd3ab 19546 u32 mc = 0;
a9533e7e
HP
19547
19548 if (NREV_GE(pi->pubpi.phy_rev, 7))
19549 return;
19550
19551 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
7d4df48e 19552 u16 v0 = 0x211, v1 = 0x222, v2 = 0x144, v3 = 0x188;
a9533e7e 19553
0965ae88 19554 if (lut_init == false)
a9533e7e
HP
19555 return;
19556
19557 if (pi->srom_fem2g.antswctrllut == 0) {
19558 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19559 1, 0x02, 16, &v0);
19560 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19561 1, 0x03, 16, &v1);
19562 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19563 1, 0x08, 16, &v2);
19564 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19565 1, 0x0C, 16, &v3);
a9533e7e
HP
19566 }
19567
19568 if (pi->srom_fem5g.antswctrllut == 0) {
19569 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19570 1, 0x12, 16, &v0);
19571 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19572 1, 0x13, 16, &v1);
19573 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19574 1, 0x18, 16, &v2);
19575 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_ANTSWCTRLLUT,
19576 1, 0x1C, 16, &v3);
a9533e7e
HP
19577 }
19578 } else {
19579
19580 write_phy_reg(pi, 0xc8, 0x0);
19581 write_phy_reg(pi, 0xc9, 0x0);
19582
b21c892d 19583 ai_gpiocontrol(pi->sh->sih, mask, mask, GPIO_DRV_PRIORITY);
a9533e7e 19584
ff31c54c 19585 mc = R_REG(&pi->regs->maccontrol);
a9533e7e 19586 mc &= ~MCTL_GPOUT_SEL_MASK;
ff31c54c 19587 W_REG(&pi->regs->maccontrol, mc);
a9533e7e 19588
ff31c54c 19589 OR_REG(&pi->regs->psm_gpio_oe, mask);
a9533e7e 19590
ff31c54c 19591 AND_REG(&pi->regs->psm_gpio_out, ~mask);
a9533e7e
HP
19592
19593 if (lut_init) {
19594 write_phy_reg(pi, 0xf8, 0x02d8);
19595 write_phy_reg(pi, 0xf9, 0x0301);
19596 write_phy_reg(pi, 0xfa, 0x02d8);
19597 write_phy_reg(pi, 0xfb, 0x0301);
19598 }
19599 }
19600}
19601
7d4df48e 19602u16 wlc_phy_classifier_nphy(phy_info_t *pi, u16 mask, u16 val)
a9533e7e 19603{
7d4df48e 19604 u16 curr_ctl, new_ctl;
0965ae88 19605 bool suspended = false;
a9533e7e
HP
19606
19607 if (D11REV_IS(pi->sh->corerev, 16)) {
19608 suspended =
ff31c54c 19609 (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC) ?
0965ae88 19610 false : true;
a9533e7e
HP
19611 if (!suspended)
19612 wlapi_suspend_mac_and_wait(pi->sh->physhim);
19613 }
19614
19615 curr_ctl = read_phy_reg(pi, 0xb0) & (0x7 << 0);
19616
19617 new_ctl = (curr_ctl & (~mask)) | (val & mask);
19618
19619 mod_phy_reg(pi, 0xb0, (0x7 << 0), new_ctl);
19620
19621 if (D11REV_IS(pi->sh->corerev, 16) && !suspended)
19622 wlapi_enable_mac(pi->sh->physhim);
19623
19624 return new_ctl;
19625}
19626
7d4df48e 19627static void wlc_phy_clip_det_nphy(phy_info_t *pi, u8 write, u16 *vals)
a9533e7e
HP
19628{
19629
19630 if (write == 0) {
19631 vals[0] = read_phy_reg(pi, 0x2c);
19632 vals[1] = read_phy_reg(pi, 0x42);
19633 } else {
19634 write_phy_reg(pi, 0x2c, vals[0]);
19635 write_phy_reg(pi, 0x42, vals[1]);
19636 }
19637}
19638
e868ab03 19639void wlc_phy_force_rfseq_nphy(phy_info_t *pi, u8 cmd)
a9533e7e 19640{
7d4df48e
GKH
19641 u16 trigger_mask, status_mask;
19642 u16 orig_RfseqCoreActv;
a9533e7e
HP
19643
19644 switch (cmd) {
19645 case NPHY_RFSEQ_RX2TX:
19646 trigger_mask = NPHY_RfseqTrigger_rx2tx;
19647 status_mask = NPHY_RfseqStatus_rx2tx;
19648 break;
19649 case NPHY_RFSEQ_TX2RX:
19650 trigger_mask = NPHY_RfseqTrigger_tx2rx;
19651 status_mask = NPHY_RfseqStatus_tx2rx;
19652 break;
19653 case NPHY_RFSEQ_RESET2RX:
19654 trigger_mask = NPHY_RfseqTrigger_reset2rx;
19655 status_mask = NPHY_RfseqStatus_reset2rx;
19656 break;
19657 case NPHY_RFSEQ_UPDATEGAINH:
19658 trigger_mask = NPHY_RfseqTrigger_updategainh;
19659 status_mask = NPHY_RfseqStatus_updategainh;
19660 break;
19661 case NPHY_RFSEQ_UPDATEGAINL:
19662 trigger_mask = NPHY_RfseqTrigger_updategainl;
19663 status_mask = NPHY_RfseqStatus_updategainl;
19664 break;
19665 case NPHY_RFSEQ_UPDATEGAINU:
19666 trigger_mask = NPHY_RfseqTrigger_updategainu;
19667 status_mask = NPHY_RfseqStatus_updategainu;
19668 break;
19669 default:
19670 return;
19671 }
19672
19673 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
19674 or_phy_reg(pi, 0xa1,
19675 (NPHY_RfseqMode_CoreActv_override |
19676 NPHY_RfseqMode_Trigger_override));
19677 or_phy_reg(pi, 0xa3, trigger_mask);
19678 SPINWAIT((read_phy_reg(pi, 0xa4) & status_mask), 200000);
19679 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
be2fee08 19680 WARN(read_phy_reg(pi, 0xa4) & status_mask, "HW error in rf");
a9533e7e
HP
19681}
19682
19683static void
e868ab03
GKH
19684wlc_phy_set_rfseq_nphy(phy_info_t *pi, u8 cmd, u8 *events, u8 *dlys,
19685 u8 len)
a9533e7e 19686{
66cbd3ab 19687 u32 t1_offset, t2_offset;
e868ab03
GKH
19688 u8 ctr;
19689 u8 end_event =
a9533e7e
HP
19690 NREV_GE(pi->pubpi.phy_rev,
19691 3) ? NPHY_REV3_RFSEQ_CMD_END : NPHY_RFSEQ_CMD_END;
e868ab03 19692 u8 end_dly = 1;
a9533e7e 19693
a9533e7e 19694 if (pi->phyhang_avoid)
0f0881b0 19695 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
19696
19697 t1_offset = cmd << 4;
19698 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t1_offset, 8,
19699 events);
19700 t2_offset = t1_offset + 0x080;
19701 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, len, t2_offset, 8,
19702 dlys);
19703
19704 for (ctr = len; ctr < 16; ctr++) {
19705 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19706 t1_offset + ctr, 8, &end_event);
19707 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
19708 t2_offset + ctr, 8, &end_dly);
19709 }
19710
19711 if (pi->phyhang_avoid)
0965ae88 19712 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
19713}
19714
7d4df48e 19715static u16 wlc_phy_read_lpf_bw_ctl_nphy(phy_info_t *pi, u16 offset)
a9533e7e 19716{
7d4df48e
GKH
19717 u16 lpf_bw_ctl_val = 0;
19718 u16 rx2tx_lpf_rc_lut_offset = 0;
a9533e7e
HP
19719
19720 if (offset == 0) {
19721 if (CHSPEC_IS40(pi->radio_chanspec)) {
19722 rx2tx_lpf_rc_lut_offset = 0x159;
19723 } else {
19724 rx2tx_lpf_rc_lut_offset = 0x154;
19725 }
19726 } else {
19727 rx2tx_lpf_rc_lut_offset = offset;
19728 }
19729 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 1,
66cbd3ab 19730 (u32) rx2tx_lpf_rc_lut_offset, 16,
a9533e7e
HP
19731 &lpf_bw_ctl_val);
19732
19733 lpf_bw_ctl_val = lpf_bw_ctl_val & 0x7;
19734
19735 return lpf_bw_ctl_val;
19736}
19737
19738static void
7d4df48e 19739wlc_phy_rfctrl_override_nphy_rev7(phy_info_t *pi, u16 field, u16 value,
e868ab03 19740 u8 core_mask, u8 off, u8 override_id)
a9533e7e 19741{
e868ab03 19742 u8 core_num;
7d4df48e 19743 u16 addr = 0, en_addr = 0, val_addr = 0, en_mask = 0, val_mask = 0;
e868ab03 19744 u8 val_shift = 0;
a9533e7e
HP
19745
19746 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
19747 en_mask = field;
19748 for (core_num = 0; core_num < 2; core_num++) {
19749 if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID0) {
19750
19751 switch (field) {
19752 case (0x1 << 2):
19753 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19754 val_addr = (core_num == 0) ? 0x7a :
19755 0x7d;
19756 val_mask = (0x1 << 1);
19757 val_shift = 1;
19758 break;
19759 case (0x1 << 3):
19760 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19761 val_addr = (core_num == 0) ? 0x7a :
19762 0x7d;
19763 val_mask = (0x1 << 2);
19764 val_shift = 2;
19765 break;
19766 case (0x1 << 4):
19767 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19768 val_addr = (core_num == 0) ? 0x7a :
19769 0x7d;
19770 val_mask = (0x1 << 4);
19771 val_shift = 4;
19772 break;
19773 case (0x1 << 5):
19774 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19775 val_addr = (core_num == 0) ? 0x7a :
19776 0x7d;
19777 val_mask = (0x1 << 5);
19778 val_shift = 5;
19779 break;
19780 case (0x1 << 6):
19781 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19782 val_addr = (core_num == 0) ? 0x7a :
19783 0x7d;
19784 val_mask = (0x1 << 6);
19785 val_shift = 6;
19786 break;
19787 case (0x1 << 7):
19788 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19789 val_addr = (core_num == 0) ? 0x7a :
19790 0x7d;
19791 val_mask = (0x1 << 7);
19792 val_shift = 7;
19793 break;
19794 case (0x1 << 10):
19795 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19796 val_addr = (core_num == 0) ? 0xf8 :
19797 0xfa;
19798 val_mask = (0x7 << 4);
19799 val_shift = 4;
19800 break;
19801 case (0x1 << 11):
19802 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19803 val_addr = (core_num == 0) ? 0x7b :
19804 0x7e;
19805 val_mask = (0xffff << 0);
19806 val_shift = 0;
19807 break;
19808 case (0x1 << 12):
19809 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19810 val_addr = (core_num == 0) ? 0x7c :
19811 0x7f;
19812 val_mask = (0xffff << 0);
19813 val_shift = 0;
19814 break;
19815 case (0x3 << 13):
19816 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19817 val_addr = (core_num == 0) ? 0x348 :
19818 0x349;
19819 val_mask = (0xff << 0);
19820 val_shift = 0;
19821 break;
19822 case (0x1 << 13):
19823 en_addr = (core_num == 0) ? 0xe7 : 0xec;
19824 val_addr = (core_num == 0) ? 0x348 :
19825 0x349;
19826 val_mask = (0xf << 0);
19827 val_shift = 0;
19828 break;
19829 default:
19830 addr = 0xffff;
19831 break;
19832 }
19833 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID1) {
19834
19835 switch (field) {
19836 case (0x1 << 1):
19837 en_addr = (core_num == 0) ? 0x342 :
19838 0x343;
19839 val_addr = (core_num == 0) ? 0x340 :
19840 0x341;
19841 val_mask = (0x1 << 1);
19842 val_shift = 1;
19843 break;
19844 case (0x1 << 3):
19845 en_addr = (core_num == 0) ? 0x342 :
19846 0x343;
19847 val_addr = (core_num == 0) ? 0x340 :
19848 0x341;
19849 val_mask = (0x1 << 3);
19850 val_shift = 3;
19851 break;
19852 case (0x1 << 5):
19853 en_addr = (core_num == 0) ? 0x342 :
19854 0x343;
19855 val_addr = (core_num == 0) ? 0x340 :
19856 0x341;
19857 val_mask = (0x1 << 5);
19858 val_shift = 5;
19859 break;
19860 case (0x1 << 4):
19861 en_addr = (core_num == 0) ? 0x342 :
19862 0x343;
19863 val_addr = (core_num == 0) ? 0x340 :
19864 0x341;
19865 val_mask = (0x1 << 4);
19866 val_shift = 4;
19867 break;
19868 case (0x1 << 2):
19869
19870 en_addr = (core_num == 0) ? 0x342 :
19871 0x343;
19872 val_addr = (core_num == 0) ? 0x340 :
19873 0x341;
19874 val_mask = (0x1 << 2);
19875 val_shift = 2;
19876 break;
19877 case (0x1 << 7):
19878
19879 en_addr = (core_num == 0) ? 0x342 :
19880 0x343;
19881 val_addr = (core_num == 0) ? 0x340 :
19882 0x341;
19883 val_mask = (0x7 << 8);
19884 val_shift = 8;
19885 break;
19886 case (0x1 << 11):
19887 en_addr = (core_num == 0) ? 0x342 :
19888 0x343;
19889 val_addr = (core_num == 0) ? 0x340 :
19890 0x341;
19891 val_mask = (0x1 << 14);
19892 val_shift = 14;
19893 break;
19894 case (0x1 << 10):
19895 en_addr = (core_num == 0) ? 0x342 :
19896 0x343;
19897 val_addr = (core_num == 0) ? 0x340 :
19898 0x341;
19899 val_mask = (0x1 << 13);
19900 val_shift = 13;
19901 break;
19902 case (0x1 << 9):
19903 en_addr = (core_num == 0) ? 0x342 :
19904 0x343;
19905 val_addr = (core_num == 0) ? 0x340 :
19906 0x341;
19907 val_mask = (0x1 << 12);
19908 val_shift = 12;
19909 break;
19910 case (0x1 << 8):
19911 en_addr = (core_num == 0) ? 0x342 :
19912 0x343;
19913 val_addr = (core_num == 0) ? 0x340 :
19914 0x341;
19915 val_mask = (0x1 << 11);
19916 val_shift = 11;
19917 break;
19918 case (0x1 << 6):
19919 en_addr = (core_num == 0) ? 0x342 :
19920 0x343;
19921 val_addr = (core_num == 0) ? 0x340 :
19922 0x341;
19923 val_mask = (0x1 << 6);
19924 val_shift = 6;
19925 break;
19926 case (0x1 << 0):
19927 en_addr = (core_num == 0) ? 0x342 :
19928 0x343;
19929 val_addr = (core_num == 0) ? 0x340 :
19930 0x341;
19931 val_mask = (0x1 << 0);
19932 val_shift = 0;
19933 break;
19934 default:
19935 addr = 0xffff;
19936 break;
19937 }
19938 } else if (override_id == NPHY_REV7_RFCTRLOVERRIDE_ID2) {
19939
19940 switch (field) {
19941 case (0x1 << 3):
19942 en_addr = (core_num == 0) ? 0x346 :
19943 0x347;
19944 val_addr = (core_num == 0) ? 0x344 :
19945 0x345;
19946 val_mask = (0x1 << 3);
19947 val_shift = 3;
19948 break;
19949 case (0x1 << 1):
19950 en_addr = (core_num == 0) ? 0x346 :
19951 0x347;
19952 val_addr = (core_num == 0) ? 0x344 :
19953 0x345;
19954 val_mask = (0x1 << 1);
19955 val_shift = 1;
19956 break;
19957 case (0x1 << 0):
19958 en_addr = (core_num == 0) ? 0x346 :
19959 0x347;
19960 val_addr = (core_num == 0) ? 0x344 :
19961 0x345;
19962 val_mask = (0x1 << 0);
19963 val_shift = 0;
19964 break;
19965 case (0x1 << 2):
19966 en_addr = (core_num == 0) ? 0x346 :
19967 0x347;
19968 val_addr = (core_num == 0) ? 0x344 :
19969 0x345;
19970 val_mask = (0x1 << 2);
19971 val_shift = 2;
19972 break;
19973 case (0x1 << 4):
19974 en_addr = (core_num == 0) ? 0x346 :
19975 0x347;
19976 val_addr = (core_num == 0) ? 0x344 :
19977 0x345;
19978 val_mask = (0x1 << 4);
19979 val_shift = 4;
19980 break;
19981 default:
19982 addr = 0xffff;
19983 break;
19984 }
19985 }
19986
19987 if (off) {
19988 and_phy_reg(pi, en_addr, ~en_mask);
19989 and_phy_reg(pi, val_addr, ~val_mask);
19990 } else {
19991
19992 if ((core_mask == 0)
19993 || (core_mask & (1 << core_num))) {
19994 or_phy_reg(pi, en_addr, en_mask);
19995
19996 if (addr != 0xffff) {
19997 mod_phy_reg(pi, val_addr,
19998 val_mask,
19999 (value <<
20000 val_shift));
20001 }
20002 }
20003 }
20004 }
20005 }
20006}
20007
20008static void
7d4df48e 20009wlc_phy_rfctrl_override_nphy(phy_info_t *pi, u16 field, u16 value,
e868ab03 20010 u8 core_mask, u8 off)
a9533e7e 20011{
e868ab03 20012 u8 core_num;
7d4df48e 20013 u16 addr = 0, mask = 0, en_addr = 0, val_addr = 0, en_mask =
a9533e7e 20014 0, val_mask = 0;
e868ab03 20015 u8 shift = 0, val_shift = 0;
a9533e7e
HP
20016
20017 if (NREV_GE(pi->pubpi.phy_rev, 3) && NREV_LT(pi->pubpi.phy_rev, 7)) {
20018
20019 en_mask = field;
20020 for (core_num = 0; core_num < 2; core_num++) {
20021
20022 switch (field) {
20023 case (0x1 << 1):
20024 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20025 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20026 val_mask = (0x1 << 0);
20027 val_shift = 0;
20028 break;
20029 case (0x1 << 2):
20030 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20031 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20032 val_mask = (0x1 << 1);
20033 val_shift = 1;
20034 break;
20035 case (0x1 << 3):
20036 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20037 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20038 val_mask = (0x1 << 2);
20039 val_shift = 2;
20040 break;
20041 case (0x1 << 4):
20042 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20043 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20044 val_mask = (0x1 << 4);
20045 val_shift = 4;
20046 break;
20047 case (0x1 << 5):
20048 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20049 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20050 val_mask = (0x1 << 5);
20051 val_shift = 5;
20052 break;
20053 case (0x1 << 6):
20054 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20055 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20056 val_mask = (0x1 << 6);
20057 val_shift = 6;
20058 break;
20059 case (0x1 << 7):
20060 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20061 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20062 val_mask = (0x1 << 7);
20063 val_shift = 7;
20064 break;
20065 case (0x1 << 8):
20066 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20067 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20068 val_mask = (0x7 << 8);
20069 val_shift = 8;
20070 break;
20071 case (0x1 << 11):
20072 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20073 val_addr = (core_num == 0) ? 0x7a : 0x7d;
20074 val_mask = (0x7 << 13);
20075 val_shift = 13;
20076 break;
20077
20078 case (0x1 << 9):
20079 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20080 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20081 val_mask = (0x7 << 0);
20082 val_shift = 0;
20083 break;
20084
20085 case (0x1 << 10):
20086 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20087 val_addr = (core_num == 0) ? 0xf8 : 0xfa;
20088 val_mask = (0x7 << 4);
20089 val_shift = 4;
20090 break;
20091
20092 case (0x1 << 12):
20093 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20094 val_addr = (core_num == 0) ? 0x7b : 0x7e;
20095 val_mask = (0xffff << 0);
20096 val_shift = 0;
20097 break;
20098 case (0x1 << 13):
20099 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20100 val_addr = (core_num == 0) ? 0x7c : 0x7f;
20101 val_mask = (0xffff << 0);
20102 val_shift = 0;
20103 break;
20104 case (0x1 << 14):
20105 en_addr = (core_num == 0) ? 0xe7 : 0xec;
20106 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20107 val_mask = (0x3 << 6);
20108 val_shift = 6;
20109 break;
20110 case (0x1 << 0):
20111 en_addr = (core_num == 0) ? 0xe5 : 0xe6;
20112 val_addr = (core_num == 0) ? 0xf9 : 0xfb;
20113 val_mask = (0x1 << 15);
20114 val_shift = 15;
20115 break;
20116 default:
20117 addr = 0xffff;
20118 break;
20119 }
20120
20121 if (off) {
20122 and_phy_reg(pi, en_addr, ~en_mask);
20123 and_phy_reg(pi, val_addr, ~val_mask);
20124 } else {
20125
20126 if ((core_mask == 0)
20127 || (core_mask & (1 << core_num))) {
20128 or_phy_reg(pi, en_addr, en_mask);
20129
20130 if (addr != 0xffff) {
20131 mod_phy_reg(pi, val_addr,
20132 val_mask,
20133 (value <<
20134 val_shift));
20135 }
20136 }
20137 }
20138 }
20139 } else {
20140
20141 if (off) {
20142 and_phy_reg(pi, 0xec, ~field);
20143 value = 0x0;
20144 } else {
20145 or_phy_reg(pi, 0xec, field);
20146 }
20147
20148 for (core_num = 0; core_num < 2; core_num++) {
20149
20150 switch (field) {
20151 case (0x1 << 1):
20152 case (0x1 << 9):
20153 case (0x1 << 12):
20154 case (0x1 << 13):
20155 case (0x1 << 14):
20156 addr = 0x78;
20157
20158 core_mask = 0x1;
20159 break;
20160 case (0x1 << 2):
20161 case (0x1 << 3):
20162 case (0x1 << 4):
20163 case (0x1 << 5):
20164 case (0x1 << 6):
20165 case (0x1 << 7):
20166 case (0x1 << 8):
20167 addr = (core_num == 0) ? 0x7a : 0x7d;
20168 break;
20169 case (0x1 << 10):
20170 addr = (core_num == 0) ? 0x7b : 0x7e;
20171 break;
20172 case (0x1 << 11):
20173 addr = (core_num == 0) ? 0x7c : 0x7f;
20174 break;
20175 default:
20176 addr = 0xffff;
20177 }
20178
20179 switch (field) {
20180 case (0x1 << 1):
20181 mask = (0x7 << 3);
20182 shift = 3;
20183 break;
20184 case (0x1 << 9):
20185 mask = (0x1 << 2);
20186 shift = 2;
20187 break;
20188 case (0x1 << 12):
20189 mask = (0x1 << 8);
20190 shift = 8;
20191 break;
20192 case (0x1 << 13):
20193 mask = (0x1 << 9);
20194 shift = 9;
20195 break;
20196 case (0x1 << 14):
20197 mask = (0xf << 12);
20198 shift = 12;
20199 break;
20200 case (0x1 << 2):
20201 mask = (0x1 << 0);
20202 shift = 0;
20203 break;
20204 case (0x1 << 3):
20205 mask = (0x1 << 1);
20206 shift = 1;
20207 break;
20208 case (0x1 << 4):
20209 mask = (0x1 << 2);
20210 shift = 2;
20211 break;
20212 case (0x1 << 5):
20213 mask = (0x3 << 4);
20214 shift = 4;
20215 break;
20216 case (0x1 << 6):
20217 mask = (0x3 << 6);
20218 shift = 6;
20219 break;
20220 case (0x1 << 7):
20221 mask = (0x1 << 8);
20222 shift = 8;
20223 break;
20224 case (0x1 << 8):
20225 mask = (0x1 << 9);
20226 shift = 9;
20227 break;
20228 case (0x1 << 10):
20229 mask = 0x1fff;
20230 shift = 0x0;
20231 break;
20232 case (0x1 << 11):
20233 mask = 0x1fff;
20234 shift = 0x0;
20235 break;
20236 default:
20237 mask = 0x0;
20238 shift = 0x0;
20239 break;
20240 }
20241
20242 if ((addr != 0xffff) && (core_mask & (1 << core_num))) {
20243 mod_phy_reg(pi, addr, mask, (value << shift));
20244 }
20245 }
20246
20247 or_phy_reg(pi, 0xec, (0x1 << 0));
20248 or_phy_reg(pi, 0x78, (0x1 << 0));
7383141b 20249 udelay(1);
a9533e7e
HP
20250 and_phy_reg(pi, 0xec, ~(0x1 << 0));
20251 }
20252}
20253
20254static void
7d4df48e 20255wlc_phy_rfctrl_override_1tomany_nphy(phy_info_t *pi, u16 cmd, u16 value,
e868ab03 20256 u8 core_mask, u8 off)
a9533e7e 20257{
7d4df48e
GKH
20258 u16 rfmxgain = 0, lpfgain = 0;
20259 u16 tgain = 0;
a9533e7e
HP
20260
20261 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
20262
20263 switch (cmd) {
20264 case NPHY_REV7_RfctrlOverride_cmd_rxrf_pu:
20265 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
20266 value, core_mask, off,
20267 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20268 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), value,
20269 core_mask, off,
20270 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20271 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), value,
20272 core_mask, off,
20273 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20274 break;
20275 case NPHY_REV7_RfctrlOverride_cmd_rx_pu:
20276 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20277 value, core_mask, off,
20278 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20279 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20280 core_mask, off,
20281 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20282 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20283 core_mask, off,
20284 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20285 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20286 core_mask, off,
20287 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20288 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0,
20289 core_mask, off,
20290 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20291 break;
20292 case NPHY_REV7_RfctrlOverride_cmd_tx_pu:
20293 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
20294 value, core_mask, off,
20295 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20296 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), value,
20297 core_mask, off,
20298 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20299 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), value,
20300 core_mask, off,
20301 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20302 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), value,
20303 core_mask, off,
20304 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20305 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1,
20306 core_mask, off,
20307 NPHY_REV7_RFCTRLOVERRIDE_ID1);
20308 break;
20309 case NPHY_REV7_RfctrlOverride_cmd_rxgain:
20310 rfmxgain = value & 0x000ff;
20311 lpfgain = value & 0x0ff00;
20312 lpfgain = lpfgain >> 8;
20313
20314 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
20315 rfmxgain, core_mask,
20316 off,
20317 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20318 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x3 << 13),
20319 lpfgain, core_mask,
20320 off,
20321 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20322 break;
20323 case NPHY_REV7_RfctrlOverride_cmd_txgain:
20324 tgain = value & 0x7fff;
20325 lpfgain = value & 0x8000;
20326 lpfgain = lpfgain >> 14;
20327
20328 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
20329 tgain, core_mask, off,
20330 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20331 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 13),
20332 lpfgain, core_mask,
20333 off,
20334 NPHY_REV7_RFCTRLOVERRIDE_ID0);
20335 break;
20336 }
20337 }
20338}
20339
20340static void
7d4df48e 20341wlc_phy_scale_offset_rssi_nphy(phy_info_t *pi, u16 scale, s8 offset,
e868ab03 20342 u8 coresel, u8 rail, u8 rssi_type)
a9533e7e 20343{
7d4df48e 20344 u16 valuetostuff;
a9533e7e
HP
20345
20346 offset = (offset > NPHY_RSSICAL_MAXREAD) ?
20347 NPHY_RSSICAL_MAXREAD : offset;
20348 offset = (offset < (-NPHY_RSSICAL_MAXREAD - 1)) ?
20349 -NPHY_RSSICAL_MAXREAD - 1 : offset;
20350
20351 valuetostuff = ((scale & 0x3f) << 8) | (offset & 0x3f);
20352
20353 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20354 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20355 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20356 write_phy_reg(pi, 0x1a6, valuetostuff);
20357 }
20358 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20359 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20360 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20361 write_phy_reg(pi, 0x1ac, valuetostuff);
20362 }
20363 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20364 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20365 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20366 write_phy_reg(pi, 0x1b2, valuetostuff);
20367 }
20368 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20369 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20370 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_NB)) {
20371 write_phy_reg(pi, 0x1b8, valuetostuff);
20372 }
20373
20374 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20375 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20376 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20377 write_phy_reg(pi, 0x1a4, valuetostuff);
20378 }
20379 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20380 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20381 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20382 write_phy_reg(pi, 0x1aa, valuetostuff);
20383 }
20384 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20385 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20386 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20387 write_phy_reg(pi, 0x1b0, valuetostuff);
20388 }
20389 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20390 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20391 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W1)) {
20392 write_phy_reg(pi, 0x1b6, valuetostuff);
20393 }
20394
20395 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20396 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20397 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20398 write_phy_reg(pi, 0x1a5, valuetostuff);
20399 }
20400 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20401 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20402 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20403 write_phy_reg(pi, 0x1ab, valuetostuff);
20404 }
20405 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20406 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20407 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20408 write_phy_reg(pi, 0x1b1, valuetostuff);
20409 }
20410 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20411 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20412 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_W2)) {
20413 write_phy_reg(pi, 0x1b7, valuetostuff);
20414 }
20415
20416 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20417 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20418 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20419 write_phy_reg(pi, 0x1a7, valuetostuff);
20420 }
20421 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20422 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20423 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20424 write_phy_reg(pi, 0x1ad, valuetostuff);
20425 }
20426 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20427 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20428 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20429 write_phy_reg(pi, 0x1b3, valuetostuff);
20430 }
20431 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20432 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20433 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_TBD)) {
20434 write_phy_reg(pi, 0x1b9, valuetostuff);
20435 }
20436
20437 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20438 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20439 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20440 write_phy_reg(pi, 0x1a8, valuetostuff);
20441 }
20442 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20443 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20444 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20445 write_phy_reg(pi, 0x1ae, valuetostuff);
20446 }
20447 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20448 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20449 (rail == NPHY_RAIL_I) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20450 write_phy_reg(pi, 0x1b4, valuetostuff);
20451 }
20452 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20453 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20454 (rail == NPHY_RAIL_Q) && (rssi_type == NPHY_RSSI_SEL_IQ)) {
20455 write_phy_reg(pi, 0x1ba, valuetostuff);
20456 }
20457
20458 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20459 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20460 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20461 write_phy_reg(pi, 0x1a9, valuetostuff);
20462 }
20463 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20464 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20465 (rssi_type == NPHY_RSSI_SEL_TSSI_2G)) {
20466 write_phy_reg(pi, 0x1b5, valuetostuff);
20467 }
20468
20469 if (((coresel == RADIO_MIMO_CORESEL_CORE1) ||
20470 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20471 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20472 write_phy_reg(pi, 0x1af, valuetostuff);
20473 }
20474 if (((coresel == RADIO_MIMO_CORESEL_CORE2) ||
20475 (coresel == RADIO_MIMO_CORESEL_ALLRX)) &&
20476 (rssi_type == NPHY_RSSI_SEL_TSSI_5G)) {
20477 write_phy_reg(pi, 0x1bb, valuetostuff);
20478 }
20479}
20480
e868ab03 20481void wlc_phy_rssisel_nphy(phy_info_t *pi, u8 core_code, u8 rssi_type)
a9533e7e 20482{
7d4df48e
GKH
20483 u16 mask, val;
20484 u16 afectrlovr_rssi_val, rfctrlcmd_rxen_val, rfctrlcmd_coresel_val,
a9533e7e 20485 startseq;
7d4df48e 20486 u16 rfctrlovr_rssi_val, rfctrlovr_rxen_val, rfctrlovr_coresel_val,
a9533e7e 20487 rfctrlovr_trigger_val;
7d4df48e
GKH
20488 u16 afectrlovr_rssi_mask, rfctrlcmd_mask, rfctrlovr_mask;
20489 u16 rfctrlcmd_val, rfctrlovr_val;
e868ab03 20490 u8 core;
a9533e7e
HP
20491
20492 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20493 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20494 mod_phy_reg(pi, 0x8f, (0x1 << 9), 0);
20495 mod_phy_reg(pi, 0xa5, (0x1 << 9), 0);
20496
20497 mod_phy_reg(pi, 0xa6, (0x3 << 8), 0);
20498 mod_phy_reg(pi, 0xa7, (0x3 << 8), 0);
20499
20500 mod_phy_reg(pi, 0xe5, (0x1 << 5), 0);
20501 mod_phy_reg(pi, 0xe6, (0x1 << 5), 0);
20502
20503 mask = (0x1 << 2) |
20504 (0x1 << 3) | (0x1 << 4) | (0x1 << 5);
20505 mod_phy_reg(pi, 0xf9, mask, 0);
20506 mod_phy_reg(pi, 0xfb, mask, 0);
20507
20508 } else {
20509 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
20510 if (core_code == RADIO_MIMO_CORESEL_CORE1
20511 && core == PHY_CORE_1)
20512 continue;
20513 else if (core_code == RADIO_MIMO_CORESEL_CORE2
20514 && core == PHY_CORE_0)
20515 continue;
20516
20517 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20518 0x8f : 0xa5, (0x1 << 9), 1 << 9);
20519
20520 if (rssi_type == NPHY_RSSI_SEL_W1 ||
20521 rssi_type == NPHY_RSSI_SEL_W2 ||
20522 rssi_type == NPHY_RSSI_SEL_NB) {
20523
20524 mod_phy_reg(pi,
20525 (core ==
20526 PHY_CORE_0) ? 0xa6 : 0xa7,
20527 (0x3 << 8), 0);
20528
20529 mask = (0x1 << 2) |
20530 (0x1 << 3) |
20531 (0x1 << 4) | (0x1 << 5);
20532 mod_phy_reg(pi,
20533 (core ==
20534 PHY_CORE_0) ? 0xf9 : 0xfb,
20535 mask, 0);
20536
20537 if (rssi_type == NPHY_RSSI_SEL_W1) {
20538 if (CHSPEC_IS5G
20539 (pi->radio_chanspec)) {
20540 mask = (0x1 << 2);
20541 val = 1 << 2;
20542 } else {
20543 mask = (0x1 << 3);
20544 val = 1 << 3;
20545 }
20546 } else if (rssi_type ==
20547 NPHY_RSSI_SEL_W2) {
20548 mask = (0x1 << 4);
20549 val = 1 << 4;
20550 } else {
20551 mask = (0x1 << 5);
20552 val = 1 << 5;
20553 }
20554 mod_phy_reg(pi,
20555 (core ==
20556 PHY_CORE_0) ? 0xf9 : 0xfb,
20557 mask, val);
20558
20559 mask = (0x1 << 5);
20560 val = 1 << 5;
20561 mod_phy_reg(pi, (core == PHY_CORE_0) ?
20562 0xe5 : 0xe6, mask, val);
20563 } else {
20564 if (rssi_type == NPHY_RSSI_SEL_TBD) {
20565
20566 mask = (0x3 << 8);
20567 val = 1 << 8;
20568 mod_phy_reg(pi,
20569 (core ==
20570 PHY_CORE_0) ? 0xa6
20571 : 0xa7, mask, val);
20572 mask = (0x3 << 10);
20573 val = 1 << 10;
20574 mod_phy_reg(pi,
20575 (core ==
20576 PHY_CORE_0) ? 0xa6
20577 : 0xa7, mask, val);
20578 } else if (rssi_type ==
20579 NPHY_RSSI_SEL_IQ) {
20580
20581 mask = (0x3 << 8);
20582 val = 2 << 8;
20583 mod_phy_reg(pi,
20584 (core ==
20585 PHY_CORE_0) ? 0xa6
20586 : 0xa7, mask, val);
20587 mask = (0x3 << 10);
20588 val = 2 << 10;
20589 mod_phy_reg(pi,
20590 (core ==
20591 PHY_CORE_0) ? 0xa6
20592 : 0xa7, mask, val);
20593 } else {
20594
20595 mask = (0x3 << 8);
20596 val = 3 << 8;
20597 mod_phy_reg(pi,
20598 (core ==
20599 PHY_CORE_0) ? 0xa6
20600 : 0xa7, mask, val);
20601 mask = (0x3 << 10);
20602 val = 3 << 10;
20603 mod_phy_reg(pi,
20604 (core ==
20605 PHY_CORE_0) ? 0xa6
20606 : 0xa7, mask, val);
20607
20608 if (PHY_IPA(pi)) {
20609 if (NREV_GE
20610 (pi->pubpi.phy_rev,
20611 7)) {
20612
20613 write_radio_reg
20614 (pi,
20615 ((core ==
20616 PHY_CORE_0)
20617 ?
20618 RADIO_2057_TX0_TX_SSI_MUX
20619 :
20620 RADIO_2057_TX1_TX_SSI_MUX),
20621 (CHSPEC_IS5G
20622 (pi->
20623 radio_chanspec)
20624 ? 0xc :
20625 0xe));
20626 } else {
20627 write_radio_reg
20628 (pi,
20629 RADIO_2056_TX_TX_SSI_MUX
20630 |
20631 ((core ==
20632 PHY_CORE_0)
20633 ?
20634 RADIO_2056_TX0
20635 :
20636 RADIO_2056_TX1),
20637 (CHSPEC_IS5G
20638 (pi->
20639 radio_chanspec)
20640 ? 0xc :
20641 0xe));
20642 }
20643 } else {
20644
20645 if (NREV_GE
20646 (pi->pubpi.phy_rev,
20647 7)) {
20648 write_radio_reg
20649 (pi,
20650 ((core ==
20651 PHY_CORE_0)
20652 ?
20653 RADIO_2057_TX0_TX_SSI_MUX
20654 :
20655 RADIO_2057_TX1_TX_SSI_MUX),
20656 0x11);
20657
20658 if (pi->pubpi.
20659 radioid ==
20660 BCM2057_ID)
20661 write_radio_reg
20662 (pi,
20663 RADIO_2057_IQTEST_SEL_PU,
20664 0x1);
20665
20666 } else {
20667 write_radio_reg
20668 (pi,
20669 RADIO_2056_TX_TX_SSI_MUX
20670 |
20671 ((core ==
20672 PHY_CORE_0)
20673 ?
20674 RADIO_2056_TX0
20675 :
20676 RADIO_2056_TX1),
20677 0x11);
20678 }
20679 }
20680
20681 afectrlovr_rssi_val = 1 << 9;
20682 mod_phy_reg(pi,
20683 (core ==
20684 PHY_CORE_0) ? 0x8f
20685 : 0xa5, (0x1 << 9),
20686 afectrlovr_rssi_val);
20687 }
20688 }
20689 }
20690 }
20691 } else {
20692
20693 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20694 (rssi_type == NPHY_RSSI_SEL_W2) ||
20695 (rssi_type == NPHY_RSSI_SEL_NB)) {
20696
20697 val = 0x0;
20698 } else if (rssi_type == NPHY_RSSI_SEL_TBD) {
20699
20700 val = 0x1;
20701 } else if (rssi_type == NPHY_RSSI_SEL_IQ) {
20702
20703 val = 0x2;
20704 } else {
20705
20706 val = 0x3;
20707 }
20708 mask = ((0x3 << 12) | (0x3 << 14));
20709 val = (val << 12) | (val << 14);
20710 mod_phy_reg(pi, 0xa6, mask, val);
20711 mod_phy_reg(pi, 0xa7, mask, val);
20712
20713 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20714 (rssi_type == NPHY_RSSI_SEL_W2) ||
20715 (rssi_type == NPHY_RSSI_SEL_NB)) {
20716 if (rssi_type == NPHY_RSSI_SEL_W1) {
20717 val = 0x1;
20718 }
20719 if (rssi_type == NPHY_RSSI_SEL_W2) {
20720 val = 0x2;
20721 }
20722 if (rssi_type == NPHY_RSSI_SEL_NB) {
20723 val = 0x3;
20724 }
20725 mask = (0x3 << 4);
20726 val = (val << 4);
20727 mod_phy_reg(pi, 0x7a, mask, val);
20728 mod_phy_reg(pi, 0x7d, mask, val);
20729 }
20730
20731 if (core_code == RADIO_MIMO_CORESEL_OFF) {
20732 afectrlovr_rssi_val = 0;
20733 rfctrlcmd_rxen_val = 0;
20734 rfctrlcmd_coresel_val = 0;
20735 rfctrlovr_rssi_val = 0;
20736 rfctrlovr_rxen_val = 0;
20737 rfctrlovr_coresel_val = 0;
20738 rfctrlovr_trigger_val = 0;
20739 startseq = 0;
20740 } else {
20741 afectrlovr_rssi_val = 1;
20742 rfctrlcmd_rxen_val = 1;
20743 rfctrlcmd_coresel_val = core_code;
20744 rfctrlovr_rssi_val = 1;
20745 rfctrlovr_rxen_val = 1;
20746 rfctrlovr_coresel_val = 1;
20747 rfctrlovr_trigger_val = 1;
20748 startseq = 1;
20749 }
20750
20751 afectrlovr_rssi_mask = ((0x1 << 12) | (0x1 << 13));
20752 afectrlovr_rssi_val = (afectrlovr_rssi_val <<
20753 12) | (afectrlovr_rssi_val << 13);
20754 mod_phy_reg(pi, 0xa5, afectrlovr_rssi_mask,
20755 afectrlovr_rssi_val);
20756
20757 if ((rssi_type == NPHY_RSSI_SEL_W1) ||
20758 (rssi_type == NPHY_RSSI_SEL_W2) ||
20759 (rssi_type == NPHY_RSSI_SEL_NB)) {
20760 rfctrlcmd_mask = ((0x1 << 8) | (0x7 << 3));
20761 rfctrlcmd_val = (rfctrlcmd_rxen_val << 8) |
20762 (rfctrlcmd_coresel_val << 3);
20763
20764 rfctrlovr_mask = ((0x1 << 5) |
20765 (0x1 << 12) |
20766 (0x1 << 1) | (0x1 << 0));
20767 rfctrlovr_val = (rfctrlovr_rssi_val <<
20768 5) |
20769 (rfctrlovr_rxen_val << 12) |
20770 (rfctrlovr_coresel_val << 1) |
20771 (rfctrlovr_trigger_val << 0);
20772
20773 mod_phy_reg(pi, 0x78, rfctrlcmd_mask, rfctrlcmd_val);
20774 mod_phy_reg(pi, 0xec, rfctrlovr_mask, rfctrlovr_val);
20775
20776 mod_phy_reg(pi, 0x78, (0x1 << 0), (startseq << 0));
7383141b 20777 udelay(20);
a9533e7e
HP
20778
20779 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
20780 }
20781 }
20782}
20783
20784int
3e26416e 20785wlc_phy_poll_rssi_nphy(phy_info_t *pi, u8 rssi_type, s32 *rssi_buf,
e868ab03 20786 u8 nsamps)
a9533e7e 20787{
e59fe083 20788 s16 rssi0, rssi1;
7d4df48e
GKH
20789 u16 afectrlCore1_save = 0;
20790 u16 afectrlCore2_save = 0;
20791 u16 afectrlOverride1_save = 0;
20792 u16 afectrlOverride2_save = 0;
20793 u16 rfctrlOverrideAux0_save = 0;
20794 u16 rfctrlOverrideAux1_save = 0;
20795 u16 rfctrlMiscReg1_save = 0;
20796 u16 rfctrlMiscReg2_save = 0;
20797 u16 rfctrlcmd_save = 0;
20798 u16 rfctrloverride_save = 0;
20799 u16 rfctrlrssiothers1_save = 0;
20800 u16 rfctrlrssiothers2_save = 0;
562c8850 20801 s8 tmp_buf[4];
e868ab03 20802 u8 ctr = 0, samp = 0;
3e26416e 20803 s32 rssi_out_val;
7d4df48e 20804 u16 gpiosel_orig;
a9533e7e
HP
20805
20806 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20807 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20808 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20809 rfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
20810 rfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
20811 afectrlOverride1_save = read_phy_reg(pi, 0x8f);
20812 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20813 rfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
20814 rfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
20815 } else {
20816 afectrlOverride1_save = read_phy_reg(pi, 0xa5);
20817 rfctrlcmd_save = read_phy_reg(pi, 0x78);
20818 rfctrloverride_save = read_phy_reg(pi, 0xec);
20819 rfctrlrssiothers1_save = read_phy_reg(pi, 0x7a);
20820 rfctrlrssiothers2_save = read_phy_reg(pi, 0x7d);
20821 }
20822
20823 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
20824
20825 gpiosel_orig = read_phy_reg(pi, 0xca);
20826 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20827 write_phy_reg(pi, 0xca, 5);
20828 }
20829
20830 for (ctr = 0; ctr < 4; ctr++) {
20831 rssi_buf[ctr] = 0;
20832 }
20833
20834 for (samp = 0; samp < nsamps; samp++) {
20835 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20836 rssi0 = read_phy_reg(pi, 0x1c9);
20837 rssi1 = read_phy_reg(pi, 0x1ca);
20838 } else {
20839 rssi0 = read_phy_reg(pi, 0x219);
20840 rssi1 = read_phy_reg(pi, 0x21a);
20841 }
20842
20843 ctr = 0;
562c8850
GKH
20844 tmp_buf[ctr++] = ((s8) ((rssi0 & 0x3f) << 2)) >> 2;
20845 tmp_buf[ctr++] = ((s8) (((rssi0 >> 8) & 0x3f) << 2)) >> 2;
20846 tmp_buf[ctr++] = ((s8) ((rssi1 & 0x3f) << 2)) >> 2;
20847 tmp_buf[ctr++] = ((s8) (((rssi1 >> 8) & 0x3f) << 2)) >> 2;
a9533e7e
HP
20848
20849 for (ctr = 0; ctr < 4; ctr++) {
20850 rssi_buf[ctr] += tmp_buf[ctr];
20851 }
20852
20853 }
20854
20855 rssi_out_val = rssi_buf[3] & 0xff;
20856 rssi_out_val |= (rssi_buf[2] & 0xff) << 8;
20857 rssi_out_val |= (rssi_buf[1] & 0xff) << 16;
20858 rssi_out_val |= (rssi_buf[0] & 0xff) << 24;
20859
20860 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
20861 write_phy_reg(pi, 0xca, gpiosel_orig);
20862 }
20863
20864 write_phy_reg(pi, 0xa6, afectrlCore1_save);
20865 write_phy_reg(pi, 0xa7, afectrlCore2_save);
20866 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
20867 write_phy_reg(pi, 0xf9, rfctrlMiscReg1_save);
20868 write_phy_reg(pi, 0xfb, rfctrlMiscReg2_save);
20869 write_phy_reg(pi, 0x8f, afectrlOverride1_save);
20870 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
20871 write_phy_reg(pi, 0xe5, rfctrlOverrideAux0_save);
20872 write_phy_reg(pi, 0xe6, rfctrlOverrideAux1_save);
20873 } else {
20874 write_phy_reg(pi, 0xa5, afectrlOverride1_save);
20875 write_phy_reg(pi, 0x78, rfctrlcmd_save);
20876 write_phy_reg(pi, 0xec, rfctrloverride_save);
20877 write_phy_reg(pi, 0x7a, rfctrlrssiothers1_save);
20878 write_phy_reg(pi, 0x7d, rfctrlrssiothers2_save);
20879 }
20880
90ea2296 20881 return rssi_out_val;
a9533e7e
HP
20882}
20883
e59fe083 20884s16 wlc_phy_tempsense_nphy(phy_info_t *pi)
a9533e7e 20885{
7d4df48e
GKH
20886 u16 core1_txrf_iqcal1_save, core1_txrf_iqcal2_save;
20887 u16 core2_txrf_iqcal1_save, core2_txrf_iqcal2_save;
20888 u16 pwrdet_rxtx_core1_save;
20889 u16 pwrdet_rxtx_core2_save;
20890 u16 afectrlCore1_save;
20891 u16 afectrlCore2_save;
20892 u16 afectrlOverride_save;
20893 u16 afectrlOverride2_save;
20894 u16 pd_pll_ts_save;
20895 u16 gpioSel_save;
3e26416e
GKH
20896 s32 radio_temp[4];
20897 s32 radio_temp2[4];
7d4df48e 20898 u16 syn_tempprocsense_save;
e59fe083 20899 s16 offset = 0;
a9533e7e
HP
20900
20901 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
7d4df48e
GKH
20902 u16 auxADC_Vmid, auxADC_Av, auxADC_Vmid_save, auxADC_Av_save;
20903 u16 auxADC_rssi_ctrlL_save, auxADC_rssi_ctrlH_save;
20904 u16 auxADC_rssi_ctrlL, auxADC_rssi_ctrlH;
3e26416e 20905 s32 auxADC_Vl;
7d4df48e
GKH
20906 u16 RfctrlOverride5_save, RfctrlOverride6_save;
20907 u16 RfctrlMiscReg5_save, RfctrlMiscReg6_save;
20908 u16 RSSIMultCoef0QPowerDet_save;
20909 u16 tempsense_Rcal;
a9533e7e
HP
20910
20911 syn_tempprocsense_save =
20912 read_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG);
20913
20914 afectrlCore1_save = read_phy_reg(pi, 0xa6);
20915 afectrlCore2_save = read_phy_reg(pi, 0xa7);
20916 afectrlOverride_save = read_phy_reg(pi, 0x8f);
20917 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
20918 RSSIMultCoef0QPowerDet_save = read_phy_reg(pi, 0x1ae);
20919 RfctrlOverride5_save = read_phy_reg(pi, 0x346);
20920 RfctrlOverride6_save = read_phy_reg(pi, 0x347);
20921 RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
20922 RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
20923
20924 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20925 &auxADC_Vmid_save);
20926 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20927 &auxADC_Av_save);
20928 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20929 &auxADC_rssi_ctrlL_save);
20930 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20931 &auxADC_rssi_ctrlH_save);
20932
20933 write_phy_reg(pi, 0x1ae, 0x0);
20934
20935 auxADC_rssi_ctrlL = 0x0;
20936 auxADC_rssi_ctrlH = 0x20;
20937 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
20938 &auxADC_rssi_ctrlL);
20939 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
20940 &auxADC_rssi_ctrlH);
20941
20942 tempsense_Rcal = syn_tempprocsense_save & 0x1c;
20943
20944 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20945 tempsense_Rcal | 0x01);
20946
20947 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
20948 1, 0, 0,
20949 NPHY_REV7_RFCTRLOVERRIDE_ID2);
20950 mod_phy_reg(pi, 0xa6, (0x1 << 7), 0);
20951 mod_phy_reg(pi, 0xa7, (0x1 << 7), 0);
20952 mod_phy_reg(pi, 0x8f, (0x1 << 7), (0x1 << 7));
20953 mod_phy_reg(pi, 0xa5, (0x1 << 7), (0x1 << 7));
20954
20955 mod_phy_reg(pi, 0xa6, (0x1 << 2), (0x1 << 2));
20956 mod_phy_reg(pi, 0xa7, (0x1 << 2), (0x1 << 2));
20957 mod_phy_reg(pi, 0x8f, (0x1 << 2), (0x1 << 2));
20958 mod_phy_reg(pi, 0xa5, (0x1 << 2), (0x1 << 2));
7383141b 20959 udelay(5);
a9533e7e
HP
20960 mod_phy_reg(pi, 0xa6, (0x1 << 2), 0);
20961 mod_phy_reg(pi, 0xa7, (0x1 << 2), 0);
20962 mod_phy_reg(pi, 0xa6, (0x1 << 3), 0);
20963 mod_phy_reg(pi, 0xa7, (0x1 << 3), 0);
20964 mod_phy_reg(pi, 0x8f, (0x1 << 3), (0x1 << 3));
20965 mod_phy_reg(pi, 0xa5, (0x1 << 3), (0x1 << 3));
20966 mod_phy_reg(pi, 0xa6, (0x1 << 6), 0);
20967 mod_phy_reg(pi, 0xa7, (0x1 << 6), 0);
20968 mod_phy_reg(pi, 0x8f, (0x1 << 6), (0x1 << 6));
20969 mod_phy_reg(pi, 0xa5, (0x1 << 6), (0x1 << 6));
20970
20971 auxADC_Vmid = 0xA3;
20972 auxADC_Av = 0x0;
20973 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
20974 &auxADC_Vmid);
20975 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
20976 &auxADC_Av);
20977
7383141b 20978 udelay(3);
a9533e7e
HP
20979
20980 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
20981 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
20982 tempsense_Rcal | 0x03);
20983
7383141b 20984 udelay(5);
a9533e7e
HP
20985 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
20986
20987 auxADC_Av = 0x7;
20988 if (radio_temp[1] + radio_temp2[1] < -30) {
20989 auxADC_Vmid = 0x45;
20990 auxADC_Vl = 263;
20991 } else if (radio_temp[1] + radio_temp2[1] < -9) {
20992 auxADC_Vmid = 0x200;
20993 auxADC_Vl = 467;
20994 } else if (radio_temp[1] + radio_temp2[1] < 11) {
20995 auxADC_Vmid = 0x266;
20996 auxADC_Vl = 634;
20997 } else {
20998 auxADC_Vmid = 0x2D5;
20999 auxADC_Vl = 816;
21000 }
21001
21002 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21003 &auxADC_Vmid);
21004 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21005 &auxADC_Av);
21006
7383141b 21007 udelay(3);
a9533e7e
HP
21008
21009 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21010 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21011 tempsense_Rcal | 0x01);
21012
7383141b 21013 udelay(5);
a9533e7e
HP
21014 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21015
21016 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG,
21017 syn_tempprocsense_save);
21018
21019 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21020 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21021 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21022 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21023 write_phy_reg(pi, 0x1ae, RSSIMultCoef0QPowerDet_save);
21024 write_phy_reg(pi, 0x346, RfctrlOverride5_save);
21025 write_phy_reg(pi, 0x347, RfctrlOverride6_save);
21026 write_phy_reg(pi, 0x344, RfctrlMiscReg5_save);
21027 write_phy_reg(pi, 0x345, RfctrlMiscReg5_save);
21028
21029 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0A, 16,
21030 &auxADC_Vmid_save);
21031 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x0E, 16,
21032 &auxADC_Av_save);
21033 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x02, 16,
21034 &auxADC_rssi_ctrlL_save);
21035 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 0x03, 16,
21036 &auxADC_rssi_ctrlH_save);
21037
dfa26436 21038 if (pi->sh->chip == BCM5357_CHIP_ID) {
a9533e7e
HP
21039 radio_temp[0] = (193 * (radio_temp[1] + radio_temp2[1])
21040 + 88 * (auxADC_Vl) - 27111 +
21041 128) / 256;
dfa26436 21042 } else if (pi->sh->chip == BCM43236_CHIP_ID) {
a9533e7e
HP
21043 radio_temp[0] = (198 * (radio_temp[1] + radio_temp2[1])
21044 + 91 * (auxADC_Vl) - 27243 +
21045 128) / 256;
21046 } else {
21047 radio_temp[0] = (179 * (radio_temp[1] + radio_temp2[1])
21048 + 82 * (auxADC_Vl) - 28861 +
21049 128) / 256;
21050 }
21051
e59fe083 21052 offset = (s16) pi->phy_tempsense_offset;
a9533e7e
HP
21053
21054 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21055 syn_tempprocsense_save =
21056 read_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE);
21057
21058 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21059 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21060 afectrlOverride_save = read_phy_reg(pi, 0x8f);
21061 afectrlOverride2_save = read_phy_reg(pi, 0xa5);
21062 gpioSel_save = read_phy_reg(pi, 0xca);
21063
21064 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21065
21066 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21067 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21068 } else {
21069 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x05);
21070 }
21071
21072 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21073 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21074 write_radio_reg(pi, RADIO_2057_TEMPSENSE_CONFIG, 0x01);
21075 } else {
21076 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE, 0x01);
21077 }
21078
21079 radio_temp[0] =
21080 (126 * (radio_temp[1] + radio_temp2[1]) + 3987) / 64;
21081
21082 write_radio_reg(pi, RADIO_2056_SYN_TEMPPROCSENSE,
21083 syn_tempprocsense_save);
21084
21085 write_phy_reg(pi, 0xca, gpioSel_save);
21086 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21087 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21088 write_phy_reg(pi, 0x8f, afectrlOverride_save);
21089 write_phy_reg(pi, 0xa5, afectrlOverride2_save);
21090
e59fe083 21091 offset = (s16) pi->phy_tempsense_offset;
a9533e7e
HP
21092 } else {
21093
21094 pwrdet_rxtx_core1_save =
21095 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
21096 pwrdet_rxtx_core2_save =
21097 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
21098 core1_txrf_iqcal1_save =
21099 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
21100 core1_txrf_iqcal2_save =
21101 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
21102 core2_txrf_iqcal1_save =
21103 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
21104 core2_txrf_iqcal2_save =
21105 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
21106 pd_pll_ts_save = read_radio_reg(pi, RADIO_2055_PD_PLL_TS);
21107
21108 afectrlCore1_save = read_phy_reg(pi, 0xa6);
21109 afectrlCore2_save = read_phy_reg(pi, 0xa7);
21110 afectrlOverride_save = read_phy_reg(pi, 0xa5);
21111 gpioSel_save = read_phy_reg(pi, 0xca);
21112
21113 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x01);
21114 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x01);
21115 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x08);
21116 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x08);
21117 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
21118 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
21119 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, 0x00);
21120
21121 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21122 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21123
21124 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp, 1);
21125 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21126
21127 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_IQ, radio_temp2, 1);
21128 xor_radio_reg(pi, RADIO_2055_CAL_TS, 0x80);
21129
21130 radio_temp[0] = (radio_temp[0] + radio_temp2[0]);
21131 radio_temp[1] = (radio_temp[1] + radio_temp2[1]);
21132 radio_temp[2] = (radio_temp[2] + radio_temp2[2]);
21133 radio_temp[3] = (radio_temp[3] + radio_temp2[3]);
21134
21135 radio_temp[0] =
21136 (radio_temp[0] + radio_temp[1] + radio_temp[2] +
21137 radio_temp[3]);
21138
21139 radio_temp[0] =
21140 (radio_temp[0] + (8 * 32)) * (950 - 350) / 63 + (350 * 8);
21141
21142 radio_temp[0] = (radio_temp[0] - (8 * 420)) / 38;
21143
21144 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
21145 pwrdet_rxtx_core1_save);
21146 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
21147 pwrdet_rxtx_core2_save);
21148 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
21149 core1_txrf_iqcal1_save);
21150 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
21151 core2_txrf_iqcal1_save);
21152 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
21153 core1_txrf_iqcal2_save);
21154 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
21155 core2_txrf_iqcal2_save);
21156 write_radio_reg(pi, RADIO_2055_PD_PLL_TS, pd_pll_ts_save);
21157
21158 write_phy_reg(pi, 0xca, gpioSel_save);
21159 write_phy_reg(pi, 0xa6, afectrlCore1_save);
21160 write_phy_reg(pi, 0xa7, afectrlCore2_save);
21161 write_phy_reg(pi, 0xa5, afectrlOverride_save);
21162 }
21163
e59fe083 21164 return (s16) radio_temp[0] + offset;
a9533e7e
HP
21165}
21166
21167static void
e868ab03 21168wlc_phy_set_rssi_2055_vcm(phy_info_t *pi, u8 rssi_type, u8 *vcm_buf)
a9533e7e 21169{
e868ab03 21170 u8 core;
a9533e7e
HP
21171
21172 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21173 if (rssi_type == NPHY_RSSI_SEL_NB) {
21174 if (core == PHY_CORE_0) {
21175 mod_radio_reg(pi,
21176 RADIO_2055_CORE1_B0_NBRSSI_VCM,
21177 RADIO_2055_NBRSSI_VCM_I_MASK,
21178 vcm_buf[2 *
21179 core] <<
21180 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21181 mod_radio_reg(pi,
21182 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21183 RADIO_2055_NBRSSI_VCM_Q_MASK,
21184 vcm_buf[2 * core +
21185 1] <<
21186 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21187 } else {
21188 mod_radio_reg(pi,
21189 RADIO_2055_CORE2_B0_NBRSSI_VCM,
21190 RADIO_2055_NBRSSI_VCM_I_MASK,
21191 vcm_buf[2 *
21192 core] <<
21193 RADIO_2055_NBRSSI_VCM_I_SHIFT);
21194 mod_radio_reg(pi,
21195 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21196 RADIO_2055_NBRSSI_VCM_Q_MASK,
21197 vcm_buf[2 * core +
21198 1] <<
21199 RADIO_2055_NBRSSI_VCM_Q_SHIFT);
21200 }
21201 } else {
21202
21203 if (core == PHY_CORE_0) {
21204 mod_radio_reg(pi,
21205 RADIO_2055_CORE1_RXBB_RSSI_CTRL5,
21206 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21207 vcm_buf[2 *
21208 core] <<
21209 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21210 } else {
21211 mod_radio_reg(pi,
21212 RADIO_2055_CORE2_RXBB_RSSI_CTRL5,
21213 RADIO_2055_WBRSSI_VCM_IQ_MASK,
21214 vcm_buf[2 *
21215 core] <<
21216 RADIO_2055_WBRSSI_VCM_IQ_SHIFT);
21217 }
21218 }
21219 }
21220}
21221
7cc4a4c0 21222void wlc_phy_rssi_cal_nphy(phy_info_t *pi)
a9533e7e
HP
21223{
21224 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21225
21226 wlc_phy_rssi_cal_nphy_rev3(pi);
21227 } else {
21228 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_NB);
21229 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W1);
21230 wlc_phy_rssi_cal_nphy_rev2(pi, NPHY_RSSI_SEL_W2);
21231 }
21232}
21233
e868ab03 21234static void wlc_phy_rssi_cal_nphy_rev2(phy_info_t *pi, u8 rssi_type)
a9533e7e 21235{
3e26416e 21236 s32 target_code;
7d4df48e
GKH
21237 u16 classif_state;
21238 u16 clip_state[2];
21239 u16 rssi_ctrl_state[2], pd_state[2];
21240 u16 rfctrlintc_state[2], rfpdcorerxtx_state[2];
21241 u16 rfctrlintc_override_val;
21242 u16 clip_off[] = { 0xffff, 0xffff };
21243 u16 rf_pd_val, pd_mask, rssi_ctrl_mask;
e868ab03
GKH
21244 u8 vcm, min_vcm, vcm_tmp[4];
21245 u8 vcm_final[4] = { 0, 0, 0, 0 };
21246 u8 result_idx, ctr;
3e26416e 21247 s32 poll_results[4][4] = {
a9533e7e
HP
21248 {0, 0, 0, 0},
21249 {0, 0, 0, 0},
21250 {0, 0, 0, 0},
21251 {0, 0, 0, 0}
21252 };
3e26416e 21253 s32 poll_miniq[4][2] = {
a9533e7e
HP
21254 {0, 0},
21255 {0, 0},
21256 {0, 0},
21257 {0, 0}
21258 };
3e26416e
GKH
21259 s32 min_d, curr_d;
21260 s32 fine_digital_offset[4];
21261 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21262 s32 min_poll;
a9533e7e
HP
21263
21264 switch (rssi_type) {
21265 case NPHY_RSSI_SEL_NB:
21266 target_code = NPHY_RSSICAL_NB_TARGET;
21267 break;
21268 case NPHY_RSSI_SEL_W1:
21269 target_code = NPHY_RSSICAL_W1_TARGET;
21270 break;
21271 case NPHY_RSSI_SEL_W2:
21272 target_code = NPHY_RSSICAL_W2_TARGET;
21273 break;
21274 default:
21275 return;
21276 break;
21277 }
21278
21279 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21280 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21281 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21282 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21283
21284 rf_pd_val = (rssi_type == NPHY_RSSI_SEL_NB) ? 0x6 : 0x4;
21285 rfctrlintc_override_val =
21286 CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 : 0x110;
21287
21288 rfctrlintc_state[0] = read_phy_reg(pi, 0x91);
21289 rfpdcorerxtx_state[0] = read_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX);
21290 write_phy_reg(pi, 0x91, rfctrlintc_override_val);
21291 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rf_pd_val);
21292
21293 rfctrlintc_state[1] = read_phy_reg(pi, 0x92);
21294 rfpdcorerxtx_state[1] = read_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX);
21295 write_phy_reg(pi, 0x92, rfctrlintc_override_val);
21296 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rf_pd_val);
21297
21298 pd_mask = RADIO_2055_NBRSSI_PD | RADIO_2055_WBRSSI_G1_PD |
21299 RADIO_2055_WBRSSI_G2_PD;
21300 pd_state[0] =
21301 read_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC) & pd_mask;
21302 pd_state[1] =
21303 read_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC) & pd_mask;
21304 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, 0);
21305 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, 0);
21306 rssi_ctrl_mask = RADIO_2055_NBRSSI_SEL | RADIO_2055_WBRSSI_G1_SEL |
21307 RADIO_2055_WBRSSI_G2_SEL;
21308 rssi_ctrl_state[0] =
21309 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE1) & rssi_ctrl_mask;
21310 rssi_ctrl_state[1] =
21311 read_radio_reg(pi, RADIO_2055_SP_RSSI_CORE2) & rssi_ctrl_mask;
21312 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_ALLRX, rssi_type);
21313
21314 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21315 NPHY_RAIL_I, rssi_type);
21316 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0, RADIO_MIMO_CORESEL_ALLRX,
21317 NPHY_RAIL_Q, rssi_type);
21318
21319 for (vcm = 0; vcm < 4; vcm++) {
21320
21321 vcm_tmp[0] = vcm_tmp[1] = vcm_tmp[2] = vcm_tmp[3] = vcm;
21322 if (rssi_type != NPHY_RSSI_SEL_W2) {
21323 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_tmp);
21324 }
21325
21326 wlc_phy_poll_rssi_nphy(pi, rssi_type, &poll_results[vcm][0],
21327 NPHY_RSSICAL_NPOLL);
21328
21329 if ((rssi_type == NPHY_RSSI_SEL_W1)
21330 || (rssi_type == NPHY_RSSI_SEL_W2)) {
21331 for (ctr = 0; ctr < 2; ctr++) {
21332 poll_miniq[vcm][ctr] =
7068c2f1 21333 min(poll_results[vcm][ctr * 2 + 0],
a9533e7e
HP
21334 poll_results[vcm][ctr * 2 + 1]);
21335 }
21336 }
21337 }
21338
21339 for (result_idx = 0; result_idx < 4; result_idx++) {
21340 min_d = NPHY_RSSICAL_MAXD;
21341 min_vcm = 0;
21342 min_poll = NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL + 1;
21343 for (vcm = 0; vcm < 4; vcm++) {
21344 curr_d = ABS(((rssi_type == NPHY_RSSI_SEL_NB) ?
21345 poll_results[vcm][result_idx] :
21346 poll_miniq[vcm][result_idx / 2]) -
21347 (target_code * NPHY_RSSICAL_NPOLL));
21348 if (curr_d < min_d) {
21349 min_d = curr_d;
21350 min_vcm = vcm;
21351 }
21352 if (poll_results[vcm][result_idx] < min_poll) {
21353 min_poll = poll_results[vcm][result_idx];
21354 }
21355 }
21356 vcm_final[result_idx] = min_vcm;
21357 poll_results_min[result_idx] = min_poll;
21358 }
21359
21360 if (rssi_type != NPHY_RSSI_SEL_W2) {
21361 wlc_phy_set_rssi_2055_vcm(pi, rssi_type, vcm_final);
21362 }
21363
21364 for (result_idx = 0; result_idx < 4; result_idx++) {
21365 fine_digital_offset[result_idx] =
21366 (target_code * NPHY_RSSICAL_NPOLL) -
21367 poll_results[vcm_final[result_idx]][result_idx];
21368 if (fine_digital_offset[result_idx] < 0) {
21369 fine_digital_offset[result_idx] =
21370 ABS(fine_digital_offset[result_idx]);
21371 fine_digital_offset[result_idx] +=
21372 (NPHY_RSSICAL_NPOLL / 2);
21373 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21374 fine_digital_offset[result_idx] =
21375 -fine_digital_offset[result_idx];
21376 } else {
21377 fine_digital_offset[result_idx] +=
21378 (NPHY_RSSICAL_NPOLL / 2);
21379 fine_digital_offset[result_idx] /= NPHY_RSSICAL_NPOLL;
21380 }
21381
21382 if (poll_results_min[result_idx] ==
21383 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21384 fine_digital_offset[result_idx] =
21385 (target_code - NPHY_RSSICAL_MAXREAD - 1);
21386 }
21387
21388 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 21389 (s8)
a9533e7e
HP
21390 fine_digital_offset[result_idx],
21391 (result_idx / 2 ==
21392 0) ? RADIO_MIMO_CORESEL_CORE1 :
21393 RADIO_MIMO_CORESEL_CORE2,
21394 (result_idx % 2 ==
21395 0) ? NPHY_RAIL_I : NPHY_RAIL_Q,
21396 rssi_type);
21397 }
21398
21399 mod_radio_reg(pi, RADIO_2055_PD_CORE1_RSSI_MISC, pd_mask, pd_state[0]);
21400 mod_radio_reg(pi, RADIO_2055_PD_CORE2_RSSI_MISC, pd_mask, pd_state[1]);
21401 if (rssi_ctrl_state[0] == RADIO_2055_NBRSSI_SEL) {
21402 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21403 NPHY_RSSI_SEL_NB);
21404 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G1_SEL) {
21405 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21406 NPHY_RSSI_SEL_W1);
21407 } else if (rssi_ctrl_state[0] == RADIO_2055_WBRSSI_G2_SEL) {
21408 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21409 NPHY_RSSI_SEL_W2);
21410 } else {
21411 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE1,
21412 NPHY_RSSI_SEL_W2);
21413 }
21414 if (rssi_ctrl_state[1] == RADIO_2055_NBRSSI_SEL) {
21415 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21416 NPHY_RSSI_SEL_NB);
21417 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G1_SEL) {
21418 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21419 NPHY_RSSI_SEL_W1);
21420 } else if (rssi_ctrl_state[1] == RADIO_2055_WBRSSI_G2_SEL) {
21421 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21422 NPHY_RSSI_SEL_W2);
21423 } else {
21424 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_CORE2,
21425 NPHY_RSSI_SEL_W2);
21426 }
21427
21428 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, rssi_type);
21429
21430 write_phy_reg(pi, 0x91, rfctrlintc_state[0]);
21431 write_radio_reg(pi, RADIO_2055_PD_CORE1_RXTX, rfpdcorerxtx_state[0]);
21432 write_phy_reg(pi, 0x92, rfctrlintc_state[1]);
21433 write_radio_reg(pi, RADIO_2055_PD_CORE2_RXTX, rfpdcorerxtx_state[1]);
21434
21435 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
21436 wlc_phy_clip_det_nphy(pi, 1, clip_state);
21437
21438 wlc_phy_resetcca_nphy(pi);
21439}
21440
de91ed29 21441int
7cc4a4c0 21442wlc_phy_rssi_compute_nphy(phy_info_t *pi, wlc_d11rxhdr_t *wlc_rxh)
a9533e7e
HP
21443{
21444 d11rxhdr_t *rxh = &wlc_rxh->rxhdr;
e59fe083
GKH
21445 s16 rxpwr, rxpwr0, rxpwr1;
21446 s16 phyRx0_l, phyRx2_l;
a9533e7e
HP
21447
21448 rxpwr = 0;
628f10ba
SF
21449 rxpwr0 = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
21450 rxpwr1 = (le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
a9533e7e
HP
21451
21452 if (rxpwr0 > 127)
21453 rxpwr0 -= 256;
21454 if (rxpwr1 > 127)
21455 rxpwr1 -= 256;
21456
628f10ba
SF
21457 phyRx0_l = le16_to_cpu(rxh->PhyRxStatus_0) & 0x00ff;
21458 phyRx2_l = le16_to_cpu(rxh->PhyRxStatus_2) & 0x00ff;
a9533e7e
HP
21459 if (phyRx2_l > 127)
21460 phyRx2_l -= 256;
21461
21462 if (((rxpwr0 == 16) || (rxpwr0 == 32))) {
21463 rxpwr0 = rxpwr1;
21464 rxpwr1 = phyRx2_l;
21465 }
21466
562c8850
GKH
21467 wlc_rxh->rxpwr[0] = (s8) rxpwr0;
21468 wlc_rxh->rxpwr[1] = (s8) rxpwr1;
a9533e7e
HP
21469 wlc_rxh->do_rssi_ma = 0;
21470
21471 if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MAX)
21472 rxpwr = (rxpwr0 > rxpwr1) ? rxpwr0 : rxpwr1;
21473 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_MIN)
21474 rxpwr = (rxpwr0 < rxpwr1) ? rxpwr0 : rxpwr1;
21475 else if (pi->sh->rssi_mode == RSSI_ANT_MERGE_AVG)
21476 rxpwr = (rxpwr0 + rxpwr1) >> 1;
a9533e7e
HP
21477
21478 return rxpwr;
21479}
21480
21481static void
7d4df48e 21482wlc_phy_rfctrlintc_override_nphy(phy_info_t *pi, u8 field, u16 value,
e868ab03 21483 u8 core_code)
a9533e7e 21484{
7d4df48e
GKH
21485 u16 mask;
21486 u16 val;
e868ab03 21487 u8 core;
a9533e7e
HP
21488
21489 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
21490 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21491 if (core_code == RADIO_MIMO_CORESEL_CORE1
21492 && core == PHY_CORE_1)
21493 continue;
21494 else if (core_code == RADIO_MIMO_CORESEL_CORE2
21495 && core == PHY_CORE_0)
21496 continue;
21497
21498 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
21499
21500 mask = (0x1 << 10);
21501 val = 1 << 10;
21502 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21503 0x92, mask, val);
21504 }
21505
21506 if (field == NPHY_RfctrlIntc_override_OFF) {
21507
21508 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x91 :
21509 0x92, 0);
21510
21511 wlc_phy_force_rfseq_nphy(pi,
21512 NPHY_RFSEQ_RESET2RX);
21513 } else if (field == NPHY_RfctrlIntc_override_TRSW) {
21514
21515 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21516
21517 mask = (0x1 << 6) | (0x1 << 7);
21518
21519 val = value << 6;
21520 mod_phy_reg(pi,
21521 (core ==
21522 PHY_CORE_0) ? 0x91 : 0x92,
21523 mask, val);
21524
21525 or_phy_reg(pi,
21526 (core ==
21527 PHY_CORE_0) ? 0x91 : 0x92,
21528 (0x1 << 10));
21529
7d4df48e 21530 and_phy_reg(pi, 0x2ff, (u16)
29c4275a 21531 ~(0x3 << 14));
a9533e7e
HP
21532 or_phy_reg(pi, 0x2ff, (0x1 << 13));
21533 or_phy_reg(pi, 0x2ff, (0x1 << 0));
21534 } else {
21535
21536 mask = (0x1 << 6) |
21537 (0x1 << 7) |
21538 (0x1 << 8) | (0x1 << 9);
21539 val = value << 6;
21540 mod_phy_reg(pi,
21541 (core ==
21542 PHY_CORE_0) ? 0x91 : 0x92,
21543 mask, val);
21544
21545 mask = (0x1 << 0);
21546 val = 1 << 0;
21547 mod_phy_reg(pi,
21548 (core ==
21549 PHY_CORE_0) ? 0xe7 : 0xec,
21550 mask, val);
21551
21552 mask = (core == PHY_CORE_0) ? (0x1 << 0)
21553 : (0x1 << 1);
21554 val = 1 << ((core == PHY_CORE_0) ?
21555 0 : 1);
21556 mod_phy_reg(pi, 0x78, mask, val);
21557
21558 SPINWAIT(((read_phy_reg(pi, 0x78) & val)
21559 != 0), 10000);
be2fee08
RV
21560 if (WARN(read_phy_reg(pi, 0x78) & val,
21561 "HW error: override failed"))
21562 return;
a9533e7e
HP
21563
21564 mask = (0x1 << 0);
21565 val = 0 << 0;
21566 mod_phy_reg(pi,
21567 (core ==
21568 PHY_CORE_0) ? 0xe7 : 0xec,
21569 mask, val);
21570 }
21571 } else if (field == NPHY_RfctrlIntc_override_PA) {
21572 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21573
21574 mask = (0x1 << 4) | (0x1 << 5);
21575
21576 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21577 val = value << 5;
21578 } else {
21579 val = value << 4;
21580 }
21581
21582 mod_phy_reg(pi,
21583 (core ==
21584 PHY_CORE_0) ? 0x91 : 0x92,
21585 mask, val);
21586
21587 or_phy_reg(pi,
21588 (core ==
21589 PHY_CORE_0) ? 0x91 : 0x92,
21590 (0x1 << 12));
21591 } else {
21592
21593 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21594 mask = (0x1 << 5);
21595 val = value << 5;
21596 } else {
21597 mask = (0x1 << 4);
21598 val = value << 4;
21599 }
21600 mod_phy_reg(pi,
21601 (core ==
21602 PHY_CORE_0) ? 0x91 : 0x92,
21603 mask, val);
21604 }
21605 } else if (field == NPHY_RfctrlIntc_override_EXT_LNA_PU) {
21606 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21607 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21608
21609 mask = (0x1 << 0);
21610 val = value << 0;
21611 mod_phy_reg(pi,
21612 (core ==
21613 PHY_CORE_0) ? 0x91
21614 : 0x92, mask, val);
21615
21616 mask = (0x1 << 2);
21617 mod_phy_reg(pi,
21618 (core ==
21619 PHY_CORE_0) ? 0x91
21620 : 0x92, mask, 0);
21621 } else {
21622
21623 mask = (0x1 << 2);
21624 val = value << 2;
21625 mod_phy_reg(pi,
21626 (core ==
21627 PHY_CORE_0) ? 0x91
21628 : 0x92, mask, val);
21629
21630 mask = (0x1 << 0);
21631 mod_phy_reg(pi,
21632 (core ==
21633 PHY_CORE_0) ? 0x91
21634 : 0x92, mask, 0);
21635 }
21636
21637 mask = (0x1 << 11);
21638 val = 1 << 11;
21639 mod_phy_reg(pi,
21640 (core ==
21641 PHY_CORE_0) ? 0x91 : 0x92,
21642 mask, val);
21643 } else {
21644
21645 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21646 mask = (0x1 << 0);
21647 val = value << 0;
21648 } else {
21649 mask = (0x1 << 2);
21650 val = value << 2;
21651 }
21652 mod_phy_reg(pi,
21653 (core ==
21654 PHY_CORE_0) ? 0x91 : 0x92,
21655 mask, val);
21656 }
21657 } else if (field ==
21658 NPHY_RfctrlIntc_override_EXT_LNA_GAIN) {
21659 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21660 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21661
21662 mask = (0x1 << 1);
21663 val = value << 1;
21664 mod_phy_reg(pi,
21665 (core ==
21666 PHY_CORE_0) ? 0x91
21667 : 0x92, mask, val);
21668
21669 mask = (0x1 << 3);
21670 mod_phy_reg(pi,
21671 (core ==
21672 PHY_CORE_0) ? 0x91
21673 : 0x92, mask, 0);
21674 } else {
21675
21676 mask = (0x1 << 3);
21677 val = value << 3;
21678 mod_phy_reg(pi,
21679 (core ==
21680 PHY_CORE_0) ? 0x91
21681 : 0x92, mask, val);
21682
21683 mask = (0x1 << 1);
21684 mod_phy_reg(pi,
21685 (core ==
21686 PHY_CORE_0) ? 0x91
21687 : 0x92, mask, 0);
21688 }
21689
21690 mask = (0x1 << 11);
21691 val = 1 << 11;
21692 mod_phy_reg(pi,
21693 (core ==
21694 PHY_CORE_0) ? 0x91 : 0x92,
21695 mask, val);
21696 } else {
21697
21698 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21699 mask = (0x1 << 1);
21700 val = value << 1;
21701 } else {
21702 mask = (0x1 << 3);
21703 val = value << 3;
21704 }
21705 mod_phy_reg(pi,
21706 (core ==
21707 PHY_CORE_0) ? 0x91 : 0x92,
21708 mask, val);
21709 }
21710 }
21711 }
21712 } else {
21713 return;
21714 }
21715}
21716
7cc4a4c0 21717static void wlc_phy_rssi_cal_nphy_rev3(phy_info_t *pi)
a9533e7e 21718{
7d4df48e
GKH
21719 u16 classif_state;
21720 u16 clip_state[2];
21721 u16 clip_off[] = { 0xffff, 0xffff };
3e26416e 21722 s32 target_code;
e868ab03
GKH
21723 u8 vcm, min_vcm;
21724 u8 vcm_final = 0;
21725 u8 result_idx;
3e26416e 21726 s32 poll_results[8][4] = {
a9533e7e
HP
21727 {0, 0, 0, 0},
21728 {0, 0, 0, 0},
21729 {0, 0, 0, 0},
21730 {0, 0, 0, 0},
21731 {0, 0, 0, 0},
21732 {0, 0, 0, 0},
21733 {0, 0, 0, 0},
21734 {0, 0, 0, 0}
21735 };
3e26416e
GKH
21736 s32 poll_result_core[4] = { 0, 0, 0, 0 };
21737 s32 min_d = NPHY_RSSICAL_MAXD, curr_d;
21738 s32 fine_digital_offset[4];
21739 s32 poll_results_min[4] = { 0, 0, 0, 0 };
21740 s32 min_poll;
e868ab03
GKH
21741 u8 vcm_level_max;
21742 u8 core;
21743 u8 wb_cnt;
21744 u8 rssi_type;
7d4df48e
GKH
21745 u16 NPHY_Rfctrlintc1_save, NPHY_Rfctrlintc2_save;
21746 u16 NPHY_AfectrlOverride1_save, NPHY_AfectrlOverride2_save;
21747 u16 NPHY_AfectrlCore1_save, NPHY_AfectrlCore2_save;
21748 u16 NPHY_RfctrlOverride0_save, NPHY_RfctrlOverride1_save;
21749 u16 NPHY_RfctrlOverrideAux0_save, NPHY_RfctrlOverrideAux1_save;
21750 u16 NPHY_RfctrlCmd_save;
21751 u16 NPHY_RfctrlMiscReg1_save, NPHY_RfctrlMiscReg2_save;
21752 u16 NPHY_RfctrlRSSIOTHERS1_save, NPHY_RfctrlRSSIOTHERS2_save;
e868ab03 21753 u8 rxcore_state;
7d4df48e
GKH
21754 u16 NPHY_REV7_RfctrlOverride3_save, NPHY_REV7_RfctrlOverride4_save;
21755 u16 NPHY_REV7_RfctrlOverride5_save, NPHY_REV7_RfctrlOverride6_save;
21756 u16 NPHY_REV7_RfctrlMiscReg3_save, NPHY_REV7_RfctrlMiscReg4_save;
21757 u16 NPHY_REV7_RfctrlMiscReg5_save, NPHY_REV7_RfctrlMiscReg6_save;
a9533e7e
HP
21758
21759 NPHY_REV7_RfctrlOverride3_save = NPHY_REV7_RfctrlOverride4_save =
21760 NPHY_REV7_RfctrlOverride5_save = NPHY_REV7_RfctrlOverride6_save =
21761 NPHY_REV7_RfctrlMiscReg3_save = NPHY_REV7_RfctrlMiscReg4_save =
21762 NPHY_REV7_RfctrlMiscReg5_save = NPHY_REV7_RfctrlMiscReg6_save = 0;
21763
21764 classif_state = wlc_phy_classifier_nphy(pi, 0, 0);
21765 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
21766 wlc_phy_clip_det_nphy(pi, 0, clip_state);
21767 wlc_phy_clip_det_nphy(pi, 1, clip_off);
21768
21769 NPHY_Rfctrlintc1_save = read_phy_reg(pi, 0x91);
21770 NPHY_Rfctrlintc2_save = read_phy_reg(pi, 0x92);
21771 NPHY_AfectrlOverride1_save = read_phy_reg(pi, 0x8f);
21772 NPHY_AfectrlOverride2_save = read_phy_reg(pi, 0xa5);
21773 NPHY_AfectrlCore1_save = read_phy_reg(pi, 0xa6);
21774 NPHY_AfectrlCore2_save = read_phy_reg(pi, 0xa7);
21775 NPHY_RfctrlOverride0_save = read_phy_reg(pi, 0xe7);
21776 NPHY_RfctrlOverride1_save = read_phy_reg(pi, 0xec);
21777 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21778 NPHY_REV7_RfctrlOverride3_save = read_phy_reg(pi, 0x342);
21779 NPHY_REV7_RfctrlOverride4_save = read_phy_reg(pi, 0x343);
21780 NPHY_REV7_RfctrlOverride5_save = read_phy_reg(pi, 0x346);
21781 NPHY_REV7_RfctrlOverride6_save = read_phy_reg(pi, 0x347);
21782 }
21783 NPHY_RfctrlOverrideAux0_save = read_phy_reg(pi, 0xe5);
21784 NPHY_RfctrlOverrideAux1_save = read_phy_reg(pi, 0xe6);
21785 NPHY_RfctrlCmd_save = read_phy_reg(pi, 0x78);
21786 NPHY_RfctrlMiscReg1_save = read_phy_reg(pi, 0xf9);
21787 NPHY_RfctrlMiscReg2_save = read_phy_reg(pi, 0xfb);
21788 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21789 NPHY_REV7_RfctrlMiscReg3_save = read_phy_reg(pi, 0x340);
21790 NPHY_REV7_RfctrlMiscReg4_save = read_phy_reg(pi, 0x341);
21791 NPHY_REV7_RfctrlMiscReg5_save = read_phy_reg(pi, 0x344);
21792 NPHY_REV7_RfctrlMiscReg6_save = read_phy_reg(pi, 0x345);
21793 }
21794 NPHY_RfctrlRSSIOTHERS1_save = read_phy_reg(pi, 0x7a);
21795 NPHY_RfctrlRSSIOTHERS2_save = read_phy_reg(pi, 0x7d);
21796
21797 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_OFF, 0,
21798 RADIO_MIMO_CORESEL_ALLRXTX);
21799 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_TRSW, 1,
21800 RADIO_MIMO_CORESEL_ALLRXTX);
21801
21802 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21803 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21804 NPHY_REV7_RfctrlOverride_cmd_rxrf_pu,
21805 0, 0, 0);
21806 } else {
21807 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0, 0);
21808 }
21809
21810 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21811 wlc_phy_rfctrl_override_1tomany_nphy(pi,
21812 NPHY_REV7_RfctrlOverride_cmd_rx_pu,
21813 1, 0, 0);
21814 } else {
21815 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0, 0);
21816 }
21817
21818 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21819 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
21820 1, 0, 0,
21821 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21822 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 6), 1, 0, 0,
21823 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21824 } else {
21825 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 7), 1, 0, 0);
21826 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 6), 1, 0, 0);
21827 }
21828
21829 if (CHSPEC_IS5G(pi->radio_chanspec)) {
21830 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21831 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
21832 0, 0, 0,
21833 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21834 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 1, 0,
21835 0,
21836 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21837 } else {
21838 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 0, 0, 0);
21839 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 1, 0, 0);
21840 }
21841
21842 } else {
21843 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21844 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4),
21845 0, 0, 0,
21846 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21847 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 1, 0,
21848 0,
21849 NPHY_REV7_RFCTRLOVERRIDE_ID0);
21850 } else {
21851 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 4), 0, 0, 0);
21852 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 5), 1, 0, 0);
21853 }
21854 }
21855
21856 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
21857
21858 vcm_level_max = 8;
21859
21860 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21861
21862 if ((rxcore_state & (1 << core)) == 0)
21863 continue;
21864
21865 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21866 core ==
21867 PHY_CORE_0 ?
21868 RADIO_MIMO_CORESEL_CORE1 :
21869 RADIO_MIMO_CORESEL_CORE2,
21870 NPHY_RAIL_I, NPHY_RSSI_SEL_NB);
21871 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
21872 core ==
21873 PHY_CORE_0 ?
21874 RADIO_MIMO_CORESEL_CORE1 :
21875 RADIO_MIMO_CORESEL_CORE2,
21876 NPHY_RAIL_Q, NPHY_RSSI_SEL_NB);
21877
21878 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21879 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21880
21881 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21882 RADIO_2057_NB_MASTER_CORE0 :
21883 RADIO_2057_NB_MASTER_CORE1,
21884 RADIO_2057_VCM_MASK, vcm);
21885 } else {
21886
21887 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21888 ((core ==
21889 PHY_CORE_0) ? RADIO_2056_RX0 :
21890 RADIO_2056_RX1),
21891 RADIO_2056_VCM_MASK,
21892 vcm << RADIO_2056_RSSI_VCM_SHIFT);
21893 }
21894
21895 wlc_phy_poll_rssi_nphy(pi, NPHY_RSSI_SEL_NB,
21896 &poll_results[vcm][0],
21897 NPHY_RSSICAL_NPOLL);
21898 }
21899
21900 for (result_idx = 0; result_idx < 4; result_idx++) {
21901 if ((core == result_idx / 2) && (result_idx % 2 == 0)) {
21902
21903 min_d = NPHY_RSSICAL_MAXD;
21904 min_vcm = 0;
21905 min_poll =
21906 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL +
21907 1;
21908 for (vcm = 0; vcm < vcm_level_max; vcm++) {
21909 curr_d = poll_results[vcm][result_idx] *
21910 poll_results[vcm][result_idx] +
21911 poll_results[vcm][result_idx + 1] *
21912 poll_results[vcm][result_idx + 1];
21913 if (curr_d < min_d) {
21914 min_d = curr_d;
21915 min_vcm = vcm;
21916 }
21917 if (poll_results[vcm][result_idx] <
21918 min_poll) {
21919 min_poll =
21920 poll_results[vcm]
21921 [result_idx];
21922 }
21923 }
21924 vcm_final = min_vcm;
21925 poll_results_min[result_idx] = min_poll;
21926 }
21927 }
21928
21929 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
21930 mod_radio_reg(pi, (core == PHY_CORE_0) ?
21931 RADIO_2057_NB_MASTER_CORE0 :
21932 RADIO_2057_NB_MASTER_CORE1,
21933 RADIO_2057_VCM_MASK, vcm_final);
21934 } else {
21935 mod_radio_reg(pi, RADIO_2056_RX_RSSI_MISC |
21936 ((core ==
21937 PHY_CORE_0) ? RADIO_2056_RX0 :
21938 RADIO_2056_RX1), RADIO_2056_VCM_MASK,
21939 vcm_final << RADIO_2056_RSSI_VCM_SHIFT);
21940 }
21941
21942 for (result_idx = 0; result_idx < 4; result_idx++) {
21943 if (core == result_idx / 2) {
21944 fine_digital_offset[result_idx] =
21945 (NPHY_RSSICAL_NB_TARGET *
21946 NPHY_RSSICAL_NPOLL) -
21947 poll_results[vcm_final][result_idx];
21948 if (fine_digital_offset[result_idx] < 0) {
21949 fine_digital_offset[result_idx] =
21950 ABS(fine_digital_offset
21951 [result_idx]);
21952 fine_digital_offset[result_idx] +=
21953 (NPHY_RSSICAL_NPOLL / 2);
21954 fine_digital_offset[result_idx] /=
21955 NPHY_RSSICAL_NPOLL;
21956 fine_digital_offset[result_idx] =
21957 -fine_digital_offset[result_idx];
21958 } else {
21959 fine_digital_offset[result_idx] +=
21960 (NPHY_RSSICAL_NPOLL / 2);
21961 fine_digital_offset[result_idx] /=
21962 NPHY_RSSICAL_NPOLL;
21963 }
21964
21965 if (poll_results_min[result_idx] ==
21966 NPHY_RSSICAL_MAXREAD * NPHY_RSSICAL_NPOLL) {
21967 fine_digital_offset[result_idx] =
21968 (NPHY_RSSICAL_NB_TARGET -
21969 NPHY_RSSICAL_MAXREAD - 1);
21970 }
21971
21972 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 21973 (s8)
a9533e7e
HP
21974 fine_digital_offset
21975 [result_idx],
21976 (result_idx /
21977 2 ==
21978 0) ?
21979 RADIO_MIMO_CORESEL_CORE1
21980 :
21981 RADIO_MIMO_CORESEL_CORE2,
21982 (result_idx %
21983 2 ==
21984 0) ? NPHY_RAIL_I
21985 : NPHY_RAIL_Q,
21986 NPHY_RSSI_SEL_NB);
21987 }
21988 }
21989
21990 }
21991
21992 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
21993
21994 if ((rxcore_state & (1 << core)) == 0)
21995 continue;
21996
21997 for (wb_cnt = 0; wb_cnt < 2; wb_cnt++) {
21998 if (wb_cnt == 0) {
21999 rssi_type = NPHY_RSSI_SEL_W1;
22000 target_code = NPHY_RSSICAL_W1_TARGET_REV3;
22001 } else {
22002 rssi_type = NPHY_RSSI_SEL_W2;
22003 target_code = NPHY_RSSICAL_W2_TARGET_REV3;
22004 }
22005
22006 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22007 core ==
22008 PHY_CORE_0 ?
22009 RADIO_MIMO_CORESEL_CORE1
22010 :
22011 RADIO_MIMO_CORESEL_CORE2,
22012 NPHY_RAIL_I, rssi_type);
22013 wlc_phy_scale_offset_rssi_nphy(pi, 0x0, 0x0,
22014 core ==
22015 PHY_CORE_0 ?
22016 RADIO_MIMO_CORESEL_CORE1
22017 :
22018 RADIO_MIMO_CORESEL_CORE2,
22019 NPHY_RAIL_Q, rssi_type);
22020
22021 wlc_phy_poll_rssi_nphy(pi, rssi_type, poll_result_core,
22022 NPHY_RSSICAL_NPOLL);
22023
22024 for (result_idx = 0; result_idx < 4; result_idx++) {
22025 if (core == result_idx / 2) {
22026 fine_digital_offset[result_idx] =
22027 (target_code * NPHY_RSSICAL_NPOLL) -
22028 poll_result_core[result_idx];
22029 if (fine_digital_offset[result_idx] < 0) {
22030 fine_digital_offset[result_idx]
22031 =
22032 ABS(fine_digital_offset
22033 [result_idx]);
22034 fine_digital_offset[result_idx]
22035 += (NPHY_RSSICAL_NPOLL / 2);
22036 fine_digital_offset[result_idx]
22037 /= NPHY_RSSICAL_NPOLL;
22038 fine_digital_offset[result_idx]
22039 =
22040 -fine_digital_offset
22041 [result_idx];
22042 } else {
22043 fine_digital_offset[result_idx]
22044 += (NPHY_RSSICAL_NPOLL / 2);
22045 fine_digital_offset[result_idx]
22046 /= NPHY_RSSICAL_NPOLL;
22047 }
22048
22049 wlc_phy_scale_offset_rssi_nphy(pi, 0x0,
562c8850 22050 (s8)
a9533e7e
HP
22051 fine_digital_offset
22052 [core *
22053 2],
22054 (core ==
22055 PHY_CORE_0)
22056 ?
22057 RADIO_MIMO_CORESEL_CORE1
22058 :
22059 RADIO_MIMO_CORESEL_CORE2,
22060 (result_idx
22061 % 2 ==
22062 0) ?
22063 NPHY_RAIL_I
22064 :
22065 NPHY_RAIL_Q,
22066 rssi_type);
22067 }
22068 }
22069
22070 }
22071 }
22072
22073 write_phy_reg(pi, 0x91, NPHY_Rfctrlintc1_save);
22074 write_phy_reg(pi, 0x92, NPHY_Rfctrlintc2_save);
22075
22076 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
22077
22078 mod_phy_reg(pi, 0xe7, (0x1 << 0), 1 << 0);
22079 mod_phy_reg(pi, 0x78, (0x1 << 0), 1 << 0);
22080 mod_phy_reg(pi, 0xe7, (0x1 << 0), 0);
22081
22082 mod_phy_reg(pi, 0xec, (0x1 << 0), 1 << 0);
22083 mod_phy_reg(pi, 0x78, (0x1 << 1), 1 << 1);
22084 mod_phy_reg(pi, 0xec, (0x1 << 0), 0);
22085
22086 write_phy_reg(pi, 0x8f, NPHY_AfectrlOverride1_save);
22087 write_phy_reg(pi, 0xa5, NPHY_AfectrlOverride2_save);
22088 write_phy_reg(pi, 0xa6, NPHY_AfectrlCore1_save);
22089 write_phy_reg(pi, 0xa7, NPHY_AfectrlCore2_save);
22090 write_phy_reg(pi, 0xe7, NPHY_RfctrlOverride0_save);
22091 write_phy_reg(pi, 0xec, NPHY_RfctrlOverride1_save);
22092 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22093 write_phy_reg(pi, 0x342, NPHY_REV7_RfctrlOverride3_save);
22094 write_phy_reg(pi, 0x343, NPHY_REV7_RfctrlOverride4_save);
22095 write_phy_reg(pi, 0x346, NPHY_REV7_RfctrlOverride5_save);
22096 write_phy_reg(pi, 0x347, NPHY_REV7_RfctrlOverride6_save);
22097 }
22098 write_phy_reg(pi, 0xe5, NPHY_RfctrlOverrideAux0_save);
22099 write_phy_reg(pi, 0xe6, NPHY_RfctrlOverrideAux1_save);
22100 write_phy_reg(pi, 0x78, NPHY_RfctrlCmd_save);
22101 write_phy_reg(pi, 0xf9, NPHY_RfctrlMiscReg1_save);
22102 write_phy_reg(pi, 0xfb, NPHY_RfctrlMiscReg2_save);
22103 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22104 write_phy_reg(pi, 0x340, NPHY_REV7_RfctrlMiscReg3_save);
22105 write_phy_reg(pi, 0x341, NPHY_REV7_RfctrlMiscReg4_save);
22106 write_phy_reg(pi, 0x344, NPHY_REV7_RfctrlMiscReg5_save);
22107 write_phy_reg(pi, 0x345, NPHY_REV7_RfctrlMiscReg6_save);
22108 }
22109 write_phy_reg(pi, 0x7a, NPHY_RfctrlRSSIOTHERS1_save);
22110 write_phy_reg(pi, 0x7d, NPHY_RfctrlRSSIOTHERS2_save);
22111
22112 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22113 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22114 pi->rssical_cache.rssical_radio_regs_2G[0] =
22115 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22116 pi->rssical_cache.rssical_radio_regs_2G[1] =
22117 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22118 } else {
22119 pi->rssical_cache.rssical_radio_regs_2G[0] =
22120 read_radio_reg(pi,
22121 RADIO_2056_RX_RSSI_MISC |
22122 RADIO_2056_RX0);
22123 pi->rssical_cache.rssical_radio_regs_2G[1] =
22124 read_radio_reg(pi,
22125 RADIO_2056_RX_RSSI_MISC |
22126 RADIO_2056_RX1);
22127 }
22128
22129 pi->rssical_cache.rssical_phyregs_2G[0] =
22130 read_phy_reg(pi, 0x1a6);
22131 pi->rssical_cache.rssical_phyregs_2G[1] =
22132 read_phy_reg(pi, 0x1ac);
22133 pi->rssical_cache.rssical_phyregs_2G[2] =
22134 read_phy_reg(pi, 0x1b2);
22135 pi->rssical_cache.rssical_phyregs_2G[3] =
22136 read_phy_reg(pi, 0x1b8);
22137 pi->rssical_cache.rssical_phyregs_2G[4] =
22138 read_phy_reg(pi, 0x1a4);
22139 pi->rssical_cache.rssical_phyregs_2G[5] =
22140 read_phy_reg(pi, 0x1aa);
22141 pi->rssical_cache.rssical_phyregs_2G[6] =
22142 read_phy_reg(pi, 0x1b0);
22143 pi->rssical_cache.rssical_phyregs_2G[7] =
22144 read_phy_reg(pi, 0x1b6);
22145 pi->rssical_cache.rssical_phyregs_2G[8] =
22146 read_phy_reg(pi, 0x1a5);
22147 pi->rssical_cache.rssical_phyregs_2G[9] =
22148 read_phy_reg(pi, 0x1ab);
22149 pi->rssical_cache.rssical_phyregs_2G[10] =
22150 read_phy_reg(pi, 0x1b1);
22151 pi->rssical_cache.rssical_phyregs_2G[11] =
22152 read_phy_reg(pi, 0x1b7);
22153
22154 pi->nphy_rssical_chanspec_2G = pi->radio_chanspec;
22155 } else {
22156 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22157 pi->rssical_cache.rssical_radio_regs_5G[0] =
22158 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0);
22159 pi->rssical_cache.rssical_radio_regs_5G[1] =
22160 read_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1);
22161 } else {
22162 pi->rssical_cache.rssical_radio_regs_5G[0] =
22163 read_radio_reg(pi,
22164 RADIO_2056_RX_RSSI_MISC |
22165 RADIO_2056_RX0);
22166 pi->rssical_cache.rssical_radio_regs_5G[1] =
22167 read_radio_reg(pi,
22168 RADIO_2056_RX_RSSI_MISC |
22169 RADIO_2056_RX1);
22170 }
22171
22172 pi->rssical_cache.rssical_phyregs_5G[0] =
22173 read_phy_reg(pi, 0x1a6);
22174 pi->rssical_cache.rssical_phyregs_5G[1] =
22175 read_phy_reg(pi, 0x1ac);
22176 pi->rssical_cache.rssical_phyregs_5G[2] =
22177 read_phy_reg(pi, 0x1b2);
22178 pi->rssical_cache.rssical_phyregs_5G[3] =
22179 read_phy_reg(pi, 0x1b8);
22180 pi->rssical_cache.rssical_phyregs_5G[4] =
22181 read_phy_reg(pi, 0x1a4);
22182 pi->rssical_cache.rssical_phyregs_5G[5] =
22183 read_phy_reg(pi, 0x1aa);
22184 pi->rssical_cache.rssical_phyregs_5G[6] =
22185 read_phy_reg(pi, 0x1b0);
22186 pi->rssical_cache.rssical_phyregs_5G[7] =
22187 read_phy_reg(pi, 0x1b6);
22188 pi->rssical_cache.rssical_phyregs_5G[8] =
22189 read_phy_reg(pi, 0x1a5);
22190 pi->rssical_cache.rssical_phyregs_5G[9] =
22191 read_phy_reg(pi, 0x1ab);
22192 pi->rssical_cache.rssical_phyregs_5G[10] =
22193 read_phy_reg(pi, 0x1b1);
22194 pi->rssical_cache.rssical_phyregs_5G[11] =
22195 read_phy_reg(pi, 0x1b7);
22196
22197 pi->nphy_rssical_chanspec_5G = pi->radio_chanspec;
22198 }
22199
22200 wlc_phy_classifier_nphy(pi, (0x7 << 0), classif_state);
22201 wlc_phy_clip_det_nphy(pi, 1, clip_state);
22202}
22203
7cc4a4c0 22204static void wlc_phy_restore_rssical_nphy(phy_info_t *pi)
a9533e7e 22205{
a9533e7e
HP
22206 if (CHSPEC_IS2G(pi->radio_chanspec)) {
22207 if (pi->nphy_rssical_chanspec_2G == 0)
22208 return;
22209
22210 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22211 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22212 RADIO_2057_VCM_MASK,
22213 pi->rssical_cache.
22214 rssical_radio_regs_2G[0]);
22215 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22216 RADIO_2057_VCM_MASK,
22217 pi->rssical_cache.
22218 rssical_radio_regs_2G[1]);
22219 } else {
22220 mod_radio_reg(pi,
22221 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22222 RADIO_2056_VCM_MASK,
22223 pi->rssical_cache.
22224 rssical_radio_regs_2G[0]);
22225 mod_radio_reg(pi,
22226 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22227 RADIO_2056_VCM_MASK,
22228 pi->rssical_cache.
22229 rssical_radio_regs_2G[1]);
22230 }
22231
22232 write_phy_reg(pi, 0x1a6,
22233 pi->rssical_cache.rssical_phyregs_2G[0]);
22234 write_phy_reg(pi, 0x1ac,
22235 pi->rssical_cache.rssical_phyregs_2G[1]);
22236 write_phy_reg(pi, 0x1b2,
22237 pi->rssical_cache.rssical_phyregs_2G[2]);
22238 write_phy_reg(pi, 0x1b8,
22239 pi->rssical_cache.rssical_phyregs_2G[3]);
22240 write_phy_reg(pi, 0x1a4,
22241 pi->rssical_cache.rssical_phyregs_2G[4]);
22242 write_phy_reg(pi, 0x1aa,
22243 pi->rssical_cache.rssical_phyregs_2G[5]);
22244 write_phy_reg(pi, 0x1b0,
22245 pi->rssical_cache.rssical_phyregs_2G[6]);
22246 write_phy_reg(pi, 0x1b6,
22247 pi->rssical_cache.rssical_phyregs_2G[7]);
22248 write_phy_reg(pi, 0x1a5,
22249 pi->rssical_cache.rssical_phyregs_2G[8]);
22250 write_phy_reg(pi, 0x1ab,
22251 pi->rssical_cache.rssical_phyregs_2G[9]);
22252 write_phy_reg(pi, 0x1b1,
22253 pi->rssical_cache.rssical_phyregs_2G[10]);
22254 write_phy_reg(pi, 0x1b7,
22255 pi->rssical_cache.rssical_phyregs_2G[11]);
22256
22257 } else {
22258 if (pi->nphy_rssical_chanspec_5G == 0)
22259 return;
22260
22261 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22262 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE0,
22263 RADIO_2057_VCM_MASK,
22264 pi->rssical_cache.
22265 rssical_radio_regs_5G[0]);
22266 mod_radio_reg(pi, RADIO_2057_NB_MASTER_CORE1,
22267 RADIO_2057_VCM_MASK,
22268 pi->rssical_cache.
22269 rssical_radio_regs_5G[1]);
22270 } else {
22271 mod_radio_reg(pi,
22272 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX0,
22273 RADIO_2056_VCM_MASK,
22274 pi->rssical_cache.
22275 rssical_radio_regs_5G[0]);
22276 mod_radio_reg(pi,
22277 RADIO_2056_RX_RSSI_MISC | RADIO_2056_RX1,
22278 RADIO_2056_VCM_MASK,
22279 pi->rssical_cache.
22280 rssical_radio_regs_5G[1]);
22281 }
22282
22283 write_phy_reg(pi, 0x1a6,
22284 pi->rssical_cache.rssical_phyregs_5G[0]);
22285 write_phy_reg(pi, 0x1ac,
22286 pi->rssical_cache.rssical_phyregs_5G[1]);
22287 write_phy_reg(pi, 0x1b2,
22288 pi->rssical_cache.rssical_phyregs_5G[2]);
22289 write_phy_reg(pi, 0x1b8,
22290 pi->rssical_cache.rssical_phyregs_5G[3]);
22291 write_phy_reg(pi, 0x1a4,
22292 pi->rssical_cache.rssical_phyregs_5G[4]);
22293 write_phy_reg(pi, 0x1aa,
22294 pi->rssical_cache.rssical_phyregs_5G[5]);
22295 write_phy_reg(pi, 0x1b0,
22296 pi->rssical_cache.rssical_phyregs_5G[6]);
22297 write_phy_reg(pi, 0x1b6,
22298 pi->rssical_cache.rssical_phyregs_5G[7]);
22299 write_phy_reg(pi, 0x1a5,
22300 pi->rssical_cache.rssical_phyregs_5G[8]);
22301 write_phy_reg(pi, 0x1ab,
22302 pi->rssical_cache.rssical_phyregs_5G[9]);
22303 write_phy_reg(pi, 0x1b1,
22304 pi->rssical_cache.rssical_phyregs_5G[10]);
22305 write_phy_reg(pi, 0x1b7,
22306 pi->rssical_cache.rssical_phyregs_5G[11]);
22307 }
22308}
22309
7d4df48e 22310static u16
66cbd3ab 22311wlc_phy_gen_load_samples_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
e868ab03 22312 u8 dac_test_mode)
a9533e7e 22313{
e868ab03 22314 u8 phy_bw, is_phybw40;
7d4df48e 22315 u16 num_samps, t, spur;
a9533e7e 22316 fixed theta = 0, rot = 0;
66cbd3ab 22317 u32 tbl_len;
3e26416e 22318 cs32 *tone_buf = NULL;
a9533e7e
HP
22319
22320 is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
22321 phy_bw = (is_phybw40 == 1) ? 40 : 20;
22322 tbl_len = (phy_bw << 3);
22323
22324 if (dac_test_mode == 1) {
22325 spur = read_phy_reg(pi, 0x01);
22326 spur = (spur >> 15) & 1;
22327 phy_bw = (spur == 1) ? 82 : 80;
22328 phy_bw = (is_phybw40 == 1) ? (phy_bw << 1) : phy_bw;
22329
22330 tbl_len = (phy_bw << 1);
22331 }
22332
5fcc1fcb 22333 tone_buf = kmalloc(sizeof(cs32) * tbl_len, GFP_ATOMIC);
ca8c1e59 22334 if (tone_buf == NULL) {
a9533e7e
HP
22335 return 0;
22336 }
22337
7d4df48e 22338 num_samps = (u16) tbl_len;
a9533e7e
HP
22339 rot = FIXED((f_kHz * 36) / phy_bw) / 100;
22340 theta = 0;
22341
22342 for (t = 0; t < num_samps; t++) {
22343
22344 wlc_phy_cordic(theta, &tone_buf[t]);
22345
22346 theta += rot;
22347
3e26416e
GKH
22348 tone_buf[t].q = (s32) FLOAT(tone_buf[t].q * max_val);
22349 tone_buf[t].i = (s32) FLOAT(tone_buf[t].i * max_val);
a9533e7e
HP
22350 }
22351
22352 wlc_phy_loadsampletable_nphy(pi, tone_buf, num_samps);
22353
46d994b1 22354 kfree(tone_buf);
a9533e7e
HP
22355
22356 return num_samps;
22357}
22358
22359int
66cbd3ab 22360wlc_phy_tx_tone_nphy(phy_info_t *pi, u32 f_kHz, u16 max_val,
e868ab03 22361 u8 iqmode, u8 dac_test_mode, bool modify_bbmult)
a9533e7e 22362{
7d4df48e
GKH
22363 u16 num_samps;
22364 u16 loops = 0xffff;
22365 u16 wait = 0;
a9533e7e 22366
ca8c1e59
JC
22367 num_samps =
22368 wlc_phy_gen_load_samples_nphy(pi, f_kHz, max_val, dac_test_mode);
22369 if (num_samps == 0) {
b74ac12e 22370 return -EBADE;
a9533e7e
HP
22371 }
22372
22373 wlc_phy_runsamples_nphy(pi, num_samps, loops, wait, iqmode,
22374 dac_test_mode, modify_bbmult);
22375
a1c5ad81 22376 return 0;
a9533e7e
HP
22377}
22378
22379static void
3e26416e 22380wlc_phy_loadsampletable_nphy(phy_info_t *pi, cs32 *tone_buf,
7d4df48e 22381 u16 num_samps)
a9533e7e 22382{
7d4df48e 22383 u16 t;
66cbd3ab 22384 u32 *data_buf = NULL;
a9533e7e 22385
5fcc1fcb 22386 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC);
ca8c1e59 22387 if (data_buf == NULL) {
a9533e7e
HP
22388 return;
22389 }
22390
22391 if (pi->phyhang_avoid)
0f0881b0 22392 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22393
22394 for (t = 0; t < num_samps; t++) {
22395 data_buf[t] = ((((unsigned int)tone_buf[t].i) & 0x3ff) << 10) |
22396 (((unsigned int)tone_buf[t].q) & 0x3ff);
22397 }
22398 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SAMPLEPLAY, num_samps, 0, 32,
22399 data_buf);
22400
46d994b1 22401 kfree(data_buf);
a9533e7e
HP
22402
22403 if (pi->phyhang_avoid)
0965ae88 22404 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22405}
22406
22407static void
7d4df48e
GKH
22408wlc_phy_runsamples_nphy(phy_info_t *pi, u16 num_samps, u16 loops,
22409 u16 wait, u8 iqmode, u8 dac_test_mode,
a9533e7e
HP
22410 bool modify_bbmult)
22411{
7d4df48e 22412 u16 bb_mult;
e868ab03 22413 u8 phy_bw, sample_cmd;
7d4df48e
GKH
22414 u16 orig_RfseqCoreActv;
22415 u16 lpf_bw_ctl_override3, lpf_bw_ctl_override4, lpf_bw_ctl_miscreg3,
a9533e7e
HP
22416 lpf_bw_ctl_miscreg4;
22417
22418 if (pi->phyhang_avoid)
0f0881b0 22419 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22420
22421 phy_bw = 20;
22422 if (CHSPEC_IS40(pi->radio_chanspec))
22423 phy_bw = 40;
22424
22425 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22426
22427 lpf_bw_ctl_override3 = read_phy_reg(pi, 0x342) & (0x1 << 7);
22428 lpf_bw_ctl_override4 = read_phy_reg(pi, 0x343) & (0x1 << 7);
22429 if (lpf_bw_ctl_override3 | lpf_bw_ctl_override4) {
22430 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22431 (0x7 << 8);
22432 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22433 (0x7 << 8);
22434 } else {
22435 wlc_phy_rfctrl_override_nphy_rev7(pi,
22436 (0x1 << 7),
22437 wlc_phy_read_lpf_bw_ctl_nphy
22438 (pi, 0), 0, 0,
22439 NPHY_REV7_RFCTRLOVERRIDE_ID1);
22440
0f0881b0 22441 pi->nphy_sample_play_lpf_bw_ctl_ovr = true;
a9533e7e
HP
22442
22443 lpf_bw_ctl_miscreg3 = read_phy_reg(pi, 0x340) &
22444 (0x7 << 8);
22445 lpf_bw_ctl_miscreg4 = read_phy_reg(pi, 0x341) &
22446 (0x7 << 8);
22447 }
22448 }
22449
22450 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) == 0) {
22451
22452 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22453 &bb_mult);
22454 pi->nphy_bb_mult_save =
22455 BB_MULT_VALID_MASK | (bb_mult & BB_MULT_MASK);
22456 }
22457
22458 if (modify_bbmult) {
22459 bb_mult = (phy_bw == 20) ? 100 : 71;
22460 bb_mult = (bb_mult << 8) + bb_mult;
22461 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22462 &bb_mult);
22463 }
22464
22465 if (pi->phyhang_avoid)
0965ae88 22466 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22467
22468 write_phy_reg(pi, 0xc6, num_samps - 1);
22469
22470 if (loops != 0xffff) {
22471 write_phy_reg(pi, 0xc4, loops - 1);
22472 } else {
22473 write_phy_reg(pi, 0xc4, loops);
22474 }
22475 write_phy_reg(pi, 0xc5, wait);
22476
22477 orig_RfseqCoreActv = read_phy_reg(pi, 0xa1);
22478 or_phy_reg(pi, 0xa1, NPHY_RfseqMode_CoreActv_override);
22479 if (iqmode) {
22480
22481 and_phy_reg(pi, 0xc2, 0x7FFF);
22482
22483 or_phy_reg(pi, 0xc2, 0x8000);
22484 } else {
22485
22486 sample_cmd = (dac_test_mode == 1) ? 0x5 : 0x1;
22487 write_phy_reg(pi, 0xc3, sample_cmd);
22488 }
22489
22490 SPINWAIT(((read_phy_reg(pi, 0xa4) & 0x1) == 1), 1000);
22491
22492 write_phy_reg(pi, 0xa1, orig_RfseqCoreActv);
22493}
22494
7cc4a4c0 22495void wlc_phy_stopplayback_nphy(phy_info_t *pi)
a9533e7e 22496{
7d4df48e
GKH
22497 u16 playback_status;
22498 u16 bb_mult;
a9533e7e
HP
22499
22500 if (pi->phyhang_avoid)
0f0881b0 22501 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22502
22503 playback_status = read_phy_reg(pi, 0xc7);
22504 if (playback_status & 0x1) {
22505 or_phy_reg(pi, 0xc3, NPHY_sampleCmd_STOP);
22506 } else if (playback_status & 0x2) {
22507
22508 and_phy_reg(pi, 0xc2,
7d4df48e 22509 (u16) ~NPHY_iqloCalCmdGctl_IQLO_CAL_EN);
a9533e7e
HP
22510 }
22511
7d4df48e 22512 and_phy_reg(pi, 0xc3, (u16) ~(0x1 << 2));
a9533e7e
HP
22513
22514 if ((pi->nphy_bb_mult_save & BB_MULT_VALID_MASK) != 0) {
22515
22516 bb_mult = pi->nphy_bb_mult_save & BB_MULT_MASK;
22517 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, 87, 16,
22518 &bb_mult);
22519
22520 pi->nphy_bb_mult_save = 0;
22521 }
22522
22523 if (NREV_IS(pi->pubpi.phy_rev, 7) || NREV_GE(pi->pubpi.phy_rev, 8)) {
22524 if (pi->nphy_sample_play_lpf_bw_ctl_ovr) {
22525 wlc_phy_rfctrl_override_nphy_rev7(pi,
22526 (0x1 << 7),
22527 0, 0, 1,
22528 NPHY_REV7_RFCTRLOVERRIDE_ID1);
0965ae88 22529 pi->nphy_sample_play_lpf_bw_ctl_ovr = false;
a9533e7e
HP
22530 }
22531 }
22532
22533 if (pi->phyhang_avoid)
0965ae88 22534 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22535}
22536
7cc4a4c0 22537nphy_txgains_t wlc_phy_get_tx_gain_nphy(phy_info_t *pi)
a9533e7e 22538{
7d4df48e 22539 u16 base_idx[2], curr_gain[2];
e868ab03 22540 u8 core_no;
a9533e7e 22541 nphy_txgains_t target_gain;
66cbd3ab 22542 u32 *tx_pwrctrl_tbl = NULL;
a9533e7e
HP
22543
22544 if (pi->nphy_txpwrctrl == PHY_TPC_HW_OFF) {
22545 if (pi->phyhang_avoid)
0f0881b0 22546 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
22547
22548 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
22549 curr_gain);
22550
22551 if (pi->phyhang_avoid)
0965ae88 22552 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
22553
22554 for (core_no = 0; core_no < 2; core_no++) {
22555 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22556 target_gain.ipa[core_no] =
22557 curr_gain[core_no] & 0x0007;
22558 target_gain.pad[core_no] =
22559 ((curr_gain[core_no] & 0x00F8) >> 3);
22560 target_gain.pga[core_no] =
22561 ((curr_gain[core_no] & 0x0F00) >> 8);
22562 target_gain.txgm[core_no] =
22563 ((curr_gain[core_no] & 0x7000) >> 12);
22564 target_gain.txlpf[core_no] =
22565 ((curr_gain[core_no] & 0x8000) >> 15);
22566 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22567 target_gain.ipa[core_no] =
22568 curr_gain[core_no] & 0x000F;
22569 target_gain.pad[core_no] =
22570 ((curr_gain[core_no] & 0x00F0) >> 4);
22571 target_gain.pga[core_no] =
22572 ((curr_gain[core_no] & 0x0F00) >> 8);
22573 target_gain.txgm[core_no] =
22574 ((curr_gain[core_no] & 0x7000) >> 12);
22575 } else {
22576 target_gain.ipa[core_no] =
22577 curr_gain[core_no] & 0x0003;
22578 target_gain.pad[core_no] =
22579 ((curr_gain[core_no] & 0x000C) >> 2);
22580 target_gain.pga[core_no] =
22581 ((curr_gain[core_no] & 0x0070) >> 4);
22582 target_gain.txgm[core_no] =
22583 ((curr_gain[core_no] & 0x0380) >> 7);
22584 }
22585 }
22586 } else {
22587 base_idx[0] = (read_phy_reg(pi, 0x1ed) >> 8) & 0x7f;
22588 base_idx[1] = (read_phy_reg(pi, 0x1ee) >> 8) & 0x7f;
22589 for (core_no = 0; core_no < 2; core_no++) {
22590 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22591 if (PHY_IPA(pi)) {
22592 tx_pwrctrl_tbl =
22593 wlc_phy_get_ipa_gaintbl_nphy(pi);
22594 } else {
22595 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22596 if NREV_IS
22597 (pi->pubpi.phy_rev, 3) {
22598 tx_pwrctrl_tbl =
22599 nphy_tpc_5GHz_txgain_rev3;
22600 } else if NREV_IS
22601 (pi->pubpi.phy_rev, 4) {
22602 tx_pwrctrl_tbl =
22603 (pi->srom_fem5g.
22604 extpagain ==
22605 3) ?
22606 nphy_tpc_5GHz_txgain_HiPwrEPA
22607 :
22608 nphy_tpc_5GHz_txgain_rev4;
22609 } else {
22610 tx_pwrctrl_tbl =
22611 nphy_tpc_5GHz_txgain_rev5;
22612 }
22613 } else {
22614 if (NREV_GE
22615 (pi->pubpi.phy_rev, 7)) {
22616 if (pi->pubpi.
22617 radiorev == 3) {
22618 tx_pwrctrl_tbl =
22619 nphy_tpc_txgain_epa_2057rev3;
22620 } else if (pi->pubpi.
22621 radiorev ==
22622 5) {
22623 tx_pwrctrl_tbl =
22624 nphy_tpc_txgain_epa_2057rev5;
22625 }
22626
22627 } else {
22628 if (NREV_GE
22629 (pi->pubpi.phy_rev,
22630 5)
22631 && (pi->srom_fem2g.
22632 extpagain ==
22633 3)) {
22634 tx_pwrctrl_tbl =
22635 nphy_tpc_txgain_HiPwrEPA;
22636 } else {
22637 tx_pwrctrl_tbl =
22638 nphy_tpc_txgain_rev3;
22639 }
22640 }
22641 }
22642 }
22643 if NREV_GE
22644 (pi->pubpi.phy_rev, 7) {
22645 target_gain.ipa[core_no] =
22646 (tx_pwrctrl_tbl[base_idx[core_no]]
22647 >> 16) & 0x7;
22648 target_gain.pad[core_no] =
22649 (tx_pwrctrl_tbl[base_idx[core_no]]
22650 >> 19) & 0x1f;
22651 target_gain.pga[core_no] =
22652 (tx_pwrctrl_tbl[base_idx[core_no]]
22653 >> 24) & 0xf;
22654 target_gain.txgm[core_no] =
22655 (tx_pwrctrl_tbl[base_idx[core_no]]
22656 >> 28) & 0x7;
22657 target_gain.txlpf[core_no] =
22658 (tx_pwrctrl_tbl[base_idx[core_no]]
22659 >> 31) & 0x1;
22660 } else {
22661 target_gain.ipa[core_no] =
22662 (tx_pwrctrl_tbl[base_idx[core_no]]
22663 >> 16) & 0xf;
22664 target_gain.pad[core_no] =
22665 (tx_pwrctrl_tbl[base_idx[core_no]]
22666 >> 20) & 0xf;
22667 target_gain.pga[core_no] =
22668 (tx_pwrctrl_tbl[base_idx[core_no]]
22669 >> 24) & 0xf;
22670 target_gain.txgm[core_no] =
22671 (tx_pwrctrl_tbl[base_idx[core_no]]
22672 >> 28) & 0x7;
22673 }
22674 } else {
22675 target_gain.ipa[core_no] =
22676 (nphy_tpc_txgain[base_idx[core_no]] >> 16) &
22677 0x3;
22678 target_gain.pad[core_no] =
22679 (nphy_tpc_txgain[base_idx[core_no]] >> 18) &
22680 0x3;
22681 target_gain.pga[core_no] =
22682 (nphy_tpc_txgain[base_idx[core_no]] >> 20) &
22683 0x7;
22684 target_gain.txgm[core_no] =
22685 (nphy_tpc_txgain[base_idx[core_no]] >> 23) &
22686 0x7;
22687 }
22688 }
22689 }
22690
90ea2296 22691 return target_gain;
a9533e7e
HP
22692}
22693
22694static void
7d4df48e 22695wlc_phy_iqcal_gainparams_nphy(phy_info_t *pi, u16 core_no,
a9533e7e 22696 nphy_txgains_t target_gain,
7cc4a4c0 22697 nphy_iqcal_params_t *params)
a9533e7e 22698{
e868ab03 22699 u8 k;
a9533e7e 22700 int idx;
7d4df48e 22701 u16 gain_index;
e868ab03 22702 u8 band_idx = (CHSPEC_IS5G(pi->radio_chanspec) ? 1 : 0);
a9533e7e
HP
22703
22704 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22705 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22706 params->txlpf = target_gain.txlpf[core_no];
22707 }
22708 params->txgm = target_gain.txgm[core_no];
22709 params->pga = target_gain.pga[core_no];
22710 params->pad = target_gain.pad[core_no];
22711 params->ipa = target_gain.ipa[core_no];
22712 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22713 params->cal_gain =
22714 ((params->txlpf << 15) | (params->
22715 txgm << 12) | (params->
22716 pga << 8) |
22717 (params->pad << 3) | (params->ipa));
22718 } else {
22719 params->cal_gain =
22720 ((params->txgm << 12) | (params->
22721 pga << 8) | (params->
22722 pad << 4) |
22723 (params->ipa));
22724 }
22725 params->ncorr[0] = 0x79;
22726 params->ncorr[1] = 0x79;
22727 params->ncorr[2] = 0x79;
22728 params->ncorr[3] = 0x79;
22729 params->ncorr[4] = 0x79;
22730 } else {
22731
22732 gain_index = ((target_gain.pad[core_no] << 0) |
22733 (target_gain.pga[core_no] << 4) | (target_gain.
22734 txgm[core_no]
22735 << 8));
22736
22737 idx = -1;
22738 for (k = 0; k < NPHY_IQCAL_NUMGAINS; k++) {
22739 if (tbl_iqcal_gainparams_nphy[band_idx][k][0] ==
22740 gain_index) {
22741 idx = k;
22742 break;
22743 }
22744 }
22745
a9533e7e
HP
22746 params->txgm = tbl_iqcal_gainparams_nphy[band_idx][k][1];
22747 params->pga = tbl_iqcal_gainparams_nphy[band_idx][k][2];
22748 params->pad = tbl_iqcal_gainparams_nphy[band_idx][k][3];
22749 params->cal_gain = ((params->txgm << 7) | (params->pga << 4) |
22750 (params->pad << 2));
22751 params->ncorr[0] = tbl_iqcal_gainparams_nphy[band_idx][k][4];
22752 params->ncorr[1] = tbl_iqcal_gainparams_nphy[band_idx][k][5];
22753 params->ncorr[2] = tbl_iqcal_gainparams_nphy[band_idx][k][6];
22754 params->ncorr[3] = tbl_iqcal_gainparams_nphy[band_idx][k][7];
22755 }
22756}
22757
7cc4a4c0 22758static void wlc_phy_txcal_radio_setup_nphy(phy_info_t *pi)
a9533e7e 22759{
7d4df48e 22760 u16 jtag_core, core;
a9533e7e
HP
22761
22762 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
22763
22764 for (core = 0; core <= 1; core++) {
22765
22766 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22767 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22768 TX_SSI_MASTER);
22769
22770 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22771 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22772 IQCAL_VCM_HG);
22773
22774 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22775 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22776 IQCAL_IDAC);
22777
22778 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22779 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM);
22780
22781 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] = 0;
22782
22783 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22784 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22785 TX_SSI_MUX);
22786
22787 if (pi->pubpi.radiorev != 5)
22788 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22789 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22790 TSSIA);
22791
22792 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22793 READ_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG);
22794
22795 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22796 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
22797 TSSI_MISC1);
22798
22799 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22800 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22801 TX_SSI_MASTER, 0x0a);
22802 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22803 IQCAL_VCM_HG, 0x43);
22804 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22805 IQCAL_IDAC, 0x55);
22806 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22807 TSSI_VCM, 0x00);
22808 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22809 TSSIG, 0x00);
22810 if (pi->use_int_tx_iqlo_cal_nphy) {
22811 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22812 core, TX_SSI_MUX, 0x4);
22813 if (!
22814 (pi->
e5c4536f 22815 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22816
22817 WRITE_RADIO_REG3(pi, RADIO_2057,
22818 TX, core,
22819 TSSIA, 0x31);
22820 } else {
22821
22822 WRITE_RADIO_REG3(pi, RADIO_2057,
22823 TX, core,
22824 TSSIA, 0x21);
22825 }
22826 }
22827 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22828 TSSI_MISC1, 0x00);
22829 } else {
22830 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22831 TX_SSI_MASTER, 0x06);
22832 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22833 IQCAL_VCM_HG, 0x43);
22834 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22835 IQCAL_IDAC, 0x55);
22836 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22837 TSSI_VCM, 0x00);
22838
22839 if (pi->pubpi.radiorev != 5)
22840 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22841 core, TSSIA, 0x00);
22842 if (pi->use_int_tx_iqlo_cal_nphy) {
22843 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
22844 core, TX_SSI_MUX,
22845 0x06);
22846 if (!
22847 (pi->
e5c4536f 22848 internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
a9533e7e
HP
22849
22850 WRITE_RADIO_REG3(pi, RADIO_2057,
22851 TX, core,
22852 TSSIG, 0x31);
22853 } else {
22854
22855 WRITE_RADIO_REG3(pi, RADIO_2057,
22856 TX, core,
22857 TSSIG, 0x21);
22858 }
22859 }
22860 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
22861 TSSI_MISC1, 0x00);
22862 }
22863 }
22864 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
22865
22866 for (core = 0; core <= 1; core++) {
22867 jtag_core =
22868 (core ==
22869 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
22870
22871 pi->tx_rx_cal_radio_saveregs[(core * 11) + 0] =
22872 read_radio_reg(pi,
22873 RADIO_2056_TX_TX_SSI_MASTER |
22874 jtag_core);
22875
22876 pi->tx_rx_cal_radio_saveregs[(core * 11) + 1] =
22877 read_radio_reg(pi,
22878 RADIO_2056_TX_IQCAL_VCM_HG |
22879 jtag_core);
22880
22881 pi->tx_rx_cal_radio_saveregs[(core * 11) + 2] =
22882 read_radio_reg(pi,
22883 RADIO_2056_TX_IQCAL_IDAC |
22884 jtag_core);
22885
22886 pi->tx_rx_cal_radio_saveregs[(core * 11) + 3] =
22887 read_radio_reg(pi,
22888 RADIO_2056_TX_TSSI_VCM | jtag_core);
22889
22890 pi->tx_rx_cal_radio_saveregs[(core * 11) + 4] =
22891 read_radio_reg(pi,
22892 RADIO_2056_TX_TX_AMP_DET |
22893 jtag_core);
22894
22895 pi->tx_rx_cal_radio_saveregs[(core * 11) + 5] =
22896 read_radio_reg(pi,
22897 RADIO_2056_TX_TX_SSI_MUX |
22898 jtag_core);
22899
22900 pi->tx_rx_cal_radio_saveregs[(core * 11) + 6] =
22901 read_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core);
22902
22903 pi->tx_rx_cal_radio_saveregs[(core * 11) + 7] =
22904 read_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core);
22905
22906 pi->tx_rx_cal_radio_saveregs[(core * 11) + 8] =
22907 read_radio_reg(pi,
22908 RADIO_2056_TX_TSSI_MISC1 |
22909 jtag_core);
22910
22911 pi->tx_rx_cal_radio_saveregs[(core * 11) + 9] =
22912 read_radio_reg(pi,
22913 RADIO_2056_TX_TSSI_MISC2 |
22914 jtag_core);
22915
22916 pi->tx_rx_cal_radio_saveregs[(core * 11) + 10] =
22917 read_radio_reg(pi,
22918 RADIO_2056_TX_TSSI_MISC3 |
22919 jtag_core);
22920
22921 if (CHSPEC_IS5G(pi->radio_chanspec)) {
22922 write_radio_reg(pi,
22923 RADIO_2056_TX_TX_SSI_MASTER |
22924 jtag_core, 0x0a);
22925 write_radio_reg(pi,
22926 RADIO_2056_TX_IQCAL_VCM_HG |
22927 jtag_core, 0x40);
22928 write_radio_reg(pi,
22929 RADIO_2056_TX_IQCAL_IDAC |
22930 jtag_core, 0x55);
22931 write_radio_reg(pi,
22932 RADIO_2056_TX_TSSI_VCM |
22933 jtag_core, 0x00);
22934 write_radio_reg(pi,
22935 RADIO_2056_TX_TX_AMP_DET |
22936 jtag_core, 0x00);
22937
22938 if (PHY_IPA(pi)) {
22939 write_radio_reg(pi,
22940 RADIO_2056_TX_TX_SSI_MUX
22941 | jtag_core, 0x4);
22942 write_radio_reg(pi,
22943 RADIO_2056_TX_TSSIA |
22944 jtag_core, 0x1);
22945 } else {
22946 write_radio_reg(pi,
22947 RADIO_2056_TX_TX_SSI_MUX
22948 | jtag_core, 0x00);
22949 write_radio_reg(pi,
22950 RADIO_2056_TX_TSSIA |
22951 jtag_core, 0x2f);
22952 }
22953 write_radio_reg(pi,
22954 RADIO_2056_TX_TSSIG | jtag_core,
22955 0x00);
22956 write_radio_reg(pi,
22957 RADIO_2056_TX_TSSI_MISC1 |
22958 jtag_core, 0x00);
22959
22960 write_radio_reg(pi,
22961 RADIO_2056_TX_TSSI_MISC2 |
22962 jtag_core, 0x00);
22963 write_radio_reg(pi,
22964 RADIO_2056_TX_TSSI_MISC3 |
22965 jtag_core, 0x00);
22966 } else {
22967 write_radio_reg(pi,
22968 RADIO_2056_TX_TX_SSI_MASTER |
22969 jtag_core, 0x06);
22970 write_radio_reg(pi,
22971 RADIO_2056_TX_IQCAL_VCM_HG |
22972 jtag_core, 0x40);
22973 write_radio_reg(pi,
22974 RADIO_2056_TX_IQCAL_IDAC |
22975 jtag_core, 0x55);
22976 write_radio_reg(pi,
22977 RADIO_2056_TX_TSSI_VCM |
22978 jtag_core, 0x00);
22979 write_radio_reg(pi,
22980 RADIO_2056_TX_TX_AMP_DET |
22981 jtag_core, 0x00);
22982 write_radio_reg(pi,
22983 RADIO_2056_TX_TSSIA | jtag_core,
22984 0x00);
22985
22986 if (PHY_IPA(pi)) {
22987
22988 write_radio_reg(pi,
22989 RADIO_2056_TX_TX_SSI_MUX
22990 | jtag_core, 0x06);
22991 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
22992
22993 write_radio_reg(pi,
22994 RADIO_2056_TX_TSSIG
22995 | jtag_core,
22996 0x11);
22997 } else {
22998
22999 write_radio_reg(pi,
23000 RADIO_2056_TX_TSSIG
23001 | jtag_core,
23002 0x1);
23003 }
23004 } else {
23005 write_radio_reg(pi,
23006 RADIO_2056_TX_TX_SSI_MUX
23007 | jtag_core, 0x00);
23008 write_radio_reg(pi,
23009 RADIO_2056_TX_TSSIG |
23010 jtag_core, 0x20);
23011 }
23012
23013 write_radio_reg(pi,
23014 RADIO_2056_TX_TSSI_MISC1 |
23015 jtag_core, 0x00);
23016 write_radio_reg(pi,
23017 RADIO_2056_TX_TSSI_MISC2 |
23018 jtag_core, 0x00);
23019 write_radio_reg(pi,
23020 RADIO_2056_TX_TSSI_MISC3 |
23021 jtag_core, 0x00);
23022 }
23023 }
23024 } else {
23025
23026 pi->tx_rx_cal_radio_saveregs[0] =
23027 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1);
23028 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1, 0x29);
23029 pi->tx_rx_cal_radio_saveregs[1] =
23030 read_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2);
23031 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2, 0x54);
23032
23033 pi->tx_rx_cal_radio_saveregs[2] =
23034 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1);
23035 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1, 0x29);
23036 pi->tx_rx_cal_radio_saveregs[3] =
23037 read_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2);
23038 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2, 0x54);
23039
23040 pi->tx_rx_cal_radio_saveregs[4] =
23041 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1);
23042 pi->tx_rx_cal_radio_saveregs[5] =
23043 read_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2);
23044
23045 if ((read_phy_reg(pi, 0x09) & NPHY_BandControl_currentBand) ==
23046 0) {
23047
23048 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x04);
23049 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x04);
23050 } else {
23051
23052 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1, 0x20);
23053 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2, 0x20);
23054 }
23055
23056 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
23057
23058 or_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0x20);
23059 or_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0x20);
23060 } else {
23061
23062 and_radio_reg(pi, RADIO_2055_CORE1_TX_BB_MXGM, 0xdf);
23063 and_radio_reg(pi, RADIO_2055_CORE2_TX_BB_MXGM, 0xdf);
23064 }
23065 }
23066}
23067
7cc4a4c0 23068static void wlc_phy_txcal_radio_cleanup_nphy(phy_info_t *pi)
a9533e7e 23069{
7d4df48e 23070 u16 jtag_core, core;
a9533e7e
HP
23071
23072 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23073 for (core = 0; core <= 1; core++) {
23074
23075 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23076 TX_SSI_MASTER,
23077 pi->
23078 tx_rx_cal_radio_saveregs[(core * 11) +
23079 0]);
23080
23081 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
23082 pi->
23083 tx_rx_cal_radio_saveregs[(core * 11) +
23084 1]);
23085
23086 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
23087 pi->
23088 tx_rx_cal_radio_saveregs[(core * 11) +
23089 2]);
23090
23091 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
23092 pi->
23093 tx_rx_cal_radio_saveregs[(core * 11) +
23094 3]);
23095
23096 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TX_SSI_MUX,
23097 pi->
23098 tx_rx_cal_radio_saveregs[(core * 11) +
23099 5]);
23100
23101 if (pi->pubpi.radiorev != 5)
23102 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
23103 TSSIA,
23104 pi->
23105 tx_rx_cal_radio_saveregs[(core
23106 *
23107 11) +
23108 6]);
23109
23110 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSIG,
23111 pi->
23112 tx_rx_cal_radio_saveregs[(core * 11) +
23113 7]);
23114
23115 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
23116 pi->
23117 tx_rx_cal_radio_saveregs[(core * 11) +
23118 8]);
23119 }
23120 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23121 for (core = 0; core <= 1; core++) {
23122 jtag_core =
23123 (core ==
23124 PHY_CORE_0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
23125
23126 write_radio_reg(pi,
23127 RADIO_2056_TX_TX_SSI_MASTER | jtag_core,
23128 pi->
23129 tx_rx_cal_radio_saveregs[(core * 11) +
23130 0]);
23131
23132 write_radio_reg(pi,
23133 RADIO_2056_TX_IQCAL_VCM_HG | jtag_core,
23134 pi->
23135 tx_rx_cal_radio_saveregs[(core * 11) +
23136 1]);
23137
23138 write_radio_reg(pi,
23139 RADIO_2056_TX_IQCAL_IDAC | jtag_core,
23140 pi->
23141 tx_rx_cal_radio_saveregs[(core * 11) +
23142 2]);
23143
23144 write_radio_reg(pi, RADIO_2056_TX_TSSI_VCM | jtag_core,
23145 pi->
23146 tx_rx_cal_radio_saveregs[(core * 11) +
23147 3]);
23148
23149 write_radio_reg(pi,
23150 RADIO_2056_TX_TX_AMP_DET | jtag_core,
23151 pi->
23152 tx_rx_cal_radio_saveregs[(core * 11) +
23153 4]);
23154
23155 write_radio_reg(pi,
23156 RADIO_2056_TX_TX_SSI_MUX | jtag_core,
23157 pi->
23158 tx_rx_cal_radio_saveregs[(core * 11) +
23159 5]);
23160
23161 write_radio_reg(pi, RADIO_2056_TX_TSSIA | jtag_core,
23162 pi->
23163 tx_rx_cal_radio_saveregs[(core * 11) +
23164 6]);
23165
23166 write_radio_reg(pi, RADIO_2056_TX_TSSIG | jtag_core,
23167 pi->
23168 tx_rx_cal_radio_saveregs[(core * 11) +
23169 7]);
23170
23171 write_radio_reg(pi,
23172 RADIO_2056_TX_TSSI_MISC1 | jtag_core,
23173 pi->
23174 tx_rx_cal_radio_saveregs[(core * 11) +
23175 8]);
23176
23177 write_radio_reg(pi,
23178 RADIO_2056_TX_TSSI_MISC2 | jtag_core,
23179 pi->
23180 tx_rx_cal_radio_saveregs[(core * 11) +
23181 9]);
23182
23183 write_radio_reg(pi,
23184 RADIO_2056_TX_TSSI_MISC3 | jtag_core,
23185 pi->
23186 tx_rx_cal_radio_saveregs[(core * 11) +
23187 10]);
23188 }
23189 } else {
23190
23191 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL1,
23192 pi->tx_rx_cal_radio_saveregs[0]);
23193 write_radio_reg(pi, RADIO_2055_CORE1_TXRF_IQCAL2,
23194 pi->tx_rx_cal_radio_saveregs[1]);
23195 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL1,
23196 pi->tx_rx_cal_radio_saveregs[2]);
23197 write_radio_reg(pi, RADIO_2055_CORE2_TXRF_IQCAL2,
23198 pi->tx_rx_cal_radio_saveregs[3]);
23199 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE1,
23200 pi->tx_rx_cal_radio_saveregs[4]);
23201 write_radio_reg(pi, RADIO_2055_PWRDET_RXTX_CORE2,
23202 pi->tx_rx_cal_radio_saveregs[5]);
23203 }
23204}
23205
7cc4a4c0 23206static void wlc_phy_txcal_physetup_nphy(phy_info_t *pi)
a9533e7e 23207{
7d4df48e 23208 u16 val, mask;
a9533e7e
HP
23209
23210 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23211 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23212 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23213
23214 mask = ((0x3 << 8) | (0x3 << 10));
23215 val = (0x2 << 8);
23216 val |= (0x2 << 10);
23217 mod_phy_reg(pi, 0xa6, mask, val);
23218 mod_phy_reg(pi, 0xa7, mask, val);
23219
23220 val = read_phy_reg(pi, 0x8f);
23221 pi->tx_rx_cal_phy_saveregs[2] = val;
23222 val |= ((0x1 << 9) | (0x1 << 10));
23223 write_phy_reg(pi, 0x8f, val);
23224
23225 val = read_phy_reg(pi, 0xa5);
23226 pi->tx_rx_cal_phy_saveregs[3] = val;
23227 val |= ((0x1 << 9) | (0x1 << 10));
23228 write_phy_reg(pi, 0xa5, val);
23229
23230 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x01);
23231 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23232
23233 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23234 &val);
23235 pi->tx_rx_cal_phy_saveregs[5] = val;
23236 val = 0;
23237 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23238 &val);
23239
23240 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23241 &val);
23242 pi->tx_rx_cal_phy_saveregs[6] = val;
23243 val = 0;
23244 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23245 &val);
23246
23247 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0x91);
23248 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0x92);
23249
23250 if (!(pi->use_int_tx_iqlo_cal_nphy)) {
23251
23252 wlc_phy_rfctrlintc_override_nphy(pi,
23253 NPHY_RfctrlIntc_override_PA,
23254 1,
23255 RADIO_MIMO_CORESEL_CORE1
23256 |
23257 RADIO_MIMO_CORESEL_CORE2);
23258 } else {
23259
23260 wlc_phy_rfctrlintc_override_nphy(pi,
23261 NPHY_RfctrlIntc_override_PA,
23262 0,
23263 RADIO_MIMO_CORESEL_CORE1
23264 |
23265 RADIO_MIMO_CORESEL_CORE2);
23266 }
23267
23268 wlc_phy_rfctrlintc_override_nphy(pi,
23269 NPHY_RfctrlIntc_override_TRSW,
23270 0x2, RADIO_MIMO_CORESEL_CORE1);
23271 wlc_phy_rfctrlintc_override_nphy(pi,
23272 NPHY_RfctrlIntc_override_TRSW,
23273 0x8, RADIO_MIMO_CORESEL_CORE2);
23274
23275 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
23276 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
23277 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
23278 0x29b, (0x1 << 0), (0) << 0);
23279
23280 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
23281 0x29b, (0x1 << 0), (0) << 0);
23282
23283 if (NREV_IS(pi->pubpi.phy_rev, 7)
23284 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23285 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
23286 wlc_phy_read_lpf_bw_ctl_nphy
23287 (pi, 0), 0, 0,
23288 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23289 }
23290
23291 if (pi->use_int_tx_iqlo_cal_nphy
23292 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23293
23294 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23295
23296 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23297 1 << 4);
23298
23299 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23300 mod_radio_reg(pi,
23301 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23302 1, 0);
23303 mod_radio_reg(pi,
23304 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23305 1, 0);
23306 } else {
23307 mod_radio_reg(pi,
23308 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23309 1, 0);
23310 mod_radio_reg(pi,
23311 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23312 1, 0);
23313 }
23314 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23315 wlc_phy_rfctrl_override_nphy_rev7(pi,
23316 (0x1 << 3), 0,
23317 0x3, 0,
23318 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23319 }
23320 }
23321 } else {
23322 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa6);
23323 pi->tx_rx_cal_phy_saveregs[1] = read_phy_reg(pi, 0xa7);
23324
23325 mask = ((0x3 << 12) | (0x3 << 14));
23326 val = (0x2 << 12);
23327 val |= (0x2 << 14);
23328 mod_phy_reg(pi, 0xa6, mask, val);
23329 mod_phy_reg(pi, 0xa7, mask, val);
23330
23331 val = read_phy_reg(pi, 0xa5);
23332 pi->tx_rx_cal_phy_saveregs[2] = val;
23333 val |= ((0x1 << 12) | (0x1 << 13));
23334 write_phy_reg(pi, 0xa5, val);
23335
23336 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23337 &val);
23338 pi->tx_rx_cal_phy_saveregs[3] = val;
23339 val |= 0x2000;
23340 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23341 &val);
23342
23343 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23344 &val);
23345 pi->tx_rx_cal_phy_saveregs[4] = val;
23346 val |= 0x2000;
23347 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23348 &val);
23349
23350 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x91);
23351 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x92);
23352 val = CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 : 0x120;
23353 write_phy_reg(pi, 0x91, val);
23354 write_phy_reg(pi, 0x92, val);
23355 }
23356}
23357
7cc4a4c0 23358static void wlc_phy_txcal_phycleanup_nphy(phy_info_t *pi)
a9533e7e 23359{
7d4df48e 23360 u16 mask;
a9533e7e
HP
23361
23362 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23363 write_phy_reg(pi, 0xa6, pi->tx_rx_cal_phy_saveregs[0]);
23364 write_phy_reg(pi, 0xa7, pi->tx_rx_cal_phy_saveregs[1]);
23365 write_phy_reg(pi, 0x8f, pi->tx_rx_cal_phy_saveregs[2]);
23366 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[3]);
23367 write_phy_reg(pi, 0x01, pi->tx_rx_cal_phy_saveregs[4]);
23368
23369 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 3, 16,
23370 &pi->tx_rx_cal_phy_saveregs[5]);
23371 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 19, 16,
23372 &pi->tx_rx_cal_phy_saveregs[6]);
23373
23374 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[7]);
23375 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[8]);
23376
23377 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
23378 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
23379
23380 if (NREV_IS(pi->pubpi.phy_rev, 7)
23381 || NREV_GE(pi->pubpi.phy_rev, 8)) {
23382 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
23383 1,
23384 NPHY_REV7_RFCTRLOVERRIDE_ID1);
23385 }
23386
23387 wlc_phy_resetcca_nphy(pi);
23388
23389 if (pi->use_int_tx_iqlo_cal_nphy
23390 && !(pi->internal_tx_iqlo_cal_tapoff_intpa_nphy)) {
23391
23392 if (NREV_IS(pi->pubpi.phy_rev, 7)) {
23393 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23394 mod_radio_reg(pi,
23395 RADIO_2057_PAD2G_TUNE_PUS_CORE0,
23396 1, 1);
23397 mod_radio_reg(pi,
23398 RADIO_2057_PAD2G_TUNE_PUS_CORE1,
23399 1, 1);
23400 } else {
23401 mod_radio_reg(pi,
23402 RADIO_2057_IPA5G_CASCOFFV_PU_CORE0,
23403 1, 1);
23404 mod_radio_reg(pi,
23405 RADIO_2057_IPA5G_CASCOFFV_PU_CORE1,
23406 1, 1);
23407 }
23408
23409 mod_radio_reg(pi, RADIO_2057_OVR_REG0, 1 << 4,
23410 0);
23411 } else if (NREV_GE(pi->pubpi.phy_rev, 8)) {
23412 wlc_phy_rfctrl_override_nphy_rev7(pi,
23413 (0x1 << 3), 0,
23414 0x3, 1,
23415 NPHY_REV7_RFCTRLOVERRIDE_ID0);
23416 }
23417 }
23418 } else {
23419 mask = ((0x3 << 12) | (0x3 << 14));
23420 mod_phy_reg(pi, 0xa6, mask, pi->tx_rx_cal_phy_saveregs[0]);
23421 mod_phy_reg(pi, 0xa7, mask, pi->tx_rx_cal_phy_saveregs[1]);
23422 write_phy_reg(pi, 0xa5, pi->tx_rx_cal_phy_saveregs[2]);
23423
23424 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 2, 16,
23425 &pi->tx_rx_cal_phy_saveregs[3]);
23426
23427 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_AFECTRL, 1, 18, 16,
23428 &pi->tx_rx_cal_phy_saveregs[4]);
23429
23430 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[5]);
23431 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[6]);
23432 }
23433}
23434
23435#define NPHY_CAL_TSSISAMPS 64
23436#define NPHY_TEST_TONE_FREQ_40MHz 4000
23437#define NPHY_TEST_TONE_FREQ_20MHz 2500
23438
23439void
3e26416e 23440wlc_phy_est_tonepwr_nphy(phy_info_t *pi, s32 *qdBm_pwrbuf, u8 num_samps)
a9533e7e 23441{
7d4df48e 23442 u16 tssi_reg;
3e26416e
GKH
23443 s32 temp, pwrindex[2];
23444 s32 idle_tssi[2];
23445 s32 rssi_buf[4];
23446 s32 tssival[2];
e868ab03 23447 u8 tssi_type;
a9533e7e
HP
23448
23449 tssi_reg = read_phy_reg(pi, 0x1e9);
23450
3e26416e 23451 temp = (s32) (tssi_reg & 0x3f);
a9533e7e
HP
23452 idle_tssi[0] = (temp <= 31) ? temp : (temp - 64);
23453
3e26416e 23454 temp = (s32) ((tssi_reg >> 8) & 0x3f);
a9533e7e
HP
23455 idle_tssi[1] = (temp <= 31) ? temp : (temp - 64);
23456
23457 tssi_type =
23458 CHSPEC_IS5G(pi->radio_chanspec) ?
73d924bf 23459 (u8)NPHY_RSSI_SEL_TSSI_5G : (u8)NPHY_RSSI_SEL_TSSI_2G;
a9533e7e
HP
23460
23461 wlc_phy_poll_rssi_nphy(pi, tssi_type, rssi_buf, num_samps);
23462
3e26416e
GKH
23463 tssival[0] = rssi_buf[0] / ((s32) num_samps);
23464 tssival[1] = rssi_buf[2] / ((s32) num_samps);
a9533e7e
HP
23465
23466 pwrindex[0] = idle_tssi[0] - tssival[0] + 64;
23467 pwrindex[1] = idle_tssi[1] - tssival[1] + 64;
23468
23469 if (pwrindex[0] < 0) {
23470 pwrindex[0] = 0;
23471 } else if (pwrindex[0] > 63) {
23472 pwrindex[0] = 63;
23473 }
23474
23475 if (pwrindex[1] < 0) {
23476 pwrindex[1] = 0;
23477 } else if (pwrindex[1] > 63) {
23478 pwrindex[1] = 63;
23479 }
23480
23481 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 1,
66cbd3ab 23482 (u32) pwrindex[0], 32, &qdBm_pwrbuf[0]);
a9533e7e 23483 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 1,
66cbd3ab 23484 (u32) pwrindex[1], 32, &qdBm_pwrbuf[1]);
a9533e7e
HP
23485}
23486
7cc4a4c0 23487static void wlc_phy_internal_cal_txgain_nphy(phy_info_t *pi)
a9533e7e 23488{
7d4df48e 23489 u16 txcal_gain[2];
a9533e7e
HP
23490
23491 pi->nphy_txcal_pwr_idx[0] = pi->nphy_cal_orig_pwr_idx[0];
23492 pi->nphy_txcal_pwr_idx[1] = pi->nphy_cal_orig_pwr_idx[0];
0f0881b0
GKH
23493 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23494 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
a9533e7e
HP
23495
23496 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23497 txcal_gain);
23498
23499 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23500 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F40;
23501 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F40;
23502 } else {
23503 txcal_gain[0] = (txcal_gain[0] & 0xF000) | 0x0F60;
23504 txcal_gain[1] = (txcal_gain[1] & 0xF000) | 0x0F60;
23505 }
23506
23507 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
23508 txcal_gain);
23509}
23510
7cc4a4c0 23511static void wlc_phy_precal_txgain_nphy(phy_info_t *pi)
a9533e7e 23512{
0965ae88 23513 bool save_bbmult = false;
e868ab03
GKH
23514 u8 txcal_index_2057_rev5n7 = 0;
23515 u8 txcal_index_2057_rev3n4n6 = 10;
a9533e7e
HP
23516
23517 if (pi->use_int_tx_iqlo_cal_nphy) {
23518 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23519 if ((pi->pubpi.radiorev == 3) ||
23520 (pi->pubpi.radiorev == 4) ||
23521 (pi->pubpi.radiorev == 6)) {
23522
23523 pi->nphy_txcal_pwr_idx[0] =
23524 txcal_index_2057_rev3n4n6;
23525 pi->nphy_txcal_pwr_idx[1] =
23526 txcal_index_2057_rev3n4n6;
23527 wlc_phy_txpwr_index_nphy(pi, 3,
23528 txcal_index_2057_rev3n4n6,
0965ae88 23529 false);
a9533e7e
HP
23530 } else {
23531
23532 pi->nphy_txcal_pwr_idx[0] =
23533 txcal_index_2057_rev5n7;
23534 pi->nphy_txcal_pwr_idx[1] =
23535 txcal_index_2057_rev5n7;
23536 wlc_phy_txpwr_index_nphy(pi, 3,
23537 txcal_index_2057_rev5n7,
0965ae88 23538 false);
a9533e7e 23539 }
0f0881b0 23540 save_bbmult = true;
a9533e7e
HP
23541
23542 } else if (NREV_LT(pi->pubpi.phy_rev, 5)) {
0965ae88 23543 wlc_phy_cal_txgainctrl_nphy(pi, 11, false);
a9533e7e
HP
23544 if (pi->sh->hw_phytxchain != 3) {
23545 pi->nphy_txcal_pwr_idx[1] =
23546 pi->nphy_txcal_pwr_idx[0];
23547 wlc_phy_txpwr_index_nphy(pi, 3,
23548 pi->
23549 nphy_txcal_pwr_idx[0],
0f0881b0
GKH
23550 true);
23551 save_bbmult = true;
a9533e7e
HP
23552 }
23553
23554 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
23555 if (PHY_IPA(pi)) {
23556 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23557 wlc_phy_cal_txgainctrl_nphy(pi, 12,
0965ae88 23558 false);
a9533e7e
HP
23559 } else {
23560 pi->nphy_txcal_pwr_idx[0] = 80;
23561 pi->nphy_txcal_pwr_idx[1] = 80;
23562 wlc_phy_txpwr_index_nphy(pi, 3, 80,
0965ae88 23563 false);
0f0881b0 23564 save_bbmult = true;
a9533e7e
HP
23565 }
23566 } else {
23567
23568 wlc_phy_internal_cal_txgain_nphy(pi);
0f0881b0 23569 save_bbmult = true;
a9533e7e
HP
23570 }
23571
23572 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
23573 if (PHY_IPA(pi)) {
23574 if (CHSPEC_IS2G(pi->radio_chanspec)) {
23575 wlc_phy_cal_txgainctrl_nphy(pi, 12,
0965ae88 23576 false);
a9533e7e
HP
23577 } else {
23578 wlc_phy_cal_txgainctrl_nphy(pi, 14,
0965ae88 23579 false);
a9533e7e
HP
23580 }
23581 } else {
23582
23583 wlc_phy_internal_cal_txgain_nphy(pi);
0f0881b0 23584 save_bbmult = true;
a9533e7e
HP
23585 }
23586 }
23587
23588 } else {
0965ae88 23589 wlc_phy_cal_txgainctrl_nphy(pi, 10, false);
a9533e7e
HP
23590 }
23591
23592 if (save_bbmult) {
23593 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
23594 &pi->nphy_txcal_bbmult);
23595 }
23596}
23597
23598void
3e26416e 23599wlc_phy_cal_txgainctrl_nphy(phy_info_t *pi, s32 dBm_targetpower, bool debug)
a9533e7e
HP
23600{
23601 int gainctrl_loopidx;
23602 uint core;
7d4df48e 23603 u16 m0m1, curr_m0m1;
3e26416e
GKH
23604 s32 delta_power;
23605 s32 txpwrindex;
23606 s32 qdBm_power[2];
7d4df48e
GKH
23607 u16 orig_BBConfig;
23608 u16 phy_saveregs[4];
66cbd3ab 23609 u32 freq_test;
7d4df48e 23610 u16 ampl_test = 250;
a9533e7e 23611 uint stepsize;
0965ae88 23612 bool phyhang_avoid_state = false;
a9533e7e
HP
23613
23614 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
23615
23616 stepsize = 2;
23617 } else {
23618
23619 stepsize = 1;
23620 }
23621
23622 if (CHSPEC_IS40(pi->radio_chanspec)) {
23623 freq_test = 5000;
23624 } else {
23625 freq_test = 2500;
23626 }
23627
0f0881b0
GKH
23628 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_cal_orig_pwr_idx[0], true);
23629 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_cal_orig_pwr_idx[1], true);
a9533e7e
HP
23630
23631 if (pi->phyhang_avoid)
0f0881b0 23632 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
23633
23634 phyhang_avoid_state = pi->phyhang_avoid;
0965ae88 23635 pi->phyhang_avoid = false;
a9533e7e
HP
23636
23637 phy_saveregs[0] = read_phy_reg(pi, 0x91);
23638 phy_saveregs[1] = read_phy_reg(pi, 0x92);
23639 phy_saveregs[2] = read_phy_reg(pi, 0xe7);
23640 phy_saveregs[3] = read_phy_reg(pi, 0xec);
23641 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 1,
23642 RADIO_MIMO_CORESEL_CORE1 |
23643 RADIO_MIMO_CORESEL_CORE2);
23644
23645 if (!debug) {
23646 wlc_phy_rfctrlintc_override_nphy(pi,
23647 NPHY_RfctrlIntc_override_TRSW,
23648 0x2, RADIO_MIMO_CORESEL_CORE1);
23649 wlc_phy_rfctrlintc_override_nphy(pi,
23650 NPHY_RfctrlIntc_override_TRSW,
23651 0x8, RADIO_MIMO_CORESEL_CORE2);
23652 } else {
23653 wlc_phy_rfctrlintc_override_nphy(pi,
23654 NPHY_RfctrlIntc_override_TRSW,
23655 0x1, RADIO_MIMO_CORESEL_CORE1);
23656 wlc_phy_rfctrlintc_override_nphy(pi,
23657 NPHY_RfctrlIntc_override_TRSW,
23658 0x7, RADIO_MIMO_CORESEL_CORE2);
23659 }
23660
23661 orig_BBConfig = read_phy_reg(pi, 0x01);
23662 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
23663
23664 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
23665
23666 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
3e26416e 23667 txpwrindex = (s32) pi->nphy_cal_orig_pwr_idx[core];
a9533e7e
HP
23668
23669 for (gainctrl_loopidx = 0; gainctrl_loopidx < 2;
23670 gainctrl_loopidx++) {
23671 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
0965ae88 23672 false);
a9533e7e
HP
23673
23674 if (core == PHY_CORE_0) {
23675 curr_m0m1 = m0m1 & 0xff00;
23676 } else {
23677 curr_m0m1 = m0m1 & 0x00ff;
23678 }
23679
23680 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &curr_m0m1);
23681 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &curr_m0m1);
23682
7383141b 23683 udelay(50);
a9533e7e
HP
23684
23685 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23686 NPHY_CAL_TSSISAMPS);
23687
23688 pi->nphy_bb_mult_save = 0;
23689 wlc_phy_stopplayback_nphy(pi);
23690
23691 delta_power = (dBm_targetpower * 4) - qdBm_power[core];
23692
23693 txpwrindex -= stepsize * delta_power;
23694 if (txpwrindex < 0) {
23695 txpwrindex = 0;
23696 } else if (txpwrindex > 127) {
23697 txpwrindex = 127;
23698 }
23699
23700 if (CHSPEC_IS5G(pi->radio_chanspec)) {
23701 if (NREV_IS(pi->pubpi.phy_rev, 4) &&
23702 (pi->srom_fem5g.extpagain == 3)) {
23703 if (txpwrindex < 30) {
23704 txpwrindex = 30;
23705 }
23706 }
23707 } else {
23708 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
23709 (pi->srom_fem2g.extpagain == 3)) {
23710 if (txpwrindex < 50) {
23711 txpwrindex = 50;
23712 }
23713 }
23714 }
23715
23716 wlc_phy_txpwr_index_nphy(pi, (1 << core),
0f0881b0 23717 (u8) txpwrindex, true);
a9533e7e
HP
23718 }
23719
e868ab03 23720 pi->nphy_txcal_pwr_idx[core] = (u8) txpwrindex;
a9533e7e
HP
23721
23722 if (debug) {
7d4df48e
GKH
23723 u16 radio_gain;
23724 u16 dbg_m0m1;
a9533e7e
HP
23725
23726 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23727
23728 wlc_phy_tx_tone_nphy(pi, freq_test, ampl_test, 0, 0,
0965ae88 23729 false);
a9533e7e
HP
23730
23731 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &dbg_m0m1);
23732 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &dbg_m0m1);
23733
7383141b 23734 udelay(100);
a9533e7e
HP
23735
23736 wlc_phy_est_tonepwr_nphy(pi, qdBm_power,
23737 NPHY_CAL_TSSISAMPS);
23738
23739 wlc_phy_table_read_nphy(pi, 7, 1, (0x110 + core), 16,
23740 &radio_gain);
23741
7383141b 23742 mdelay(4000);
a9533e7e
HP
23743 pi->nphy_bb_mult_save = 0;
23744 wlc_phy_stopplayback_nphy(pi);
23745 }
23746 }
23747
0f0881b0
GKH
23748 wlc_phy_txpwr_index_nphy(pi, 1, pi->nphy_txcal_pwr_idx[0], true);
23749 wlc_phy_txpwr_index_nphy(pi, 2, pi->nphy_txcal_pwr_idx[1], true);
a9533e7e
HP
23750
23751 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &pi->nphy_txcal_bbmult);
23752
23753 write_phy_reg(pi, 0x01, orig_BBConfig);
23754
23755 write_phy_reg(pi, 0x91, phy_saveregs[0]);
23756 write_phy_reg(pi, 0x92, phy_saveregs[1]);
23757 write_phy_reg(pi, 0xe7, phy_saveregs[2]);
23758 write_phy_reg(pi, 0xec, phy_saveregs[3]);
23759
23760 pi->phyhang_avoid = phyhang_avoid_state;
23761
23762 if (pi->phyhang_avoid)
0965ae88 23763 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
23764}
23765
7d4df48e 23766static void wlc_phy_update_txcal_ladder_nphy(phy_info_t *pi, u16 core)
a9533e7e
HP
23767{
23768 int index;
66cbd3ab 23769 u32 bbmult_scale;
7d4df48e
GKH
23770 u16 bbmult;
23771 u16 tblentry;
a9533e7e
HP
23772
23773 nphy_txiqcal_ladder_t ladder_lo[] = {
23774 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23775 {25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
23776 {25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
23777 };
23778
23779 nphy_txiqcal_ladder_t ladder_iq[] = {
23780 {3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
23781 {25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
23782 {100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
23783 };
23784
23785 bbmult = (core == PHY_CORE_0) ?
23786 ((pi->nphy_txcal_bbmult >> 8) & 0xff) : (pi->
23787 nphy_txcal_bbmult & 0xff);
23788
23789 for (index = 0; index < 18; index++) {
23790 bbmult_scale = ladder_lo[index].percent * bbmult;
23791 bbmult_scale /= 100;
23792
23793 tblentry =
23794 ((bbmult_scale & 0xff) << 8) | ladder_lo[index].g_env;
23795 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index, 16,
23796 &tblentry);
23797
23798 bbmult_scale = ladder_iq[index].percent * bbmult;
23799 bbmult_scale /= 100;
23800
23801 tblentry =
23802 ((bbmult_scale & 0xff) << 8) | ladder_iq[index].g_env;
23803 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 1, index + 32,
23804 16, &tblentry);
23805 }
23806}
23807
e868ab03 23808void wlc_phy_cal_perical_nphy_run(phy_info_t *pi, u8 caltype)
a9533e7e
HP
23809{
23810 nphy_txgains_t target_gain;
e868ab03 23811 u8 tx_pwr_ctrl_state;
0f0881b0 23812 bool fullcal = true;
0965ae88 23813 bool restore_tx_gain = false;
a9533e7e
HP
23814 bool mphase;
23815
23816 if (NORADIO_ENAB(pi->pubpi)) {
23817 wlc_phy_cal_perical_mphase_reset(pi);
23818 return;
23819 }
23820
23821 if (PHY_MUTED(pi))
23822 return;
23823
a9533e7e
HP
23824 if (caltype == PHY_PERICAL_AUTO)
23825 fullcal = (pi->radio_chanspec != pi->nphy_txiqlocal_chanspec);
23826 else if (caltype == PHY_PERICAL_PARTIAL)
0965ae88 23827 fullcal = false;
a9533e7e
HP
23828
23829 if (pi->cal_type_override != PHY_PERICAL_AUTO) {
23830 fullcal =
0965ae88 23831 (pi->cal_type_override == PHY_PERICAL_FULL) ? true : false;
a9533e7e
HP
23832 }
23833
23834 if ((pi->mphase_cal_phase_id > MPHASE_CAL_STATE_INIT)) {
23835 if (pi->nphy_txiqlocal_chanspec != pi->radio_chanspec)
23836 wlc_phy_cal_perical_mphase_restart(pi);
23837 }
23838
23839 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_RXCAL)) {
23840 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION, 10000);
23841 }
23842
23843 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23844
23845 wlc_phyreg_enter((wlc_phy_t *) pi);
23846
23847 if ((pi->mphase_cal_phase_id == MPHASE_CAL_STATE_IDLE) ||
23848 (pi->mphase_cal_phase_id == MPHASE_CAL_STATE_INIT)) {
23849 pi->nphy_cal_orig_pwr_idx[0] =
e868ab03 23850 (u8) ((read_phy_reg(pi, 0x1ed) >> 8) & 0x7f);
a9533e7e 23851 pi->nphy_cal_orig_pwr_idx[1] =
e868ab03 23852 (u8) ((read_phy_reg(pi, 0x1ee) >> 8) & 0x7f);
a9533e7e
HP
23853
23854 if (pi->nphy_txpwrctrl != PHY_TPC_HW_OFF) {
23855 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2,
23856 0x110, 16,
23857 pi->nphy_cal_orig_tx_gain);
23858 } else {
23859 pi->nphy_cal_orig_tx_gain[0] = 0;
23860 pi->nphy_cal_orig_tx_gain[1] = 0;
23861 }
23862 }
23863 target_gain = wlc_phy_get_tx_gain_nphy(pi);
23864 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
23865 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
23866
23867 if (pi->antsel_type == ANTSEL_2x3)
0f0881b0 23868 wlc_phy_antsel_init((wlc_phy_t *) pi, true);
a9533e7e
HP
23869
23870 mphase = (pi->mphase_cal_phase_id != MPHASE_CAL_STATE_IDLE);
23871 if (!mphase) {
23872
23873 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23874 wlc_phy_precal_txgain_nphy(pi);
23875 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
0f0881b0 23876 restore_tx_gain = true;
a9533e7e
HP
23877
23878 target_gain = pi->nphy_cal_target_gain;
23879 }
a1c5ad81 23880 if (0 ==
a9533e7e
HP
23881 wlc_phy_cal_txiqlo_nphy(pi, target_gain, fullcal, mphase)) {
23882 if (PHY_IPA(pi))
0f0881b0 23883 wlc_phy_a4(pi, true);
a9533e7e
HP
23884
23885 wlc_phyreg_exit((wlc_phy_t *) pi);
23886 wlapi_enable_mac(pi->sh->physhim);
23887 wlapi_bmac_write_shm(pi->sh->physhim, M_CTS_DURATION,
23888 10000);
23889 wlapi_suspend_mac_and_wait(pi->sh->physhim);
23890 wlc_phyreg_enter((wlc_phy_t *) pi);
23891
a1c5ad81 23892 if (0 == wlc_phy_cal_rxiq_nphy(pi, target_gain,
a9533e7e
HP
23893 (pi->
23894 first_cal_after_assoc
23895 || (pi->
23896 cal_type_override
23897 ==
23898 PHY_PERICAL_FULL))
0965ae88 23899 ? 2 : 0, false)) {
a9533e7e
HP
23900 wlc_phy_savecal_nphy(pi);
23901
23902 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23903
23904 pi->nphy_perical_last = pi->sh->now;
23905 }
23906 }
23907 if (caltype != PHY_PERICAL_AUTO) {
23908 wlc_phy_rssi_cal_nphy(pi);
23909 }
23910
23911 if (pi->first_cal_after_assoc
23912 || (pi->cal_type_override == PHY_PERICAL_FULL)) {
0965ae88 23913 pi->first_cal_after_assoc = false;
a9533e7e
HP
23914 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
23915 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
23916 }
23917
23918 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23919 wlc_phy_radio205x_vcocal_nphy(pi);
23920 }
23921 } else {
a9533e7e
HP
23922 switch (pi->mphase_cal_phase_id) {
23923 case MPHASE_CAL_STATE_INIT:
23924 pi->nphy_perical_last = pi->sh->now;
23925 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
23926
23927 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23928 wlc_phy_precal_txgain_nphy(pi);
23929 }
23930 pi->nphy_cal_target_gain = wlc_phy_get_tx_gain_nphy(pi);
23931 pi->mphase_cal_phase_id++;
23932 break;
23933
23934 case MPHASE_CAL_STATE_TXPHASE0:
23935 case MPHASE_CAL_STATE_TXPHASE1:
23936 case MPHASE_CAL_STATE_TXPHASE2:
23937 case MPHASE_CAL_STATE_TXPHASE3:
23938 case MPHASE_CAL_STATE_TXPHASE4:
23939 case MPHASE_CAL_STATE_TXPHASE5:
23940 if ((pi->radar_percal_mask & 0x10) != 0)
0f0881b0 23941 pi->nphy_rxcal_active = true;
a9533e7e
HP
23942
23943 if (wlc_phy_cal_txiqlo_nphy
23944 (pi, pi->nphy_cal_target_gain, fullcal,
a1c5ad81 23945 true) != 0) {
a9533e7e
HP
23946
23947 wlc_phy_cal_perical_mphase_reset(pi);
23948 break;
23949 }
23950
23951 if (NREV_LE(pi->pubpi.phy_rev, 2) &&
23952 (pi->mphase_cal_phase_id ==
23953 MPHASE_CAL_STATE_TXPHASE4)) {
23954 pi->mphase_cal_phase_id += 2;
23955 } else {
23956 pi->mphase_cal_phase_id++;
23957 }
23958 break;
23959
23960 case MPHASE_CAL_STATE_PAPDCAL:
23961 if ((pi->radar_percal_mask & 0x2) != 0)
0f0881b0 23962 pi->nphy_rxcal_active = true;
a9533e7e
HP
23963
23964 if (PHY_IPA(pi)) {
0f0881b0 23965 wlc_phy_a4(pi, true);
a9533e7e
HP
23966 }
23967 pi->mphase_cal_phase_id++;
23968 break;
23969
23970 case MPHASE_CAL_STATE_RXCAL:
23971 if ((pi->radar_percal_mask & 0x1) != 0)
0f0881b0 23972 pi->nphy_rxcal_active = true;
a9533e7e
HP
23973 if (wlc_phy_cal_rxiq_nphy(pi, target_gain,
23974 (pi->first_cal_after_assoc ||
23975 (pi->cal_type_override ==
23976 PHY_PERICAL_FULL)) ? 2 : 0,
a1c5ad81 23977 false) == 0) {
a9533e7e
HP
23978 wlc_phy_savecal_nphy(pi);
23979 }
23980
23981 pi->mphase_cal_phase_id++;
23982 break;
23983
23984 case MPHASE_CAL_STATE_RSSICAL:
23985 if ((pi->radar_percal_mask & 0x4) != 0)
0f0881b0 23986 pi->nphy_rxcal_active = true;
a9533e7e
HP
23987 wlc_phy_txpwrctrl_coeff_setup_nphy(pi);
23988 wlc_phy_rssi_cal_nphy(pi);
23989
23990 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
23991 wlc_phy_radio205x_vcocal_nphy(pi);
23992 }
0f0881b0 23993 restore_tx_gain = true;
a9533e7e
HP
23994
23995 if (pi->first_cal_after_assoc) {
23996 pi->mphase_cal_phase_id++;
23997 } else {
23998 wlc_phy_cal_perical_mphase_reset(pi);
23999 }
24000
24001 break;
24002
24003 case MPHASE_CAL_STATE_IDLETSSI:
24004 if ((pi->radar_percal_mask & 0x8) != 0)
0f0881b0 24005 pi->nphy_rxcal_active = true;
a9533e7e
HP
24006
24007 if (pi->first_cal_after_assoc) {
0965ae88 24008 pi->first_cal_after_assoc = false;
a9533e7e
HP
24009 wlc_phy_txpwrctrl_idle_tssi_nphy(pi);
24010 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
24011 }
24012
24013 wlc_phy_cal_perical_mphase_reset(pi);
24014 break;
24015
24016 default:
a9533e7e
HP
24017 wlc_phy_cal_perical_mphase_reset(pi);
24018 break;
24019 }
24020 }
24021
24022 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24023 if (restore_tx_gain) {
24024 if (tx_pwr_ctrl_state != PHY_TPC_HW_OFF) {
24025
24026 wlc_phy_txpwr_index_nphy(pi, 1,
24027 pi->
24028 nphy_cal_orig_pwr_idx
0965ae88 24029 [0], false);
a9533e7e
HP
24030 wlc_phy_txpwr_index_nphy(pi, 2,
24031 pi->
24032 nphy_cal_orig_pwr_idx
0965ae88 24033 [1], false);
a9533e7e
HP
24034
24035 pi->nphy_txpwrindex[0].index = -1;
24036 pi->nphy_txpwrindex[1].index = -1;
24037 } else {
24038 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
562c8850 24039 (s8) (pi->
a9533e7e
HP
24040 nphy_txpwrindex
24041 [0].
24042 index_internal),
0965ae88 24043 false);
a9533e7e 24044 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
562c8850 24045 (s8) (pi->
a9533e7e
HP
24046 nphy_txpwrindex
24047 [1].
24048 index_internal),
0965ae88 24049 false);
a9533e7e
HP
24050 }
24051 }
24052 }
24053
24054 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
24055 wlc_phyreg_exit((wlc_phy_t *) pi);
24056 wlapi_enable_mac(pi->sh->physhim);
24057}
24058
24059int
7cc4a4c0 24060wlc_phy_cal_txiqlo_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
24061 bool fullcal, bool mphase)
24062{
7d4df48e
GKH
24063 u16 val;
24064 u16 tbl_buf[11];
e868ab03 24065 u8 cal_cnt;
7d4df48e 24066 u16 cal_cmd;
e868ab03 24067 u8 num_cals, max_cal_cmds;
7d4df48e
GKH
24068 u16 core_no, cal_type;
24069 u16 diq_start = 0;
e868ab03 24070 u8 phy_bw;
7d4df48e
GKH
24071 u16 max_val;
24072 u16 tone_freq;
24073 u16 gain_save[2];
24074 u16 cal_gain[2];
a9533e7e 24075 nphy_iqcal_params_t cal_params[2];
66cbd3ab 24076 u32 tbl_len;
a9533e7e
HP
24077 void *tbl_ptr;
24078 bool ladder_updated[2];
e868ab03 24079 u8 mphase_cal_lastphase = 0;
a1c5ad81 24080 int bcmerror = 0;
0965ae88 24081 bool phyhang_avoid_state = false;
a9533e7e 24082
7d4df48e 24083 u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
a9533e7e
HP
24084 0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
24085 0x1902,
24086 0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
24087 0x6407
24088 };
24089
7d4df48e 24090 u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
a9533e7e
HP
24091 0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
24092 0x3200,
24093 0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
24094 0x6407
24095 };
24096
7d4df48e 24097 u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
a9533e7e
HP
24098 0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
24099 0x1202,
24100 0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
24101 0x4707
24102 };
24103
7d4df48e 24104 u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
a9533e7e
HP
24105 0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
24106 0x2300,
24107 0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
24108 0x4707
24109 };
24110
7d4df48e 24111 u16 tbl_tx_iqlo_cal_startcoefs[] = {
a9533e7e
HP
24112 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24113 0x0000
24114 };
24115
7d4df48e 24116 u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
a9533e7e
HP
24117 0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
24118 0x9123, 0x9264, 0x9086, 0x9245, 0x9056
24119 };
24120
7d4df48e 24121 u16 tbl_tx_iqlo_cal_cmds_recal[] = {
a9533e7e
HP
24122 0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
24123 0x9101, 0x9253, 0x9053, 0x9234, 0x9034
24124 };
24125
7d4df48e 24126 u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {
a9533e7e
HP
24127 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24128 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
24129 0x0000
24130 };
24131
7d4df48e 24132 u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
a9533e7e
HP
24133 0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
24134 0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
24135 };
24136
7d4df48e 24137 u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
a9533e7e
HP
24138 0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
24139 0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
24140 };
24141
0f0881b0 24142 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
24143
24144 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24145 phyhang_avoid_state = pi->phyhang_avoid;
0965ae88 24146 pi->phyhang_avoid = false;
a9533e7e
HP
24147 }
24148
24149 if (CHSPEC_IS40(pi->radio_chanspec)) {
24150 phy_bw = 40;
24151 } else {
24152 phy_bw = 20;
24153 }
24154
24155 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
24156
24157 for (core_no = 0; core_no <= 1; core_no++) {
24158 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
24159 &cal_params[core_no]);
24160 cal_gain[core_no] = cal_params[core_no].cal_gain;
24161 }
24162
24163 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
24164
24165 wlc_phy_txcal_radio_setup_nphy(pi);
24166
24167 wlc_phy_txcal_physetup_nphy(pi);
24168
0965ae88 24169 ladder_updated[0] = ladder_updated[1] = false;
a9533e7e
HP
24170 if (!(NREV_GE(pi->pubpi.phy_rev, 6) ||
24171 (NREV_IS(pi->pubpi.phy_rev, 5) && PHY_IPA(pi)
24172 && (CHSPEC_IS2G(pi->radio_chanspec))))) {
24173
24174 if (phy_bw == 40) {
24175 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_40;
8d3d6a69 24176 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_40);
a9533e7e
HP
24177 } else {
24178 tbl_ptr = tbl_tx_iqlo_cal_loft_ladder_20;
8d3d6a69 24179 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_loft_ladder_20);
a9533e7e
HP
24180 }
24181 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 0,
24182 16, tbl_ptr);
24183
24184 if (phy_bw == 40) {
24185 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_40;
8d3d6a69 24186 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_40);
a9533e7e
HP
24187 } else {
24188 tbl_ptr = tbl_tx_iqlo_cal_iqimb_ladder_20;
8d3d6a69 24189 tbl_len = ARRAY_SIZE(tbl_tx_iqlo_cal_iqimb_ladder_20);
a9533e7e
HP
24190 }
24191 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 32,
24192 16, tbl_ptr);
24193 }
24194
24195 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24196 write_phy_reg(pi, 0xc2, 0x8ad9);
24197 } else {
24198 write_phy_reg(pi, 0xc2, 0x8aa9);
24199 }
24200
24201 max_val = 250;
24202 tone_freq = (phy_bw == 20) ? 2500 : 5000;
24203
24204 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
0965ae88 24205 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff, 0, 1, 0, false);
a1c5ad81 24206 bcmerror = 0;
a9533e7e
HP
24207 } else {
24208 bcmerror =
0965ae88 24209 wlc_phy_tx_tone_nphy(pi, tone_freq, max_val, 1, 0, false);
a9533e7e
HP
24210 }
24211
a1c5ad81 24212 if (bcmerror == 0) {
a9533e7e
HP
24213
24214 if (pi->mphase_cal_phase_id > MPHASE_CAL_STATE_TXPHASE0) {
24215 tbl_ptr = pi->mphase_txcal_bestcoeffs;
8d3d6a69 24216 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
a9533e7e
HP
24217 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24218
24219 tbl_len -= 2;
24220 }
24221 } else {
24222 if ((!fullcal) && (pi->nphy_txiqlocal_coeffsvalid)) {
24223
24224 tbl_ptr = pi->nphy_txiqlocal_bestc;
8d3d6a69 24225 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
a9533e7e
HP
24226 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24227
24228 tbl_len -= 2;
24229 }
24230 } else {
24231
0f0881b0 24232 fullcal = true;
a9533e7e
HP
24233
24234 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
24235 tbl_ptr =
24236 tbl_tx_iqlo_cal_startcoefs_nphyrev3;
24237 tbl_len =
8d3d6a69 24238 ARRAY_SIZE
a9533e7e
HP
24239 (tbl_tx_iqlo_cal_startcoefs_nphyrev3);
24240 } else {
24241 tbl_ptr = tbl_tx_iqlo_cal_startcoefs;
24242 tbl_len =
8d3d6a69 24243 ARRAY_SIZE
a9533e7e
HP
24244 (tbl_tx_iqlo_cal_startcoefs);
24245 }
24246 }
24247 }
24248 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, tbl_len, 64,
24249 16, tbl_ptr);
24250
24251 if (fullcal) {
24252 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
8d3d6a69
GKH
24253 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3) :
24254 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_fullcal);
a9533e7e
HP
24255 } else {
24256 max_cal_cmds = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
8d3d6a69
GKH
24257 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal_nphyrev3) :
24258 ARRAY_SIZE(tbl_tx_iqlo_cal_cmds_recal);
a9533e7e
HP
24259 }
24260
24261 if (mphase) {
24262 cal_cnt = pi->mphase_txcal_cmdidx;
24263 if ((cal_cnt + pi->mphase_txcal_numcmds) < max_cal_cmds) {
24264 num_cals = cal_cnt + pi->mphase_txcal_numcmds;
24265 } else {
24266 num_cals = max_cal_cmds;
24267 }
24268 } else {
24269 cal_cnt = 0;
24270 num_cals = max_cal_cmds;
24271 }
24272
24273 for (; cal_cnt < num_cals; cal_cnt++) {
24274
24275 if (fullcal) {
24276 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24277 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3
24278 [cal_cnt] :
24279 tbl_tx_iqlo_cal_cmds_fullcal[cal_cnt];
24280 } else {
24281 cal_cmd = (NREV_GE(pi->pubpi.phy_rev, 3)) ?
24282 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[cal_cnt]
24283 : tbl_tx_iqlo_cal_cmds_recal[cal_cnt];
24284 }
24285
24286 core_no = ((cal_cmd & 0x3000) >> 12);
24287 cal_type = ((cal_cmd & 0x0F00) >> 8);
24288
24289 if (NREV_GE(pi->pubpi.phy_rev, 6) ||
24290 (NREV_IS(pi->pubpi.phy_rev, 5) &&
24291 PHY_IPA(pi)
24292 && (CHSPEC_IS2G(pi->radio_chanspec)))) {
24293 if (!ladder_updated[core_no]) {
24294 wlc_phy_update_txcal_ladder_nphy(pi,
24295 core_no);
0f0881b0 24296 ladder_updated[core_no] = true;
a9533e7e
HP
24297 }
24298 }
24299
24300 val =
24301 (cal_params[core_no].
24302 ncorr[cal_type] << 8) | NPHY_N_GCTL;
24303 write_phy_reg(pi, 0xc1, val);
24304
24305 if ((cal_type == 1) || (cal_type == 3)
24306 || (cal_type == 4)) {
24307
24308 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24309 1, 69 + core_no, 16,
24310 tbl_buf);
24311
24312 diq_start = tbl_buf[0];
24313
24314 tbl_buf[0] = 0;
24315 wlc_phy_table_write_nphy(pi,
24316 NPHY_TBL_ID_IQLOCAL, 1,
24317 69 + core_no, 16,
24318 tbl_buf);
24319 }
24320
24321 write_phy_reg(pi, 0xc0, cal_cmd);
24322
24323 SPINWAIT(((read_phy_reg(pi, 0xc0) & 0xc000) != 0),
24324 20000);
be2fee08
RV
24325 if (WARN(read_phy_reg(pi, 0xc0) & 0xc000,
24326 "HW error: txiq calib"))
24327 return -EIO;
a9533e7e
HP
24328
24329 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24330 tbl_len, 96, 16, tbl_buf);
24331 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24332 tbl_len, 64, 16, tbl_buf);
24333
24334 if ((cal_type == 1) || (cal_type == 3)
24335 || (cal_type == 4)) {
24336
24337 tbl_buf[0] = diq_start;
24338
24339 }
24340
24341 }
24342
24343 if (mphase) {
24344 pi->mphase_txcal_cmdidx = num_cals;
24345 if (pi->mphase_txcal_cmdidx >= max_cal_cmds)
24346 pi->mphase_txcal_cmdidx = 0;
24347 }
24348
24349 mphase_cal_lastphase =
24350 (NREV_LE(pi->pubpi.phy_rev, 2)) ?
24351 MPHASE_CAL_STATE_TXPHASE4 : MPHASE_CAL_STATE_TXPHASE5;
24352
24353 if (!mphase
24354 || (pi->mphase_cal_phase_id == mphase_cal_lastphase)) {
24355
24356 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 96,
24357 16, tbl_buf);
24358 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24359 16, tbl_buf);
24360
24361 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24362
24363 tbl_buf[0] = 0;
24364 tbl_buf[1] = 0;
24365 tbl_buf[2] = 0;
24366 tbl_buf[3] = 0;
24367
24368 }
24369 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24370 16, tbl_buf);
24371
24372 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 101,
24373 16, tbl_buf);
24374 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24375 16, tbl_buf);
24376
24377 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24378 16, tbl_buf);
24379
8d3d6a69 24380 tbl_len = ARRAY_SIZE(pi->nphy_txiqlocal_bestc);
a9533e7e
HP
24381 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24382
24383 tbl_len -= 2;
24384 }
24385 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24386 tbl_len, 96, 16,
24387 pi->nphy_txiqlocal_bestc);
24388
0f0881b0 24389 pi->nphy_txiqlocal_coeffsvalid = true;
a9533e7e
HP
24390 pi->nphy_txiqlocal_chanspec = pi->radio_chanspec;
24391 } else {
8d3d6a69 24392 tbl_len = ARRAY_SIZE(pi->mphase_txcal_bestcoeffs);
a9533e7e
HP
24393 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
24394
24395 tbl_len -= 2;
24396 }
24397 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
24398 tbl_len, 96, 16,
24399 pi->mphase_txcal_bestcoeffs);
24400 }
24401
24402 wlc_phy_stopplayback_nphy(pi);
24403
24404 write_phy_reg(pi, 0xc2, 0x0000);
24405
24406 }
24407
24408 wlc_phy_txcal_phycleanup_nphy(pi);
24409
24410 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
24411 gain_save);
24412
24413 wlc_phy_txcal_radio_cleanup_nphy(pi);
24414
24415 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
24416 if (!mphase
24417 || (pi->mphase_cal_phase_id == mphase_cal_lastphase))
24418 wlc_phy_tx_iq_war_nphy(pi);
24419 }
24420
24421 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
24422 pi->phyhang_avoid = phyhang_avoid_state;
24423 }
24424
0965ae88 24425 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
24426
24427 return bcmerror;
24428}
24429
7cc4a4c0 24430static void wlc_phy_reapply_txcal_coeffs_nphy(phy_info_t *pi)
a9533e7e 24431{
7d4df48e 24432 u16 tbl_buf[7];
a9533e7e 24433
a9533e7e
HP
24434 if ((pi->nphy_txiqlocal_chanspec == pi->radio_chanspec) &&
24435 (pi->nphy_txiqlocal_coeffsvalid)) {
24436 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_IQLOCAL,
8d3d6a69 24437 ARRAY_SIZE(tbl_buf), 80, 16, tbl_buf);
a9533e7e
HP
24438
24439 if ((pi->nphy_txiqlocal_bestc[0] != tbl_buf[0]) ||
24440 (pi->nphy_txiqlocal_bestc[1] != tbl_buf[1]) ||
24441 (pi->nphy_txiqlocal_bestc[2] != tbl_buf[2]) ||
24442 (pi->nphy_txiqlocal_bestc[3] != tbl_buf[3])) {
24443
24444 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 80,
24445 16, pi->nphy_txiqlocal_bestc);
24446
24447 tbl_buf[0] = 0;
24448 tbl_buf[1] = 0;
24449 tbl_buf[2] = 0;
24450 tbl_buf[3] = 0;
24451 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 4, 88,
24452 16, tbl_buf);
24453
24454 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 85,
24455 16,
24456 &pi->nphy_txiqlocal_bestc[5]);
24457
24458 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_IQLOCAL, 2, 93,
24459 16,
24460 &pi->nphy_txiqlocal_bestc[5]);
24461 }
24462 }
24463}
24464
7cc4a4c0 24465static void wlc_phy_tx_iq_war_nphy(phy_info_t *pi)
a9533e7e
HP
24466{
24467 nphy_iq_comp_t tx_comp;
24468
24469 wlc_phy_table_read_nphy(pi, 15, 4, 0x50, 16, (void *)&tx_comp);
24470
24471 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ, tx_comp.a0);
24472 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 2, tx_comp.b0);
24473 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 4, tx_comp.a1);
24474 wlapi_bmac_write_shm(pi->sh->physhim, M_20IN40_IQ + 6, tx_comp.b1);
24475}
24476
24477void
e868ab03 24478wlc_phy_rx_iq_coeffs_nphy(phy_info_t *pi, u8 write, nphy_iq_comp_t *pcomp)
a9533e7e
HP
24479{
24480 if (write) {
24481 write_phy_reg(pi, 0x9a, pcomp->a0);
24482 write_phy_reg(pi, 0x9b, pcomp->b0);
24483 write_phy_reg(pi, 0x9c, pcomp->a1);
24484 write_phy_reg(pi, 0x9d, pcomp->b1);
24485 } else {
24486 pcomp->a0 = read_phy_reg(pi, 0x9a);
24487 pcomp->b0 = read_phy_reg(pi, 0x9b);
24488 pcomp->a1 = read_phy_reg(pi, 0x9c);
24489 pcomp->b1 = read_phy_reg(pi, 0x9d);
24490 }
24491}
24492
24493void
7d4df48e 24494wlc_phy_rx_iq_est_nphy(phy_info_t *pi, phy_iq_est_t *est, u16 num_samps,
e868ab03 24495 u8 wait_time, u8 wait_for_crs)
a9533e7e 24496{
e868ab03 24497 u8 core;
a9533e7e
HP
24498
24499 write_phy_reg(pi, 0x12b, num_samps);
24500 mod_phy_reg(pi, 0x12a, (0xff << 0), (wait_time << 0));
24501 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqMode,
24502 (wait_for_crs) ? NPHY_IqestCmd_iqMode : 0);
24503
24504 mod_phy_reg(pi, 0x129, NPHY_IqestCmd_iqstart, NPHY_IqestCmd_iqstart);
24505
24506 SPINWAIT(((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) != 0),
24507 10000);
be2fee08
RV
24508 if (WARN(read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart,
24509 "HW error: rxiq est"))
24510 return;
a9533e7e
HP
24511
24512 if ((read_phy_reg(pi, 0x129) & NPHY_IqestCmd_iqstart) == 0) {
a9533e7e
HP
24513 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
24514 est[core].i_pwr =
24515 (read_phy_reg(pi, NPHY_IqestipwrAccHi(core)) << 16)
24516 | read_phy_reg(pi, NPHY_IqestipwrAccLo(core));
24517 est[core].q_pwr =
24518 (read_phy_reg(pi, NPHY_IqestqpwrAccHi(core)) << 16)
24519 | read_phy_reg(pi, NPHY_IqestqpwrAccLo(core));
24520 est[core].iq_prod =
24521 (read_phy_reg(pi, NPHY_IqestIqAccHi(core)) << 16) |
24522 read_phy_reg(pi, NPHY_IqestIqAccLo(core));
24523 }
24524 }
24525}
24526
24527#define CAL_RETRY_CNT 2
e868ab03 24528static void wlc_phy_calc_rx_iq_comp_nphy(phy_info_t *pi, u8 core_mask)
a9533e7e 24529{
e868ab03 24530 u8 curr_core;
a9533e7e
HP
24531 phy_iq_est_t est[PHY_CORE_MAX];
24532 nphy_iq_comp_t old_comp, new_comp;
3e26416e 24533 s32 iq = 0;
66cbd3ab 24534 u32 ii = 0, qq = 0;
e59fe083 24535 s16 iq_nbits, qq_nbits, brsh, arsh;
3e26416e 24536 s32 a, b, temp;
a1c5ad81 24537 int bcmerror = 0;
a9533e7e
HP
24538 uint cal_retry = 0;
24539
24540 if (core_mask == 0x0)
24541 return;
24542
24543 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &old_comp);
24544 new_comp.a0 = new_comp.b0 = new_comp.a1 = new_comp.b1 = 0x0;
24545 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24546
24547 cal_try:
24548 wlc_phy_rx_iq_est_nphy(pi, est, 0x4000, 32, 0);
24549
24550 new_comp = old_comp;
24551
24552 for (curr_core = 0; curr_core < pi->pubpi.phy_corenum; curr_core++) {
24553
24554 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24555 iq = est[curr_core].iq_prod;
24556 ii = est[curr_core].i_pwr;
24557 qq = est[curr_core].q_pwr;
24558 } else if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24559 iq = est[curr_core].iq_prod;
24560 ii = est[curr_core].i_pwr;
24561 qq = est[curr_core].q_pwr;
24562 } else {
24563 continue;
24564 }
24565
24566 if ((ii + qq) < NPHY_MIN_RXIQ_PWR) {
b74ac12e 24567 bcmerror = -EBADE;
a9533e7e
HP
24568 break;
24569 }
24570
24571 iq_nbits = wlc_phy_nbits(iq);
24572 qq_nbits = wlc_phy_nbits(qq);
24573
24574 arsh = 10 - (30 - iq_nbits);
24575 if (arsh >= 0) {
24576 a = (-(iq << (30 - iq_nbits)) + (ii >> (1 + arsh)));
3e26416e 24577 temp = (s32) (ii >> arsh);
a9533e7e 24578 if (temp == 0) {
b74ac12e 24579 bcmerror = -EBADE;
a9533e7e
HP
24580 break;
24581 }
24582 } else {
24583 a = (-(iq << (30 - iq_nbits)) + (ii << (-1 - arsh)));
3e26416e 24584 temp = (s32) (ii << -arsh);
a9533e7e 24585 if (temp == 0) {
b74ac12e 24586 bcmerror = -EBADE;
a9533e7e
HP
24587 break;
24588 }
24589 }
24590
24591 a /= temp;
24592
24593 brsh = qq_nbits - 31 + 20;
24594 if (brsh >= 0) {
24595 b = (qq << (31 - qq_nbits));
3e26416e 24596 temp = (s32) (ii >> brsh);
a9533e7e 24597 if (temp == 0) {
b74ac12e 24598 bcmerror = -EBADE;
a9533e7e
HP
24599 break;
24600 }
24601 } else {
24602 b = (qq << (31 - qq_nbits));
3e26416e 24603 temp = (s32) (ii << -brsh);
a9533e7e 24604 if (temp == 0) {
b74ac12e 24605 bcmerror = -EBADE;
a9533e7e
HP
24606 break;
24607 }
24608 }
24609 b /= temp;
24610 b -= a * a;
dc1e9616 24611 b = (s32) int_sqrt((unsigned long) b);
a9533e7e
HP
24612 b -= (1 << 10);
24613
24614 if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {
24615 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
e59fe083
GKH
24616 new_comp.a0 = (s16) a & 0x3ff;
24617 new_comp.b0 = (s16) b & 0x3ff;
a9533e7e
HP
24618 } else {
24619
e59fe083
GKH
24620 new_comp.a0 = (s16) b & 0x3ff;
24621 new_comp.b0 = (s16) a & 0x3ff;
a9533e7e
HP
24622 }
24623 }
24624 if ((curr_core == PHY_CORE_1) && (core_mask & 0x2)) {
24625 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
e59fe083
GKH
24626 new_comp.a1 = (s16) a & 0x3ff;
24627 new_comp.b1 = (s16) b & 0x3ff;
a9533e7e
HP
24628 } else {
24629
e59fe083
GKH
24630 new_comp.a1 = (s16) b & 0x3ff;
24631 new_comp.b1 = (s16) a & 0x3ff;
a9533e7e
HP
24632 }
24633 }
24634 }
24635
a1c5ad81 24636 if (bcmerror != 0) {
a9533e7e
HP
24637 printk("%s: Failed, cnt = %d\n", __func__, cal_retry);
24638
24639 if (cal_retry < CAL_RETRY_CNT) {
24640 cal_retry++;
24641 goto cal_try;
24642 }
24643
24644 new_comp = old_comp;
24645 } else if (cal_retry > 0) {
24646 }
24647
24648 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &new_comp);
24649}
24650
e868ab03 24651static void wlc_phy_rxcal_radio_setup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e 24652{
7d4df48e
GKH
24653 u16 offtune_val;
24654 u16 bias_g = 0;
24655 u16 bias_a = 0;
a9533e7e
HP
24656
24657 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24658 if (rx_core == PHY_CORE_0) {
24659 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24660 pi->tx_rx_cal_radio_saveregs[0] =
24661 read_radio_reg(pi,
24662 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP);
24663 pi->tx_rx_cal_radio_saveregs[1] =
24664 read_radio_reg(pi,
24665 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN);
24666
24667 write_radio_reg(pi,
24668 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24669 0x3);
24670 write_radio_reg(pi,
24671 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24672 0xaf);
24673
24674 } else {
24675 pi->tx_rx_cal_radio_saveregs[0] =
24676 read_radio_reg(pi,
24677 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP);
24678 pi->tx_rx_cal_radio_saveregs[1] =
24679 read_radio_reg(pi,
24680 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN);
24681
24682 write_radio_reg(pi,
24683 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24684 0x3);
24685 write_radio_reg(pi,
24686 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24687 0x7f);
24688 }
24689
24690 } else {
24691 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24692 pi->tx_rx_cal_radio_saveregs[0] =
24693 read_radio_reg(pi,
24694 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP);
24695 pi->tx_rx_cal_radio_saveregs[1] =
24696 read_radio_reg(pi,
24697 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN);
24698
24699 write_radio_reg(pi,
24700 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24701 0x3);
24702 write_radio_reg(pi,
24703 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24704 0xaf);
24705
24706 } else {
24707 pi->tx_rx_cal_radio_saveregs[0] =
24708 read_radio_reg(pi,
24709 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP);
24710 pi->tx_rx_cal_radio_saveregs[1] =
24711 read_radio_reg(pi,
24712 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN);
24713
24714 write_radio_reg(pi,
24715 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24716 0x3);
24717 write_radio_reg(pi,
24718 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24719 0x7f);
24720 }
24721 }
24722
24723 } else {
24724 if (rx_core == PHY_CORE_0) {
24725 pi->tx_rx_cal_radio_saveregs[0] =
24726 read_radio_reg(pi,
24727 RADIO_2056_TX_RXIQCAL_TXMUX |
24728 RADIO_2056_TX1);
24729 pi->tx_rx_cal_radio_saveregs[1] =
24730 read_radio_reg(pi,
24731 RADIO_2056_RX_RXIQCAL_RXMUX |
24732 RADIO_2056_RX0);
24733
24734 if (pi->pubpi.radiorev >= 5) {
24735 pi->tx_rx_cal_radio_saveregs[2] =
24736 read_radio_reg(pi,
24737 RADIO_2056_RX_RXSPARE2 |
24738 RADIO_2056_RX0);
24739 pi->tx_rx_cal_radio_saveregs[3] =
24740 read_radio_reg(pi,
24741 RADIO_2056_TX_TXSPARE2 |
24742 RADIO_2056_TX1);
24743 }
24744
24745 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24746
24747 if (pi->pubpi.radiorev >= 5) {
24748 pi->tx_rx_cal_radio_saveregs[4] =
24749 read_radio_reg(pi,
24750 RADIO_2056_RX_LNAA_MASTER
24751 | RADIO_2056_RX0);
24752
24753 write_radio_reg(pi,
24754 RADIO_2056_RX_LNAA_MASTER
24755 | RADIO_2056_RX0, 0x40);
24756
24757 write_radio_reg(pi,
24758 RADIO_2056_TX_TXSPARE2 |
24759 RADIO_2056_TX1, bias_a);
24760
24761 write_radio_reg(pi,
24762 RADIO_2056_RX_RXSPARE2 |
24763 RADIO_2056_RX0, bias_a);
24764 } else {
24765 pi->tx_rx_cal_radio_saveregs[4] =
24766 read_radio_reg(pi,
24767 RADIO_2056_RX_LNAA_TUNE
24768 | RADIO_2056_RX0);
24769
24770 offtune_val =
24771 (pi->
24772 tx_rx_cal_radio_saveregs[2] & 0xF0)
24773 >> 8;
24774 offtune_val =
24775 (offtune_val <= 0x7) ? 0xF : 0;
24776
24777 mod_radio_reg(pi,
24778 RADIO_2056_RX_LNAA_TUNE |
24779 RADIO_2056_RX0, 0xF0,
24780 (offtune_val << 8));
24781 }
24782
24783 write_radio_reg(pi,
24784 RADIO_2056_TX_RXIQCAL_TXMUX |
24785 RADIO_2056_TX1, 0x9);
24786 write_radio_reg(pi,
24787 RADIO_2056_RX_RXIQCAL_RXMUX |
24788 RADIO_2056_RX0, 0x9);
24789 } else {
24790 if (pi->pubpi.radiorev >= 5) {
24791 pi->tx_rx_cal_radio_saveregs[4] =
24792 read_radio_reg(pi,
24793 RADIO_2056_RX_LNAG_MASTER
24794 | RADIO_2056_RX0);
24795
24796 write_radio_reg(pi,
24797 RADIO_2056_RX_LNAG_MASTER
24798 | RADIO_2056_RX0, 0x40);
24799
24800 write_radio_reg(pi,
24801 RADIO_2056_TX_TXSPARE2 |
24802 RADIO_2056_TX1, bias_g);
24803
24804 write_radio_reg(pi,
24805 RADIO_2056_RX_RXSPARE2 |
24806 RADIO_2056_RX0, bias_g);
24807
24808 } else {
24809 pi->tx_rx_cal_radio_saveregs[4] =
24810 read_radio_reg(pi,
24811 RADIO_2056_RX_LNAG_TUNE
24812 | RADIO_2056_RX0);
24813
24814 offtune_val =
24815 (pi->
24816 tx_rx_cal_radio_saveregs[2] & 0xF0)
24817 >> 8;
24818 offtune_val =
24819 (offtune_val <= 0x7) ? 0xF : 0;
24820
24821 mod_radio_reg(pi,
24822 RADIO_2056_RX_LNAG_TUNE |
24823 RADIO_2056_RX0, 0xF0,
24824 (offtune_val << 8));
24825 }
24826
24827 write_radio_reg(pi,
24828 RADIO_2056_TX_RXIQCAL_TXMUX |
24829 RADIO_2056_TX1, 0x6);
24830 write_radio_reg(pi,
24831 RADIO_2056_RX_RXIQCAL_RXMUX |
24832 RADIO_2056_RX0, 0x6);
24833 }
24834
24835 } else {
24836 pi->tx_rx_cal_radio_saveregs[0] =
24837 read_radio_reg(pi,
24838 RADIO_2056_TX_RXIQCAL_TXMUX |
24839 RADIO_2056_TX0);
24840 pi->tx_rx_cal_radio_saveregs[1] =
24841 read_radio_reg(pi,
24842 RADIO_2056_RX_RXIQCAL_RXMUX |
24843 RADIO_2056_RX1);
24844
24845 if (pi->pubpi.radiorev >= 5) {
24846 pi->tx_rx_cal_radio_saveregs[2] =
24847 read_radio_reg(pi,
24848 RADIO_2056_RX_RXSPARE2 |
24849 RADIO_2056_RX1);
24850 pi->tx_rx_cal_radio_saveregs[3] =
24851 read_radio_reg(pi,
24852 RADIO_2056_TX_TXSPARE2 |
24853 RADIO_2056_TX0);
24854 }
24855
24856 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24857
24858 if (pi->pubpi.radiorev >= 5) {
24859 pi->tx_rx_cal_radio_saveregs[4] =
24860 read_radio_reg(pi,
24861 RADIO_2056_RX_LNAA_MASTER
24862 | RADIO_2056_RX1);
24863
24864 write_radio_reg(pi,
24865 RADIO_2056_RX_LNAA_MASTER
24866 | RADIO_2056_RX1, 0x40);
24867
24868 write_radio_reg(pi,
24869 RADIO_2056_TX_TXSPARE2 |
24870 RADIO_2056_TX0, bias_a);
24871
24872 write_radio_reg(pi,
24873 RADIO_2056_RX_RXSPARE2 |
24874 RADIO_2056_RX1, bias_a);
24875 } else {
24876 pi->tx_rx_cal_radio_saveregs[4] =
24877 read_radio_reg(pi,
24878 RADIO_2056_RX_LNAA_TUNE
24879 | RADIO_2056_RX1);
24880
24881 offtune_val =
24882 (pi->
24883 tx_rx_cal_radio_saveregs[2] & 0xF0)
24884 >> 8;
24885 offtune_val =
24886 (offtune_val <= 0x7) ? 0xF : 0;
24887
24888 mod_radio_reg(pi,
24889 RADIO_2056_RX_LNAA_TUNE |
24890 RADIO_2056_RX1, 0xF0,
24891 (offtune_val << 8));
24892 }
24893
24894 write_radio_reg(pi,
24895 RADIO_2056_TX_RXIQCAL_TXMUX |
24896 RADIO_2056_TX0, 0x9);
24897 write_radio_reg(pi,
24898 RADIO_2056_RX_RXIQCAL_RXMUX |
24899 RADIO_2056_RX1, 0x9);
24900 } else {
24901 if (pi->pubpi.radiorev >= 5) {
24902 pi->tx_rx_cal_radio_saveregs[4] =
24903 read_radio_reg(pi,
24904 RADIO_2056_RX_LNAG_MASTER
24905 | RADIO_2056_RX1);
24906
24907 write_radio_reg(pi,
24908 RADIO_2056_RX_LNAG_MASTER
24909 | RADIO_2056_RX1, 0x40);
24910
24911 write_radio_reg(pi,
24912 RADIO_2056_TX_TXSPARE2 |
24913 RADIO_2056_TX0, bias_g);
24914
24915 write_radio_reg(pi,
24916 RADIO_2056_RX_RXSPARE2 |
24917 RADIO_2056_RX1, bias_g);
24918 } else {
24919 pi->tx_rx_cal_radio_saveregs[4] =
24920 read_radio_reg(pi,
24921 RADIO_2056_RX_LNAG_TUNE
24922 | RADIO_2056_RX1);
24923
24924 offtune_val =
24925 (pi->
24926 tx_rx_cal_radio_saveregs[2] & 0xF0)
24927 >> 8;
24928 offtune_val =
24929 (offtune_val <= 0x7) ? 0xF : 0;
24930
24931 mod_radio_reg(pi,
24932 RADIO_2056_RX_LNAG_TUNE |
24933 RADIO_2056_RX1, 0xF0,
24934 (offtune_val << 8));
24935 }
24936
24937 write_radio_reg(pi,
24938 RADIO_2056_TX_RXIQCAL_TXMUX |
24939 RADIO_2056_TX0, 0x6);
24940 write_radio_reg(pi,
24941 RADIO_2056_RX_RXIQCAL_RXMUX |
24942 RADIO_2056_RX1, 0x6);
24943 }
24944 }
24945 }
24946}
24947
e868ab03 24948static void wlc_phy_rxcal_radio_cleanup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e
HP
24949{
24950 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
24951 if (rx_core == PHY_CORE_0) {
24952 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24953 write_radio_reg(pi,
24954 RADIO_2057_TX0_TXRXCOUPLE_5G_PWRUP,
24955 pi->
24956 tx_rx_cal_radio_saveregs[0]);
24957 write_radio_reg(pi,
24958 RADIO_2057_TX0_TXRXCOUPLE_5G_ATTEN,
24959 pi->
24960 tx_rx_cal_radio_saveregs[1]);
24961
24962 } else {
24963 write_radio_reg(pi,
24964 RADIO_2057_TX0_TXRXCOUPLE_2G_PWRUP,
24965 pi->
24966 tx_rx_cal_radio_saveregs[0]);
24967 write_radio_reg(pi,
24968 RADIO_2057_TX0_TXRXCOUPLE_2G_ATTEN,
24969 pi->
24970 tx_rx_cal_radio_saveregs[1]);
24971 }
24972
24973 } else {
24974 if (CHSPEC_IS5G(pi->radio_chanspec)) {
24975 write_radio_reg(pi,
24976 RADIO_2057_TX1_TXRXCOUPLE_5G_PWRUP,
24977 pi->
24978 tx_rx_cal_radio_saveregs[0]);
24979 write_radio_reg(pi,
24980 RADIO_2057_TX1_TXRXCOUPLE_5G_ATTEN,
24981 pi->
24982 tx_rx_cal_radio_saveregs[1]);
24983
24984 } else {
24985 write_radio_reg(pi,
24986 RADIO_2057_TX1_TXRXCOUPLE_2G_PWRUP,
24987 pi->
24988 tx_rx_cal_radio_saveregs[0]);
24989 write_radio_reg(pi,
24990 RADIO_2057_TX1_TXRXCOUPLE_2G_ATTEN,
24991 pi->
24992 tx_rx_cal_radio_saveregs[1]);
24993 }
24994 }
24995
24996 } else {
24997 if (rx_core == PHY_CORE_0) {
24998 write_radio_reg(pi,
24999 RADIO_2056_TX_RXIQCAL_TXMUX |
25000 RADIO_2056_TX1,
25001 pi->tx_rx_cal_radio_saveregs[0]);
25002
25003 write_radio_reg(pi,
25004 RADIO_2056_RX_RXIQCAL_RXMUX |
25005 RADIO_2056_RX0,
25006 pi->tx_rx_cal_radio_saveregs[1]);
25007
25008 if (pi->pubpi.radiorev >= 5) {
25009 write_radio_reg(pi,
25010 RADIO_2056_RX_RXSPARE2 |
25011 RADIO_2056_RX0,
25012 pi->
25013 tx_rx_cal_radio_saveregs[2]);
25014
25015 write_radio_reg(pi,
25016 RADIO_2056_TX_TXSPARE2 |
25017 RADIO_2056_TX1,
25018 pi->
25019 tx_rx_cal_radio_saveregs[3]);
25020 }
25021
25022 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25023 if (pi->pubpi.radiorev >= 5) {
25024 write_radio_reg(pi,
25025 RADIO_2056_RX_LNAA_MASTER
25026 | RADIO_2056_RX0,
25027 pi->
25028 tx_rx_cal_radio_saveregs
25029 [4]);
25030 } else {
25031 write_radio_reg(pi,
25032 RADIO_2056_RX_LNAA_TUNE
25033 | RADIO_2056_RX0,
25034 pi->
25035 tx_rx_cal_radio_saveregs
25036 [4]);
25037 }
25038 } else {
25039 if (pi->pubpi.radiorev >= 5) {
25040 write_radio_reg(pi,
25041 RADIO_2056_RX_LNAG_MASTER
25042 | RADIO_2056_RX0,
25043 pi->
25044 tx_rx_cal_radio_saveregs
25045 [4]);
25046 } else {
25047 write_radio_reg(pi,
25048 RADIO_2056_RX_LNAG_TUNE
25049 | RADIO_2056_RX0,
25050 pi->
25051 tx_rx_cal_radio_saveregs
25052 [4]);
25053 }
25054 }
25055
25056 } else {
25057 write_radio_reg(pi,
25058 RADIO_2056_TX_RXIQCAL_TXMUX |
25059 RADIO_2056_TX0,
25060 pi->tx_rx_cal_radio_saveregs[0]);
25061
25062 write_radio_reg(pi,
25063 RADIO_2056_RX_RXIQCAL_RXMUX |
25064 RADIO_2056_RX1,
25065 pi->tx_rx_cal_radio_saveregs[1]);
25066
25067 if (pi->pubpi.radiorev >= 5) {
25068 write_radio_reg(pi,
25069 RADIO_2056_RX_RXSPARE2 |
25070 RADIO_2056_RX1,
25071 pi->
25072 tx_rx_cal_radio_saveregs[2]);
25073
25074 write_radio_reg(pi,
25075 RADIO_2056_TX_TXSPARE2 |
25076 RADIO_2056_TX0,
25077 pi->
25078 tx_rx_cal_radio_saveregs[3]);
25079 }
25080
25081 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25082 if (pi->pubpi.radiorev >= 5) {
25083 write_radio_reg(pi,
25084 RADIO_2056_RX_LNAA_MASTER
25085 | RADIO_2056_RX1,
25086 pi->
25087 tx_rx_cal_radio_saveregs
25088 [4]);
25089 } else {
25090 write_radio_reg(pi,
25091 RADIO_2056_RX_LNAA_TUNE
25092 | RADIO_2056_RX1,
25093 pi->
25094 tx_rx_cal_radio_saveregs
25095 [4]);
25096 }
25097 } else {
25098 if (pi->pubpi.radiorev >= 5) {
25099 write_radio_reg(pi,
25100 RADIO_2056_RX_LNAG_MASTER
25101 | RADIO_2056_RX1,
25102 pi->
25103 tx_rx_cal_radio_saveregs
25104 [4]);
25105 } else {
25106 write_radio_reg(pi,
25107 RADIO_2056_RX_LNAG_TUNE
25108 | RADIO_2056_RX1,
25109 pi->
25110 tx_rx_cal_radio_saveregs
25111 [4]);
25112 }
25113 }
25114 }
25115 }
25116}
25117
e868ab03 25118static void wlc_phy_rxcal_physetup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e 25119{
e868ab03 25120 u8 tx_core;
7d4df48e 25121 u16 rx_antval, tx_antval;
a9533e7e
HP
25122
25123 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25124
25125 tx_core = rx_core;
25126 } else {
25127 tx_core = (rx_core == PHY_CORE_0) ? 1 : 0;
25128 }
25129
25130 pi->tx_rx_cal_phy_saveregs[0] = read_phy_reg(pi, 0xa2);
25131 pi->tx_rx_cal_phy_saveregs[1] =
25132 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7);
25133 pi->tx_rx_cal_phy_saveregs[2] =
25134 read_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5);
25135 pi->tx_rx_cal_phy_saveregs[3] = read_phy_reg(pi, 0x91);
25136 pi->tx_rx_cal_phy_saveregs[4] = read_phy_reg(pi, 0x92);
25137 pi->tx_rx_cal_phy_saveregs[5] = read_phy_reg(pi, 0x7a);
25138 pi->tx_rx_cal_phy_saveregs[6] = read_phy_reg(pi, 0x7d);
25139 pi->tx_rx_cal_phy_saveregs[7] = read_phy_reg(pi, 0xe7);
25140 pi->tx_rx_cal_phy_saveregs[8] = read_phy_reg(pi, 0xec);
25141 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25142 pi->tx_rx_cal_phy_saveregs[11] = read_phy_reg(pi, 0x342);
25143 pi->tx_rx_cal_phy_saveregs[12] = read_phy_reg(pi, 0x343);
25144 pi->tx_rx_cal_phy_saveregs[13] = read_phy_reg(pi, 0x346);
25145 pi->tx_rx_cal_phy_saveregs[14] = read_phy_reg(pi, 0x347);
25146 }
25147
25148 pi->tx_rx_cal_phy_saveregs[9] = read_phy_reg(pi, 0x297);
25149 pi->tx_rx_cal_phy_saveregs[10] = read_phy_reg(pi, 0x29b);
25150 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
25151 0x29b, (0x1 << 0), (0) << 0);
25152
25153 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
25154 0x29b, (0x1 << 0), (0) << 0);
25155
25156 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25157
25158 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25159
25160 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << (1 - rx_core)) << 12);
25161
25162 } else {
25163
25164 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25165 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25166 mod_phy_reg(pi, 0xa2, (0xf << 4), (1 << rx_core) << 4);
25167 mod_phy_reg(pi, 0xa2, (0xf << 8), (1 << rx_core) << 8);
25168 }
25169
25170 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7), (0x1 << 2), 0);
25171 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25172 (0x1 << 2), (0x1 << 2));
25173 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
25174 mod_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25175 (0x1 << 0) | (0x1 << 1), 0);
25176 mod_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25177 0x8f : 0xa5,
25178 (0x1 << 0) | (0x1 << 1), (0x1 << 0) | (0x1 << 1));
25179 }
25180
25181 wlc_phy_rfctrlintc_override_nphy(pi, NPHY_RfctrlIntc_override_PA, 0,
25182 RADIO_MIMO_CORESEL_CORE1 |
25183 RADIO_MIMO_CORESEL_CORE2);
25184
25185 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25186 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
25187 0, 0, 0,
25188 NPHY_REV7_RFCTRLOVERRIDE_ID0);
25189 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 0, 0, 0,
25190 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25191 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 1, 0, 0,
25192 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25193 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 1, 0, 0,
25194 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25195 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0, 0,
25196 NPHY_REV7_RFCTRLOVERRIDE_ID2);
25197 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0, 0,
25198 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25199 if (CHSPEC_IS40(pi->radio_chanspec)) {
25200 wlc_phy_rfctrl_override_nphy_rev7(pi,
25201 (0x1 << 7),
25202 2, 0, 0,
25203 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25204 } else {
25205 wlc_phy_rfctrl_override_nphy_rev7(pi,
25206 (0x1 << 7),
25207 0, 0, 0,
25208 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25209 }
25210 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
25211 0, 0, 0,
25212 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25213 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0, 0,
25214 NPHY_REV7_RFCTRLOVERRIDE_ID1);
25215 } else {
25216 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 3, 0);
25217 }
25218
25219 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RX2TX);
25220
25221 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25222
25223 wlc_phy_rfctrlintc_override_nphy(pi,
25224 NPHY_RfctrlIntc_override_TRSW,
25225 0x1, rx_core + 1);
25226 } else {
25227
25228 if (rx_core == PHY_CORE_0) {
25229 rx_antval = 0x1;
25230 tx_antval = 0x8;
25231 } else {
25232 rx_antval = 0x4;
25233 tx_antval = 0x2;
25234 }
25235
25236 wlc_phy_rfctrlintc_override_nphy(pi,
25237 NPHY_RfctrlIntc_override_TRSW,
25238 rx_antval, rx_core + 1);
25239 wlc_phy_rfctrlintc_override_nphy(pi,
25240 NPHY_RfctrlIntc_override_TRSW,
25241 tx_antval, tx_core + 1);
25242 }
25243}
25244
e868ab03 25245static void wlc_phy_rxcal_phycleanup_nphy(phy_info_t *pi, u8 rx_core)
a9533e7e
HP
25246{
25247
25248 write_phy_reg(pi, 0xa2, pi->tx_rx_cal_phy_saveregs[0]);
25249 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 : 0xa7,
25250 pi->tx_rx_cal_phy_saveregs[1]);
25251 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x8f : 0xa5,
25252 pi->tx_rx_cal_phy_saveregs[2]);
25253 write_phy_reg(pi, 0x91, pi->tx_rx_cal_phy_saveregs[3]);
25254 write_phy_reg(pi, 0x92, pi->tx_rx_cal_phy_saveregs[4]);
25255
25256 write_phy_reg(pi, 0x7a, pi->tx_rx_cal_phy_saveregs[5]);
25257 write_phy_reg(pi, 0x7d, pi->tx_rx_cal_phy_saveregs[6]);
25258 write_phy_reg(pi, 0xe7, pi->tx_rx_cal_phy_saveregs[7]);
25259 write_phy_reg(pi, 0xec, pi->tx_rx_cal_phy_saveregs[8]);
25260 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25261 write_phy_reg(pi, 0x342, pi->tx_rx_cal_phy_saveregs[11]);
25262 write_phy_reg(pi, 0x343, pi->tx_rx_cal_phy_saveregs[12]);
25263 write_phy_reg(pi, 0x346, pi->tx_rx_cal_phy_saveregs[13]);
25264 write_phy_reg(pi, 0x347, pi->tx_rx_cal_phy_saveregs[14]);
25265 }
25266
25267 write_phy_reg(pi, 0x297, pi->tx_rx_cal_phy_saveregs[9]);
25268 write_phy_reg(pi, 0x29b, pi->tx_rx_cal_phy_saveregs[10]);
25269}
25270
25271static void
e868ab03 25272wlc_phy_rxcal_gainctrl_nphy_rev5(phy_info_t *pi, u8 rx_core,
7d4df48e 25273 u16 *rxgain, u8 cal_type)
a9533e7e
HP
25274{
25275
7d4df48e 25276 u16 num_samps;
a9533e7e 25277 phy_iq_est_t est[PHY_CORE_MAX];
e868ab03 25278 u8 tx_core;
a9533e7e 25279 nphy_iq_comp_t save_comp, zero_comp;
66cbd3ab 25280 u32 i_pwr, q_pwr, curr_pwr, optim_pwr = 0, prev_pwr = 0, thresh_pwr =
a9533e7e 25281 10000;
e59fe083 25282 s16 desired_log2_pwr, actual_log2_pwr, delta_pwr;
0965ae88 25283 bool gainctrl_done = false;
e868ab03 25284 u8 mix_tia_gain = 3;
562c8850
GKH
25285 s8 optim_gaintbl_index = 0, prev_gaintbl_index = 0;
25286 s8 curr_gaintbl_index = 3;
e868ab03 25287 u8 gainctrl_dirn = NPHY_RXCAL_GAIN_INIT;
a9533e7e 25288 nphy_ipa_txrxgain_t *nphy_rxcal_gaintbl;
7d4df48e 25289 u16 hpvga, lpf_biq1, lpf_biq0, lna2, lna1;
e9e6727f 25290 int fine_gain_idx;
562c8850 25291 s8 txpwrindex;
7d4df48e 25292 u16 nphy_rxcal_txgain[2];
a9533e7e
HP
25293
25294 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25295
25296 tx_core = rx_core;
25297 } else {
25298 tx_core = 1 - rx_core;
25299 }
25300
25301 num_samps = 1024;
25302 desired_log2_pwr = (cal_type == 0) ? 13 : 13;
25303
25304 wlc_phy_rx_iq_coeffs_nphy(pi, 0, &save_comp);
25305 zero_comp.a0 = zero_comp.b0 = zero_comp.a1 = zero_comp.b1 = 0x0;
25306 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &zero_comp);
25307
25308 if (CHSPEC_IS5G(pi->radio_chanspec)) {
25309 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25310 mix_tia_gain = 3;
25311 } else if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25312 mix_tia_gain = 4;
25313 } else {
25314 mix_tia_gain = 6;
25315 }
25316 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25317 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz_rev7;
25318 } else {
25319 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_5GHz;
25320 }
25321 } else {
25322 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25323 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz_rev7;
25324 } else {
25325 nphy_rxcal_gaintbl = nphy_ipa_rxcal_gaintbl_2GHz;
25326 }
25327 }
25328
25329 do {
25330
25331 hpvga = (NREV_GE(pi->pubpi.phy_rev, 7)) ?
25332 0 : nphy_rxcal_gaintbl[curr_gaintbl_index].hpvga;
25333 lpf_biq1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq1;
25334 lpf_biq0 = nphy_rxcal_gaintbl[curr_gaintbl_index].lpf_biq0;
25335 lna2 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna2;
25336 lna1 = nphy_rxcal_gaintbl[curr_gaintbl_index].lna1;
25337 txpwrindex = nphy_rxcal_gaintbl[curr_gaintbl_index].txpwrindex;
25338
25339 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25340 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25341 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25342 ((lpf_biq1 << 12) |
25343 (lpf_biq0 << 8) |
25344 (mix_tia_gain <<
25345 4) | (lna2 << 2)
25346 | lna1), 0x3, 0);
25347 } else {
25348 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25349 ((hpvga << 12) |
25350 (lpf_biq1 << 10) |
25351 (lpf_biq0 << 8) |
25352 (mix_tia_gain << 4) |
25353 (lna2 << 2) | lna1), 0x3,
25354 0);
25355 }
25356
25357 pi->nphy_rxcal_pwr_idx[tx_core] = txpwrindex;
25358
25359 if (txpwrindex == -1) {
25360 nphy_rxcal_txgain[0] = 0x8ff0 | pi->nphy_gmval;
25361 nphy_rxcal_txgain[1] = 0x8ff0 | pi->nphy_gmval;
25362 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ,
25363 2, 0x110, 16,
25364 nphy_rxcal_txgain);
25365 } else {
25366 wlc_phy_txpwr_index_nphy(pi, tx_core + 1, txpwrindex,
0965ae88 25367 false);
a9533e7e
HP
25368 }
25369
25370 wlc_phy_tx_tone_nphy(pi, (CHSPEC_IS40(pi->radio_chanspec)) ?
25371 NPHY_RXCAL_TONEFREQ_40MHz :
25372 NPHY_RXCAL_TONEFREQ_20MHz,
0965ae88 25373 NPHY_RXCAL_TONEAMP, 0, cal_type, false);
a9533e7e
HP
25374
25375 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25376 i_pwr = (est[rx_core].i_pwr + num_samps / 2) / num_samps;
25377 q_pwr = (est[rx_core].q_pwr + num_samps / 2) / num_samps;
25378 curr_pwr = i_pwr + q_pwr;
25379
25380 switch (gainctrl_dirn) {
25381 case NPHY_RXCAL_GAIN_INIT:
25382 if (curr_pwr > thresh_pwr) {
25383 gainctrl_dirn = NPHY_RXCAL_GAIN_DOWN;
25384 prev_gaintbl_index = curr_gaintbl_index;
25385 curr_gaintbl_index--;
25386 } else {
25387 gainctrl_dirn = NPHY_RXCAL_GAIN_UP;
25388 prev_gaintbl_index = curr_gaintbl_index;
25389 curr_gaintbl_index++;
25390 }
25391 break;
25392
25393 case NPHY_RXCAL_GAIN_UP:
25394 if (curr_pwr > thresh_pwr) {
0f0881b0 25395 gainctrl_done = true;
a9533e7e
HP
25396 optim_pwr = prev_pwr;
25397 optim_gaintbl_index = prev_gaintbl_index;
25398 } else {
25399 prev_gaintbl_index = curr_gaintbl_index;
25400 curr_gaintbl_index++;
25401 }
25402 break;
25403
25404 case NPHY_RXCAL_GAIN_DOWN:
25405 if (curr_pwr > thresh_pwr) {
25406 prev_gaintbl_index = curr_gaintbl_index;
25407 curr_gaintbl_index--;
25408 } else {
0f0881b0 25409 gainctrl_done = true;
a9533e7e
HP
25410 optim_pwr = curr_pwr;
25411 optim_gaintbl_index = curr_gaintbl_index;
25412 }
25413 break;
25414
25415 default:
790c3093 25416 break;
a9533e7e
HP
25417 }
25418
25419 if ((curr_gaintbl_index < 0) ||
25420 (curr_gaintbl_index > NPHY_IPA_RXCAL_MAXGAININDEX)) {
0f0881b0 25421 gainctrl_done = true;
a9533e7e
HP
25422 optim_pwr = curr_pwr;
25423 optim_gaintbl_index = prev_gaintbl_index;
25424 } else {
25425 prev_pwr = curr_pwr;
25426 }
25427
25428 wlc_phy_stopplayback_nphy(pi);
25429 } while (!gainctrl_done);
25430
25431 hpvga = nphy_rxcal_gaintbl[optim_gaintbl_index].hpvga;
25432 lpf_biq1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq1;
25433 lpf_biq0 = nphy_rxcal_gaintbl[optim_gaintbl_index].lpf_biq0;
25434 lna2 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna2;
25435 lna1 = nphy_rxcal_gaintbl[optim_gaintbl_index].lna1;
25436 txpwrindex = nphy_rxcal_gaintbl[optim_gaintbl_index].txpwrindex;
25437
25438 actual_log2_pwr = wlc_phy_nbits(optim_pwr);
25439 delta_pwr = desired_log2_pwr - actual_log2_pwr;
25440
25441 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25442 fine_gain_idx = (int)lpf_biq1 + delta_pwr;
25443
25444 if (fine_gain_idx + (int)lpf_biq0 > 10) {
25445 lpf_biq1 = 10 - lpf_biq0;
25446 } else {
3ea2f4d6 25447 lpf_biq1 = (u16) max(fine_gain_idx, 0);
a9533e7e
HP
25448 }
25449 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25450 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25451 ((lpf_biq1 << 12) |
25452 (lpf_biq0 << 8) |
25453 (mix_tia_gain << 4) |
25454 (lna2 << 2) | lna1), 0x3,
25455 0);
25456 } else {
3ea2f4d6 25457 hpvga = (u16) max(min(((int)hpvga) + delta_pwr, 10), 0);
a9533e7e
HP
25458 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12),
25459 ((hpvga << 12) | (lpf_biq1 << 10) |
25460 (lpf_biq0 << 8) | (mix_tia_gain <<
25461 4) | (lna2 <<
25462 2) |
25463 lna1), 0x3, 0);
25464
25465 }
25466
25467 if (rxgain != NULL) {
25468 *rxgain++ = lna1;
25469 *rxgain++ = lna2;
25470 *rxgain++ = mix_tia_gain;
25471 *rxgain++ = lpf_biq0;
25472 *rxgain++ = lpf_biq1;
25473 *rxgain = hpvga;
25474 }
25475
25476 wlc_phy_rx_iq_coeffs_nphy(pi, 1, &save_comp);
25477}
25478
25479static void
7d4df48e 25480wlc_phy_rxcal_gainctrl_nphy(phy_info_t *pi, u8 rx_core, u16 *rxgain,
e868ab03 25481 u8 cal_type)
a9533e7e
HP
25482{
25483 wlc_phy_rxcal_gainctrl_nphy_rev5(pi, rx_core, rxgain, cal_type);
25484}
25485
e868ab03
GKH
25486static u8
25487wlc_phy_rc_sweep_nphy(phy_info_t *pi, u8 core_idx, u8 loopback_type)
a9533e7e 25488{
66cbd3ab
GKH
25489 u32 target_bws[2] = { 9500, 21000 };
25490 u32 ref_tones[2] = { 3000, 6000 };
25491 u32 target_bw, ref_tone;
a9533e7e 25492
66cbd3ab
GKH
25493 u32 target_pwr_ratios[2] = { 28606, 18468 };
25494 u32 target_pwr_ratio, pwr_ratio, last_pwr_ratio = 0;
a9533e7e 25495
7d4df48e
GKH
25496 u16 start_rccal_ovr_val = 128;
25497 u16 txlpf_rccal_lpc_ovr_val = 128;
25498 u16 rxlpf_rccal_hpc_ovr_val = 159;
25499
25500 u16 orig_txlpf_rccal_lpc_ovr_val;
25501 u16 orig_rxlpf_rccal_hpc_ovr_val;
25502 u16 radio_addr_offset_rx;
25503 u16 radio_addr_offset_tx;
25504 u16 orig_dcBypass;
25505 u16 orig_RxStrnFilt40Num[6];
25506 u16 orig_RxStrnFilt40Den[4];
25507 u16 orig_rfctrloverride[2];
25508 u16 orig_rfctrlauxreg[2];
25509 u16 orig_rfctrlrssiothers;
25510 u16 tx_lpf_bw = 4;
25511
25512 u16 rx_lpf_bw, rx_lpf_bws[2] = { 2, 4 };
25513 u16 lpf_hpc = 7, hpvga_hpc = 7;
a9533e7e 25514
562c8850 25515 s8 rccal_stepsize;
7d4df48e 25516 u16 rccal_val, last_rccal_val = 0, best_rccal_val = 0;
66cbd3ab 25517 u32 ref_iq_vals = 0, target_iq_vals = 0;
7d4df48e 25518 u16 num_samps, log_num_samps = 10;
a9533e7e
HP
25519 phy_iq_est_t est[PHY_CORE_MAX];
25520
25521 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25522 return 0;
25523 }
25524
25525 num_samps = (1 << log_num_samps);
25526
25527 if (CHSPEC_IS40(pi->radio_chanspec)) {
25528 target_bw = target_bws[1];
25529 target_pwr_ratio = target_pwr_ratios[1];
25530 ref_tone = ref_tones[1];
25531 rx_lpf_bw = rx_lpf_bws[1];
25532 } else {
25533 target_bw = target_bws[0];
25534 target_pwr_ratio = target_pwr_ratios[0];
25535 ref_tone = ref_tones[0];
25536 rx_lpf_bw = rx_lpf_bws[0];
25537 }
25538
25539 if (core_idx == 0) {
25540 radio_addr_offset_rx = RADIO_2056_RX0;
25541 radio_addr_offset_tx =
25542 (loopback_type == 0) ? RADIO_2056_TX0 : RADIO_2056_TX1;
25543 } else {
25544 radio_addr_offset_rx = RADIO_2056_RX1;
25545 radio_addr_offset_tx =
25546 (loopback_type == 0) ? RADIO_2056_TX1 : RADIO_2056_TX0;
25547 }
25548
25549 orig_txlpf_rccal_lpc_ovr_val =
25550 read_radio_reg(pi,
25551 (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx));
25552 orig_rxlpf_rccal_hpc_ovr_val =
25553 read_radio_reg(pi,
25554 (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25555 radio_addr_offset_rx));
25556
25557 orig_dcBypass = ((read_phy_reg(pi, 0x48) >> 8) & 1);
25558
25559 orig_RxStrnFilt40Num[0] = read_phy_reg(pi, 0x267);
25560 orig_RxStrnFilt40Num[1] = read_phy_reg(pi, 0x268);
25561 orig_RxStrnFilt40Num[2] = read_phy_reg(pi, 0x269);
25562 orig_RxStrnFilt40Den[0] = read_phy_reg(pi, 0x26a);
25563 orig_RxStrnFilt40Den[1] = read_phy_reg(pi, 0x26b);
25564 orig_RxStrnFilt40Num[3] = read_phy_reg(pi, 0x26c);
25565 orig_RxStrnFilt40Num[4] = read_phy_reg(pi, 0x26d);
25566 orig_RxStrnFilt40Num[5] = read_phy_reg(pi, 0x26e);
25567 orig_RxStrnFilt40Den[2] = read_phy_reg(pi, 0x26f);
25568 orig_RxStrnFilt40Den[3] = read_phy_reg(pi, 0x270);
25569
25570 orig_rfctrloverride[0] = read_phy_reg(pi, 0xe7);
25571 orig_rfctrloverride[1] = read_phy_reg(pi, 0xec);
25572 orig_rfctrlauxreg[0] = read_phy_reg(pi, 0xf8);
25573 orig_rfctrlauxreg[1] = read_phy_reg(pi, 0xfa);
25574 orig_rfctrlrssiothers = read_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d);
25575
25576 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25577 txlpf_rccal_lpc_ovr_val);
25578
25579 write_radio_reg(pi,
25580 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25581 rxlpf_rccal_hpc_ovr_val);
25582
25583 mod_phy_reg(pi, 0x48, (0x1 << 8), (0x1 << 8));
25584
25585 write_phy_reg(pi, 0x267, 0x02d4);
25586 write_phy_reg(pi, 0x268, 0x0000);
25587 write_phy_reg(pi, 0x269, 0x0000);
25588 write_phy_reg(pi, 0x26a, 0x0000);
25589 write_phy_reg(pi, 0x26b, 0x0000);
25590 write_phy_reg(pi, 0x26c, 0x02d4);
25591 write_phy_reg(pi, 0x26d, 0x0000);
25592 write_phy_reg(pi, 0x26e, 0x0000);
25593 write_phy_reg(pi, 0x26f, 0x0000);
25594 write_phy_reg(pi, 0x270, 0x0000);
25595
25596 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 8));
25597 or_phy_reg(pi, (core_idx == 0) ? 0xec : 0xe7, (0x1 << 15));
25598 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 9));
25599 or_phy_reg(pi, (core_idx == 0) ? 0xe7 : 0xec, (0x1 << 10));
25600
25601 mod_phy_reg(pi, (core_idx == 0) ? 0xfa : 0xf8,
25602 (0x7 << 10), (tx_lpf_bw << 10));
25603 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25604 (0x7 << 0), (hpvga_hpc << 0));
25605 mod_phy_reg(pi, (core_idx == 0) ? 0xf8 : 0xfa,
25606 (0x7 << 4), (lpf_hpc << 4));
25607 mod_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d,
25608 (0x7 << 8), (rx_lpf_bw << 8));
25609
25610 rccal_stepsize = 16;
25611 rccal_val = start_rccal_ovr_val + rccal_stepsize;
25612
25613 while (rccal_stepsize >= 0) {
25614 write_radio_reg(pi,
25615 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25616 radio_addr_offset_rx), rccal_val);
25617
25618 if (rccal_stepsize == 16) {
25619
25620 wlc_phy_tx_tone_nphy(pi, ref_tone, NPHY_RXCAL_TONEAMP,
0965ae88 25621 0, 1, false);
7383141b 25622 udelay(2);
a9533e7e
HP
25623
25624 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25625
25626 if (core_idx == 0) {
25627 ref_iq_vals =
e9e6727f 25628 max_t(u32, (est[0].i_pwr +
a9533e7e
HP
25629 est[0].q_pwr) >> (log_num_samps + 1),
25630 1);
25631 } else {
25632 ref_iq_vals =
e9e6727f 25633 max_t(u32, (est[1].i_pwr +
a9533e7e
HP
25634 est[1].q_pwr) >> (log_num_samps + 1),
25635 1);
25636 }
25637
25638 wlc_phy_tx_tone_nphy(pi, target_bw, NPHY_RXCAL_TONEAMP,
0965ae88 25639 0, 1, false);
7383141b 25640 udelay(2);
a9533e7e
HP
25641 }
25642
25643 wlc_phy_rx_iq_est_nphy(pi, est, num_samps, 32, 0);
25644
25645 if (core_idx == 0) {
25646 target_iq_vals =
25647 (est[0].i_pwr + est[0].q_pwr) >> (log_num_samps +
25648 1);
25649 } else {
25650 target_iq_vals =
25651 (est[1].i_pwr + est[1].q_pwr) >> (log_num_samps +
25652 1);
25653 }
25654 pwr_ratio = (uint) ((target_iq_vals << 16) / ref_iq_vals);
25655
25656 if (rccal_stepsize == 0) {
25657 rccal_stepsize--;
25658 } else if (rccal_stepsize == 1) {
25659 last_rccal_val = rccal_val;
25660 rccal_val += (pwr_ratio > target_pwr_ratio) ? 1 : -1;
25661 last_pwr_ratio = pwr_ratio;
25662 rccal_stepsize--;
25663 } else {
25664 rccal_stepsize = (rccal_stepsize >> 1);
25665 rccal_val += ((pwr_ratio > target_pwr_ratio) ?
25666 rccal_stepsize : (-rccal_stepsize));
25667 }
25668
25669 if (rccal_stepsize == -1) {
25670 best_rccal_val =
25671 (ABS((int)last_pwr_ratio - (int)target_pwr_ratio) <
25672 ABS((int)pwr_ratio -
25673 (int)target_pwr_ratio)) ? last_rccal_val :
25674 rccal_val;
25675
25676 if (CHSPEC_IS40(pi->radio_chanspec)) {
25677 if ((best_rccal_val > 140)
25678 || (best_rccal_val < 135)) {
25679 best_rccal_val = 138;
25680 }
25681 } else {
25682 if ((best_rccal_val > 142)
25683 || (best_rccal_val < 137)) {
25684 best_rccal_val = 140;
25685 }
25686 }
25687
25688 write_radio_reg(pi,
25689 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25690 radio_addr_offset_rx), best_rccal_val);
25691 }
25692 }
25693
25694 wlc_phy_stopplayback_nphy(pi);
25695
25696 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL | radio_addr_offset_tx),
25697 orig_txlpf_rccal_lpc_ovr_val);
25698 write_radio_reg(pi,
25699 (RADIO_2056_RX_RXLPF_RCCAL_HPC | radio_addr_offset_rx),
25700 orig_rxlpf_rccal_hpc_ovr_val);
25701
25702 mod_phy_reg(pi, 0x48, (0x1 << 8), (orig_dcBypass << 8));
25703
25704 write_phy_reg(pi, 0x267, orig_RxStrnFilt40Num[0]);
25705 write_phy_reg(pi, 0x268, orig_RxStrnFilt40Num[1]);
25706 write_phy_reg(pi, 0x269, orig_RxStrnFilt40Num[2]);
25707 write_phy_reg(pi, 0x26a, orig_RxStrnFilt40Den[0]);
25708 write_phy_reg(pi, 0x26b, orig_RxStrnFilt40Den[1]);
25709 write_phy_reg(pi, 0x26c, orig_RxStrnFilt40Num[3]);
25710 write_phy_reg(pi, 0x26d, orig_RxStrnFilt40Num[4]);
25711 write_phy_reg(pi, 0x26e, orig_RxStrnFilt40Num[5]);
25712 write_phy_reg(pi, 0x26f, orig_RxStrnFilt40Den[2]);
25713 write_phy_reg(pi, 0x270, orig_RxStrnFilt40Den[3]);
25714
25715 write_phy_reg(pi, 0xe7, orig_rfctrloverride[0]);
25716 write_phy_reg(pi, 0xec, orig_rfctrloverride[1]);
25717 write_phy_reg(pi, 0xf8, orig_rfctrlauxreg[0]);
25718 write_phy_reg(pi, 0xfa, orig_rfctrlauxreg[1]);
25719 write_phy_reg(pi, (core_idx == 0) ? 0x7a : 0x7d, orig_rfctrlrssiothers);
25720
0965ae88 25721 pi->nphy_anarxlpf_adjusted = false;
a9533e7e 25722
90ea2296 25723 return best_rccal_val - 0x80;
a9533e7e
HP
25724}
25725
7383141b 25726#define WAIT_FOR_SCOPE 4000
a9533e7e 25727static int
7cc4a4c0 25728wlc_phy_cal_rxiq_nphy_rev3(phy_info_t *pi, nphy_txgains_t target_gain,
e868ab03 25729 u8 cal_type, bool debug)
a9533e7e 25730{
7d4df48e 25731 u16 orig_BBConfig;
e868ab03
GKH
25732 u8 core_no, rx_core;
25733 u8 best_rccal[2];
7d4df48e
GKH
25734 u16 gain_save[2];
25735 u16 cal_gain[2];
a9533e7e 25736 nphy_iqcal_params_t cal_params[2];
e868ab03 25737 u8 rxcore_state;
562c8850
GKH
25738 s8 rxlpf_rccal_hpc, txlpf_rccal_lpc;
25739 s8 txlpf_idac;
0965ae88
GKH
25740 bool phyhang_avoid_state = false;
25741 bool skip_rxiqcal = false;
a9533e7e
HP
25742
25743 orig_BBConfig = read_phy_reg(pi, 0x01);
25744 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
25745
0f0881b0 25746 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
25747
25748 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25749 phyhang_avoid_state = pi->phyhang_avoid;
0965ae88 25750 pi->phyhang_avoid = false;
a9533e7e
HP
25751 }
25752
25753 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25754
25755 for (core_no = 0; core_no <= 1; core_no++) {
25756 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25757 &cal_params[core_no]);
25758 cal_gain[core_no] = cal_params[core_no].cal_gain;
25759 }
25760
25761 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25762
25763 rxcore_state = wlc_phy_rxcore_getstate_nphy((wlc_phy_t *) pi);
25764
25765 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25766
25767 skip_rxiqcal =
0965ae88 25768 ((rxcore_state & (1 << rx_core)) == 0) ? true : false;
a9533e7e
HP
25769
25770 wlc_phy_rxcal_physetup_nphy(pi, rx_core);
25771
25772 wlc_phy_rxcal_radio_setup_nphy(pi, rx_core);
25773
25774 if ((!skip_rxiqcal) && ((cal_type == 0) || (cal_type == 2))) {
25775
25776 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL, 0);
25777
25778 wlc_phy_tx_tone_nphy(pi,
25779 (CHSPEC_IS40(pi->radio_chanspec)) ?
25780 NPHY_RXCAL_TONEFREQ_40MHz :
25781 NPHY_RXCAL_TONEFREQ_20MHz,
25782 NPHY_RXCAL_TONEAMP, 0, cal_type,
0965ae88 25783 false);
a9533e7e
HP
25784
25785 if (debug)
7383141b 25786 mdelay(WAIT_FOR_SCOPE);
a9533e7e
HP
25787
25788 wlc_phy_calc_rx_iq_comp_nphy(pi, rx_core + 1);
25789 wlc_phy_stopplayback_nphy(pi);
25790 }
25791
25792 if (((cal_type == 1) || (cal_type == 2))
25793 && NREV_LT(pi->pubpi.phy_rev, 7)) {
25794
25795 if (rx_core == PHY_CORE_1) {
25796
25797 if (rxcore_state == 1) {
25798 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25799 *) pi, 3);
25800 }
25801
25802 wlc_phy_rxcal_gainctrl_nphy(pi, rx_core, NULL,
25803 1);
25804
25805 best_rccal[rx_core] =
25806 wlc_phy_rc_sweep_nphy(pi, rx_core, 1);
25807 pi->nphy_rccal_value = best_rccal[rx_core];
25808
25809 if (rxcore_state == 1) {
25810 wlc_phy_rxcore_setstate_nphy((wlc_phy_t
25811 *) pi,
25812 rxcore_state);
25813 }
25814 }
25815 }
25816
25817 wlc_phy_rxcal_radio_cleanup_nphy(pi, rx_core);
25818
25819 wlc_phy_rxcal_phycleanup_nphy(pi, rx_core);
25820 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25821 }
25822
25823 if ((cal_type == 1) || (cal_type == 2)) {
25824
25825 best_rccal[0] = best_rccal[1];
25826 write_radio_reg(pi,
25827 (RADIO_2056_RX_RXLPF_RCCAL_LPC |
25828 RADIO_2056_RX0), (best_rccal[0] | 0x80));
25829
25830 for (rx_core = 0; rx_core < pi->pubpi.phy_corenum; rx_core++) {
25831 rxlpf_rccal_hpc =
25832 (((int)best_rccal[rx_core] - 12) >> 1) + 10;
25833 txlpf_rccal_lpc = ((int)best_rccal[rx_core] - 12) + 10;
25834
25835 if (PHY_IPA(pi)) {
25836 txlpf_rccal_lpc += IS40MHZ(pi) ? 24 : 12;
25837 txlpf_idac = IS40MHZ(pi) ? 0x0e : 0x13;
25838 WRITE_RADIO_REG2(pi, RADIO_2056, TX, rx_core,
25839 TXLPF_IDAC_4, txlpf_idac);
25840 }
25841
e9e6727f
GKH
25842 rxlpf_rccal_hpc = max(min_t(u8, rxlpf_rccal_hpc, 31), 0);
25843 txlpf_rccal_lpc = max(min_t(u8, txlpf_rccal_lpc, 31), 0);
a9533e7e
HP
25844
25845 write_radio_reg(pi, (RADIO_2056_RX_RXLPF_RCCAL_HPC |
25846 ((rx_core ==
25847 PHY_CORE_0) ? RADIO_2056_RX0 :
25848 RADIO_2056_RX1)),
25849 (rxlpf_rccal_hpc | 0x80));
25850
25851 write_radio_reg(pi, (RADIO_2056_TX_TXLPF_RCCAL |
25852 ((rx_core ==
25853 PHY_CORE_0) ? RADIO_2056_TX0 :
25854 RADIO_2056_TX1)),
25855 (txlpf_rccal_lpc | 0x80));
25856 }
25857 }
25858
25859 write_phy_reg(pi, 0x01, orig_BBConfig);
25860
25861 wlc_phy_resetcca_nphy(pi);
25862
25863 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
25864 wlc_phy_rfctrl_override_1tomany_nphy(pi,
25865 NPHY_REV7_RfctrlOverride_cmd_rxgain,
25866 0, 0x3, 1);
25867 } else {
25868 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
25869 }
25870 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
25871
25872 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
25873 gain_save);
25874
25875 if (NREV_GE(pi->pubpi.phy_rev, 4)) {
25876 pi->phyhang_avoid = phyhang_avoid_state;
25877 }
25878
0965ae88 25879 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e 25880
a1c5ad81 25881 return 0;
a9533e7e
HP
25882}
25883
25884static int
7cc4a4c0 25885wlc_phy_cal_rxiq_nphy_rev2(phy_info_t *pi, nphy_txgains_t target_gain,
a9533e7e
HP
25886 bool debug)
25887{
25888 phy_iq_est_t est[PHY_CORE_MAX];
e868ab03 25889 u8 core_num, rx_core, tx_core;
7d4df48e
GKH
25890 u16 lna_vals[] = { 0x3, 0x3, 0x1 };
25891 u16 hpf1_vals[] = { 0x7, 0x2, 0x0 };
25892 u16 hpf2_vals[] = { 0x2, 0x0, 0x0 };
e59fe083
GKH
25893 s16 curr_hpf1, curr_hpf2, curr_hpf, curr_lna;
25894 s16 desired_log2_pwr, actual_log2_pwr, hpf_change;
7d4df48e
GKH
25895 u16 orig_RfseqCoreActv, orig_AfectrlCore, orig_AfectrlOverride;
25896 u16 orig_RfctrlIntcRx, orig_RfctrlIntcTx;
25897 u16 num_samps;
66cbd3ab 25898 u32 i_pwr, q_pwr, tot_pwr[3];
e868ab03 25899 u8 gain_pass, use_hpf_num;
7d4df48e
GKH
25900 u16 mask, val1, val2;
25901 u16 core_no;
25902 u16 gain_save[2];
25903 u16 cal_gain[2];
a9533e7e 25904 nphy_iqcal_params_t cal_params[2];
e868ab03 25905 u8 phy_bw;
a1c5ad81 25906 int bcmerror = 0;
0f0881b0 25907 bool first_playtone = true;
a9533e7e 25908
0f0881b0 25909 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
25910
25911 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
25912
25913 wlc_phy_reapply_txcal_coeffs_nphy(pi);
25914 }
25915
25916 wlc_phy_table_read_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, gain_save);
25917
25918 for (core_no = 0; core_no <= 1; core_no++) {
25919 wlc_phy_iqcal_gainparams_nphy(pi, core_no, target_gain,
25920 &cal_params[core_no]);
25921 cal_gain[core_no] = cal_params[core_no].cal_gain;
25922 }
25923
25924 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16, cal_gain);
25925
25926 num_samps = 1024;
25927 desired_log2_pwr = 13;
25928
25929 for (core_num = 0; core_num < 2; core_num++) {
25930
25931 rx_core = core_num;
25932 tx_core = 1 - core_num;
25933
25934 orig_RfseqCoreActv = read_phy_reg(pi, 0xa2);
25935 orig_AfectrlCore = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25936 0xa6 : 0xa7);
25937 orig_AfectrlOverride = read_phy_reg(pi, 0xa5);
25938 orig_RfctrlIntcRx = read_phy_reg(pi, (rx_core == PHY_CORE_0) ?
25939 0x91 : 0x92);
25940 orig_RfctrlIntcTx = read_phy_reg(pi, (tx_core == PHY_CORE_0) ?
25941 0x91 : 0x92);
25942
25943 mod_phy_reg(pi, 0xa2, (0xf << 12), (1 << tx_core) << 12);
25944 mod_phy_reg(pi, 0xa2, (0xf << 0), (1 << tx_core) << 0);
25945
25946 or_phy_reg(pi, ((rx_core == PHY_CORE_0) ? 0xa6 : 0xa7),
25947 ((0x1 << 1) | (0x1 << 2)));
25948 or_phy_reg(pi, 0xa5, ((0x1 << 1) | (0x1 << 2)));
25949
25950 if (((pi->nphy_rxcalparams) & 0xff000000)) {
25951
25952 write_phy_reg(pi,
25953 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25954 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x140 :
25955 0x110));
25956 } else {
25957
25958 write_phy_reg(pi,
25959 (rx_core == PHY_CORE_0) ? 0x91 : 0x92,
25960 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x180 :
25961 0x120));
25962 }
25963
25964 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 : 0x92,
25965 (CHSPEC_IS5G(pi->radio_chanspec) ? 0x148 :
25966 0x114));
25967
25968 mask = RADIO_2055_COUPLE_RX_MASK | RADIO_2055_COUPLE_TX_MASK;
25969 if (rx_core == PHY_CORE_0) {
25970 val1 = RADIO_2055_COUPLE_RX_MASK;
25971 val2 = RADIO_2055_COUPLE_TX_MASK;
25972 } else {
25973 val1 = RADIO_2055_COUPLE_TX_MASK;
25974 val2 = RADIO_2055_COUPLE_RX_MASK;
25975 }
25976
25977 if ((pi->nphy_rxcalparams & 0x10000)) {
25978 mod_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, mask,
25979 val1);
25980 mod_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, mask,
25981 val2);
25982 }
25983
25984 for (gain_pass = 0; gain_pass < 4; gain_pass++) {
25985
25986 if (debug)
7383141b 25987 mdelay(WAIT_FOR_SCOPE);
a9533e7e
HP
25988
25989 if (gain_pass < 3) {
25990 curr_lna = lna_vals[gain_pass];
25991 curr_hpf1 = hpf1_vals[gain_pass];
25992 curr_hpf2 = hpf2_vals[gain_pass];
25993 } else {
25994
25995 if (tot_pwr[1] > 10000) {
25996 curr_lna = lna_vals[2];
25997 curr_hpf1 = hpf1_vals[2];
25998 curr_hpf2 = hpf2_vals[2];
25999 use_hpf_num = 1;
26000 curr_hpf = curr_hpf1;
26001 actual_log2_pwr =
26002 wlc_phy_nbits(tot_pwr[2]);
26003 } else {
26004 if (tot_pwr[0] > 10000) {
26005 curr_lna = lna_vals[1];
26006 curr_hpf1 = hpf1_vals[1];
26007 curr_hpf2 = hpf2_vals[1];
26008 use_hpf_num = 1;
26009 curr_hpf = curr_hpf1;
26010 actual_log2_pwr =
26011 wlc_phy_nbits(tot_pwr[1]);
26012 } else {
26013 curr_lna = lna_vals[0];
26014 curr_hpf1 = hpf1_vals[0];
26015 curr_hpf2 = hpf2_vals[0];
26016 use_hpf_num = 2;
26017 curr_hpf = curr_hpf2;
26018 actual_log2_pwr =
26019 wlc_phy_nbits(tot_pwr[0]);
26020 }
26021 }
26022
26023 hpf_change = desired_log2_pwr - actual_log2_pwr;
26024 curr_hpf += hpf_change;
e9e6727f 26025 curr_hpf = max(min_t(u16, curr_hpf, 10), 0);
a9533e7e
HP
26026 if (use_hpf_num == 1) {
26027 curr_hpf1 = curr_hpf;
26028 } else {
26029 curr_hpf2 = curr_hpf;
26030 }
26031 }
26032
26033 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10),
26034 ((curr_hpf2 << 8) |
26035 (curr_hpf1 << 4) |
26036 (curr_lna << 2)), 0x3, 0);
26037 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26038
26039 wlc_phy_stopplayback_nphy(pi);
26040
26041 if (first_playtone) {
26042 bcmerror = wlc_phy_tx_tone_nphy(pi, 4000,
7d4df48e 26043 (u16) (pi->
a9533e7e
HP
26044 nphy_rxcalparams
26045 &
26046 0xffff),
0f0881b0 26047 0, 0, true);
0965ae88 26048 first_playtone = false;
a9533e7e
HP
26049 } else {
26050 phy_bw =
26051 (CHSPEC_IS40(pi->radio_chanspec)) ? 40 : 20;
26052 wlc_phy_runsamples_nphy(pi, phy_bw * 8, 0xffff,
0f0881b0 26053 0, 0, 0, true);
a9533e7e
HP
26054 }
26055
a1c5ad81 26056 if (bcmerror == 0) {
a9533e7e
HP
26057 if (gain_pass < 3) {
26058
26059 wlc_phy_rx_iq_est_nphy(pi, est,
26060 num_samps, 32,
26061 0);
26062 i_pwr =
26063 (est[rx_core].i_pwr +
26064 num_samps / 2) / num_samps;
26065 q_pwr =
26066 (est[rx_core].q_pwr +
26067 num_samps / 2) / num_samps;
26068 tot_pwr[gain_pass] = i_pwr + q_pwr;
26069 } else {
26070
26071 wlc_phy_calc_rx_iq_comp_nphy(pi,
26072 (1 <<
26073 rx_core));
26074 }
26075
26076 wlc_phy_stopplayback_nphy(pi);
26077 }
26078
a1c5ad81 26079 if (bcmerror != 0)
a9533e7e
HP
26080 break;
26081 }
26082
26083 and_radio_reg(pi, RADIO_2055_CORE1_GEN_SPARE2, ~mask);
26084 and_radio_reg(pi, RADIO_2055_CORE2_GEN_SPARE2, ~mask);
26085
26086 write_phy_reg(pi, (tx_core == PHY_CORE_0) ? 0x91 :
26087 0x92, orig_RfctrlIntcTx);
26088 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0x91 :
26089 0x92, orig_RfctrlIntcRx);
26090 write_phy_reg(pi, 0xa5, orig_AfectrlOverride);
26091 write_phy_reg(pi, (rx_core == PHY_CORE_0) ? 0xa6 :
26092 0xa7, orig_AfectrlCore);
26093 write_phy_reg(pi, 0xa2, orig_RfseqCoreActv);
26094
a1c5ad81 26095 if (bcmerror != 0)
a9533e7e
HP
26096 break;
26097 }
26098
26099 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 10), 0, 0x3, 1);
26100 wlc_phy_force_rfseq_nphy(pi, NPHY_RFSEQ_RESET2RX);
26101
26102 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_RFSEQ, 2, 0x110, 16,
26103 gain_save);
26104
0965ae88 26105 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
26106
26107 return bcmerror;
26108}
26109
26110int
7cc4a4c0 26111wlc_phy_cal_rxiq_nphy(phy_info_t *pi, nphy_txgains_t target_gain,
e868ab03 26112 u8 cal_type, bool debug)
a9533e7e
HP
26113{
26114 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26115
26116 cal_type = 0;
26117 }
26118 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
26119 return wlc_phy_cal_rxiq_nphy_rev3(pi, target_gain, cal_type,
26120 debug);
26121 } else {
26122 return wlc_phy_cal_rxiq_nphy_rev2(pi, target_gain, debug);
26123 }
26124}
26125
7cc4a4c0 26126static void wlc_phy_extpa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26127{
26128 int j, type = 2;
7d4df48e 26129 u16 addr_offset = 0x2c5;
a9533e7e
HP
26130
26131 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26132 write_phy_reg(pi, addr_offset + j,
26133 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26134 }
26135}
26136
7cc4a4c0 26137static void wlc_phy_ipa_set_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26138{
26139 int j, type;
7d4df48e 26140 u16 addr_offset[] = { 0x186, 0x195,
a9533e7e
HP
26141 0x2c5
26142 };
26143
26144 for (type = 0; type < 3; type++) {
26145 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26146 write_phy_reg(pi, addr_offset[type] + j,
26147 NPHY_IPA_REV4_txdigi_filtcoeffs[type][j]);
26148 }
26149 }
26150
26151 if (IS40MHZ(pi)) {
26152 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26153 write_phy_reg(pi, 0x186 + j,
26154 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26155 }
26156 } else {
26157 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26158 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26159 write_phy_reg(pi, 0x186 + j,
26160 NPHY_IPA_REV4_txdigi_filtcoeffs[5]
26161 [j]);
26162 }
26163 }
26164
26165 if (CHSPEC_CHANNEL(pi->radio_chanspec) == 14) {
26166 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26167 write_phy_reg(pi, 0x2c5 + j,
26168 NPHY_IPA_REV4_txdigi_filtcoeffs[6]
26169 [j]);
26170 }
26171 }
26172 }
26173}
26174
7cc4a4c0 26175static void wlc_phy_ipa_restore_tx_digi_filts_nphy(phy_info_t *pi)
a9533e7e
HP
26176{
26177 int j;
26178
26179 if (IS40MHZ(pi)) {
26180 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26181 write_phy_reg(pi, 0x195 + j,
26182 NPHY_IPA_REV4_txdigi_filtcoeffs[4][j]);
26183 }
26184 } else {
26185 for (j = 0; j < NPHY_NUM_DIG_FILT_COEFFS; j++) {
26186 write_phy_reg(pi, 0x186 + j,
26187 NPHY_IPA_REV4_txdigi_filtcoeffs[3][j]);
26188 }
26189 }
26190}
26191
7d4df48e 26192static u16 wlc_phy_ipa_get_bbmult_nphy(phy_info_t *pi)
a9533e7e 26193{
7d4df48e 26194 u16 m0m1;
a9533e7e
HP
26195
26196 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m0m1);
26197
26198 return m0m1;
26199}
26200
e868ab03 26201static void wlc_phy_ipa_set_bbmult_nphy(phy_info_t *pi, u8 m0, u8 m1)
a9533e7e 26202{
7d4df48e 26203 u16 m0m1 = (u16) ((m0 << 8) | m1);
a9533e7e
HP
26204
26205 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m0m1);
26206 wlc_phy_table_write_nphy(pi, 15, 1, 95, 16, &m0m1);
26207}
26208
66cbd3ab 26209static u32 *wlc_phy_get_ipa_gaintbl_nphy(phy_info_t *pi)
a9533e7e 26210{
66cbd3ab 26211 u32 *tx_pwrctrl_tbl = NULL;
a9533e7e
HP
26212
26213 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26214
26215 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26216
26217 if ((pi->pubpi.radiorev == 4)
26218 || (pi->pubpi.radiorev == 6)) {
26219
26220 tx_pwrctrl_tbl =
26221 nphy_tpc_txgain_ipa_2g_2057rev4n6;
26222 } else if (pi->pubpi.radiorev == 3) {
26223
26224 tx_pwrctrl_tbl =
26225 nphy_tpc_txgain_ipa_2g_2057rev3;
26226 } else if (pi->pubpi.radiorev == 5) {
26227
26228 tx_pwrctrl_tbl =
26229 nphy_tpc_txgain_ipa_2g_2057rev5;
26230 } else if ((pi->pubpi.radiorev == 7)
26231 || (pi->pubpi.radiorev == 8)) {
26232
26233 tx_pwrctrl_tbl =
26234 nphy_tpc_txgain_ipa_2g_2057rev7;
a9533e7e
HP
26235 }
26236
26237 } else if (NREV_IS(pi->pubpi.phy_rev, 6)) {
26238
26239 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev6;
dfa26436 26240 if (pi->sh->chip == BCM47162_CHIP_ID) {
a9533e7e
HP
26241
26242 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26243 }
26244
26245 } else if (NREV_IS(pi->pubpi.phy_rev, 5)) {
26246
26247 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5;
26248 } else {
26249
26250 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa;
26251 }
26252
26253 } else {
26254
26255 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26256 if ((pi->pubpi.radiorev == 3) ||
26257 (pi->pubpi.radiorev == 4) ||
26258 (pi->pubpi.radiorev == 6)) {
26259
26260 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g_2057;
26261 } else if ((pi->pubpi.radiorev == 7)
26262 || (pi->pubpi.radiorev == 8)) {
26263
26264 tx_pwrctrl_tbl =
26265 nphy_tpc_txgain_ipa_5g_2057rev7;
a9533e7e
HP
26266 }
26267
26268 } else {
26269 tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_5g;
26270 }
26271 }
26272
26273 return tx_pwrctrl_tbl;
26274}
26275
26276static void
7cc4a4c0 26277wlc_phy_papd_cal_setup_nphy(phy_info_t *pi, nphy_papd_restore_state *state,
e868ab03 26278 u8 core)
a9533e7e 26279{
3e26416e 26280 s32 tone_freq;
e868ab03 26281 u8 off_core;
7d4df48e 26282 u16 mixgain = 0;
a9533e7e
HP
26283
26284 off_core = core ^ 0x1;
26285 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26286
26287 if (NREV_IS(pi->pubpi.phy_rev, 7)
26288 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26289 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7),
26290 wlc_phy_read_lpf_bw_ctl_nphy
26291 (pi, 0), 0, 0,
26292 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26293 }
26294
26295 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26296 if (pi->pubpi.radiorev == 5) {
26297 mixgain = (core == 0) ? 0x20 : 0x00;
26298
26299 } else if ((pi->pubpi.radiorev == 7)
26300 || (pi->pubpi.radiorev == 8)) {
26301
26302 mixgain = 0x00;
26303
26304 } else if ((pi->pubpi.radiorev <= 4)
26305 || (pi->pubpi.radiorev == 6)) {
26306
26307 mixgain = 0x00;
a9533e7e
HP
26308 }
26309
26310 } else {
26311 if ((pi->pubpi.radiorev == 4) ||
26312 (pi->pubpi.radiorev == 6)) {
26313
26314 mixgain = 0x50;
26315 } else if ((pi->pubpi.radiorev == 3)
26316 || (pi->pubpi.radiorev == 7)
26317 || (pi->pubpi.radiorev == 8)) {
26318
26319 mixgain = 0x0;
a9533e7e
HP
26320 }
26321 }
26322
26323 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11),
26324 mixgain, (1 << core), 0,
26325 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26326
26327 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26328 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26329 1, (1 << core), 0);
26330 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26331 NPHY_REV7_RfctrlOverride_cmd_tx_pu,
26332 0, (1 << off_core), 0);
26333
26334 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26335 0, 0x3, 0,
26336 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26337 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1,
26338 (1 << core), 0,
26339 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26340 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0,
26341 (1 << core), 0,
26342 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26343 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1,
26344 (1 << core), 0,
26345 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26346 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0,
26347 (1 << core), 0,
26348 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26349 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1,
26350 (1 << core), 0,
26351 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26352 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0,
26353 (1 << core), 0,
26354 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26355 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1,
26356 (1 << core), 0,
26357 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26358
26359 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5),
26360 0, (1 << core), 0,
26361 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26362 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0,
26363 (1 << core), 0,
26364 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26365
26366 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26367 0xa6 : 0xa7);
26368 state->afeoverride[core] =
26369 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26370 state->afectrl[off_core] =
26371 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa7 : 0xa6);
26372 state->afeoverride[off_core] =
26373 read_phy_reg(pi, (core == PHY_CORE_0) ? 0xa5 : 0x8f);
26374
26375 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26376 (0x1 << 2), 0);
26377 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26378 0xa5), (0x1 << 2), (0x1 << 2));
26379
26380 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa7 : 0xa6),
26381 (0x1 << 2), (0x1 << 2));
26382 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa5 :
26383 0x8f), (0x1 << 2), (0x1 << 2));
26384
26385 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26386 state->pwrup[core] =
26387 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26388 TXRXCOUPLE_2G_PWRUP);
26389 state->atten[core] =
26390 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26391 TXRXCOUPLE_2G_ATTEN);
26392 state->pwrup[off_core] =
26393 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26394 TXRXCOUPLE_2G_PWRUP);
26395 state->atten[off_core] =
26396 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26397 TXRXCOUPLE_2G_ATTEN);
26398
26399 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26400 TXRXCOUPLE_2G_PWRUP, 0xc);
26401
26402 if ((pi->pubpi.radiorev == 3) ||
26403 (pi->pubpi.radiorev == 4) ||
26404 (pi->pubpi.radiorev == 6)) {
26405
26406 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26407 TXRXCOUPLE_2G_ATTEN, 0xf0);
26408
26409 } else if (pi->pubpi.radiorev == 5) {
26410
26411 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26412 TXRXCOUPLE_2G_ATTEN,
26413 (core == 0) ? 0xf7 : 0xf2);
26414
26415 } else if ((pi->pubpi.radiorev == 7)
26416 || (pi->pubpi.radiorev == 8)) {
26417
26418 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26419 TXRXCOUPLE_2G_ATTEN, 0xf0);
26420
a9533e7e
HP
26421 }
26422
26423 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26424 TXRXCOUPLE_2G_PWRUP, 0x0);
26425 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26426 TXRXCOUPLE_2G_ATTEN, 0xff);
26427
26428 } else {
26429 state->pwrup[core] =
26430 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26431 TXRXCOUPLE_5G_PWRUP);
26432 state->atten[core] =
26433 READ_RADIO_REG3(pi, RADIO_2057, TX, core,
26434 TXRXCOUPLE_5G_ATTEN);
26435 state->pwrup[off_core] =
26436 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26437 TXRXCOUPLE_5G_PWRUP);
26438 state->atten[off_core] =
26439 READ_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26440 TXRXCOUPLE_5G_ATTEN);
26441
26442 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26443 TXRXCOUPLE_5G_PWRUP, 0xc);
26444
26445 if ((pi->pubpi.radiorev == 7)
26446 || (pi->pubpi.radiorev == 8)) {
26447
26448 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26449 TXRXCOUPLE_5G_ATTEN, 0xf4);
26450
26451 } else {
26452 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26453 TXRXCOUPLE_5G_ATTEN, 0xf0);
26454 }
26455
26456 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26457 TXRXCOUPLE_5G_PWRUP, 0x0);
26458 WRITE_RADIO_REG3(pi, RADIO_2057, TX, off_core,
26459 TXRXCOUPLE_5G_ATTEN, 0xff);
26460 }
26461
26462 tone_freq = 4000;
26463
0965ae88 26464 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
a9533e7e
HP
26465
26466 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26467 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
26468
26469 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26470 0x2a4, (0x1 << 13), (1) << 13);
26471
26472 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26473 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_OFF) << 0);
26474
26475 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x2a3 :
26476 0x2a4, (0x1 << 13), (0) << 13);
26477
26478 } else {
26479
26480 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 0);
26481
26482 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0, 0);
26483
26484 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 0);
26485
26486 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 1, 0x3, 0);
26487 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 1, 0x3, 0);
26488
26489 state->afectrl[core] = read_phy_reg(pi, (core == PHY_CORE_0) ?
26490 0xa6 : 0xa7);
26491 state->afeoverride[core] =
26492 read_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f : 0xa5);
26493
26494 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0xa6 : 0xa7),
26495 (0x1 << 0) | (0x1 << 1) | (0x1 << 2), 0);
26496 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
26497 0xa5),
26498 (0x1 << 0) |
26499 (0x1 << 1) |
26500 (0x1 << 2), (0x1 << 0) | (0x1 << 1) | (0x1 << 2));
26501
26502 state->vga_master[core] =
26503 READ_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER);
26504 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER, 0x2b);
26505 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26506 state->fbmix[core] =
26507 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26508 TXFBMIX_G);
26509 state->intpa_master[core] =
26510 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26511 INTPAG_MASTER);
26512
26513 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_G,
26514 0x03);
26515 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26516 INTPAG_MASTER, 0x04);
26517 } else {
26518 state->fbmix[core] =
26519 READ_RADIO_REG2(pi, RADIO_2056, RX, core,
26520 TXFBMIX_A);
26521 state->intpa_master[core] =
26522 READ_RADIO_REG2(pi, RADIO_2056, TX, core,
26523 INTPAA_MASTER);
26524
26525 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, TXFBMIX_A,
26526 0x03);
26527 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26528 INTPAA_MASTER, 0x04);
26529
26530 }
26531
26532 tone_freq = 4000;
26533
0965ae88 26534 wlc_phy_tx_tone_nphy(pi, tone_freq, 181, 0, 0, false);
a9533e7e
HP
26535
26536 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26537 0x29b, (0x1 << 0), (1) << 0);
26538
26539 mod_phy_reg(pi, (off_core == PHY_CORE_0) ? 0x297 :
26540 0x29b, (0x1 << 0), (0) << 0);
26541
26542 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
26543 }
26544}
26545
26546static void
7cc4a4c0 26547wlc_phy_papd_cal_cleanup_nphy(phy_info_t *pi, nphy_papd_restore_state *state)
a9533e7e 26548{
e868ab03 26549 u8 core;
a9533e7e
HP
26550
26551 wlc_phy_stopplayback_nphy(pi);
26552
26553 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26554
26555 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26556
26557 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26558 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26559 TXRXCOUPLE_2G_PWRUP, 0);
26560 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26561 TXRXCOUPLE_2G_ATTEN,
26562 state->atten[core]);
26563 } else {
26564 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26565 TXRXCOUPLE_5G_PWRUP, 0);
26566 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
26567 TXRXCOUPLE_5G_ATTEN,
26568 state->atten[core]);
26569 }
26570 }
26571
26572 if ((pi->pubpi.radiorev == 4) || (pi->pubpi.radiorev == 6)) {
26573 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26574 1, 0x3, 0,
26575 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26576 } else {
26577 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2),
26578 0, 0x3, 1,
26579 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26580 }
26581 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1),
26582 0, 0x3, 1,
26583 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26584 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26585 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26586 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 0, 0x3, 1,
26587 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26588 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 1, 0x3, 1,
26589 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26590 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 0, 0x3, 1,
26591 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26592 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 11), 0, 0x3, 1,
26593 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26594 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12), 0, 0x3, 1,
26595 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26596 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 2), 1, 0x3, 1,
26597 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26598 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 0), 0, 0x3, 1,
26599 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26600 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 1), 1, 0x3, 1,
26601 NPHY_REV7_RFCTRLOVERRIDE_ID2);
26602 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 8), 0, 0x3, 1,
26603 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26604 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 9), 1, 0x3, 1,
26605 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26606 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 10), 0, 0x3, 1,
26607 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26608 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3), 1, 0x3, 1,
26609 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26610 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 5), 0, 0x3, 1,
26611 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26612 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 4), 0, 0x3, 1,
26613 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26614
26615 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26616
26617 write_phy_reg(pi, (core == PHY_CORE_0) ?
26618 0xa6 : 0xa7, state->afectrl[core]);
26619 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26620 0xa5, state->afeoverride[core]);
26621 }
26622
26623 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26624 (state->mm & 0xff));
26625
26626 if (NREV_IS(pi->pubpi.phy_rev, 7)
26627 || NREV_GE(pi->pubpi.phy_rev, 8)) {
26628 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 7), 0, 0,
26629 1,
26630 NPHY_REV7_RFCTRLOVERRIDE_ID1);
26631 }
26632 } else {
26633
26634 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 12), 0, 0x3, 1);
26635 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 0x3, 1);
26636 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 0), 0, 0x3, 1);
26637
26638 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 2), 0, 0x3, 1);
26639 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 1), 0, 0x3, 1);
26640
26641 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
26642
26643 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core, VGA_MASTER,
26644 state->vga_master[core]);
26645 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26646 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26647 TXFBMIX_G, state->fbmix[core]);
26648 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26649 INTPAG_MASTER,
26650 state->intpa_master[core]);
26651 } else {
26652 WRITE_RADIO_REG2(pi, RADIO_2056, RX, core,
26653 TXFBMIX_A, state->fbmix[core]);
26654 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
26655 INTPAA_MASTER,
26656 state->intpa_master[core]);
26657 }
26658
26659 write_phy_reg(pi, (core == PHY_CORE_0) ?
26660 0xa6 : 0xa7, state->afectrl[core]);
26661 write_phy_reg(pi, (core == PHY_CORE_0) ? 0x8f :
26662 0xa5, state->afeoverride[core]);
26663 }
26664
26665 wlc_phy_ipa_set_bbmult_nphy(pi, (state->mm >> 8) & 0xff,
26666 (state->mm & 0xff));
26667
26668 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 1);
26669 }
26670}
26671
26672static void
66cbd3ab
GKH
26673wlc_phy_a1_nphy(phy_info_t *pi, u8 core, u32 winsz, u32 start,
26674 u32 end)
a9533e7e 26675{
66cbd3ab 26676 u32 *buf, *src, *dst, sz;
a9533e7e
HP
26677
26678 sz = end - start + 1;
a9533e7e 26679
5fcc1fcb 26680 buf = kmalloc(2 * sizeof(u32) * NPHY_PAPD_EPS_TBL_SIZE, GFP_ATOMIC);
ca8c1e59 26681 if (NULL == buf) {
a9533e7e
HP
26682 return;
26683 }
26684
26685 src = buf;
26686 dst = buf + NPHY_PAPD_EPS_TBL_SIZE;
26687
26688 wlc_phy_table_read_nphy(pi,
26689 (core ==
26690 PHY_CORE_0 ? NPHY_TBL_ID_EPSILONTBL0 :
26691 NPHY_TBL_ID_EPSILONTBL1),
26692 NPHY_PAPD_EPS_TBL_SIZE, 0, 32, src);
26693
26694 do {
66cbd3ab 26695 u32 phy_a1, phy_a2;
3e26416e 26696 s32 phy_a3, phy_a4, phy_a5, phy_a6, phy_a7;
a9533e7e 26697
7068c2f1 26698 phy_a1 = end - min(end, (winsz >> 1));
e9e6727f 26699 phy_a2 = min_t(u32, NPHY_PAPD_EPS_TBL_SIZE - 1, end + (winsz >> 1));
a9533e7e
HP
26700 phy_a3 = phy_a2 - phy_a1 + 1;
26701 phy_a6 = 0;
26702 phy_a7 = 0;
26703
26704 do {
26705 wlc_phy_papd_decode_epsilon(src[phy_a2], &phy_a4,
26706 &phy_a5);
26707 phy_a6 += phy_a4;
26708 phy_a7 += phy_a5;
26709 } while (phy_a2-- != phy_a1);
26710
26711 phy_a6 /= phy_a3;
26712 phy_a7 /= phy_a3;
66cbd3ab 26713 dst[end] = ((u32) phy_a7 << 13) | ((u32) phy_a6 & 0x1fff);
a9533e7e
HP
26714 } while (end-- != start);
26715
26716 wlc_phy_table_write_nphy(pi,
26717 (core ==
26718 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0 :
26719 NPHY_TBL_ID_EPSILONTBL1, sz, start, 32, dst);
26720
182acb3c 26721 kfree(buf);
a9533e7e
HP
26722}
26723
26724static void
7cc4a4c0 26725wlc_phy_a2_nphy(phy_info_t *pi, nphy_ipa_txcalgains_t *txgains,
e868ab03 26726 phy_cal_mode_t cal_mode, u8 core)
a9533e7e 26727{
7d4df48e
GKH
26728 u16 phy_a1, phy_a2, phy_a3;
26729 u16 phy_a4, phy_a5;
a9533e7e 26730 bool phy_a6;
e868ab03 26731 u8 phy_a7, m[2];
66cbd3ab 26732 u32 phy_a8 = 0;
a9533e7e
HP
26733 nphy_txgains_t phy_a9;
26734
26735 if (NREV_LT(pi->pubpi.phy_rev, 3))
26736 return;
26737
26738 phy_a7 = (core == PHY_CORE_0) ? 1 : 0;
26739
a9533e7e 26740 phy_a6 = ((cal_mode == CAL_GCTRL)
0965ae88 26741 || (cal_mode == CAL_SOFT)) ? true : false;
a9533e7e
HP
26742
26743 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
26744
26745 phy_a9 = wlc_phy_get_tx_gain_nphy(pi);
26746
26747 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26748 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26749 (phy_a9.txgm[core] << 12) |
26750 (phy_a9.pga[core] << 8) |
26751 (txgains->gains.pad[core] << 3) |
26752 (phy_a9.ipa[core]));
26753 } else {
26754 phy_a5 = ((phy_a9.txlpf[core] << 15) |
26755 (phy_a9.txgm[core] << 12) |
26756 (txgains->gains.pga[core] << 8) |
26757 (phy_a9.pad[core] << 3) | (phy_a9.ipa[core]));
26758 }
26759
26760 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26761 NPHY_REV7_RfctrlOverride_cmd_txgain,
26762 phy_a5, (1 << core), 0);
26763
26764 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26765 if ((pi->pubpi.radiorev <= 4)
26766 || (pi->pubpi.radiorev == 6)) {
26767
26768 m[core] = IS40MHZ(pi) ? 60 : 79;
26769 } else {
26770
26771 m[core] = IS40MHZ(pi) ? 45 : 64;
26772 }
26773
26774 } else {
26775 m[core] = IS40MHZ(pi) ? 75 : 107;
26776 }
26777
26778 m[phy_a7] = 0;
26779 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26780
26781 phy_a2 = 63;
26782
26783 if (CHSPEC_IS2G(pi->radio_chanspec)) {
dfa26436 26784 if (pi->sh->chip == BCM6362_CHIP_ID) {
a9533e7e
HP
26785 phy_a1 = 35;
26786 phy_a3 = 35;
26787 } else if ((pi->pubpi.radiorev == 4)
26788 || (pi->pubpi.radiorev == 6)) {
26789 phy_a1 = 30;
26790 phy_a3 = 30;
26791 } else {
26792 phy_a1 = 25;
26793 phy_a3 = 25;
26794 }
26795 } else {
26796 if ((pi->pubpi.radiorev == 5)
26797 || (pi->pubpi.radiorev == 7)
26798 || (pi->pubpi.radiorev == 8)) {
26799 phy_a1 = 25;
26800 phy_a3 = 25;
26801 } else {
26802 phy_a1 = 35;
26803 phy_a3 = 35;
26804 }
26805 }
26806
26807 if (cal_mode == CAL_GCTRL) {
26808 if ((pi->pubpi.radiorev == 5)
26809 && (CHSPEC_IS2G(pi->radio_chanspec))) {
26810 phy_a1 = 55;
26811 } else if (((pi->pubpi.radiorev == 7) &&
26812 (CHSPEC_IS2G(pi->radio_chanspec))) ||
26813 ((pi->pubpi.radiorev == 8) &&
26814 (CHSPEC_IS2G(pi->radio_chanspec)))) {
26815 phy_a1 = 60;
26816 } else {
26817 phy_a1 = 63;
26818 }
26819
26820 } else if ((cal_mode != CAL_FULL) && (cal_mode != CAL_SOFT)) {
26821
26822 phy_a1 = 35;
26823 phy_a3 = 35;
26824 }
26825
26826 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26827 0x29b, (0x1 << 0), (1) << 0);
26828
26829 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26830 0x29b, (0x1 << 0), (0) << 0);
26831
26832 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26833 0x2a4, (0x1 << 13), (1) << 13);
26834
26835 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26836 0x2a4, (0x1 << 13), (0) << 13);
26837
26838 write_phy_reg(pi, 0x2a1, 0x80);
26839 write_phy_reg(pi, 0x2a2, 0x100);
26840
26841 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26842 0x2a4, (0x7 << 4), (11) << 4);
26843
26844 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26845 0x2a4, (0x7 << 8), (11) << 8);
26846
26847 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26848 0x2a4, (0x7 << 0), (0x3) << 0);
26849
26850 write_phy_reg(pi, 0x2e5, 0x20);
26851
26852 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26853
26854 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
26855
26856 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
26857
26858 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26859 1, ((core == 0) ? 1 : 2), 0,
26860 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26861 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26862 0, ((core == 0) ? 2 : 1), 0,
26863 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26864
26865 write_phy_reg(pi, 0x2be, 1);
26866 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
26867
26868 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 3),
26869 0, 0x3, 0,
26870 NPHY_REV7_RFCTRLOVERRIDE_ID0);
26871
26872 wlc_phy_table_write_nphy(pi,
26873 (core ==
26874 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
26875 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
26876 32, &phy_a8);
26877
26878 if (cal_mode != CAL_GCTRL) {
26879 if (CHSPEC_IS5G(pi->radio_chanspec)) {
26880 wlc_phy_a1_nphy(pi, core, 5, 0, 35);
26881 }
26882 }
26883
26884 wlc_phy_rfctrl_override_1tomany_nphy(pi,
26885 NPHY_REV7_RfctrlOverride_cmd_txgain,
26886 phy_a5, (1 << core), 1);
26887
26888 } else {
26889
26890 if (txgains) {
26891 if (txgains->useindex) {
26892 phy_a4 = 15 - ((txgains->index) >> 3);
26893 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26894 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26895 phy_a5 = 0x00f7 | (phy_a4 << 8);
26896
dfa26436 26897 if (pi->sh->chip ==
a9533e7e
HP
26898 BCM47162_CHIP_ID) {
26899 phy_a5 =
26900 0x10f7 | (phy_a4 <<
26901 8);
26902 }
26903 } else
26904 if (NREV_IS(pi->pubpi.phy_rev, 5))
26905 phy_a5 = 0x10f7 | (phy_a4 << 8);
26906 else
26907 phy_a5 = 0x50f7 | (phy_a4 << 8);
26908 } else {
26909 phy_a5 = 0x70f7 | (phy_a4 << 8);
26910 }
26911 wlc_phy_rfctrl_override_nphy(pi,
26912 (0x1 << 13),
26913 phy_a5,
26914 (1 << core), 0);
26915 } else {
26916 wlc_phy_rfctrl_override_nphy(pi,
26917 (0x1 << 13),
26918 0x5bf7,
26919 (1 << core), 0);
26920 }
26921 }
26922
26923 if (CHSPEC_IS2G(pi->radio_chanspec)) {
26924 m[core] = IS40MHZ(pi) ? 45 : 64;
26925 } else {
26926 m[core] = IS40MHZ(pi) ? 75 : 107;
26927 }
26928
26929 m[phy_a7] = 0;
26930 wlc_phy_ipa_set_bbmult_nphy(pi, m[0], m[1]);
26931
26932 phy_a2 = 63;
26933
26934 if (cal_mode == CAL_FULL) {
26935 phy_a1 = 25;
26936 phy_a3 = 25;
26937 } else if (cal_mode == CAL_SOFT) {
26938 phy_a1 = 25;
26939 phy_a3 = 25;
26940 } else if (cal_mode == CAL_GCTRL) {
26941 phy_a1 = 63;
26942 phy_a3 = 25;
26943 } else {
26944
26945 phy_a1 = 25;
26946 phy_a3 = 25;
26947 }
26948
26949 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
26950 0x29b, (0x1 << 0), (1) << 0);
26951
26952 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x297 :
26953 0x29b, (0x1 << 0), (0) << 0);
26954
26955 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
26956 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26957 0x2a4, (0x1 << 13), (1) << 13);
26958
26959 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26960 0x2a4, (0x1 << 13), (0) << 13);
26961
26962 write_phy_reg(pi, 0x2a1, 0x20);
26963 write_phy_reg(pi, 0x2a2, 0x60);
26964
26965 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26966 0x2a4, (0xf << 4), (9) << 4);
26967
26968 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26969 0x2a4, (0xf << 8), (9) << 8);
26970
26971 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26972 0x2a4, (0xf << 0), (0x2) << 0);
26973
26974 write_phy_reg(pi, 0x2e5, 0x20);
26975 } else {
26976 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26977 0x2a4, (0x1 << 11), (1) << 11);
26978
26979 mod_phy_reg(pi, (phy_a7 == PHY_CORE_0) ? 0x2a3 :
26980 0x2a4, (0x1 << 11), (0) << 11);
26981
26982 write_phy_reg(pi, 0x2a1, 0x80);
26983 write_phy_reg(pi, 0x2a2, 0x600);
26984
26985 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26986 0x2a4, (0x7 << 4), (0) << 4);
26987
26988 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26989 0x2a4, (0x7 << 8), (0) << 8);
26990
26991 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x2a3 :
26992 0x2a4, (0x7 << 0), (0x3) << 0);
26993
26994 mod_phy_reg(pi, 0x2a0, (0x3f << 8), (0x20) << 8);
26995
26996 }
26997
26998 mod_phy_reg(pi, 0x2a0, (0x3f << 0), (phy_a3) << 0);
26999
27000 mod_phy_reg(pi, 0x29f, (0x3f << 0), (phy_a1) << 0);
27001
27002 mod_phy_reg(pi, 0x29f, (0x3f << 8), (phy_a2) << 8);
27003
27004 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 1, 0x3, 0);
27005
27006 write_phy_reg(pi, 0x2be, 1);
27007 SPINWAIT(read_phy_reg(pi, 0x2be), 10 * 1000 * 1000);
27008
27009 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 3), 0, 0x3, 0);
27010
27011 wlc_phy_table_write_nphy(pi,
27012 (core ==
27013 PHY_CORE_0) ? NPHY_TBL_ID_EPSILONTBL0
27014 : NPHY_TBL_ID_EPSILONTBL1, 1, phy_a3,
27015 32, &phy_a8);
27016
27017 if (cal_mode != CAL_GCTRL) {
27018 wlc_phy_a1_nphy(pi, core, 5, 0, 40);
27019 }
27020 }
27021}
27022
e868ab03 27023static u8 wlc_phy_a3_nphy(phy_info_t *pi, u8 start_gain, u8 core)
a9533e7e
HP
27024{
27025 int phy_a1;
27026 int phy_a2;
27027 bool phy_a3;
27028 nphy_ipa_txcalgains_t phy_a4;
0965ae88 27029 bool phy_a5 = false;
0f0881b0 27030 bool phy_a6 = true;
3e26416e 27031 s32 phy_a7, phy_a8;
66cbd3ab 27032 u32 phy_a9;
a9533e7e 27033 int phy_a10;
0965ae88 27034 bool phy_a11 = false;
a9533e7e 27035 int phy_a12;
e868ab03
GKH
27036 u8 phy_a13 = 0;
27037 u8 phy_a14;
27038 u8 *phy_a15 = NULL;
a9533e7e 27039
0f0881b0 27040 phy_a4.useindex = true;
a9533e7e
HP
27041 phy_a12 = start_gain;
27042
27043 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27044
27045 phy_a2 = 20;
27046 phy_a1 = 1;
27047
27048 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27049 if (pi->pubpi.radiorev == 5) {
27050
27051 phy_a15 = pad_gain_codes_used_2057rev5;
27052 phy_a13 = sizeof(pad_gain_codes_used_2057rev5) /
27053 sizeof(pad_gain_codes_used_2057rev5[0]) - 1;
27054
27055 } else if ((pi->pubpi.radiorev == 7)
27056 || (pi->pubpi.radiorev == 8)) {
27057
27058 phy_a15 = pad_gain_codes_used_2057rev7;
27059 phy_a13 = sizeof(pad_gain_codes_used_2057rev7) /
27060 sizeof(pad_gain_codes_used_2057rev7[0]) - 1;
27061
27062 } else {
27063
27064 phy_a15 = pad_all_gain_codes_2057;
27065 phy_a13 = sizeof(pad_all_gain_codes_2057) /
27066 sizeof(pad_all_gain_codes_2057[0]) - 1;
27067 }
27068
27069 } else {
27070
27071 phy_a15 = pga_all_gain_codes_2057;
27072 phy_a13 = sizeof(pga_all_gain_codes_2057) /
27073 sizeof(pga_all_gain_codes_2057[0]) - 1;
27074 }
27075
27076 phy_a14 = 0;
27077
27078 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
27079 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27080 phy_a4.gains.pad[core] =
7d4df48e 27081 (u16) phy_a15[phy_a12];
a9533e7e
HP
27082 } else {
27083 phy_a4.gains.pga[core] =
7d4df48e 27084 (u16) phy_a15[phy_a12];
a9533e7e
HP
27085 }
27086
27087 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27088
27089 wlc_phy_table_read_nphy(pi,
27090 (core ==
27091 PHY_CORE_0 ?
27092 NPHY_TBL_ID_EPSILONTBL0 :
27093 NPHY_TBL_ID_EPSILONTBL1), 1,
27094 63, 32, &phy_a9);
27095
27096 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27097
27098 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27099 (phy_a8 == 4095) || (phy_a8 == -4096));
27100
27101 if (!phy_a6 && (phy_a3 != phy_a5)) {
27102 if (!phy_a3) {
e868ab03 27103 phy_a12 -= (u8) phy_a1;
a9533e7e 27104 }
0f0881b0 27105 phy_a11 = true;
a9533e7e
HP
27106 break;
27107 }
27108
27109 if (phy_a3)
e868ab03 27110 phy_a12 += (u8) phy_a1;
a9533e7e 27111 else
e868ab03 27112 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27113
27114 if ((phy_a12 < phy_a14) || (phy_a12 > phy_a13)) {
27115 if (phy_a12 < phy_a14) {
27116 phy_a12 = phy_a14;
27117 } else {
27118 phy_a12 = phy_a13;
27119 }
0f0881b0 27120 phy_a11 = true;
a9533e7e
HP
27121 break;
27122 }
27123
0965ae88 27124 phy_a6 = false;
a9533e7e
HP
27125 phy_a5 = phy_a3;
27126 }
27127
27128 } else {
27129 phy_a2 = 10;
27130 phy_a1 = 8;
27131 for (phy_a10 = 0; phy_a10 < phy_a2; phy_a10++) {
e868ab03 27132 phy_a4.index = (u8) phy_a12;
a9533e7e
HP
27133 wlc_phy_a2_nphy(pi, &phy_a4, CAL_GCTRL, core);
27134
27135 wlc_phy_table_read_nphy(pi,
27136 (core ==
27137 PHY_CORE_0 ?
27138 NPHY_TBL_ID_EPSILONTBL0 :
27139 NPHY_TBL_ID_EPSILONTBL1), 1,
27140 63, 32, &phy_a9);
27141
27142 wlc_phy_papd_decode_epsilon(phy_a9, &phy_a7, &phy_a8);
27143
27144 phy_a3 = ((phy_a7 == 4095) || (phy_a7 == -4096) ||
27145 (phy_a8 == 4095) || (phy_a8 == -4096));
27146
27147 if (!phy_a6 && (phy_a3 != phy_a5)) {
27148 if (!phy_a3) {
e868ab03 27149 phy_a12 -= (u8) phy_a1;
a9533e7e 27150 }
0f0881b0 27151 phy_a11 = true;
a9533e7e
HP
27152 break;
27153 }
27154
27155 if (phy_a3)
e868ab03 27156 phy_a12 += (u8) phy_a1;
a9533e7e 27157 else
e868ab03 27158 phy_a12 -= (u8) phy_a1;
a9533e7e
HP
27159
27160 if ((phy_a12 < 0) || (phy_a12 > 127)) {
27161 if (phy_a12 < 0) {
27162 phy_a12 = 0;
27163 } else {
27164 phy_a12 = 127;
27165 }
0f0881b0 27166 phy_a11 = true;
a9533e7e
HP
27167 break;
27168 }
27169
0965ae88 27170 phy_a6 = false;
a9533e7e
HP
27171 phy_a5 = phy_a3;
27172 }
27173
27174 }
27175
27176 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
e868ab03 27177 return (u8) phy_a15[phy_a12];
a9533e7e 27178 } else {
e868ab03 27179 return (u8) phy_a12;
a9533e7e
HP
27180 }
27181
27182}
27183
7cc4a4c0 27184static void wlc_phy_a4(phy_info_t *pi, bool full_cal)
a9533e7e
HP
27185{
27186 nphy_ipa_txcalgains_t phy_b1[2];
27187 nphy_papd_restore_state phy_b2;
27188 bool phy_b3;
e868ab03
GKH
27189 u8 phy_b4;
27190 u8 phy_b5;
e59fe083 27191 s16 phy_b6, phy_b7, phy_b8;
7d4df48e 27192 u16 phy_b9;
e59fe083 27193 s16 phy_b10, phy_b11, phy_b12;
a9533e7e
HP
27194
27195 phy_b11 = 0;
27196 phy_b12 = 0;
27197 phy_b7 = 0;
27198 phy_b8 = 0;
27199 phy_b6 = 0;
27200
27201 if (pi->nphy_papd_skip == 1)
27202 return;
27203
27204 phy_b3 =
ff31c54c 27205 (0 == (R_REG(&pi->regs->maccontrol) & MCTL_EN_MAC));
a9533e7e
HP
27206 if (!phy_b3) {
27207 wlapi_suspend_mac_and_wait(pi->sh->physhim);
27208 }
27209
0f0881b0 27210 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e 27211
0965ae88 27212 pi->nphy_force_papd_cal = false;
a9533e7e
HP
27213
27214 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++)
27215 pi->nphy_papd_tx_gain_at_last_cal[phy_b5] =
27216 wlc_phy_txpwr_idx_cur_get_nphy(pi, phy_b5);
27217
27218 pi->nphy_papd_last_cal = pi->sh->now;
27219 pi->nphy_papd_recal_counter++;
27220
27221 if (NORADIO_ENAB(pi->pubpi))
27222 return;
27223
27224 phy_b4 = pi->nphy_txpwrctrl;
27225 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
27226
27227 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL0, 64, 0, 32,
27228 nphy_papd_scaltbl);
27229 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_SCALARTBL1, 64, 0, 32,
27230 nphy_papd_scaltbl);
27231
27232 phy_b9 = read_phy_reg(pi, 0x01);
27233 mod_phy_reg(pi, 0x01, (0x1 << 15), 0);
27234
27235 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
3e26416e 27236 s32 i, val = 0;
a9533e7e
HP
27237 for (i = 0; i < 64; i++) {
27238 wlc_phy_table_write_nphy(pi,
27239 ((phy_b5 ==
27240 PHY_CORE_0) ?
27241 NPHY_TBL_ID_EPSILONTBL0 :
27242 NPHY_TBL_ID_EPSILONTBL1), 1,
27243 i, 32, &val);
27244 }
27245 }
27246
27247 wlc_phy_ipa_restore_tx_digi_filts_nphy(pi);
27248
27249 phy_b2.mm = wlc_phy_ipa_get_bbmult_nphy(pi);
27250 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27251 wlc_phy_papd_cal_setup_nphy(pi, &phy_b2, phy_b5);
27252
27253 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27254 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27255
27256 if ((pi->pubpi.radiorev == 3)
27257 || (pi->pubpi.radiorev == 4)
27258 || (pi->pubpi.radiorev == 6)) {
27259
27260 pi->nphy_papd_cal_gain_index[phy_b5] =
27261 23;
27262
27263 } else if (pi->pubpi.radiorev == 5) {
27264
27265 pi->nphy_papd_cal_gain_index[phy_b5] =
27266 0;
27267 pi->nphy_papd_cal_gain_index[phy_b5] =
27268 wlc_phy_a3_nphy(pi,
27269 pi->
27270 nphy_papd_cal_gain_index
27271 [phy_b5], phy_b5);
27272
27273 } else if ((pi->pubpi.radiorev == 7)
27274 || (pi->pubpi.radiorev == 8)) {
27275
27276 pi->nphy_papd_cal_gain_index[phy_b5] =
27277 0;
27278 pi->nphy_papd_cal_gain_index[phy_b5] =
27279 wlc_phy_a3_nphy(pi,
27280 pi->
27281 nphy_papd_cal_gain_index
27282 [phy_b5], phy_b5);
27283
a9533e7e
HP
27284 }
27285
27286 phy_b1[phy_b5].gains.pad[phy_b5] =
27287 pi->nphy_papd_cal_gain_index[phy_b5];
27288
27289 } else {
27290 pi->nphy_papd_cal_gain_index[phy_b5] = 0;
27291 pi->nphy_papd_cal_gain_index[phy_b5] =
27292 wlc_phy_a3_nphy(pi,
27293 pi->
27294 nphy_papd_cal_gain_index
27295 [phy_b5], phy_b5);
27296 phy_b1[phy_b5].gains.pga[phy_b5] =
27297 pi->nphy_papd_cal_gain_index[phy_b5];
27298 }
27299 } else {
0f0881b0 27300 phy_b1[phy_b5].useindex = true;
a9533e7e
HP
27301 phy_b1[phy_b5].index = 16;
27302 phy_b1[phy_b5].index =
27303 wlc_phy_a3_nphy(pi, phy_b1[phy_b5].index, phy_b5);
27304
27305 pi->nphy_papd_cal_gain_index[phy_b5] =
27306 15 - ((phy_b1[phy_b5].index) >> 3);
27307 }
27308
27309 switch (pi->nphy_papd_cal_type) {
27310 case 0:
27311 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_FULL, phy_b5);
27312 break;
27313 case 1:
27314 wlc_phy_a2_nphy(pi, &phy_b1[phy_b5], CAL_SOFT, phy_b5);
27315 break;
27316 }
27317
27318 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27319 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27320 }
27321 }
27322
27323 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27324 wlc_phy_papd_cal_cleanup_nphy(pi, &phy_b2);
27325 }
27326
27327 for (phy_b5 = 0; phy_b5 < pi->pubpi.phy_corenum; phy_b5++) {
27328 int eps_offset = 0;
27329
27330 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27331 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27332 if (pi->pubpi.radiorev == 3) {
27333 eps_offset = -2;
27334 } else if (pi->pubpi.radiorev == 5) {
27335 eps_offset = 3;
27336 } else {
27337 eps_offset = -1;
27338 }
27339 } else {
27340 eps_offset = 2;
27341 }
27342
27343 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27344 phy_b8 = phy_b1[phy_b5].gains.pad[phy_b5];
27345 phy_b10 = 0;
27346 if ((pi->pubpi.radiorev == 3) ||
27347 (pi->pubpi.radiorev == 4) ||
27348 (pi->pubpi.radiorev == 6)) {
27349 phy_b12 =
27350 -
27351 (nphy_papd_padgain_dlt_2g_2057rev3n4
27352 [phy_b8]
27353 + 1) / 2;
27354 phy_b10 = -1;
27355 } else if (pi->pubpi.radiorev == 5) {
27356 phy_b12 =
27357 -(nphy_papd_padgain_dlt_2g_2057rev5
27358 [phy_b8]
27359 + 1) / 2;
27360 } else if ((pi->pubpi.radiorev == 7) ||
27361 (pi->pubpi.radiorev == 8)) {
27362 phy_b12 =
27363 -(nphy_papd_padgain_dlt_2g_2057rev7
27364 [phy_b8]
27365 + 1) / 2;
a9533e7e
HP
27366 }
27367 } else {
27368 phy_b7 = phy_b1[phy_b5].gains.pga[phy_b5];
27369 if ((pi->pubpi.radiorev == 3) ||
27370 (pi->pubpi.radiorev == 4) ||
27371 (pi->pubpi.radiorev == 6)) {
27372 phy_b11 =
27373 -(nphy_papd_pgagain_dlt_5g_2057
27374 [phy_b7]
27375 + 1) / 2;
27376 } else if ((pi->pubpi.radiorev == 7)
27377 || (pi->pubpi.radiorev == 8)) {
27378 phy_b11 =
27379 -(nphy_papd_pgagain_dlt_5g_2057rev7
27380 [phy_b7]
27381 + 1) / 2;
a9533e7e
HP
27382 }
27383
27384 phy_b10 = -9;
27385 }
27386
27387 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27388 phy_b6 =
27389 -60 + 27 + eps_offset + phy_b12 + phy_b10;
27390 } else {
27391 phy_b6 =
27392 -60 + 27 + eps_offset + phy_b11 + phy_b10;
27393 }
27394
27395 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27396 0x29c, (0x1ff << 7), (phy_b6) << 7);
27397
27398 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27399 } else {
27400 if (NREV_LT(pi->pubpi.phy_rev, 5)) {
27401 eps_offset = 4;
27402 } else {
27403 eps_offset = 2;
27404 }
27405
27406 phy_b7 = 15 - ((phy_b1[phy_b5].index) >> 3);
27407
27408 if (CHSPEC_IS2G(pi->radio_chanspec)) {
27409 phy_b11 =
27410 -(nphy_papd_pga_gain_delta_ipa_2g[phy_b7] +
27411 1) / 2;
27412 phy_b10 = 0;
27413 } else {
27414 phy_b11 =
27415 -(nphy_papd_pga_gain_delta_ipa_5g[phy_b7] +
27416 1) / 2;
27417 phy_b10 = -9;
27418 }
27419
27420 phy_b6 = -60 + 27 + eps_offset + phy_b11 + phy_b10;
27421
27422 mod_phy_reg(pi, (phy_b5 == PHY_CORE_0) ? 0x298 :
27423 0x29c, (0x1ff << 7), (phy_b6) << 7);
27424
27425 pi->nphy_papd_epsilon_offset[phy_b5] = phy_b6;
27426 }
27427 }
27428
27429 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
27430 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27431
27432 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
27433 0x29b, (0x1 << 0), (NPHY_PAPD_COMP_ON) << 0);
27434
27435 if (NREV_GE(pi->pubpi.phy_rev, 6)) {
27436 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27437 0x2a4, (0x1 << 13), (0) << 13);
27438
27439 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27440 0x2a4, (0x1 << 13), (0) << 13);
27441
27442 } else {
27443 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x2a3 :
27444 0x2a4, (0x1 << 11), (0) << 11);
27445
27446 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x2a3 :
27447 0x2a4, (0x1 << 11), (0) << 11);
27448
27449 }
27450 pi->nphy_papdcomp = NPHY_PAPD_COMP_ON;
27451
27452 write_phy_reg(pi, 0x01, phy_b9);
27453
27454 wlc_phy_ipa_set_tx_digi_filts_nphy(pi);
27455
27456 wlc_phy_txpwrctrl_enable_nphy(pi, phy_b4);
27457 if (phy_b4 == PHY_TPC_HW_OFF) {
27458 wlc_phy_txpwr_index_nphy(pi, (1 << 0),
562c8850 27459 (s8) (pi->nphy_txpwrindex[0].
0965ae88 27460 index_internal), false);
a9533e7e 27461 wlc_phy_txpwr_index_nphy(pi, (1 << 1),
562c8850 27462 (s8) (pi->nphy_txpwrindex[1].
0965ae88 27463 index_internal), false);
a9533e7e
HP
27464 }
27465
0965ae88 27466 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
27467
27468 if (!phy_b3) {
27469 wlapi_enable_mac(pi->sh->physhim);
27470 }
27471}
27472
7cc4a4c0 27473void wlc_phy_txpwr_fixpower_nphy(phy_info_t *pi)
a9533e7e
HP
27474{
27475 uint core;
66cbd3ab 27476 u32 txgain;
7d4df48e 27477 u16 rad_gain, dac_gain, bbmult, m1m2;
e868ab03 27478 u8 txpi[2], chan_freq_range;
3e26416e 27479 s32 rfpwr_offset;
a9533e7e 27480
a9533e7e 27481 if (pi->phyhang_avoid)
0f0881b0 27482 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
27483
27484 if (pi->sh->sromrev < 4) {
27485 txpi[0] = txpi[1] = 72;
27486 } else {
27487
27488 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
27489 switch (chan_freq_range) {
27490 case WL_CHAN_FREQ_RANGE_2G:
27491 txpi[0] = pi->nphy_txpid2g[0];
27492 txpi[1] = pi->nphy_txpid2g[1];
27493 break;
27494 case WL_CHAN_FREQ_RANGE_5GL:
27495 txpi[0] = pi->nphy_txpid5gl[0];
27496 txpi[1] = pi->nphy_txpid5gl[1];
27497 break;
27498 case WL_CHAN_FREQ_RANGE_5GM:
27499 txpi[0] = pi->nphy_txpid5g[0];
27500 txpi[1] = pi->nphy_txpid5g[1];
27501 break;
27502 case WL_CHAN_FREQ_RANGE_5GH:
27503 txpi[0] = pi->nphy_txpid5gh[0];
27504 txpi[1] = pi->nphy_txpid5gh[1];
27505 break;
27506 default:
27507 txpi[0] = txpi[1] = 91;
27508 break;
27509 }
27510 }
27511
27512 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27513 txpi[0] = txpi[1] = 30;
27514 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27515 txpi[0] = txpi[1] = 40;
27516 }
27517
27518 if (NREV_LT(pi->pubpi.phy_rev, 7)) {
27519
27520 if ((txpi[0] < 40) || (txpi[0] > 100) ||
27521 (txpi[1] < 40) || (txpi[1] > 100))
27522 txpi[0] = txpi[1] = 91;
27523 }
27524
27525 pi->nphy_txpwrindex[PHY_CORE_0].index_internal = txpi[0];
27526 pi->nphy_txpwrindex[PHY_CORE_1].index_internal = txpi[1];
27527 pi->nphy_txpwrindex[PHY_CORE_0].index_internal_save = txpi[0];
27528 pi->nphy_txpwrindex[PHY_CORE_1].index_internal_save = txpi[1];
27529
27530 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
27531 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27532 if (PHY_IPA(pi)) {
66cbd3ab 27533 u32 *tx_gaintbl =
a9533e7e
HP
27534 wlc_phy_get_ipa_gaintbl_nphy(pi);
27535 txgain = tx_gaintbl[txpi[core]];
27536 } else {
27537 if (CHSPEC_IS5G(pi->radio_chanspec)) {
27538 if NREV_IS
27539 (pi->pubpi.phy_rev, 3) {
27540 txgain =
27541 nphy_tpc_5GHz_txgain_rev3
27542 [txpi[core]];
27543 } else if NREV_IS
27544 (pi->pubpi.phy_rev, 4) {
27545 txgain =
27546 (pi->srom_fem5g.extpagain ==
27547 3) ?
27548 nphy_tpc_5GHz_txgain_HiPwrEPA
27549 [txpi[core]] :
27550 nphy_tpc_5GHz_txgain_rev4
27551 [txpi[core]];
27552 } else {
27553 txgain =
27554 nphy_tpc_5GHz_txgain_rev5
27555 [txpi[core]];
27556 }
27557 } else {
27558 if (NREV_GE(pi->pubpi.phy_rev, 5) &&
27559 (pi->srom_fem2g.extpagain == 3)) {
27560 txgain =
27561 nphy_tpc_txgain_HiPwrEPA
27562 [txpi[core]];
27563 } else {
27564 txgain =
27565 nphy_tpc_txgain_rev3[txpi
27566 [core]];
27567 }
27568 }
27569 }
27570 } else {
27571 txgain = nphy_tpc_txgain[txpi[core]];
27572 }
27573
27574 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27575 rad_gain = (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
27576 } else {
27577 rad_gain = (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
27578 }
27579
27580 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
27581 dac_gain = (txgain >> 8) & ((1 << (10 - 8 + 1)) - 1);
27582 } else {
27583 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
27584 }
27585 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
27586
27587 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27588 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
27589 0xa5), (0x1 << 8), (0x1 << 8));
27590 } else {
27591 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
27592 }
27593 write_phy_reg(pi, (core == PHY_CORE_0) ? 0xaa : 0xab, dac_gain);
27594
27595 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
27596 &rad_gain);
27597
27598 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
27599 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
27600 m1m2 |= ((core == PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
27601 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
27602
27603 if (PHY_IPA(pi)) {
27604 wlc_phy_table_read_nphy(pi,
27605 (core ==
27606 PHY_CORE_0 ?
27607 NPHY_TBL_ID_CORE1TXPWRCTL :
27608 NPHY_TBL_ID_CORE2TXPWRCTL), 1,
27609 576 + txpi[core], 32,
27610 &rfpwr_offset);
27611
27612 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27613 0x29b, (0x1ff << 4),
e59fe083 27614 ((s16) rfpwr_offset) << 4);
a9533e7e
HP
27615
27616 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
27617 0x29b, (0x1 << 2), (1) << 2);
27618
27619 }
27620 }
27621
7d4df48e 27622 and_phy_reg(pi, 0xbf, (u16) (~(0x1f << 0)));
a9533e7e
HP
27623
27624 if (pi->phyhang_avoid)
0965ae88 27625 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
27626}
27627
27628static void
7d4df48e 27629wlc_phy_txpwr_nphy_srom_convert(u8 *srom_max, u16 *pwr_offset,
e868ab03
GKH
27630 u8 tmp_max_pwr, u8 rate_start,
27631 u8 rate_end)
a9533e7e 27632{
e868ab03
GKH
27633 u8 rate;
27634 u8 word_num, nibble_num;
27635 u8 tmp_nibble;
a9533e7e
HP
27636
27637 for (rate = rate_start; rate <= rate_end; rate++) {
27638 word_num = (rate - rate_start) >> 2;
27639 nibble_num = (rate - rate_start) & 0x3;
27640 tmp_nibble = (pwr_offset[word_num] >> 4 * nibble_num) & 0xf;
27641
27642 srom_max[rate] = tmp_max_pwr - 2 * tmp_nibble;
27643 }
27644}
27645
27646static void
e868ab03
GKH
27647wlc_phy_txpwr_nphy_po_apply(u8 *srom_max, u8 pwr_offset,
27648 u8 rate_start, u8 rate_end)
a9533e7e 27649{
e868ab03 27650 u8 rate;
a9533e7e
HP
27651
27652 for (rate = rate_start; rate <= rate_end; rate++) {
27653 srom_max[rate] -= 2 * pwr_offset;
27654 }
27655}
27656
27657void
e868ab03
GKH
27658wlc_phy_ofdm_to_mcs_powers_nphy(u8 *power, u8 rate_mcs_start,
27659 u8 rate_mcs_end, u8 rate_ofdm_start)
a9533e7e 27660{
e868ab03 27661 u8 rate1, rate2;
a9533e7e
HP
27662
27663 rate2 = rate_ofdm_start;
27664 for (rate1 = rate_mcs_start; rate1 <= rate_mcs_end - 1; rate1++) {
27665 power[rate1] = power[rate2];
27666 rate2 += (rate1 == rate_mcs_start) ? 2 : 1;
27667 }
27668 power[rate_mcs_end] = power[rate_mcs_end - 1];
27669}
27670
27671void
e868ab03
GKH
27672wlc_phy_mcs_to_ofdm_powers_nphy(u8 *power, u8 rate_ofdm_start,
27673 u8 rate_ofdm_end, u8 rate_mcs_start)
a9533e7e 27674{
e868ab03 27675 u8 rate1, rate2;
a9533e7e
HP
27676
27677 for (rate1 = rate_ofdm_start, rate2 = rate_mcs_start;
27678 rate1 <= rate_ofdm_end; rate1++, rate2++) {
27679 power[rate1] = power[rate2];
27680 if (rate1 == rate_ofdm_start)
27681 power[++rate1] = power[rate2];
27682 }
27683}
27684
a9d0fffa 27685void wlc_phy_txpwr_apply_nphy(phy_info_t *pi)
a2627bc0 27686{
a9533e7e 27687 uint rate1, rate2, band_num;
e868ab03
GKH
27688 u8 tmp_bw40po = 0, tmp_cddpo = 0, tmp_stbcpo = 0;
27689 u8 tmp_max_pwr = 0;
7d4df48e 27690 u16 pwr_offsets1[2], *pwr_offsets2 = NULL;
e868ab03 27691 u8 *tx_srom_max_rate = NULL;
a9533e7e
HP
27692
27693 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27694 switch (band_num) {
27695 case 0:
27696
7068c2f1 27697 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_2g,
a9533e7e
HP
27698 pi->nphy_pwrctrl_info[1].max_pwr_2g);
27699
27700 pwr_offsets1[0] = pi->cck2gpo;
27701 wlc_phy_txpwr_nphy_srom_convert(pi->tx_srom_max_rate_2g,
27702 pwr_offsets1,
27703 tmp_max_pwr,
27704 TXP_FIRST_CCK,
27705 TXP_LAST_CCK);
27706
7d4df48e 27707 pwr_offsets1[0] = (u16) (pi->ofdm2gpo & 0xffff);
a9533e7e 27708 pwr_offsets1[1] =
7d4df48e 27709 (u16) (pi->ofdm2gpo >> 16) & 0xffff;
a9533e7e
HP
27710
27711 pwr_offsets2 = pi->mcs2gpo;
27712
27713 tmp_cddpo = pi->cdd2gpo;
27714 tmp_stbcpo = pi->stbc2gpo;
27715 tmp_bw40po = pi->bw402gpo;
27716
27717 tx_srom_max_rate = pi->tx_srom_max_rate_2g;
27718 break;
27719 case 1:
27720
7068c2f1 27721 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gm,
a9533e7e
HP
27722 pi->nphy_pwrctrl_info[1].max_pwr_5gm);
27723
7d4df48e 27724 pwr_offsets1[0] = (u16) (pi->ofdm5gpo & 0xffff);
a9533e7e 27725 pwr_offsets1[1] =
7d4df48e 27726 (u16) (pi->ofdm5gpo >> 16) & 0xffff;
a9533e7e
HP
27727
27728 pwr_offsets2 = pi->mcs5gpo;
27729
27730 tmp_cddpo = pi->cdd5gpo;
27731 tmp_stbcpo = pi->stbc5gpo;
27732 tmp_bw40po = pi->bw405gpo;
27733
27734 tx_srom_max_rate = pi->tx_srom_max_rate_5g_mid;
27735 break;
27736 case 2:
27737
7068c2f1 27738 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gl,
a9533e7e
HP
27739 pi->nphy_pwrctrl_info[1].max_pwr_5gl);
27740
7d4df48e 27741 pwr_offsets1[0] = (u16) (pi->ofdm5glpo & 0xffff);
a9533e7e 27742 pwr_offsets1[1] =
7d4df48e 27743 (u16) (pi->ofdm5glpo >> 16) & 0xffff;
a9533e7e
HP
27744
27745 pwr_offsets2 = pi->mcs5glpo;
27746
27747 tmp_cddpo = pi->cdd5glpo;
27748 tmp_stbcpo = pi->stbc5glpo;
27749 tmp_bw40po = pi->bw405glpo;
27750
27751 tx_srom_max_rate = pi->tx_srom_max_rate_5g_low;
27752 break;
27753 case 3:
27754
7068c2f1 27755 tmp_max_pwr = min(pi->nphy_pwrctrl_info[0].max_pwr_5gh,
a9533e7e
HP
27756 pi->nphy_pwrctrl_info[1].max_pwr_5gh);
27757
7d4df48e 27758 pwr_offsets1[0] = (u16) (pi->ofdm5ghpo & 0xffff);
a9533e7e 27759 pwr_offsets1[1] =
7d4df48e 27760 (u16) (pi->ofdm5ghpo >> 16) & 0xffff;
a9533e7e
HP
27761
27762 pwr_offsets2 = pi->mcs5ghpo;
27763
27764 tmp_cddpo = pi->cdd5ghpo;
27765 tmp_stbcpo = pi->stbc5ghpo;
27766 tmp_bw40po = pi->bw405ghpo;
27767
27768 tx_srom_max_rate = pi->tx_srom_max_rate_5g_hi;
27769 break;
27770 }
27771
27772 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets1,
27773 tmp_max_pwr, TXP_FIRST_OFDM,
27774 TXP_LAST_OFDM);
27775
27776 wlc_phy_ofdm_to_mcs_powers_nphy(tx_srom_max_rate,
27777 TXP_FIRST_MCS_20_SISO,
27778 TXP_LAST_MCS_20_SISO,
27779 TXP_FIRST_OFDM);
27780
27781 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27782 tmp_max_pwr,
27783 TXP_FIRST_MCS_20_CDD,
27784 TXP_LAST_MCS_20_CDD);
27785
27786 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27787
27788 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27789 TXP_FIRST_MCS_20_CDD,
27790 TXP_LAST_MCS_20_CDD);
27791 }
27792
27793 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27794 TXP_FIRST_OFDM_20_CDD,
27795 TXP_LAST_OFDM_20_CDD,
27796 TXP_FIRST_MCS_20_CDD);
27797
27798 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate, pwr_offsets2,
27799 tmp_max_pwr,
27800 TXP_FIRST_MCS_20_STBC,
27801 TXP_LAST_MCS_20_STBC);
27802
27803 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27804
27805 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27806 tmp_stbcpo,
27807 TXP_FIRST_MCS_20_STBC,
27808 TXP_LAST_MCS_20_STBC);
27809 }
27810
27811 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27812 &pwr_offsets2[2], tmp_max_pwr,
27813 TXP_FIRST_MCS_20_SDM,
27814 TXP_LAST_MCS_20_SDM);
27815
27816 if (NPHY_IS_SROM_REINTERPRET) {
27817
27818 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27819 &pwr_offsets2[4],
27820 tmp_max_pwr,
27821 TXP_FIRST_MCS_40_SISO,
27822 TXP_LAST_MCS_40_SISO);
27823
27824 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27825 TXP_FIRST_OFDM_40_SISO,
27826 TXP_LAST_OFDM_40_SISO,
27827 TXP_FIRST_MCS_40_SISO);
27828
27829 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27830 &pwr_offsets2[4],
27831 tmp_max_pwr,
27832 TXP_FIRST_MCS_40_CDD,
27833 TXP_LAST_MCS_40_CDD);
27834
27835 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate, tmp_cddpo,
27836 TXP_FIRST_MCS_40_CDD,
27837 TXP_LAST_MCS_40_CDD);
27838
27839 wlc_phy_mcs_to_ofdm_powers_nphy(tx_srom_max_rate,
27840 TXP_FIRST_OFDM_40_CDD,
27841 TXP_LAST_OFDM_40_CDD,
27842 TXP_FIRST_MCS_40_CDD);
27843
27844 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27845 &pwr_offsets2[4],
27846 tmp_max_pwr,
27847 TXP_FIRST_MCS_40_STBC,
27848 TXP_LAST_MCS_40_STBC);
27849
27850 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27851 tmp_stbcpo,
27852 TXP_FIRST_MCS_40_STBC,
27853 TXP_LAST_MCS_40_STBC);
27854
27855 wlc_phy_txpwr_nphy_srom_convert(tx_srom_max_rate,
27856 &pwr_offsets2[6],
27857 tmp_max_pwr,
27858 TXP_FIRST_MCS_40_SDM,
27859 TXP_LAST_MCS_40_SDM);
27860 } else {
27861
27862 for (rate1 = TXP_FIRST_OFDM_40_SISO, rate2 =
27863 TXP_FIRST_OFDM; rate1 <= TXP_LAST_MCS_40_SDM;
27864 rate1++, rate2++)
27865 tx_srom_max_rate[rate1] =
27866 tx_srom_max_rate[rate2];
27867 }
27868
27869 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
27870 wlc_phy_txpwr_nphy_po_apply(tx_srom_max_rate,
27871 tmp_bw40po,
27872 TXP_FIRST_OFDM_40_SISO,
27873 TXP_LAST_MCS_40_SDM);
27874 }
27875
27876 tx_srom_max_rate[TXP_MCS_32] =
27877 tx_srom_max_rate[TXP_FIRST_MCS_40_CDD];
27878 }
27879
27880 return;
27881}
27882
0d2f0724 27883static void wlc_phy_txpwr_srom_read_ppr_nphy(phy_info_t *pi)
a2627bc0 27884{
7d4df48e 27885 u16 bw40po, cddpo, stbcpo, bwduppo;
a9533e7e
HP
27886 uint band_num;
27887
27888 if (pi->sh->sromrev >= 9) {
27889
27890 return;
27891 }
27892
7d4df48e 27893 bw40po = (u16) PHY_GETINTVAR(pi, "bw40po");
a9533e7e
HP
27894 pi->bw402gpo = bw40po & 0xf;
27895 pi->bw405gpo = (bw40po & 0xf0) >> 4;
27896 pi->bw405glpo = (bw40po & 0xf00) >> 8;
27897 pi->bw405ghpo = (bw40po & 0xf000) >> 12;
27898
7d4df48e 27899 cddpo = (u16) PHY_GETINTVAR(pi, "cddpo");
a9533e7e
HP
27900 pi->cdd2gpo = cddpo & 0xf;
27901 pi->cdd5gpo = (cddpo & 0xf0) >> 4;
27902 pi->cdd5glpo = (cddpo & 0xf00) >> 8;
27903 pi->cdd5ghpo = (cddpo & 0xf000) >> 12;
27904
7d4df48e 27905 stbcpo = (u16) PHY_GETINTVAR(pi, "stbcpo");
a9533e7e
HP
27906 pi->stbc2gpo = stbcpo & 0xf;
27907 pi->stbc5gpo = (stbcpo & 0xf0) >> 4;
27908 pi->stbc5glpo = (stbcpo & 0xf00) >> 8;
27909 pi->stbc5ghpo = (stbcpo & 0xf000) >> 12;
27910
7d4df48e 27911 bwduppo = (u16) PHY_GETINTVAR(pi, "bwduppo");
a9533e7e
HP
27912 pi->bwdup2gpo = bwduppo & 0xf;
27913 pi->bwdup5gpo = (bwduppo & 0xf0) >> 4;
27914 pi->bwdup5glpo = (bwduppo & 0xf00) >> 8;
27915 pi->bwdup5ghpo = (bwduppo & 0xf000) >> 12;
27916
27917 for (band_num = 0; band_num < (CH_2G_GROUP + CH_5G_GROUP); band_num++) {
27918 switch (band_num) {
27919 case 0:
27920
27921 pi->nphy_txpid2g[PHY_CORE_0] =
e868ab03 27922 (u8) PHY_GETINTVAR(pi, "txpid2ga0");
a9533e7e 27923 pi->nphy_txpid2g[PHY_CORE_1] =
e868ab03 27924 (u8) PHY_GETINTVAR(pi, "txpid2ga1");
a9533e7e 27925 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_2g =
562c8850 27926 (s8) PHY_GETINTVAR(pi, "maxp2ga0");
a9533e7e 27927 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_2g =
562c8850 27928 (s8) PHY_GETINTVAR(pi, "maxp2ga1");
a9533e7e 27929 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_a1 =
e59fe083 27930 (s16) PHY_GETINTVAR(pi, "pa2gw0a0");
a9533e7e 27931 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_a1 =
e59fe083 27932 (s16) PHY_GETINTVAR(pi, "pa2gw0a1");
a9533e7e 27933 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b0 =
e59fe083 27934 (s16) PHY_GETINTVAR(pi, "pa2gw1a0");
a9533e7e 27935 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b0 =
e59fe083 27936 (s16) PHY_GETINTVAR(pi, "pa2gw1a1");
a9533e7e 27937 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_2g_b1 =
e59fe083 27938 (s16) PHY_GETINTVAR(pi, "pa2gw2a0");
a9533e7e 27939 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_2g_b1 =
e59fe083 27940 (s16) PHY_GETINTVAR(pi, "pa2gw2a1");
a9533e7e 27941 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_2g =
562c8850 27942 (s8) PHY_GETINTVAR(pi, "itt2ga0");
a9533e7e 27943 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_2g =
562c8850 27944 (s8) PHY_GETINTVAR(pi, "itt2ga1");
a9533e7e 27945
7d4df48e 27946 pi->cck2gpo = (u16) PHY_GETINTVAR(pi, "cck2gpo");
a9533e7e 27947
66cbd3ab 27948 pi->ofdm2gpo = (u32) PHY_GETINTVAR(pi, "ofdm2gpo");
a9533e7e 27949
7d4df48e
GKH
27950 pi->mcs2gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs2gpo0");
27951 pi->mcs2gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs2gpo1");
27952 pi->mcs2gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs2gpo2");
27953 pi->mcs2gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs2gpo3");
27954 pi->mcs2gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs2gpo4");
27955 pi->mcs2gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs2gpo5");
27956 pi->mcs2gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs2gpo6");
27957 pi->mcs2gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs2gpo7");
a9533e7e
HP
27958 break;
27959 case 1:
27960
27961 pi->nphy_txpid5g[PHY_CORE_0] =
e868ab03 27962 (u8) PHY_GETINTVAR(pi, "txpid5ga0");
a9533e7e 27963 pi->nphy_txpid5g[PHY_CORE_1] =
e868ab03 27964 (u8) PHY_GETINTVAR(pi, "txpid5ga1");
a9533e7e 27965 pi->nphy_pwrctrl_info[PHY_CORE_0].max_pwr_5gm =
562c8850 27966 (s8) PHY_GETINTVAR(pi, "maxp5ga0");
a9533e7e 27967 pi->nphy_pwrctrl_info[PHY_CORE_1].max_pwr_5gm =
562c8850 27968 (s8) PHY_GETINTVAR(pi, "maxp5ga1");
a9533e7e 27969 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_a1 =
e59fe083 27970 (s16) PHY_GETINTVAR(pi, "pa5gw0a0");
a9533e7e 27971 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_a1 =
e59fe083 27972 (s16) PHY_GETINTVAR(pi, "pa5gw0a1");
a9533e7e 27973 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b0 =
e59fe083 27974 (s16) PHY_GETINTVAR(pi, "pa5gw1a0");
a9533e7e 27975 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b0 =
e59fe083 27976 (s16) PHY_GETINTVAR(pi, "pa5gw1a1");
a9533e7e 27977 pi->nphy_pwrctrl_info[PHY_CORE_0].pwrdet_5gm_b1 =
e59fe083 27978 (s16) PHY_GETINTVAR(pi, "pa5gw2a0");
a9533e7e 27979 pi->nphy_pwrctrl_info[PHY_CORE_1].pwrdet_5gm_b1 =
e59fe083 27980 (s16) PHY_GETINTVAR(pi, "pa5gw2a1");
a9533e7e 27981 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_targ_5gm =
562c8850 27982 (s8) PHY_GETINTVAR(pi, "itt5ga0");
a9533e7e 27983 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_targ_5gm =
562c8850 27984 (s8) PHY_GETINTVAR(pi, "itt5ga1");
a9533e7e 27985
66cbd3ab 27986 pi->ofdm5gpo = (u32) PHY_GETINTVAR(pi, "ofdm5gpo");
a9533e7e 27987
7d4df48e
GKH
27988 pi->mcs5gpo[0] = (u16) PHY_GETINTVAR(pi, "mcs5gpo0");
27989 pi->mcs5gpo[1] = (u16) PHY_GETINTVAR(pi, "mcs5gpo1");
27990 pi->mcs5gpo[2] = (u16) PHY_GETINTVAR(pi, "mcs5gpo2");
27991 pi->mcs5gpo[3] = (u16) PHY_GETINTVAR(pi, "mcs5gpo3");
27992 pi->mcs5gpo[4] = (u16) PHY_GETINTVAR(pi, "mcs5gpo4");
27993 pi->mcs5gpo[5] = (u16) PHY_GETINTVAR(pi, "mcs5gpo5");
27994 pi->mcs5gpo[6] = (u16) PHY_GETINTVAR(pi, "mcs5gpo6");
27995 pi->mcs5gpo[7] = (u16) PHY_GETINTVAR(pi, "mcs5gpo7");
a9533e7e
HP
27996 break;
27997 case 2:
27998
27999 pi->nphy_txpid5gl[0] =
e868ab03 28000 (u8) PHY_GETINTVAR(pi, "txpid5gla0");
a9533e7e 28001 pi->nphy_txpid5gl[1] =
e868ab03 28002 (u8) PHY_GETINTVAR(pi, "txpid5gla1");
a9533e7e 28003 pi->nphy_pwrctrl_info[0].max_pwr_5gl =
562c8850 28004 (s8) PHY_GETINTVAR(pi, "maxp5gla0");
a9533e7e 28005 pi->nphy_pwrctrl_info[1].max_pwr_5gl =
562c8850 28006 (s8) PHY_GETINTVAR(pi, "maxp5gla1");
a9533e7e 28007 pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1 =
e59fe083 28008 (s16) PHY_GETINTVAR(pi, "pa5glw0a0");
a9533e7e 28009 pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1 =
e59fe083 28010 (s16) PHY_GETINTVAR(pi, "pa5glw0a1");
a9533e7e 28011 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0 =
e59fe083 28012 (s16) PHY_GETINTVAR(pi, "pa5glw1a0");
a9533e7e 28013 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0 =
e59fe083 28014 (s16) PHY_GETINTVAR(pi, "pa5glw1a1");
a9533e7e 28015 pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1 =
e59fe083 28016 (s16) PHY_GETINTVAR(pi, "pa5glw2a0");
a9533e7e 28017 pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1 =
e59fe083 28018 (s16) PHY_GETINTVAR(pi, "pa5glw2a1");
a9533e7e
HP
28019 pi->nphy_pwrctrl_info[0].idle_targ_5gl = 0;
28020 pi->nphy_pwrctrl_info[1].idle_targ_5gl = 0;
28021
66cbd3ab 28022 pi->ofdm5glpo = (u32) PHY_GETINTVAR(pi, "ofdm5glpo");
a9533e7e
HP
28023
28024 pi->mcs5glpo[0] =
7d4df48e 28025 (u16) PHY_GETINTVAR(pi, "mcs5glpo0");
a9533e7e 28026 pi->mcs5glpo[1] =
7d4df48e 28027 (u16) PHY_GETINTVAR(pi, "mcs5glpo1");
a9533e7e 28028 pi->mcs5glpo[2] =
7d4df48e 28029 (u16) PHY_GETINTVAR(pi, "mcs5glpo2");
a9533e7e 28030 pi->mcs5glpo[3] =
7d4df48e 28031 (u16) PHY_GETINTVAR(pi, "mcs5glpo3");
a9533e7e 28032 pi->mcs5glpo[4] =
7d4df48e 28033 (u16) PHY_GETINTVAR(pi, "mcs5glpo4");
a9533e7e 28034 pi->mcs5glpo[5] =
7d4df48e 28035 (u16) PHY_GETINTVAR(pi, "mcs5glpo5");
a9533e7e 28036 pi->mcs5glpo[6] =
7d4df48e 28037 (u16) PHY_GETINTVAR(pi, "mcs5glpo6");
a9533e7e 28038 pi->mcs5glpo[7] =
7d4df48e 28039 (u16) PHY_GETINTVAR(pi, "mcs5glpo7");
a9533e7e
HP
28040 break;
28041 case 3:
28042
28043 pi->nphy_txpid5gh[0] =
e868ab03 28044 (u8) PHY_GETINTVAR(pi, "txpid5gha0");
a9533e7e 28045 pi->nphy_txpid5gh[1] =
e868ab03 28046 (u8) PHY_GETINTVAR(pi, "txpid5gha1");
a9533e7e 28047 pi->nphy_pwrctrl_info[0].max_pwr_5gh =
562c8850 28048 (s8) PHY_GETINTVAR(pi, "maxp5gha0");
a9533e7e 28049 pi->nphy_pwrctrl_info[1].max_pwr_5gh =
562c8850 28050 (s8) PHY_GETINTVAR(pi, "maxp5gha1");
a9533e7e 28051 pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1 =
e59fe083 28052 (s16) PHY_GETINTVAR(pi, "pa5ghw0a0");
a9533e7e 28053 pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1 =
e59fe083 28054 (s16) PHY_GETINTVAR(pi, "pa5ghw0a1");
a9533e7e 28055 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0 =
e59fe083 28056 (s16) PHY_GETINTVAR(pi, "pa5ghw1a0");
a9533e7e 28057 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0 =
e59fe083 28058 (s16) PHY_GETINTVAR(pi, "pa5ghw1a1");
a9533e7e 28059 pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1 =
e59fe083 28060 (s16) PHY_GETINTVAR(pi, "pa5ghw2a0");
a9533e7e 28061 pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1 =
e59fe083 28062 (s16) PHY_GETINTVAR(pi, "pa5ghw2a1");
a9533e7e
HP
28063 pi->nphy_pwrctrl_info[0].idle_targ_5gh = 0;
28064 pi->nphy_pwrctrl_info[1].idle_targ_5gh = 0;
28065
66cbd3ab 28066 pi->ofdm5ghpo = (u32) PHY_GETINTVAR(pi, "ofdm5ghpo");
a9533e7e
HP
28067
28068 pi->mcs5ghpo[0] =
7d4df48e 28069 (u16) PHY_GETINTVAR(pi, "mcs5ghpo0");
a9533e7e 28070 pi->mcs5ghpo[1] =
7d4df48e 28071 (u16) PHY_GETINTVAR(pi, "mcs5ghpo1");
a9533e7e 28072 pi->mcs5ghpo[2] =
7d4df48e 28073 (u16) PHY_GETINTVAR(pi, "mcs5ghpo2");
a9533e7e 28074 pi->mcs5ghpo[3] =
7d4df48e 28075 (u16) PHY_GETINTVAR(pi, "mcs5ghpo3");
a9533e7e 28076 pi->mcs5ghpo[4] =
7d4df48e 28077 (u16) PHY_GETINTVAR(pi, "mcs5ghpo4");
a9533e7e 28078 pi->mcs5ghpo[5] =
7d4df48e 28079 (u16) PHY_GETINTVAR(pi, "mcs5ghpo5");
a9533e7e 28080 pi->mcs5ghpo[6] =
7d4df48e 28081 (u16) PHY_GETINTVAR(pi, "mcs5ghpo6");
a9533e7e 28082 pi->mcs5ghpo[7] =
7d4df48e 28083 (u16) PHY_GETINTVAR(pi, "mcs5ghpo7");
a9533e7e
HP
28084 break;
28085 }
28086 }
28087
28088 wlc_phy_txpwr_apply_nphy(pi);
28089}
28090
0d2f0724 28091static bool wlc_phy_txpwr_srom_read_nphy(phy_info_t *pi)
a2627bc0 28092{
a9533e7e 28093
e868ab03
GKH
28094 pi->antswitch = (u8) PHY_GETINTVAR(pi, "antswitch");
28095 pi->aa2g = (u8) PHY_GETINTVAR(pi, "aa2g");
28096 pi->aa5g = (u8) PHY_GETINTVAR(pi, "aa5g");
a9533e7e 28097
e868ab03
GKH
28098 pi->srom_fem2g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos2g");
28099 pi->srom_fem2g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain2g");
28100 pi->srom_fem2g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange2g");
28101 pi->srom_fem2g.triso = (u8) PHY_GETINTVAR(pi, "triso2g");
28102 pi->srom_fem2g.antswctrllut = (u8) PHY_GETINTVAR(pi, "antswctl2g");
a9533e7e 28103
e868ab03
GKH
28104 pi->srom_fem5g.tssipos = (u8) PHY_GETINTVAR(pi, "tssipos5g");
28105 pi->srom_fem5g.extpagain = (u8) PHY_GETINTVAR(pi, "extpagain5g");
28106 pi->srom_fem5g.pdetrange = (u8) PHY_GETINTVAR(pi, "pdetrange5g");
28107 pi->srom_fem5g.triso = (u8) PHY_GETINTVAR(pi, "triso5g");
a9533e7e
HP
28108 if (PHY_GETVAR(pi, "antswctl5g")) {
28109
28110 pi->srom_fem5g.antswctrllut =
e868ab03 28111 (u8) PHY_GETINTVAR(pi, "antswctl5g");
a9533e7e
HP
28112 } else {
28113
28114 pi->srom_fem5g.antswctrllut =
e868ab03 28115 (u8) PHY_GETINTVAR(pi, "antswctl2g");
a9533e7e
HP
28116 }
28117
28118 wlc_phy_txpower_ipa_upd(pi);
28119
e59fe083 28120 pi->phy_txcore_disable_temp = (s16) PHY_GETINTVAR(pi, "tempthresh");
a9533e7e
HP
28121 if (pi->phy_txcore_disable_temp == 0) {
28122 pi->phy_txcore_disable_temp = PHY_CHAIN_TX_DISABLE_TEMP;
28123 }
28124
562c8850 28125 pi->phy_tempsense_offset = (s8) PHY_GETINTVAR(pi, "tempoffset");
a9533e7e
HP
28126 if (pi->phy_tempsense_offset != 0) {
28127 if (pi->phy_tempsense_offset >
28128 (NPHY_SROM_TEMPSHIFT + NPHY_SROM_MAXTEMPOFFSET)) {
28129 pi->phy_tempsense_offset = NPHY_SROM_MAXTEMPOFFSET;
28130 } else if (pi->phy_tempsense_offset < (NPHY_SROM_TEMPSHIFT +
e5c4536f 28131 NPHY_SROM_MINTEMPOFFSET)) {
a9533e7e
HP
28132 pi->phy_tempsense_offset = NPHY_SROM_MINTEMPOFFSET;
28133 } else {
28134 pi->phy_tempsense_offset -= NPHY_SROM_TEMPSHIFT;
28135 }
28136 }
28137
28138 pi->phy_txcore_enable_temp =
28139 pi->phy_txcore_disable_temp - PHY_HYSTERESIS_DELTATEMP;
28140
e868ab03 28141 pi->phycal_tempdelta = (u8) PHY_GETINTVAR(pi, "phycal_tempdelta");
a9533e7e
HP
28142 if (pi->phycal_tempdelta > NPHY_CAL_MAXTEMPDELTA) {
28143 pi->phycal_tempdelta = 0;
28144 }
28145
28146 wlc_phy_txpwr_srom_read_ppr_nphy(pi);
28147
0f0881b0 28148 return true;
a9533e7e
HP
28149}
28150
7cc4a4c0 28151void wlc_phy_txpower_recalc_target_nphy(phy_info_t *pi)
a9533e7e 28152{
e868ab03 28153 u8 tx_pwr_ctrl_state;
a9533e7e
HP
28154 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28155 wlc_phy_txpwrctrl_pwr_setup_nphy(pi);
28156
28157 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
28158
28159 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28160 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
ff31c54c 28161 (void)R_REG(&pi->regs->maccontrol);
7383141b 28162 udelay(1);
a9533e7e
HP
28163 }
28164
28165 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
28166
28167 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28168 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28169}
28170
7cc4a4c0 28171static void wlc_phy_txpwrctrl_coeff_setup_nphy(phy_info_t *pi)
a9533e7e 28172{
66cbd3ab 28173 u32 idx;
7d4df48e 28174 u16 iqloCalbuf[7];
66cbd3ab 28175 u32 iqcomp, locomp, curr_locomp;
562c8850
GKH
28176 s8 locomp_i, locomp_q;
28177 s8 curr_locomp_i, curr_locomp_q;
66cbd3ab
GKH
28178 u32 tbl_id, tbl_len, tbl_offset;
28179 u32 regval[128];
a9533e7e
HP
28180
28181 if (pi->phyhang_avoid)
0f0881b0 28182 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28183
28184 wlc_phy_table_read_nphy(pi, 15, 7, 80, 16, iqloCalbuf);
28185
28186 tbl_len = 128;
28187 tbl_offset = 320;
28188 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28189 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28190 iqcomp =
28191 (tbl_id ==
66cbd3ab 28192 26) ? (((u32) (iqloCalbuf[0] & 0x3ff)) << 10) |
a9533e7e 28193 (iqloCalbuf[1] & 0x3ff)
66cbd3ab 28194 : (((u32) (iqloCalbuf[2] & 0x3ff)) << 10) |
a9533e7e
HP
28195 (iqloCalbuf[3] & 0x3ff);
28196
28197 for (idx = 0; idx < tbl_len; idx++) {
28198 regval[idx] = iqcomp;
28199 }
28200 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28201 regval);
28202 }
28203
28204 tbl_offset = 448;
28205 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28206 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28207
28208 locomp =
66cbd3ab 28209 (u32) ((tbl_id == 26) ? iqloCalbuf[5] : iqloCalbuf[6]);
562c8850
GKH
28210 locomp_i = (s8) ((locomp >> 8) & 0xff);
28211 locomp_q = (s8) ((locomp) & 0xff);
a9533e7e
HP
28212 for (idx = 0; idx < tbl_len; idx++) {
28213 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28214 curr_locomp_i = locomp_i;
28215 curr_locomp_q = locomp_q;
28216 } else {
562c8850 28217 curr_locomp_i = (s8) ((locomp_i *
a9533e7e
HP
28218 nphy_tpc_loscale[idx] +
28219 128) >> 8);
28220 curr_locomp_q =
562c8850 28221 (s8) ((locomp_q * nphy_tpc_loscale[idx] +
a9533e7e
HP
28222 128) >> 8);
28223 }
66cbd3ab
GKH
28224 curr_locomp = (u32) ((curr_locomp_i & 0xff) << 8);
28225 curr_locomp |= (u32) (curr_locomp_q & 0xff);
a9533e7e
HP
28226 regval[idx] = curr_locomp;
28227 }
28228 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28229 regval);
28230 }
28231
28232 if (NREV_LT(pi->pubpi.phy_rev, 2)) {
28233
28234 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX1, 0xFFFF);
28235 wlapi_bmac_write_shm(pi->sh->physhim, M_CURR_IDX2, 0xFFFF);
28236 }
28237
28238 if (pi->phyhang_avoid)
0965ae88 28239 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
28240}
28241
7cc4a4c0 28242static void wlc_phy_ipa_internal_tssi_setup_nphy(phy_info_t *pi)
a9533e7e 28243{
e868ab03 28244 u8 core;
a9533e7e
HP
28245
28246 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28247 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28248 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28249 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28250 TX_SSI_MASTER, 0x5);
28251 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28252 TX_SSI_MUX, 0xe);
28253
28254 if (pi->pubpi.radiorev != 5)
28255 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28256 core, TSSIA, 0);
28257
28258 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28259
28260 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28261 core, TSSIG, 0x1);
28262 } else {
28263
28264 WRITE_RADIO_REG3(pi, RADIO_2057, TX,
28265 core, TSSIG, 0x31);
28266 }
28267 } else {
28268 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28269 TX_SSI_MASTER, 0x9);
28270 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28271 TX_SSI_MUX, 0xc);
28272 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core,
28273 TSSIG, 0);
28274
28275 if (pi->pubpi.radiorev != 5) {
28276 if (!NREV_IS(pi->pubpi.phy_rev, 7)) {
28277
28278 WRITE_RADIO_REG3(pi, RADIO_2057,
28279 TX, core,
28280 TSSIA, 0x1);
28281 } else {
28282
28283 WRITE_RADIO_REG3(pi, RADIO_2057,
28284 TX, core,
28285 TSSIA, 0x31);
28286 }
28287 }
28288 }
28289 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_VCM_HG,
28290 0);
28291 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, IQCAL_IDAC,
28292 0);
28293 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_VCM,
28294 0x3);
28295 WRITE_RADIO_REG3(pi, RADIO_2057, TX, core, TSSI_MISC1,
28296 0x0);
28297 }
28298 } else {
28299 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR31,
28300 (CHSPEC_IS2G(pi->radio_chanspec)) ? 0x128 :
28301 0x80);
28302 WRITE_RADIO_SYN(pi, RADIO_2056, RESERVED_ADDR30, 0x0);
28303 WRITE_RADIO_SYN(pi, RADIO_2056, GPIO_MASTER1, 0x29);
28304
28305 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28306 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_VCM_HG,
28307 0x0);
28308 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, IQCAL_IDAC,
28309 0x0);
28310 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_VCM,
28311 0x3);
28312 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TX_AMP_DET,
28313 0x0);
28314 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC1,
28315 0x8);
28316 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC2,
28317 0x0);
28318 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, TSSI_MISC3,
28319 0x0);
28320
28321 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28322 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28323 TX_SSI_MASTER, 0x5);
28324
28325 if (pi->pubpi.radiorev != 5)
28326 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28327 core, TSSIA, 0x0);
28328 if (NREV_GE(pi->pubpi.phy_rev, 5)) {
28329
28330 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28331 core, TSSIG, 0x31);
28332 } else {
28333 WRITE_RADIO_REG2(pi, RADIO_2056, TX,
28334 core, TSSIG, 0x11);
28335 }
28336 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28337 TX_SSI_MUX, 0xe);
28338 } else {
28339 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28340 TX_SSI_MASTER, 0x9);
28341 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28342 TSSIA, 0x31);
28343 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28344 TSSIG, 0x0);
28345 WRITE_RADIO_REG2(pi, RADIO_2056, TX, core,
28346 TX_SSI_MUX, 0xc);
28347 }
28348 }
28349 }
28350}
28351
7cc4a4c0 28352static void wlc_phy_txpwrctrl_idle_tssi_nphy(phy_info_t *pi)
a9533e7e 28353{
3e26416e
GKH
28354 s32 rssi_buf[4];
28355 s32 int_val;
a9533e7e
HP
28356
28357 if (SCAN_RM_IN_PROGRESS(pi) || PLT_INPROG_PHY(pi) || PHY_MUTED(pi))
28358
28359 return;
28360
28361 if (PHY_IPA(pi)) {
28362 wlc_phy_ipa_internal_tssi_setup_nphy(pi);
28363 }
28364
28365 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28366 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28367 0, 0x3, 0,
28368 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28369 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28370 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 0);
28371 }
28372
28373 wlc_phy_stopplayback_nphy(pi);
28374
0965ae88 28375 wlc_phy_tx_tone_nphy(pi, 4000, 0, 0, 0, false);
a9533e7e 28376
7383141b 28377 udelay(20);
a9533e7e 28378 int_val =
e868ab03 28379 wlc_phy_poll_rssi_nphy(pi, (u8) NPHY_RSSI_SEL_TSSI_2G, rssi_buf,
a9533e7e
HP
28380 1);
28381 wlc_phy_stopplayback_nphy(pi);
28382 wlc_phy_rssisel_nphy(pi, RADIO_MIMO_CORESEL_OFF, 0);
28383
28384 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28385 wlc_phy_rfctrl_override_nphy_rev7(pi, (0x1 << 12),
28386 0, 0x3, 1,
28387 NPHY_REV7_RFCTRLOVERRIDE_ID0);
28388 } else if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28389 wlc_phy_rfctrl_override_nphy(pi, (0x1 << 13), 0, 3, 1);
28390 }
28391
28392 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28393
28394 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
e868ab03 28395 (u8) ((int_val >> 24) & 0xff);
a9533e7e 28396 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
e868ab03 28397 (u8) ((int_val >> 24) & 0xff);
a9533e7e
HP
28398
28399 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
e868ab03 28400 (u8) ((int_val >> 8) & 0xff);
a9533e7e 28401 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
e868ab03 28402 (u8) ((int_val >> 8) & 0xff);
a9533e7e
HP
28403 } else {
28404 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_2g =
e868ab03 28405 (u8) ((int_val >> 24) & 0xff);
a9533e7e
HP
28406
28407 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_2g =
e868ab03 28408 (u8) ((int_val >> 8) & 0xff);
a9533e7e
HP
28409
28410 pi->nphy_pwrctrl_info[PHY_CORE_0].idle_tssi_5g =
e868ab03 28411 (u8) ((int_val >> 16) & 0xff);
a9533e7e 28412 pi->nphy_pwrctrl_info[PHY_CORE_1].idle_tssi_5g =
e868ab03 28413 (u8) ((int_val) & 0xff);
a9533e7e
HP
28414 }
28415
28416}
28417
7cc4a4c0 28418static void wlc_phy_txpwrctrl_pwr_setup_nphy(phy_info_t *pi)
a9533e7e 28419{
66cbd3ab 28420 u32 idx;
e59fe083 28421 s16 a1[2], b0[2], b1[2];
562c8850 28422 s8 target_pwr_qtrdbm[2];
3e26416e 28423 s32 num, den, pwr_est;
e868ab03
GKH
28424 u8 chan_freq_range;
28425 u8 idle_tssi[2];
66cbd3ab
GKH
28426 u32 tbl_id, tbl_len, tbl_offset;
28427 u32 regval[64];
e868ab03 28428 u8 core;
a9533e7e
HP
28429
28430 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28431 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
ff31c54c 28432 (void)R_REG(&pi->regs->maccontrol);
7383141b 28433 udelay(1);
a9533e7e
HP
28434 }
28435
28436 if (pi->phyhang_avoid)
0f0881b0 28437 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28438
28439 or_phy_reg(pi, 0x122, (0x1 << 0));
28440
28441 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
7d4df48e 28442 and_phy_reg(pi, 0x1e7, (u16) (~(0x1 << 15)));
a9533e7e
HP
28443 } else {
28444
28445 or_phy_reg(pi, 0x1e7, (0x1 << 15));
28446 }
28447
28448 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28449 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28450
28451 if (pi->sh->sromrev < 4) {
28452 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28453 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28454 target_pwr_qtrdbm[0] = 13 * 4;
28455 target_pwr_qtrdbm[1] = 13 * 4;
28456 a1[0] = -424;
28457 a1[1] = -424;
28458 b0[0] = 5612;
28459 b0[1] = 5612;
28460 b1[1] = -1393;
28461 b1[0] = -1393;
28462 } else {
28463
28464 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, 0);
28465 switch (chan_freq_range) {
28466 case WL_CHAN_FREQ_RANGE_2G:
28467 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28468 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28469 target_pwr_qtrdbm[0] =
28470 pi->nphy_pwrctrl_info[0].max_pwr_2g;
28471 target_pwr_qtrdbm[1] =
28472 pi->nphy_pwrctrl_info[1].max_pwr_2g;
28473 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_a1;
28474 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_a1;
28475 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b0;
28476 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b0;
28477 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_2g_b1;
28478 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_2g_b1;
28479 break;
28480 case WL_CHAN_FREQ_RANGE_5GL:
28481 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28482 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28483 target_pwr_qtrdbm[0] =
28484 pi->nphy_pwrctrl_info[0].max_pwr_5gl;
28485 target_pwr_qtrdbm[1] =
28486 pi->nphy_pwrctrl_info[1].max_pwr_5gl;
28487 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_a1;
28488 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_a1;
28489 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b0;
28490 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b0;
28491 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gl_b1;
28492 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gl_b1;
28493 break;
28494 case WL_CHAN_FREQ_RANGE_5GM:
28495 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28496 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28497 target_pwr_qtrdbm[0] =
28498 pi->nphy_pwrctrl_info[0].max_pwr_5gm;
28499 target_pwr_qtrdbm[1] =
28500 pi->nphy_pwrctrl_info[1].max_pwr_5gm;
28501 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_a1;
28502 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_a1;
28503 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b0;
28504 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b0;
28505 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gm_b1;
28506 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gm_b1;
28507 break;
28508 case WL_CHAN_FREQ_RANGE_5GH:
28509 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_5g;
28510 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_5g;
28511 target_pwr_qtrdbm[0] =
28512 pi->nphy_pwrctrl_info[0].max_pwr_5gh;
28513 target_pwr_qtrdbm[1] =
28514 pi->nphy_pwrctrl_info[1].max_pwr_5gh;
28515 a1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_a1;
28516 a1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_a1;
28517 b0[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b0;
28518 b0[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b0;
28519 b1[0] = pi->nphy_pwrctrl_info[0].pwrdet_5gh_b1;
28520 b1[1] = pi->nphy_pwrctrl_info[1].pwrdet_5gh_b1;
28521 break;
28522 default:
28523 idle_tssi[0] = pi->nphy_pwrctrl_info[0].idle_tssi_2g;
28524 idle_tssi[1] = pi->nphy_pwrctrl_info[1].idle_tssi_2g;
28525 target_pwr_qtrdbm[0] = 13 * 4;
28526 target_pwr_qtrdbm[1] = 13 * 4;
28527 a1[0] = -424;
28528 a1[1] = -424;
28529 b0[0] = 5612;
28530 b0[1] = 5612;
28531 b1[1] = -1393;
28532 b1[0] = -1393;
28533 break;
28534 }
28535 }
28536
562c8850
GKH
28537 target_pwr_qtrdbm[0] = (s8) pi->tx_power_max;
28538 target_pwr_qtrdbm[1] = (s8) pi->tx_power_max;
a9533e7e
HP
28539
28540 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28541 if (pi->srom_fem2g.tssipos) {
28542 or_phy_reg(pi, 0x1e9, (0x1 << 14));
28543 }
28544
28545 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28546 for (core = 0; core <= 1; core++) {
28547 if (PHY_IPA(pi)) {
28548
28549 if (CHSPEC_IS2G(pi->radio_chanspec)) {
28550 WRITE_RADIO_REG3(pi, RADIO_2057,
28551 TX, core,
28552 TX_SSI_MUX,
28553 0xe);
28554 } else {
28555 WRITE_RADIO_REG3(pi, RADIO_2057,
28556 TX, core,
28557 TX_SSI_MUX,
28558 0xc);
28559 }
28560 } else {
28561 }
28562 }
28563 } else {
28564 if (PHY_IPA(pi)) {
28565
28566 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28567 RADIO_2056_TX0,
28568 (CHSPEC_IS5G
28569 (pi->
28570 radio_chanspec)) ? 0xc : 0xe);
28571 write_radio_reg(pi,
28572 RADIO_2056_TX_TX_SSI_MUX |
28573 RADIO_2056_TX1,
28574 (CHSPEC_IS5G
28575 (pi->
28576 radio_chanspec)) ? 0xc : 0xe);
28577 } else {
28578
28579 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28580 RADIO_2056_TX0, 0x11);
28581 write_radio_reg(pi, RADIO_2056_TX_TX_SSI_MUX |
28582 RADIO_2056_TX1, 0x11);
28583 }
28584 }
28585 }
28586
28587 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12)) {
28588 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, MCTL_PHYLOCK);
ff31c54c 28589 (void)R_REG(&pi->regs->maccontrol);
7383141b 28590 udelay(1);
a9533e7e
HP
28591 }
28592
28593 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28594 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28595 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28596 } else {
28597 mod_phy_reg(pi, 0x1e7, (0x7f << 0),
28598 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28599 }
28600
28601 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28602 mod_phy_reg(pi, 0x222, (0xff << 0),
28603 (NPHY_TxPwrCtrlCmd_pwrIndex_init_rev7 << 0));
28604 } else if (NREV_GT(pi->pubpi.phy_rev, 1)) {
28605 mod_phy_reg(pi, 0x222, (0xff << 0),
28606 (NPHY_TxPwrCtrlCmd_pwrIndex_init << 0));
28607 }
28608
28609 if (D11REV_IS(pi->sh->corerev, 11) || D11REV_IS(pi->sh->corerev, 12))
28610 wlapi_bmac_mctrl(pi->sh->physhim, MCTL_PHYLOCK, 0);
28611
28612 write_phy_reg(pi, 0x1e8, (0x3 << 8) | (240 << 0));
28613
28614 write_phy_reg(pi, 0x1e9,
28615 (1 << 15) | (idle_tssi[0] << 0) | (idle_tssi[1] << 8));
28616
28617 write_phy_reg(pi, 0x1ea,
28618 (target_pwr_qtrdbm[0] << 0) |
28619 (target_pwr_qtrdbm[1] << 8));
28620
28621 tbl_len = 64;
28622 tbl_offset = 0;
28623 for (tbl_id = NPHY_TBL_ID_CORE1TXPWRCTL;
28624 tbl_id <= NPHY_TBL_ID_CORE2TXPWRCTL; tbl_id++) {
28625
28626 for (idx = 0; idx < tbl_len; idx++) {
28627 num =
28628 8 * (16 * b0[tbl_id - 26] + b1[tbl_id - 26] * idx);
28629 den = 32768 + a1[tbl_id - 26] * idx;
3ea2f4d6 28630 pwr_est = max(((4 * num + den / 2) / den), -8);
a9533e7e
HP
28631 if (NREV_LT(pi->pubpi.phy_rev, 3)) {
28632 if (idx <=
28633 (uint) (31 - idle_tssi[tbl_id - 26] + 1))
28634 pwr_est =
3ea2f4d6 28635 max(pwr_est,
a9533e7e
HP
28636 target_pwr_qtrdbm[tbl_id - 26] +
28637 1);
28638 }
66cbd3ab 28639 regval[idx] = (u32) pwr_est;
a9533e7e
HP
28640 }
28641 wlc_phy_table_write_nphy(pi, tbl_id, tbl_len, tbl_offset, 32,
28642 regval);
28643 }
28644
28645 wlc_phy_txpwr_limit_to_tbl_nphy(pi);
28646 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64, 8,
28647 pi->adj_pwr_tbl_nphy);
28648 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64, 8,
28649 pi->adj_pwr_tbl_nphy);
28650
28651 if (pi->phyhang_avoid)
0965ae88 28652 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
28653}
28654
7cc4a4c0 28655static bool wlc_phy_txpwr_ison_nphy(phy_info_t *pi)
a9533e7e 28656{
90ea2296
JC
28657 return read_phy_reg((pi), 0x1e7) & ((0x1 << 15) |
28658 (0x1 << 14) | (0x1 << 13));
a9533e7e
HP
28659}
28660
e868ab03 28661static u8 wlc_phy_txpwr_idx_cur_get_nphy(phy_info_t *pi, u8 core)
a9533e7e 28662{
7d4df48e 28663 u16 tmp;
a9533e7e
HP
28664 tmp = read_phy_reg(pi, ((core == PHY_CORE_0) ? 0x1ed : 0x1ee));
28665
28666 tmp = (tmp & (0x7f << 8)) >> 8;
e868ab03 28667 return (u8) tmp;
a9533e7e
HP
28668}
28669
28670static void
e868ab03 28671wlc_phy_txpwr_idx_cur_set_nphy(phy_info_t *pi, u8 idx0, u8 idx1)
a9533e7e
HP
28672{
28673 mod_phy_reg(pi, 0x1e7, (0x7f << 0), idx0);
28674
28675 if (NREV_GT(pi->pubpi.phy_rev, 1))
28676 mod_phy_reg(pi, 0x222, (0xff << 0), idx1);
28677}
28678
7d4df48e 28679u16 wlc_phy_txpwr_idx_get_nphy(phy_info_t *pi)
a9533e7e 28680{
7d4df48e
GKH
28681 u16 tmp;
28682 u16 pwr_idx[2];
a9533e7e
HP
28683
28684 if (wlc_phy_txpwr_ison_nphy(pi)) {
28685 pwr_idx[0] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_0);
28686 pwr_idx[1] = wlc_phy_txpwr_idx_cur_get_nphy(pi, PHY_CORE_1);
28687
28688 tmp = (pwr_idx[0] << 8) | pwr_idx[1];
28689 } else {
28690 tmp =
28691 ((pi->nphy_txpwrindex[PHY_CORE_0].
28692 index_internal & 0xff) << 8) | (pi->
28693 nphy_txpwrindex
28694 [PHY_CORE_1].
28695 index_internal & 0xff);
28696 }
28697
28698 return tmp;
28699}
28700
7cc4a4c0 28701void wlc_phy_txpwr_papd_cal_nphy(phy_info_t *pi)
a9533e7e
HP
28702{
28703 if (PHY_IPA(pi)
28704 && (pi->nphy_force_papd_cal
28705 || (wlc_phy_txpwr_ison_nphy(pi)
28706 &&
66cbd3ab 28707 (((u32)
a9533e7e
HP
28708 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 0) -
28709 pi->nphy_papd_tx_gain_at_last_cal[0]) >= 4)
66cbd3ab 28710 || ((u32)
a9533e7e
HP
28711 ABS(wlc_phy_txpwr_idx_cur_get_nphy(pi, 1) -
28712 pi->nphy_papd_tx_gain_at_last_cal[1]) >= 4))))) {
0f0881b0 28713 wlc_phy_a4(pi, true);
a9533e7e
HP
28714 }
28715}
28716
e868ab03 28717void wlc_phy_txpwrctrl_enable_nphy(phy_info_t *pi, u8 ctrl_type)
a9533e7e 28718{
7d4df48e 28719 u16 mask = 0, val = 0, ishw = 0;
e868ab03 28720 u8 ctr;
a9533e7e 28721 uint core;
66cbd3ab
GKH
28722 u32 tbl_offset;
28723 u32 tbl_len;
7d4df48e 28724 u16 regval[84];
a9533e7e
HP
28725
28726 if (pi->phyhang_avoid)
0f0881b0 28727 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28728
28729 switch (ctrl_type) {
28730 case PHY_TPC_HW_OFF:
28731 case PHY_TPC_HW_ON:
28732 pi->nphy_txpwrctrl = ctrl_type;
28733 break;
28734 default:
28735 break;
28736 }
28737
28738 if (ctrl_type == PHY_TPC_HW_OFF) {
28739 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28740
28741 if (wlc_phy_txpwr_ison_nphy(pi)) {
28742 for (core = 0; core < pi->pubpi.phy_corenum;
28743 core++)
28744 pi->nphy_txpwr_idx[core] =
28745 wlc_phy_txpwr_idx_cur_get_nphy(pi,
e868ab03 28746 (u8)
a9533e7e
HP
28747 core);
28748 }
28749
28750 }
28751
28752 tbl_len = 84;
28753 tbl_offset = 64;
28754 for (ctr = 0; ctr < tbl_len; ctr++) {
28755 regval[ctr] = 0;
28756 }
28757 wlc_phy_table_write_nphy(pi, 26, tbl_len, tbl_offset, 16,
28758 regval);
28759 wlc_phy_table_write_nphy(pi, 27, tbl_len, tbl_offset, 16,
28760 regval);
28761
28762 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28763
28764 and_phy_reg(pi, 0x1e7,
7d4df48e 28765 (u16) (~((0x1 << 15) |
a9533e7e
HP
28766 (0x1 << 14) | (0x1 << 13))));
28767 } else {
28768 and_phy_reg(pi, 0x1e7,
7d4df48e 28769 (u16) (~((0x1 << 14) | (0x1 << 13))));
a9533e7e
HP
28770 }
28771
28772 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28773 or_phy_reg(pi, 0x8f, (0x1 << 8));
28774 or_phy_reg(pi, 0xa5, (0x1 << 8));
28775 } else {
28776 or_phy_reg(pi, 0xa5, (0x1 << 14));
28777 }
28778
28779 if (NREV_IS(pi->pubpi.phy_rev, 2))
28780 mod_phy_reg(pi, 0xdc, 0x00ff, 0x53);
28781 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28782 mod_phy_reg(pi, 0xdc, 0x00ff, 0x5a);
28783
28784 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28785 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28786 MHF1_IQSWAP_WAR, WLC_BAND_ALL);
28787
28788 } else {
28789
28790 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE1TXPWRCTL, 84, 64,
28791 8, pi->adj_pwr_tbl_nphy);
28792 wlc_phy_table_write_nphy(pi, NPHY_TBL_ID_CORE2TXPWRCTL, 84, 64,
28793 8, pi->adj_pwr_tbl_nphy);
28794
28795 ishw = (ctrl_type == PHY_TPC_HW_ON) ? 0x1 : 0x0;
28796 mask = (0x1 << 14) | (0x1 << 13);
28797 val = (ishw << 14) | (ishw << 13);
28798
28799 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28800 mask |= (0x1 << 15);
28801 val |= (ishw << 15);
28802 }
28803
28804 mod_phy_reg(pi, 0x1e7, mask, val);
28805
28806 if (CHSPEC_IS5G(pi->radio_chanspec)) {
28807 if (NREV_GE(pi->pubpi.phy_rev, 7)) {
28808 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x32);
28809 mod_phy_reg(pi, 0x222, (0xff << 0), 0x32);
28810 } else {
28811 mod_phy_reg(pi, 0x1e7, (0x7f << 0), 0x64);
28812 if (NREV_GT(pi->pubpi.phy_rev, 1))
28813 mod_phy_reg(pi, 0x222,
28814 (0xff << 0), 0x64);
28815 }
28816 }
28817
28818 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28819 if ((pi->nphy_txpwr_idx[0] != 128)
28820 && (pi->nphy_txpwr_idx[1] != 128)) {
28821 wlc_phy_txpwr_idx_cur_set_nphy(pi,
28822 pi->
28823 nphy_txpwr_idx
28824 [0],
28825 pi->
28826 nphy_txpwr_idx
28827 [1]);
28828 }
28829 }
28830
28831 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28832 and_phy_reg(pi, 0x8f, ~(0x1 << 8));
28833 and_phy_reg(pi, 0xa5, ~(0x1 << 8));
28834 } else {
28835 and_phy_reg(pi, 0xa5, ~(0x1 << 14));
28836 }
28837
28838 if (NREV_IS(pi->pubpi.phy_rev, 2))
28839 mod_phy_reg(pi, 0xdc, 0x00ff, 0x3b);
28840 else if (NREV_LT(pi->pubpi.phy_rev, 2))
28841 mod_phy_reg(pi, 0xdc, 0x00ff, 0x40);
28842
28843 if (NREV_LT(pi->pubpi.phy_rev, 2) && IS40MHZ(pi))
28844 wlapi_bmac_mhf(pi->sh->physhim, MHF1, MHF1_IQSWAP_WAR,
28845 0x0, WLC_BAND_ALL);
28846
28847 if (PHY_IPA(pi)) {
28848 mod_phy_reg(pi, (0 == PHY_CORE_0) ? 0x297 :
28849 0x29b, (0x1 << 2), (0) << 2);
28850
28851 mod_phy_reg(pi, (1 == PHY_CORE_0) ? 0x297 :
28852 0x29b, (0x1 << 2), (0) << 2);
28853
28854 }
28855
28856 }
28857
28858 if (pi->phyhang_avoid)
0965ae88 28859 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
28860}
28861
28862void
562c8850 28863wlc_phy_txpwr_index_nphy(phy_info_t *pi, u8 core_mask, s8 txpwrindex,
a9533e7e
HP
28864 bool restore_cals)
28865{
e868ab03 28866 u8 core, txpwrctl_tbl;
7d4df48e
GKH
28867 u16 tx_ind0, iq_ind0, lo_ind0;
28868 u16 m1m2;
66cbd3ab 28869 u32 txgain;
7d4df48e 28870 u16 rad_gain, dac_gain;
e868ab03 28871 u8 bbmult;
66cbd3ab 28872 u32 iqcomp;
7d4df48e 28873 u16 iqcomp_a, iqcomp_b;
66cbd3ab 28874 u32 locomp;
7d4df48e 28875 u16 tmpval;
e868ab03 28876 u8 tx_pwr_ctrl_state;
3e26416e 28877 s32 rfpwr_offset;
7d4df48e 28878 u16 regval[2];
a9533e7e
HP
28879
28880 if (pi->phyhang_avoid)
0f0881b0 28881 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
28882
28883 tx_ind0 = 192;
28884 iq_ind0 = 320;
28885 lo_ind0 = 448;
28886
28887 for (core = 0; core < pi->pubpi.phy_corenum; core++) {
28888
28889 if ((core_mask & (1 << core)) == 0) {
28890 continue;
28891 }
28892
28893 txpwrctl_tbl = (core == PHY_CORE_0) ? 26 : 27;
28894
28895 if (txpwrindex < 0) {
28896 if (pi->nphy_txpwrindex[core].index < 0) {
28897
28898 continue;
28899 }
28900
28901 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28902 mod_phy_reg(pi, 0x8f,
28903 (0x1 << 8),
28904 pi->nphy_txpwrindex[core].
28905 AfectrlOverride);
28906 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28907 pi->nphy_txpwrindex[core].
28908 AfectrlOverride);
28909 } else {
28910 mod_phy_reg(pi, 0xa5,
28911 (0x1 << 14),
28912 pi->nphy_txpwrindex[core].
28913 AfectrlOverride);
28914 }
28915
28916 write_phy_reg(pi, (core == PHY_CORE_0) ?
28917 0xaa : 0xab,
28918 pi->nphy_txpwrindex[core].AfeCtrlDacGain);
28919
28920 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
28921 &pi->nphy_txpwrindex[core].
28922 rad_gain);
28923
28924 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
28925 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
28926 m1m2 |= ((core == PHY_CORE_0) ?
28927 (pi->nphy_txpwrindex[core].bbmult << 8) :
28928 (pi->nphy_txpwrindex[core].bbmult << 0));
28929 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
28930
28931 if (restore_cals) {
28932
28933 wlc_phy_table_write_nphy(pi, 15, 2,
28934 (80 + 2 * core), 16,
28935 (void *)&pi->
28936 nphy_txpwrindex[core].
28937 iqcomp_a);
28938
28939 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
28940 16,
28941 &pi->
28942 nphy_txpwrindex[core].
28943 locomp);
28944 wlc_phy_table_write_nphy(pi, 15, 1, (93 + core),
28945 16,
28946 (void *)&pi->
28947 nphy_txpwrindex[core].
28948 locomp);
28949 }
28950
28951 wlc_phy_txpwrctrl_enable_nphy(pi, pi->nphy_txpwrctrl);
28952
28953 pi->nphy_txpwrindex[core].index_internal =
28954 pi->nphy_txpwrindex[core].index_internal_save;
28955 } else {
28956
28957 if (pi->nphy_txpwrindex[core].index < 0) {
28958
28959 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
28960 mod_phy_reg(pi, 0x8f,
28961 (0x1 << 8),
28962 pi->nphy_txpwrindex[core].
28963 AfectrlOverride);
28964 mod_phy_reg(pi, 0xa5, (0x1 << 8),
28965 pi->nphy_txpwrindex[core].
28966 AfectrlOverride);
28967 } else {
28968 pi->nphy_txpwrindex[core].
28969 AfectrlOverride =
28970 read_phy_reg(pi, 0xa5);
28971 }
28972
28973 pi->nphy_txpwrindex[core].AfeCtrlDacGain =
28974 read_phy_reg(pi,
28975 (core ==
28976 PHY_CORE_0) ? 0xaa : 0xab);
28977
28978 wlc_phy_table_read_nphy(pi, 7, 1,
28979 (0x110 + core), 16,
28980 &pi->
28981 nphy_txpwrindex[core].
28982 rad_gain);
28983
28984 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16,
28985 &tmpval);
28986 tmpval >>= ((core == PHY_CORE_0) ? 8 : 0);
28987 tmpval &= 0xff;
28988 pi->nphy_txpwrindex[core].bbmult =
e868ab03 28989 (u8) tmpval;
a9533e7e
HP
28990
28991 wlc_phy_table_read_nphy(pi, 15, 2,
28992 (80 + 2 * core), 16,
28993 (void *)&pi->
28994 nphy_txpwrindex[core].
28995 iqcomp_a);
28996
28997 wlc_phy_table_read_nphy(pi, 15, 1, (85 + core),
28998 16,
28999 (void *)&pi->
29000 nphy_txpwrindex[core].
29001 locomp);
29002
29003 pi->nphy_txpwrindex[core].index_internal_save =
29004 pi->nphy_txpwrindex[core].index_internal;
29005 }
29006
29007 tx_pwr_ctrl_state = pi->nphy_txpwrctrl;
29008 wlc_phy_txpwrctrl_enable_nphy(pi, PHY_TPC_HW_OFF);
29009
29010 if (NREV_IS(pi->pubpi.phy_rev, 1))
29011 wlapi_bmac_phyclk_fgc(pi->sh->physhim, ON);
29012
29013 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29014 (tx_ind0 + txpwrindex), 32,
29015 &txgain);
29016
29017 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29018 rad_gain =
29019 (txgain >> 16) & ((1 << (32 - 16 + 1)) - 1);
29020 } else {
29021 rad_gain =
29022 (txgain >> 16) & ((1 << (28 - 16 + 1)) - 1);
29023 }
29024 dac_gain = (txgain >> 8) & ((1 << (13 - 8 + 1)) - 1);
29025 bbmult = (txgain >> 0) & ((1 << (7 - 0 + 1)) - 1);
29026
29027 if (NREV_GE(pi->pubpi.phy_rev, 3)) {
29028 mod_phy_reg(pi, ((core == PHY_CORE_0) ? 0x8f :
29029 0xa5), (0x1 << 8), (0x1 << 8));
29030 } else {
29031 mod_phy_reg(pi, 0xa5, (0x1 << 14), (0x1 << 14));
29032 }
29033 write_phy_reg(pi, (core == PHY_CORE_0) ?
29034 0xaa : 0xab, dac_gain);
29035
29036 wlc_phy_table_write_nphy(pi, 7, 1, (0x110 + core), 16,
29037 &rad_gain);
29038
29039 wlc_phy_table_read_nphy(pi, 15, 1, 87, 16, &m1m2);
29040 m1m2 &= ((core == PHY_CORE_0) ? 0x00ff : 0xff00);
29041 m1m2 |=
29042 ((core ==
29043 PHY_CORE_0) ? (bbmult << 8) : (bbmult << 0));
29044
29045 wlc_phy_table_write_nphy(pi, 15, 1, 87, 16, &m1m2);
29046
29047 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29048 (iq_ind0 + txpwrindex), 32,
29049 &iqcomp);
29050 iqcomp_a = (iqcomp >> 10) & ((1 << (19 - 10 + 1)) - 1);
29051 iqcomp_b = (iqcomp >> 0) & ((1 << (9 - 0 + 1)) - 1);
29052
29053 if (restore_cals) {
7d4df48e
GKH
29054 regval[0] = (u16) iqcomp_a;
29055 regval[1] = (u16) iqcomp_b;
a9533e7e
HP
29056 wlc_phy_table_write_nphy(pi, 15, 2,
29057 (80 + 2 * core), 16,
29058 regval);
29059 }
29060
29061 wlc_phy_table_read_nphy(pi, txpwrctl_tbl, 1,
29062 (lo_ind0 + txpwrindex), 32,
29063 &locomp);
29064 if (restore_cals) {
29065 wlc_phy_table_write_nphy(pi, 15, 1, (85 + core),
29066 16, &locomp);
29067 }
29068
29069 if (NREV_IS(pi->pubpi.phy_rev, 1))
29070 wlapi_bmac_phyclk_fgc(pi->sh->physhim, OFF);
29071
29072 if (PHY_IPA(pi)) {
29073 wlc_phy_table_read_nphy(pi,
29074 (core ==
29075 PHY_CORE_0 ?
29076 NPHY_TBL_ID_CORE1TXPWRCTL
29077 :
29078 NPHY_TBL_ID_CORE2TXPWRCTL),
29079 1, 576 + txpwrindex, 32,
29080 &rfpwr_offset);
29081
29082 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29083 0x29b, (0x1ff << 4),
e59fe083 29084 ((s16) rfpwr_offset) << 4);
a9533e7e
HP
29085
29086 mod_phy_reg(pi, (core == PHY_CORE_0) ? 0x297 :
29087 0x29b, (0x1 << 2), (1) << 2);
29088
29089 }
29090
29091 wlc_phy_txpwrctrl_enable_nphy(pi, tx_pwr_ctrl_state);
29092 }
29093
29094 pi->nphy_txpwrindex[core].index = txpwrindex;
29095 }
29096
29097 if (pi->phyhang_avoid)
0965ae88 29098 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
29099}
29100
29101void
e868ab03
GKH
29102wlc_phy_txpower_sromlimit_get_nphy(phy_info_t *pi, uint chan, u8 *max_pwr,
29103 u8 txp_rate_idx)
a9533e7e 29104{
e868ab03 29105 u8 chan_freq_range;
a9533e7e
HP
29106
29107 chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
29108 switch (chan_freq_range) {
29109 case WL_CHAN_FREQ_RANGE_2G:
29110 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29111 break;
29112 case WL_CHAN_FREQ_RANGE_5GM:
29113 *max_pwr = pi->tx_srom_max_rate_5g_mid[txp_rate_idx];
29114 break;
29115 case WL_CHAN_FREQ_RANGE_5GL:
29116 *max_pwr = pi->tx_srom_max_rate_5g_low[txp_rate_idx];
29117 break;
29118 case WL_CHAN_FREQ_RANGE_5GH:
29119 *max_pwr = pi->tx_srom_max_rate_5g_hi[txp_rate_idx];
29120 break;
29121 default:
a9533e7e
HP
29122 *max_pwr = pi->tx_srom_max_rate_2g[txp_rate_idx];
29123 break;
29124 }
29125
29126 return;
29127}
29128
7cc4a4c0 29129void wlc_phy_stay_in_carriersearch_nphy(phy_info_t *pi, bool enable)
a9533e7e 29130{
7d4df48e 29131 u16 clip_off[] = { 0xffff, 0xffff };
a9533e7e 29132
a9533e7e
HP
29133 if (enable) {
29134 if (pi->nphy_deaf_count == 0) {
29135 pi->classifier_state =
29136 wlc_phy_classifier_nphy(pi, 0, 0);
29137 wlc_phy_classifier_nphy(pi, (0x7 << 0), 4);
29138 wlc_phy_clip_det_nphy(pi, 0, pi->clip_state);
29139 wlc_phy_clip_det_nphy(pi, 1, clip_off);
29140 }
29141
29142 pi->nphy_deaf_count++;
29143
29144 wlc_phy_resetcca_nphy(pi);
29145
29146 } else {
a9533e7e
HP
29147 pi->nphy_deaf_count--;
29148
29149 if (pi->nphy_deaf_count == 0) {
29150 wlc_phy_classifier_nphy(pi, (0x7 << 0),
29151 pi->classifier_state);
29152 wlc_phy_clip_det_nphy(pi, 1, pi->clip_state);
29153 }
29154 }
29155}
29156
7cc4a4c0 29157void wlc_nphy_deaf_mode(phy_info_t *pi, bool mode)
a9533e7e
HP
29158{
29159 wlapi_suspend_mac_and_wait(pi->sh->physhim);
29160
29161 if (mode) {
29162 if (pi->nphy_deaf_count == 0)
0f0881b0 29163 wlc_phy_stay_in_carriersearch_nphy(pi, true);
a9533e7e
HP
29164 } else {
29165 if (pi->nphy_deaf_count > 0)
0965ae88 29166 wlc_phy_stay_in_carriersearch_nphy(pi, false);
a9533e7e
HP
29167 }
29168 wlapi_enable_mac(pi->sh->physhim);
29169}
This page took 1.59625 seconds and 5 git commands to generate.